/* Generated by Nim Compiler v1.6.14 */
#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__dmp6pRpfXxJk6gIZHkm7dw tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw;
typedef struct tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg;
typedef struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw tyObject_TSym__3r34mwqcVmg5JFNmiaVncw;
typedef struct tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg;
typedef struct tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA;
typedef struct tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ;
typedef struct tySequence__9boKiNhY9cnRQF2k9b9a9bGKbrA tySequence__9boKiNhY9cnRQF2k9b9a9bGKbrA;
typedef struct tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA;
typedef struct tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw;
typedef struct tySequence__ed0C0uAUZPhvw3RAc5hfYg tySequence__ed0C0uAUZPhvw3RAc5hfYg;
typedef struct tySequence__vvBerF0axaNtu9aMA2gnsrA tySequence__vvBerF0axaNtu9aMA2gnsrA;
typedef struct tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ;
typedef struct tySequence__ZQPym9bf1jM5qaSn7LUXMKA tySequence__ZQPym9bf1jM5qaSn7LUXMKA;
typedef struct tySequence__9c3OY0aBmSBgwdsnBAPf4Ag tySequence__9c3OY0aBmSBgwdsnBAPf4Ag;
typedef struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw;
typedef struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw;
typedef struct tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw;
typedef struct tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg;
typedef struct tySequence__q9cq1Li6c1nMjHpacEbCj0g tySequence__q9cq1Li6c1nMjHpacEbCj0g;
typedef struct tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw;
typedef struct tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ;
typedef struct tySequence__yH9bx9bpa6jqsU89cxjyTAlPQ tySequence__yH9bx9bpa6jqsU89cxjyTAlPQ;
typedef struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg;
typedef struct tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__Jhh6ks9carRtwV9aOuM8yMNw tySequence__Jhh6ks9carRtwV9aOuM8yMNw;
typedef struct tyObject_HashSet__qEsCgvAiLX6rSzzn9cFnYvQ tyObject_HashSet__qEsCgvAiLX6rSzzn9cFnYvQ;
typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw tySequence__Bis5AbpONWcIRrPyPJS8Yw;
typedef struct tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg;
typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw tySequence__E8pi9b5QNahsURYzXMjh3qw;
typedef struct tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg;
typedef struct tySequence__XDpbjnuseLNZDGLBQ2Qzow tySequence__XDpbjnuseLNZDGLBQ2Qzow;
typedef struct tyObject_Table__cBohObSCAwRxvYFXQHv2wA tyObject_Table__cBohObSCAwRxvYFXQHv2wA;
typedef struct tySequence__QqvaCqCpEE1QmQZbcZLi5A tySequence__QqvaCqCpEE1QmQZbcZLi5A;
typedef struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g;
typedef struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA tyObject_CellSeq__nav876ELHgxScHhs30CKiA;
typedef struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ;
typedef struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ;
typedef struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ;
typedef struct tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw;
typedef struct tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA;
typedef struct tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA;
typedef struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A;
typedef struct tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg;
typedef struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw;
typedef struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw;
typedef struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA;
typedef struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg;
typedef struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA;
typedef struct tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ;
typedef struct tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA;
typedef struct tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg;
typedef struct tySequence__vKogasEnJSPhbQmA8r4Y9aA tySequence__vKogasEnJSPhbQmA8r4Y9aA;
typedef struct tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw;
typedef struct tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ;
typedef struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tySequence__RNhZxf20g9beyq5VBOGxhDg tySequence__RNhZxf20g9beyq5VBOGxhDg;
typedef struct tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ;
typedef struct tySequence__lFbCtu5P2Kf7YDYtGjkxAQ tySequence__lFbCtu5P2Kf7YDYtGjkxAQ;
typedef struct tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA;
typedef struct tySequence__ijtae5OneaLys0hN9alAicA tySequence__ijtae5OneaLys0hN9alAicA;
typedef struct tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w;
typedef struct tySequence__SerjNoUujW2dUouVBrJiCw tySequence__SerjNoUujW2dUouVBrJiCw;
typedef struct tyObject_Table__r0v8BdcBPKhl73K8p2VMUA tyObject_Table__r0v8BdcBPKhl73K8p2VMUA;
typedef struct tySequence__K9agbtcb0qPZuSJFXB9cTe6g tySequence__K9agbtcb0qPZuSJFXB9cTe6g;
typedef struct tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg;
typedef struct tySequence__m88qdML9cQOuqGAQn6XWL1A tySequence__m88qdML9cQOuqGAQn6XWL1A;
typedef struct tyObject_Table__1hIWbTQWYT4BmhdESze57A tyObject_Table__1hIWbTQWYT4BmhdESze57A;
typedef struct tySequence__naEbXEp9b9aiW1zXJorqf9cXQ tySequence__naEbXEp9b9aiW1zXJorqf9cXQ;
typedef struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw tyObject_Table__9cHFtxtpgztIcDsypRz9byKw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA;
typedef struct tyObject_Table__imojfg883tkWsWJwyshGqQ tyObject_Table__imojfg883tkWsWJwyshGqQ;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table__BCPh85PHtwxox9bv7NLFrlg tyObject_Table__BCPh85PHtwxox9bv7NLFrlg;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA;
typedef struct tySequence__KgiZ29chkJAD01p9aLRB32qw tySequence__KgiZ29chkJAD01p9aLRB32qw;
typedef struct tyObject_Table__LM44poVdVEn4Mo4N4L8c3A tyObject_Table__LM44poVdVEn4Mo4N4L8c3A;
typedef struct tySequence__rkYRZrbHVYL3nhXlQW3K9bw tySequence__rkYRZrbHVYL3nhXlQW3K9bw;
typedef struct tySequence__IRFEb1e9bxgbJLuB5xrdZsQ tySequence__IRFEb1e9bxgbJLuB5xrdZsQ;
typedef struct tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ;
typedef struct tySequence__YmPd0eWfcTfrVYrthlXPYA tySequence__YmPd0eWfcTfrVYrthlXPYA;
typedef struct tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q;
typedef struct tySequence__Hz5SYwQU29b9aFLt09blvVQPg tySequence__Hz5SYwQU29b9aFLt09blvVQPg;
typedef struct tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table__R7JnJQEipxxOlJWXQz7jWg tyObject_Table__R7JnJQEipxxOlJWXQz7jWg;
typedef struct tySequence__3G9aA9cLXaPxuRxMKm3anacQ tySequence__3G9aA9cLXaPxuRxMKm3anacQ;
typedef struct tySequence__bPFv6ypvvCX2A9a9al8utL2Q tySequence__bPFv6ypvvCX2A9a9al8utL2Q;
typedef struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw tySequence__IeU9azYSNIK3V9b36Ir6NZcw;
typedef struct tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg;
typedef struct tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg;
typedef struct tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA;
typedef struct tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA;
typedef struct tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA;
typedef struct tySequence__mIo9bZUsotCEUUtEGNhYmaA tySequence__mIo9bZUsotCEUUtEGNhYmaA;
typedef struct tySequence__8rKxBHaz7QqNR9a4WIZqqqQ tySequence__8rKxBHaz7QqNR9a4WIZqqqQ;
typedef struct tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tySequence__KLItBKQec3LJzPmfiYYfQA tySequence__KLItBKQec3LJzPmfiYYfQA;
typedef struct tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg;
typedef struct tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg;
typedef struct tySequence__cvxuM2UjDv0O3Q6FcDEAnw tySequence__cvxuM2UjDv0O3Q6FcDEAnw;
typedef struct tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg;
typedef struct tyObject_TIdentIter__Lp4Mt9aetG3F7zvSvi9cZw6g tyObject_TIdentIter__Lp4Mt9aetG3F7zvSvi9cZw6g;
typedef struct tyObject_ModuleIter__ao1RRyFrHTmNImyTejOq7A tyObject_ModuleIter__ao1RRyFrHTmNImyTejOq7A;
typedef struct tyObject_RodIter__L6nv9cakjPARHk068AFo6ww tyObject_RodIter__L6nv9cakjPARHk068AFo6ww;
typedef struct tyObject_PackedDecoder__KP7DLKztb9c2OnCFWxJiscQ tyObject_PackedDecoder__KP7DLKztb9c2OnCFWxJiscQ;
typedef struct tySequence__lo3S1lKyiPLhGGB9cBawd6A tySequence__lo3S1lKyiPLhGGB9cBawd6A;
typedef struct tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw;
typedef struct tyObject_MismatchInfo__7DZVQMEKp3NTauLRe48cLw tyObject_MismatchInfo__7DZVQMEKp3NTauLRe48cLw;
typedef struct tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA;
typedef struct tyObject_LayeredIdTablecolonObjectType___9aSR8D74Pb4ozXN6gEJ9a1Pw tyObject_LayeredIdTablecolonObjectType___9aSR8D74Pb4ozXN6gEJ9a1Pw;
typedef struct tyObject_TReplTypeVars__itU2h89a2PcJoJ5bHADfePw tyObject_TReplTypeVars__itU2h89a2PcJoJ5bHADfePw;
typedef struct tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ;
typedef struct tySequence__6OFCSvqRaxyEgUqWtnZSlw tySequence__6OFCSvqRaxyEgUqWtnZSlw;
typedef struct tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q;
typedef struct tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg;
typedef struct tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ;
typedef struct tySequence__UnGSk9aaLosDroi2QDrlOfQ tySequence__UnGSk9aaLosDroi2QDrlOfQ;
typedef struct tyObject_TInstantiationPair__d4lcZMnmQK2Jh2jYkdgB4w tyObject_TInstantiationPair__d4lcZMnmQK2Jh2jYkdgB4w;
typedef struct tySequence__LFzufdBEvfOUK6PWh0HUtQ tySequence__LFzufdBEvfOUK6PWh0HUtQ;
typedef struct tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ;
typedef struct tySequence__ugNUvYxERl9aaj9b1GeCSDAg tySequence__ugNUvYxERl9aaj9b1GeCSDAg;
typedef struct tyTuple__BHqtUW7ND5oD8ApFSF1wwQ tyTuple__BHqtUW7ND5oD8ApFSF1wwQ;
typedef struct tyObject_TOptionEntry__KcSoeh10J9aas3WZevEUD7Q tyObject_TOptionEntry__KcSoeh10J9aas3WZevEUD7Q;
typedef struct tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg;
typedef struct tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q;
typedef struct tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg;
typedef struct tyTuple__U9cBGRemMbZc6MWph6pfkAg tyTuple__U9cBGRemMbZc6MWph6pfkAg;
typedef struct tyTuple__w6N3FtUNd27MnpJcSoTdfQ tyTuple__w6N3FtUNd27MnpJcSoTdfQ;
typedef struct tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w;
typedef struct tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ;
typedef struct tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA;
typedef struct tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A;
typedef struct tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw;
typedef struct tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ;
typedef struct Exception Exception;
typedef struct tySequence__QbmGqFaLnb1IWWToREeaIA tySequence__QbmGqFaLnb1IWWToREeaIA;
typedef struct TSafePoint TSafePoint;
typedef struct tyTuple__2E9aYKv1U4zUZsR6wkNRkPg tyTuple__2E9aYKv1U4zUZsR6wkNRkPg;
typedef struct tyObject_HSlice__4SMQaBRcH5MId3jnPEJfIw tyObject_HSlice__4SMQaBRcH5MId3jnPEJfIw;
typedef struct tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA;
typedef struct tyObject_HSlice__5MokM0MxT5ZF4tSog3uzVQ tyObject_HSlice__5MokM0MxT5ZF4tSog3uzVQ;
typedef struct tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ;
typedef struct tyObject_TFieldInstCtx__gggY1l2lKKFHg0YR3GdTXg tyObject_TFieldInstCtx__gggY1l2lKKFHg0YR3GdTXg;
typedef struct tyObject_TFieldsCtx__qXVR2KI9aIfwG9bg4IHg9cw7w tyObject_TFieldsCtx__qXVR2KI9aIfwG9bg4IHg9cw7w;
typedef struct tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg;
typedef struct tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag;
typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg;
typedef struct tySequence__4Murtwnm0Fyc7F9acrytEXw tySequence__4Murtwnm0Fyc7F9acrytEXw;
typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
typedef struct tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw;
typedef struct tySequence__QnmOtn1Iv4LvxOXoMn8Rbg tySequence__QnmOtn1Iv4LvxOXoMn8Rbg;
typedef struct tySequence__oKtVqsc9bQVCNyrijELM4OQ tySequence__oKtVqsc9bQVCNyrijELM4OQ;
typedef struct tySequence__qy6Iwdy00wN560qud54HTg tySequence__qy6Iwdy00wN560qud54HTg;
typedef struct tySequence__k67v9bwvvQDmS1ynyGGUbeQ tySequence__k67v9bwvvQDmS1ynyGGUbeQ;
typedef struct tySequence__cLsClAAfd0MKkoBQVyvdvw tySequence__cLsClAAfd0MKkoBQVyvdvw;
typedef struct tySequence__q9bTuOB0JXh1iZ3CSGdRLbg tySequence__q9bTuOB0JXh1iZ3CSGdRLbg;
typedef struct tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw;
typedef struct tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ;
typedef struct tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
typedef struct tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ;
typedef struct tySequence__C3r8jsj9chA4sIlYfDN5aDw tySequence__C3r8jsj9chA4sIlYfDN5aDw;
typedef struct tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ;
typedef struct tySequence__qeAsXh2i1GAL5Nl0g3OP8g tySequence__qeAsXh2i1GAL5Nl0g3OP8g;
typedef struct tyTuple__8vGER9aaTtt9bUk9avNQ3fEIg tyTuple__8vGER9aaTtt9bUk9avNQ3fEIg;
typedef struct tyObject_ImportedModule__ABXo2nVfMtcWNYv5zEiXDg tyObject_ImportedModule__ABXo2nVfMtcWNYv5zEiXDg;
typedef struct tyObject_TIdPair__CEfaiHL4gHg86NKgeeQ7lA tyObject_TIdPair__CEfaiHL4gHg86NKgeeQ7lA;
typedef struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct tyTuple__VbApVidEWCFLq9a29bPtaS7A tyTuple__VbApVidEWCFLq9a29bPtaS7A;
typedef struct tySequence__k7EQb9bN3Uhl608xoPGMRJA tySequence__k7EQb9bN3Uhl608xoPGMRJA;
typedef struct tyTuple__toqrUPSdp8zSxOdlxMJj9cA tyTuple__toqrUPSdp8zSxOdlxMJj9cA;
typedef struct tyTuple__EbsafWGli8bW2GRJQ9apsjA tyTuple__EbsafWGli8bW2GRJQ9apsjA;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ;
typedef struct tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
typedef struct tyTuple__UluY8x0Nj6cp9b0o88wJ0lg tyTuple__UluY8x0Nj6cp9b0o88wJ0lg;
typedef struct tySequence__dlD6tEGzYLLpKVq3XwuFlA tySequence__dlD6tEGzYLLpKVq3XwuFlA;
typedef struct tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ;
typedef struct tyTuple__rZZA0skon1OsHdiEvT8RZQ tyTuple__rZZA0skon1OsHdiEvT8RZQ;
typedef struct tyTuple__q13Zt16VkCqu6Zg5jWqwHA tyTuple__q13Zt16VkCqu6Zg5jWqwHA;
typedef struct tyTuple__aWN9bNzF9bubXNJV9ciomgpfA tyTuple__aWN9bNzF9bubXNJV9ciomgpfA;
typedef struct tySequence__m4PVWjcAAjfxlwJxLkKn8A tySequence__m4PVWjcAAjfxlwJxLkKn8A;
typedef struct tyTuple__RWXAsQlFoGYyEQZp1G65sg tyTuple__RWXAsQlFoGYyEQZp1G65sg;
typedef struct tyTuple__RmGJuqOgEaHckHndh0LEsw tyTuple__RmGJuqOgEaHckHndh0LEsw;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__J4cxakKjhKxTIJR9bojMmXw tyTuple__J4cxakKjhKxTIJR9bojMmXw;
typedef struct tySequence__i89c5kdtWKzK3OEiI81pkkw tySequence__i89c5kdtWKzK3OEiI81pkkw;
typedef struct tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A;
typedef struct tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ;
typedef struct tySequence__GR8qmV1kNRcoQ2g76VFy3A tySequence__GR8qmV1kNRcoQ2g76VFy3A;
typedef struct tyTuple__a7QginWFapakKbWJBJ2vfA tyTuple__a7QginWFapakKbWJBJ2vfA;
typedef struct tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyTuple__kbX6x85REySUrk9auORL0vw tyTuple__kbX6x85REySUrk9auORL0vw;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g;
typedef struct tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q;
typedef struct tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A;
typedef struct tyTuple__nF9cH4hinXgGEUwO4G2bshw tyTuple__nF9cH4hinXgGEUwO4G2bshw;
typedef struct tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw;
typedef struct tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA;
typedef struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA;
typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
typedef struct tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA;
typedef struct tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA;
typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
typedef struct tyTuple__PsEhl3dzznmmJiLAuIXZOg tyTuple__PsEhl3dzznmmJiLAuIXZOg;
typedef struct tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w;
typedef struct tyTuple__Db8CrQifKGIsKc3w71w7Lw tyTuple__Db8CrQifKGIsKc3w71w7Lw;
typedef struct tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg;
typedef struct tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ;
typedef struct tyTuple__FEYH9alRJhHD0uTKF2vnIqw tyTuple__FEYH9alRJhHD0uTKF2vnIqw;
typedef struct tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA;
typedef struct tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA;
typedef struct tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw;
typedef struct tyTuple__VUJ5Hjm4tKAResBsRHJvYg tyTuple__VUJ5Hjm4tKAResBsRHJvYg;
typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
struct tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg {
NI32 module;
NI32 symId;
NI32 typeId_0;
NIM_BOOL sealed;
};
typedef NU8 tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w;
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__pspQAsqJLrw3jEKBD9bxmyQ kind;
tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw {
  RootObj Sup;
tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen;
};
typedef tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tyArray__aaEwD7wUZoIxDUprFEbfMQ[38];
struct tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ {
NI counter;
tySequence__ZQPym9bf1jM5qaSn7LUXMKA* data;
};
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__q9caIJqxIEVMlKzDKc7PN3A) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
typedef NU32 tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw;
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__Kiet6YwcQwPvcQYHHEqqqQ) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__PSlVV9bxpH9avY5YrjCD5uqA) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__8k9afYvvfaH1tjWAwlISb0A) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, void* ClE_0);
void* ClE_0;
} tyProc__9bnYcX9avusKBraL3FJXBwJw;
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__uojbiMfaKLMuGW9bbomtTBg) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
typedef NU32 tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw;
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__bqRyngJC8bSPcUqqn9bn73w) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig, tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw filter, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
typedef N_NIMCALL_PTR(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, tyProc__F6LocU8y66ng5Ra4XoVWJA) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
typedef struct {
N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, ClP_0) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, void* ClE_0);
void* ClE_0;
} tyProc__Nc9aAsBDTkr61wP9a9cnds8Og;
typedef struct {
N_NIMCALL_PTR(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, ClP_0) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fn, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, void* ClE_0);
void* ClE_0;
} tyProc__z8FaSv6eEIc72FZ9c9cBcaGg;
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw {
NI elems;
NI counter;
NI max;
tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* head;
tySequence__q9cq1Li6c1nMjHpacEbCj0g* data;
tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw {
NI counter;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* data;
};
typedef NU8 tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ;
typedef N_NIMCALL_PTR(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, tyProc__9aa59awckKpa9areOQSBOwSeQ) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* dc, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ op, NI col);
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU32 tySet_tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw;
struct tyObject_HashSet__qEsCgvAiLX6rSzzn9cFnYvQ {
tySequence__Bis5AbpONWcIRrPyPJS8Yw* data;
NI counter;
};
struct tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg {
tySequence__E8pi9b5QNahsURYzXMjh3qw* data;
NI counter;
};
struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw {
NU16 line;
NI16 col;
NI32 fileIndex;
};
struct tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg {
tySequence__XDpbjnuseLNZDGLBQ2Qzow* data;
NI counter;
};
struct tyObject_Table__cBohObSCAwRxvYFXQHv2wA {
tySequence__QqvaCqCpEE1QmQZbcZLi5A* data;
NI counter;
};
struct tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw {
  tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw Sup;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* enforceVoidContext;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* voidType;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module;
tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* currentScope;
tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* moduleScope;
tySequence__9boKiNhY9cnRQF2k9b9a9bGKbrA* imports;
tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* topLevelScope;
tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA* p;
tyArray__aaEwD7wUZoIxDUprFEbfMQ intTypeCache;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* nilTypeCache;
tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw* matchedConcept;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* friendModules;
NI instCounter;
NI* templInstCounter;
NI inGenericContext;
NI inStaticContext;
NI inUnrolledContext;
NI compilesContextId;
NI compilesContextIdGenerator;
NI inGenericInst;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* converters;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* patterns;
tySequence__vvBerF0axaNtu9aMA2gnsrA* optionStack;
tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ symMapping;
tySequence__9c3OY0aBmSBgwdsnBAPf4Ag* libs;
tyProc__q9caIJqxIEVMlKzDKc7PN3A semConstExpr;
tyProc__Kiet6YwcQwPvcQYHHEqqqQ semExpr;
tyProc__PSlVV9bxpH9avY5YrjCD5uqA semTryExpr;
tyProc__q9caIJqxIEVMlKzDKc7PN3A semTryConstExpr;
tyProc__8k9afYvvfaH1tjWAwlISb0A computeRequiresInit;
tyProc__9bnYcX9avusKBraL3FJXBwJw hasUnresolvedArgs;
tyProc__PSlVV9bxpH9avY5YrjCD5uqA semOperand;
tyProc__uojbiMfaKLMuGW9bbomtTBg semConstBoolExpr;
tyProc__bqRyngJC8bSPcUqqn9bn73w semOverloadedCall;
tyProc__F6LocU8y66ng5Ra4XoVWJA semTypeNode;
tyProc__Nc9aAsBDTkr61wP9a9cnds8Og semInferredLambda;
tyProc__z8FaSv6eEIc72FZ9c9cBcaGg semGenerateInstance;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw includedFiles;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw pureEnumFields;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw userPragmas;
tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* evalContext;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw unknownIdents;
tySequence__yH9bx9bpa6jqsU89cxjyTAlPQ* generics;
NI topStmts;
NI lastGenericIdx;
NI hloLoopDetector;
NI inParallelStmt;
tyProc__9aa59awckKpa9areOQSBOwSeQ instTypeBoundOp;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* selfName;
tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache;
tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw signatures;
NimStringDesc* recursiveDep;
NIM_BOOL suggestionsMade;
NIM_BOOL isAmbiguous;
tySet_tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw features;
NI inTypeContext;
NI inConceptDecl;
tySequence__Jhh6ks9carRtwV9aOuM8yMNw* unusedImports;
tyObject_HashSet__qEsCgvAiLX6rSzzn9cFnYvQ exportIndirections;
tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg importModuleMap;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw lastTLineInfo;
tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg sideEffects;
NI inUncheckedAssignSection;
tyObject_Table__cBohObSCAwRxvYFXQHv2wA importModuleLookup;
};
struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ {
void* bottom;
};
struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA {
NI len;
NI cap;
tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
};
typedef tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* tyArray__1eFxjkcKGHnofywkmCV8oQ[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* tyArray__KxTmKT9a3kTkdwYfqXhEYSw[32];
typedef tyArray__KxTmKT9a3kTkdwYfqXhEYSw tyArray__ATT5LBefmjy9bg8ApRmg3rw[24];
typedef tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* tyArray__RxhBwkGQwTHLKhoK685Xfg[256];
struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A {
tyArray__RxhBwkGQwTHLKhoK685Xfg data;
};
typedef tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* tyArray__DrxDrI9bg9apB70ydOoNZrWw[2];
struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw {
tyArray__DrxDrI9bg9apB70ydOoNZrWw link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA {
tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* Field0;
NI Field1;
};
typedef tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyArray__wsokuoa9bVBSU4gPLKbFaaw[30];
struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw {
NI len;
tyArray__wsokuoa9bVBSU4gPLKbFaaw chunks;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw* next;
};
struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ {
NI minLargeObj;
NI maxLargeObj;
tyArray__1eFxjkcKGHnofywkmCV8oQ freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__ATT5LBefmjy9bg8ApRmg3rw matrix;
tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A chunkStarts;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* root;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* deleted;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* last;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw bottomData;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw heapLinks;
};
struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA {
NI counter;
NI max;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* head;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ** data;
};
struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ {
tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA zct;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA decStack;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA tempStack;
NI recGcLock;
tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ region;
tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg stat;
tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA marked;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA additionalRoots;
NI gcThreadId;
};
struct tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg {
NI32 module;
NI32 item;
};
struct tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA {
  RootObj Sup;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg itemId;
};
typedef NU8 tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg;
typedef NU8 tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg;
typedef NU64 tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw;
typedef NU8 tyEnum_TLocKind__pD6N6rEUmrrqJbKE02Sezw;
typedef NU8 tyEnum_TStorageLoc__JIS9cieRcL9cZccyO9bM9aBmFQ;
typedef NU16 tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw;
struct tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw {
tyEnum_TLocKind__pD6N6rEUmrrqJbKE02Sezw k;
tyEnum_TStorageLoc__JIS9cieRcL9cZccyO9bM9aBmFQ storage;
tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw flags;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* lode;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* r;
};
struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA {
  tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA Sup;
tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind;
tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg callConv;
tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw flags;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* sons;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw loc;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typeInst;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg uniqueId;
};
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
struct tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA {
tySequence__ijtae5OneaLys0hN9alAicA* data;
NI counter;
};
struct tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w {
tySequence__SerjNoUujW2dUouVBrJiCw* data;
NI counter;
};
struct tyObject_Table__r0v8BdcBPKhl73K8p2VMUA {
tySequence__K9agbtcb0qPZuSJFXB9cTe6g* data;
NI counter;
};
typedef tyObject_Table__r0v8BdcBPKhl73K8p2VMUA tyArray__46hjIasL27aUz9c7kgtWooQ[5];
struct tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg {
tySequence__m88qdML9cQOuqGAQn6XWL1A* data;
NI counter;
};
struct tyObject_Table__1hIWbTQWYT4BmhdESze57A {
tySequence__naEbXEp9b9aiW1zXJorqf9cXQ* data;
NI counter;
};
struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
typedef NU8 tyEnum_TBackend__zoooocqvga73vZuhGAAy6A;
typedef NU8 tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w;
typedef NU8 tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ;
typedef NU32 tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ;
typedef NU64 tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg;
struct tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA {
tyEnum_TBackend__zoooocqvga73vZuhGAAy6A backend;
tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w selectedGC;
tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ cCompiler;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg globalOptions;
};
struct tyObject_Table__imojfg883tkWsWJwyshGqQ {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyObject_Table__BCPh85PHtwxox9bv7NLFrlg {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
struct tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA {
tySequence__KgiZ29chkJAD01p9aLRB32qw* data;
NI counter;
};
struct tyObject_Table__LM44poVdVEn4Mo4N4L8c3A {
tySequence__rkYRZrbHVYL3nhXlQW3K9bw* data;
NI counter;
};
typedef tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tyArray__9atk2qEPO7ASGmt9cDlOE9b9cg[65];
struct tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ {
tySequence__YmPd0eWfcTfrVYrthlXPYA* data;
NI counter;
};
struct tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, tyProc__I6rzVhdiYtUh7jwWJQoeyw) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__EQOAUyRkp9c3eeiGlHvCThA) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, NI32 fileIdx);
struct tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q {
tySequence__Hz5SYwQU29b9aFLt09blvVQPg* data;
NI counter;
};
struct tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyObject_Table__R7JnJQEipxxOlJWXQz7jWg {
tySequence__3G9aA9cLXaPxuRxMKm3anacQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(void, tyProc__1CO5eEh25fBKUWGagpikwg) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
typedef N_NIMCALL_PTR(void, tyProc__VcUg5jOhttLagdxUmVN8Tg) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__XOkru1xuh2bHzmkw1UYzLA) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* actual);
struct tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opNot;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opContains;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opLe;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opLt;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opAnd;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opOr;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opIsNil;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opEq;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opAdd;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opSub;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opMul;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opDiv;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opLen;
};
struct tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg {
tySequence__RNhZxf20g9beyq5VBOGxhDg* ifaces;
tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ* packed_0;
tySequence__lFbCtu5P2Kf7YDYtGjkxAQ* encoders;
tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA typeInstCache;
tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w procInstCache;
tyArray__46hjIasL27aUz9c7kgtWooQ attachedOps;
tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg methodsPerType;
tyObject_Table__1hIWbTQWYT4BmhdESze57A enumToStringProcs;
tyObject_Table__9cHFtxtpgztIcDsypRz9byKw emittedTypeInfo;
tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA startupPackedConfig;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw packageSyms;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw deps;
tyObject_Table__imojfg883tkWsWJwyshGqQ importDeps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table__BCPh85PHtwxox9bv7NLFrlg inclToMod;
tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache;
RootObj* vm;
tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* usageSym;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* owners;
tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA suggestSymbols;
tyObject_Table__LM44poVdVEn4Mo4N4L8c3A suggestErrors;
tySequence__IRFEb1e9bxgbJLuB5xrdZsQ* methods;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* systemModule;
tyArray__9atk2qEPO7ASGmt9cDlOE9b9cg sysTypes;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw compilerprocs;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw exposed;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw packageTypes;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* emptyNode;
tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ canonTypes;
tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw symBodyHashes;
tyProc__I6rzVhdiYtUh7jwWJQoeyw importModuleCallback;
tyProc__EQOAUyRkp9c3eeiGlHvCThA includeFileCallback;
tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q cacheSeqs;
tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g cacheCounters;
tyObject_Table__R7JnJQEipxxOlJWXQz7jWg cacheTables;
tySequence__bPFv6ypvvCX2A9a9al8utL2Q* passes;
tyProc__1CO5eEh25fBKUWGagpikwg onDefinition;
tyProc__1CO5eEh25fBKUWGagpikwg onDefinitionResolveForward;
tyProc__1CO5eEh25fBKUWGagpikwg onUsage;
tySequence__IeU9azYSNIK3V9b36Ir6NZcw* globalDestructors;
tyProc__VcUg5jOhttLagdxUmVN8Tg strongSemCheck;
tyProc__XOkru1xuh2bHzmkw1UYzLA compatibleProps;
tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen;
tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg operators;
};
typedef NU8 tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw;
typedef NU16 tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag;
typedef NU64 tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA;
struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw {
  tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA Sup;
tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind;
union{
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* gcUnsafetyReason;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* transformedBody;
} _kind_1;
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* guard;
NI bitsize;
NI alignment;
} _kind_2;
};
tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag magic;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* name;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA flags;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ast;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
NI position;
NI offset;
tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw loc;
tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg* annex;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* constraint;
};
typedef NU32 tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg;
typedef NU8 tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw;
struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw {
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg flags;
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
} _kind_4;
struct {tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
} _kind_5;
struct {tySequence__IeU9azYSNIK3V9b36Ir6NZcw* sons;
} _kind_6;
};
};
typedef NU8 tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ;
typedef NU8 tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw;
struct tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA {
tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ targetCPU;
tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ hostCPU;
tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw targetOS;
tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU8 tySet_tyEnum_TErrorOutput__AR9blT7YaZzdImck9a5cntbQ;
struct tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput__AR9blT7YaZzdImck9a5cntbQ errorOutputs;
tySequence__mIo9bZUsotCEUUtEGNhYmaA* msgContext;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw lastError;
tyObject_Table__9cHFtxtpgztIcDsypRz9byKw filenameToIndexTbl;
tySequence__8rKxBHaz7QqNR9a4WIZqqqQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_FilenameOption__CPbjHbMoELnjs1sUwb4U6w;
typedef NU8 tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg;
typedef NU8 tyEnum_ExceptionSystem__B9agvczdQhYbOz39atZ7Ap3Q;
typedef NU8 tyEnum_SymbolFilesOption__qvBr4umnK8GxeSOSEgbmLg;
struct tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU8 tySet_tyEnum_LegacyFeature__YfzcW9bRC8xGYaRkFXliJ2g;
typedef NU8 tyEnum_IdeCmd__p9ct5yRAwVUwh1wTpKTgABg;
typedef NU8 tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA[12];
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
NI Field0;
NI Field1;
NI Field2;
};
typedef NU8 tySet_tyEnum_StdOrrKind__iRAzj081qUCWECwmGroJoA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg* result, void* ClE_0);
void* ClE_0;
} tyProc__Ox1WDSaSyO73VnvAC2a4UA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__ai6Qt9bTOrsyOxOrlIkRHUg;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* msg, tyEnum_Severity__ai6Qt9bTOrsyOxOrlIkRHUg severity, void* ClE_0);
void* ClE_0;
} tyProc__2bM7rNPFiQD9bOvwFI49bKLQ;
struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ {
tyEnum_TBackend__zoooocqvga73vZuhGAAy6A backend;
tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA target;
NI linesCompiled;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg globalOptions;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* macrosToExpand;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* arcToExpand;
tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA m;
tyEnum_FilenameOption__CPbjHbMoELnjs1sUwb4U6w filenameOption;
NimStringDesc* unitSep;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg cmd;
NimStringDesc* cmdInput;
NIM_BOOL projectIsCmd;
NIM_BOOL implicitCmd;
tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w selectedGC;
tyEnum_ExceptionSystem__B9agvczdQhYbOz39atZ7Ap3Q exc;
NIM_BOOL hintProcessingDots;
NI verbosity;
NI numberOfProcessors;
NF lastCmdTime;
tyEnum_SymbolFilesOption__qvBr4umnK8GxeSOSEgbmLg symbolFiles;
NI spellSuggestMax;
tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw features;
tySet_tyEnum_LegacyFeature__YfzcW9bRC8xGYaRkFXliJ2g legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__p9ct5yRAwVUwh1wTpKTgABg ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ cCompiler;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA modifiedyNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA cmdlineNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA foreignPackageNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA notes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA warningAsErrors;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
NI maxLoopIterationsVM;
NIM_BOOL isVmTrace;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* configVars;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* symbols;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* 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__9aYeizX9bryvlooxqmPkPxqA* dllOverrides;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* moduleOverrides;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* cfileSpecificOptions;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
tySet_tyEnum_StdOrrKind__iRAzj081qUCWECwmGroJoA 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__KLItBKQec3LJzPmfiYYfQA* toCompile;
tyProc__Ox1WDSaSyO73VnvAC2a4UA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw lastLineInfo;
tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
tyProc__2bM7rNPFiQD9bOvwFI49bKLQ structuredErrorHook;
NimStringDesc* cppCustomNamespace;
NimStringDesc* nimMainPrefix;
tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg* vmProfileData;
NIM_BOOL expandProgress;
NI expandLevels;
NimStringDesc* expandNodeResult;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw expandPosition;
};
typedef NU8 tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg;
typedef NU8 tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg[9];
struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg {
NI id;
NimStringDesc* s;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* next;
NI h;
};
typedef NU8 tySet_tyEnum_TLookupFlag__ns0lQuhi2aWBQ9bXAfDCqaA;
typedef NU8 tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw;
struct tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* resultSym;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* selfSym;
NI nestedLoopCounter;
NI nestedBlockCounter;
tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA* next;
NIM_BOOL mappingExists;
tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ mapping;
tySequence__cvxuM2UjDv0O3Q6FcDEAnw* caseContext;
tySequence__IeU9azYSNIK3V9b36Ir6NZcw* localBindStmts;
};
typedef NU8 tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ;
struct tyObject_TIdentIter__Lp4Mt9aetG3F7zvSvi9cZw6g {
NI h;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* name;
};
struct tyObject_PackedDecoder__KP7DLKztb9c2OnCFWxJiscQ {
NI lastModule;
NU32 lastLit;
NI32 lastFile;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache;
};
struct tyObject_RodIter__L6nv9cakjPARHk068AFo6ww {
tyObject_PackedDecoder__KP7DLKztb9c2OnCFWxJiscQ decoder;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* values;
NI i;
NI module;
};
struct tyObject_ModuleIter__ao1RRyFrHTmNImyTejOq7A {
NIM_BOOL fromRod;
NI modIndex;
tyObject_TIdentIter__Lp4Mt9aetG3F7zvSvi9cZw6g ti;
tyObject_RodIter__L6nv9cakjPARHk068AFo6ww rodIt;
NIM_BOOL importHidden;
};
typedef NU8 tyEnum_TOverloadIterMode__XQIFODuBaxbYxvlbAsr1Ng;
struct tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg {
tyObject_TIdentIter__Lp4Mt9aetG3F7zvSvi9cZw6g it;
tyObject_ModuleIter__ao1RRyFrHTmNImyTejOq7A mit;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m;
tyEnum_TOverloadIterMode__XQIFODuBaxbYxvlbAsr1Ng mode;
NI symChoiceIndex;
tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* currentScope;
NI importIdx;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw marked;
};
typedef NU8 tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA;
typedef NU8 tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg;
typedef NU8 tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw;
typedef NU8 tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ;
typedef NU8 tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w;
typedef NU8 tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg;
typedef NU16 tySet_tyEnum_TRenderFlag__ppo9aY4M5jqJlCPC7ZH9bmwA;
typedef NU8 tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw;
struct TNimNode {
tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA;
typedef NU8 tySet_tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw[21];
typedef NU8 tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw;
typedef NU8 tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ;
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__Nfk9cOEzg2bRz9c1V8fGzONg[2];
typedef tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tyArray__UPrnokFxJ17u4nhV8hUltw[2];
typedef NU8 tySet_tyEnum_TTypeCmpFlag__IRq9bqtrf9ctEUyeRMyvWy4Q;
typedef NU8 tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg;
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__iegsN9bf6GqRiWprrJjTAoA[1];
typedef NU8 tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg;
typedef NU8 tyEnum_MismatchKind__4mf6T2YBNEEtWBTWMSzL9bw;
struct tyObject_MismatchInfo__7DZVQMEKp3NTauLRe48cLw {
tyEnum_MismatchKind__4mf6T2YBNEEtWBTWMSzL9bw kind;
NI arg;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* formal;
};
struct tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw {
tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c;
NI exactMatches;
NI genericMatches;
NI subtypeMatches;
NI intConvMatches;
NI convMatches;
tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg state;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* callee;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* calleeSym;
NI calleeScope;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* call;
tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ bindings;
tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag magic;
NIM_BOOL baseTypeMatch;
tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg fauxMatch;
NIM_BOOL genericConverter;
NIM_BOOL coerceDistincts;
NIM_BOOL typedescMatched;
NIM_BOOL isNoCall;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* inferredTypes;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* diagnostics;
NI inheritancePenalty;
tyObject_MismatchInfo__7DZVQMEKp3NTauLRe48cLw firstMismatch;
NIM_BOOL diagnosticsEnabled;
};
struct tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw {
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* candidateType;
tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw* prev;
NI depth;
};
struct tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ {
NI depthLevel;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw symbols;
tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* parent;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* allowPrivateAccess;
};
struct tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* concreteTypes;
NI compilesId;
};
struct tyObject_TReplTypeVars__itU2h89a2PcJoJ5bHADfePw {
tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c;
tyObject_LayeredIdTablecolonObjectType___9aSR8D74Pb4ozXN6gEJ9a1Pw* typeMap;
tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ symMap;
tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ localCache;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
NIM_BOOL allowMetaTypes;
NIM_BOOL skipTypedesc;
NIM_BOOL isReturnType;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
NI recursionLimit;
};
typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
struct tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ {
tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
};
typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
struct tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ {
NU32 module;
NI32 item;
};
struct tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg {
NI module;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ packed_0;
};
struct tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q {
NI module;
tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg sym;
tySequence__UnGSk9aaLosDroi2QDrlOfQ* concreteTypes;
tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA* inst;
};
typedef NU8 tyEnum_TDistinctCompare__UuPcvyG2RecjPyQDW4WlFw;
struct tyObject_TInstantiationPair__d4lcZMnmQK2Jh2jYkdgB4w {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* genericSym;
tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA* inst;
};
typedef NU8 tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw[37];
typedef NU8 tyEnum_SemAsgnMode__wU47lOiWWDnJezONEKyuEA;
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__id9c0PBojP5C2oM2bRQSViA[3];
struct tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
tyObject_MismatchInfo__7DZVQMEKp3NTauLRe48cLw firstMismatch;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* diagnostics;
NIM_BOOL enabled;
};
struct tyTuple__BHqtUW7ND5oD8ApFSF1wwQ {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field0;
NI Field1;
};
typedef NU16 tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw;
typedef tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* tyArray__1iN2CWX9bK5w9bRjT9chFAABA[8192];
struct tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ {
tyArray__1iN2CWX9bK5w9bRjT9chFAABA buckets;
NI wordCounter;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* idAnon;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* idDelegator;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* emptyIdent;
};
struct tyObject_TOptionEntry__KcSoeh10J9aas3WZevEUD7Q {
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg defaultCC;
tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg* dynlib;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA notes;
tySet_tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw features;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* otherPragmas;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA warningAsErrors;
};
struct tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg {
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw toMixin;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw toBind;
NIM_BOOL cursorInBody;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* bracketExpr;
};
typedef NU8 tySet_tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg;
typedef NU8 tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg;
typedef NU8 tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ;
typedef NU8 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw[32];
struct tyObject_LayeredIdTablecolonObjectType___9aSR8D74Pb4ozXN6gEJ9a1Pw {
tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ topLayer;
tyObject_LayeredIdTablecolonObjectType___9aSR8D74Pb4ozXN6gEJ9a1Pw* nextLayer;
};
struct tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q {
tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw toBind;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw toMixin;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw toInject;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
NIM_BOOL cursorInBody;
NI scopeN;
NI noGenSym;
NI inTemplateHeader;
};
struct tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg {
tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg id;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
};
struct tyTuple__U9cBGRemMbZc6MWph6pfkAg {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field0;
NIM_BOOL Field1;
};
typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
typedef NU8 tyEnum_TCheckPointResult__1fIaGKvTluv8QtOC3X9afKQ;
typedef NU8 tySet_tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag[35];
typedef NU8 tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow;
typedef NU8 tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA;
typedef NU8 tySet_tyEnum_TTypeRelFlag__nkWaH9aZ1YawZFP9aSlbYFMw;
typedef NU8 tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA;
typedef NU8 tyEnum_SortOrder__TcYjciSJ3jKUT4ygglumjg;
struct tyTuple__w6N3FtUNd27MnpJcSoTdfQ {
tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg Field0;
NimStringDesc* Field1;
};
typedef NU8 tyEnum_TAnalysisResult__e4ifdKCCVVqwIObVZzYzMA;
struct tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* quotedName;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* quotedFullName;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyFile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
typedef NimStringDesc* tyArray__CEYo3qUPMYKtQ3tt8qKa7w[2];
struct tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ {
  RootObj Sup;
NI colonstate_;
tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c1;
tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* scope2;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA* args, void* ClE_0);
void* ClE_0;
} tyProc__vkuGXw0bPP9b9cpazTHQY9bqg;
struct tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A {
  RootObj Sup;
NI colonstate_;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* orig1;
};
typedef struct {
N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, ClP_0) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* procSym, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* old, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* fresh, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* oldParam, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* newParam, void* ClE_0);
void* ClE_0;
} tyProc__9aLeotuxKqy0F9awBkTfP6Cg;
typedef N_CLOSURE_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, TM__DKP9c7KM5AbqYVP6Gd9blNUw_376) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* procSym, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* old, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* fresh, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* oldParam, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* newParam);
typedef N_CLOSURE_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, TM__DKP9c7KM5AbqYVP6Gd9blNUw_377) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* procSym, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* old, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* fresh, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* oldParam, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* newParam);
typedef NU8 tySet_tyEnum_TTypeAllowedFlag__Onpom0WAnwwvAeCSboHTQA;
typedef NU8 tyEnum_TTypeAllowedFlag__Onpom0WAnwwvAeCSboHTQA;
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw {
NI a;
NI b;
};
typedef NU8 tyEnum_ViewTypeKind__u2B9a1gH4LPPJaSqULlL7yQ;
typedef NU tyArray__VqSA39cBDWnwnJySTumCdjw[8];
struct tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg {
tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* next;
NI key;
tyArray__VqSA39cBDWnwnJySTumCdjw bits;
};
struct tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ {
  RootObj Sup;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* left;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* right;
NI L;
NimStringDesc* data;
};
struct tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ {
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initExpr;
NIM_BOOL needsFullInit;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* missingFields;
};
typedef NU8 tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ;
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__QbmGqFaLnb1IWWToREeaIA* trace;
Exception* up;
};
struct TSafePoint {
TSafePoint* prev;
NI status;
jmp_buf context;
};
struct tyTuple__2E9aYKv1U4zUZsR6wkNRkPg {
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field0;
NI Field1;
};
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__231bfDX9cqvu0YNXBMavMGQ[5];
typedef NU8 tyEnum_TNodeKind__s2uCfZ39cjRQ1ryTdhQjPCA;
typedef NU8 tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw;
struct tyObject_HSlice__4SMQaBRcH5MId3jnPEJfIw {
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw a;
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw b;
};
struct tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA {
tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a;
tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ b;
};
typedef NU8 tyEnum_FloatClass__sXQOxr9c3EE79allMY12fv9cg;
struct tyObject_HSlice__5MokM0MxT5ZF4tSog3uzVQ {
tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg a;
tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg b;
};
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__DkuVegaMCU6g1mpIOSQPIw[1];
typedef NimStringDesc* tyArray__Q6RksR9bl1dCf8jl3HeN9bXg[8];
typedef NU8 tyEnum_TSymBinding__UEP0BDo49bDX0KSLV6GB0eA;
typedef NU8 tyEnum_TSpawnResult__EdP9a1q3b9blEXGzohsyvYgA;
typedef N_CLOSURE_PTR(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, TM__DKP9c7KM5AbqYVP6Gd9blNUw_697) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fn, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
typedef NU8 tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA;
struct tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ {
  RootObj Sup;
NI colonstate_;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* genericType1;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, void* ClE_0);
void* ClE_0;
} tyProc__ouVD8pA2gl3ztgOQh4SrQQ;
typedef N_CLOSURE_PTR(NIM_BOOL, TM__DKP9c7KM5AbqYVP6Gd9blNUw_806) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__DKP9c7KM5AbqYVP6Gd9blNUw_807) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__DKP9c7KM5AbqYVP6Gd9blNUw_808) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__DKP9c7KM5AbqYVP6Gd9blNUw_811) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__DKP9c7KM5AbqYVP6Gd9blNUw_818) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__DKP9c7KM5AbqYVP6Gd9blNUw_823) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__DKP9c7KM5AbqYVP6Gd9blNUw_824) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__DKP9c7KM5AbqYVP6Gd9blNUw_825) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__DKP9c7KM5AbqYVP6Gd9blNUw_827) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
struct tyObject_TFieldInstCtx__gggY1l2lKKFHg0YR3GdTXg {
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tupleType;
NI tupleIndex;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* field;
NIM_BOOL replaceByFieldName;
tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c;
};
struct tyObject_TFieldsCtx__qXVR2KI9aIfwG9bg4IHg9cw7w {
tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c;
tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m;
};
typedef NU8 tyEnum_TSymKind__5avKs4TYFTeLPAJjwtJ4cg;
typedef NU8 tyEnum_ModuleStatus__K6X1Kd9cJ9a0hyG1Twv69bMNg;
struct tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg {
tySequence__4Murtwnm0Fyc7F9acrytEXw* nodes;
};
typedef NU8 tySet_tyEnum_ModuleBackendFlag__1OX8mHZmOJcGSH2EQV6eCQ;
struct tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ {
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw {
tySequence__IHUFRsFxZNv7YydiUO2esQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag {
NimStringDesc* definedSymbols;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA moduleFlags;
tySequence__PXIzfWocnrafGz5p3CP5LA* includes;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* imports;
tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg toReplay;
tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg topLevel;
tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg bodies;
tySequence__b89aLriiJnVTD186H6zNIgg* exports;
tySequence__b89aLriiJnVTD186H6zNIgg* hidden;
tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw* reexports;
tySequence__b89aLriiJnVTD186H6zNIgg* compilerProcs;
tySequence__48JTohSgTy339bRxHzUD8KA* converters;
tySequence__48JTohSgTy339bRxHzUD8KA* methods;
tySequence__48JTohSgTy339bRxHzUD8KA* trmacros;
tySequence__48JTohSgTy339bRxHzUD8KA* pureEnums;
tySequence__QnmOtn1Iv4LvxOXoMn8Rbg* macroUsages;
tySequence__oKtVqsc9bQVCNyrijELM4OQ* typeInstCache;
tySequence__qy6Iwdy00wN560qud54HTg* procInstCache;
tySequence__k67v9bwvvQDmS1ynyGGUbeQ* attachedOps;
tySequence__cLsClAAfd0MKkoBQVyvdvw* methodsPerType;
tySequence__oKtVqsc9bQVCNyrijELM4OQ* enumToStringProcs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* emittedTypeInfo;
tySet_tyEnum_ModuleBackendFlag__1OX8mHZmOJcGSH2EQV6eCQ backendFlags;
tySequence__q9bTuOB0JXh1iZ3CSGdRLbg* syms;
tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw* types;
tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ strings;
tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw numbers;
tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA cfg;
};
struct tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ {
tySequence__C3r8jsj9chA4sIlYfDN5aDw* data;
NI counter;
};
struct tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg {
tyEnum_ModuleStatus__K6X1Kd9cJ9a0hyG1Twv69bMNg status;
NIM_BOOL symsInit;
NIM_BOOL typesInit;
NIM_BOOL loadedButAliveSetChanged;
tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag fromDisk;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* syms;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* types;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module;
tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ iface;
tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ ifaceHidden;
};
struct tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module;
tySequence__qeAsXh2i1GAL5Nl0g3OP8g* converters;
tySequence__qeAsXh2i1GAL5Nl0g3OP8g* patterns;
tySequence__qeAsXh2i1GAL5Nl0g3OP8g* pureEnums;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw interf;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw interfHidden;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* uniqueName;
};
typedef N_CLOSURE_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, TM__DKP9c7KM5AbqYVP6Gd9blNUw_980) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, void* ClE_0);
typedef N_CLOSURE_PTR(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, TM__DKP9c7KM5AbqYVP6Gd9blNUw_981) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fn, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, void* ClE_0);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__DKP9c7KM5AbqYVP6Gd9blNUw_982) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, void* ClE_0);
struct tyTuple__8vGER9aaTtt9bUk9avNQ3fEIg {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field0;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw Field1;
};
typedef NU8 tyEnum_ImportMode__4kYBzhtdX1Hkta8RDDKjrQ;
struct tyObject_ImportedModule__ABXo2nVfMtcWNYv5zEiXDg {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m;
tyEnum_ImportMode__4kYBzhtdX1Hkta8RDDKjrQ mode;
union{
struct {tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw imported;
} _mode_2;
struct {tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw exceptSet;
} _mode_3;
};
};
struct tyObject_TIdPair__CEfaiHL4gHg86NKgeeQ7lA {
tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA* key;
RootObj* val;
};
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ {
NI Field0;
tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ Field1;
};
struct tyTuple__toqrUPSdp8zSxOdlxMJj9cA {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw Field0;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field1;
};
struct tyTuple__VbApVidEWCFLq9a29bPtaS7A {
NI Field0;
NI Field1;
tySequence__k7EQb9bN3Uhl608xoPGMRJA* Field2;
};
struct tyTuple__EbsafWGli8bW2GRJQ9apsjA {
NI Field0;
NI Field1;
tySequence__qwqHTkRvwhrRyENtudHQ7g* Field2;
};
struct tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ {
tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* data;
NI counter;
};
struct tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ {
NI32 thisModule;
NI32 lastFile;
NU32 lastLit;
tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ filenames;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* pendingTypes;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* pendingSyms;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw typeMarker;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw symMarker;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
};
struct tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ {
tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg id;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
};
struct tyTuple__UluY8x0Nj6cp9b0o88wJ0lg {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__dlD6tEGzYLLpKVq3XwuFlA* Field2;
};
struct tyTuple__rZZA0skon1OsHdiEvT8RZQ {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__6OFCSvqRaxyEgUqWtnZSlw* Field2;
};
struct tyTuple__q13Zt16VkCqu6Zg5jWqwHA {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field2;
};
struct tyTuple__RWXAsQlFoGYyEQZp1G65sg {
NI Field0;
tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg Field1;
};
struct tyTuple__aWN9bNzF9bubXNJV9ciomgpfA {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__m4PVWjcAAjfxlwJxLkKn8A* Field2;
};
struct tyTuple__RmGJuqOgEaHckHndh0LEsw {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg Field2;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
};
struct tyTuple__J4cxakKjhKxTIJR9bojMmXw {
NI Field0;
NI32 Field1;
tySequence__i89c5kdtWKzK3OEiI81pkkw* Field2;
};
struct tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ {
NI Field0;
NI32 Field1;
tySequence__GR8qmV1kNRcoQ2g76VFy3A* Field2;
};
struct tyTuple__a7QginWFapakKbWJBJ2vfA {
tySequence__ed0C0uAUZPhvw3RAc5hfYg* Field0;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field1;
};
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* Field2;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyTuple__kbX6x85REySUrk9auORL0vw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field2;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q {
tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A* root;
NI entries;
};
struct tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q Field2;
};
typedef N_NIMCALL_PTR(tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw*, tyProc__kqPx9c4py2HW6KcFMhNvxtg) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__9c6qRjwy7Es8UkDTIUwAfFA) (tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* topLevelStmt);
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__mv4BsRs5VEnhcxzV6pQU5w) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
struct tyTuple__nF9cH4hinXgGEUwO4G2bshw {
tyProc__kqPx9c4py2HW6KcFMhNvxtg Field0;
tyProc__9c6qRjwy7Es8UkDTIUwAfFA Field1;
tyProc__mv4BsRs5VEnhcxzV6pQU5w Field2;
NIM_BOOL Field3;
};
struct tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw Field0;
NimStringDesc* Field1;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA;
struct tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA flags;
NimStringDesc* customArgs;
};
struct tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA {
NI ra;
NI rb;
NI rc;
tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA* slots;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* currentException;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw currentLineInfo;
};
struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
NU32 Field0;
NimStringDesc* Field1;
};
struct tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA {
NU16 line;
NI16 col;
NU32 file;
};
struct tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA {
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind;
tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg flags;
NI32 operand;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typeId_0;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA info;
};
struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
NU32 Field0;
NI32 Field1;
};
struct tyTuple__PsEhl3dzznmmJiLAuIXZOg {
NU32 Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
};
struct tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA Field1;
};
struct tyTuple__Db8CrQifKGIsKc3w71w7Lw {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
};
struct tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ key;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ sym;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* concreteTypes;
};
struct tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ {
tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field2;
};
struct tyTuple__FEYH9alRJhHD0uTKF2vnIqw {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
NI Field1;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field2;
};
typedef NU8 tyEnum_TLibKind__tW9cjoYNrpn2JX4q6fqRnxQ;
struct tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA {
tyEnum_TLibKind__tW9cjoYNrpn2JX4q6fqRnxQ kind;
NIM_BOOL generated;
NIM_BOOL isOverriden;
NU32 name;
NI32 path;
};
struct tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA {
tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind;
NU32 name;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typ;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA flags;
tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag magic;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA info;
NI32 ast;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ owner;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ guard;
NI bitsize;
NI alignment;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
NI position;
NI offset;
NU32 externalName;
tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw locFlags;
tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA annex;
NI32 constraint;
};
struct tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw {
tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind;
tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg callConv;
tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw flags;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* types;
NI32 n;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ sym;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ owner;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typeInst;
NI32 nonUniqueId;
};
struct tyTuple__VUJ5Hjm4tKAResBsRHJvYg {
NI Field0;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* Field1;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* Field2;
};
struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
NI Field0;
NI32 Field1;
NU32 Field2;
};
struct tySequence__ed0C0uAUZPhvw3RAc5hfYg {
  TGenericSeq Sup;
  tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* data[SEQ_DECL_SIZE];
};
struct tySequence__vKogasEnJSPhbQmA8r4Y9aA {
  TGenericSeq Sup;
  tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* data[SEQ_DECL_SIZE];
};
struct tySequence__yH9bx9bpa6jqsU89cxjyTAlPQ {
  TGenericSeq Sup;
  tyObject_TInstantiationPair__d4lcZMnmQK2Jh2jYkdgB4w data[SEQ_DECL_SIZE];
};
struct tySequence__LFzufdBEvfOUK6PWh0HUtQ {
  TGenericSeq Sup;
  tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ data[SEQ_DECL_SIZE];
};
struct tySequence__ugNUvYxERl9aaj9b1GeCSDAg {
  TGenericSeq Sup;
  tyTuple__BHqtUW7ND5oD8ApFSF1wwQ data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw {
  TGenericSeq Sup;
  tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* data[SEQ_DECL_SIZE];
};
struct tySequence__9boKiNhY9cnRQF2k9b9a9bGKbrA {
  TGenericSeq Sup;
  tyObject_ImportedModule__ABXo2nVfMtcWNYv5zEiXDg data[SEQ_DECL_SIZE];
};
struct tySequence__vvBerF0axaNtu9aMA2gnsrA {
  TGenericSeq Sup;
  tyObject_TOptionEntry__KcSoeh10J9aas3WZevEUD7Q* data[SEQ_DECL_SIZE];
};
struct tySequence__ZQPym9bf1jM5qaSn7LUXMKA {
  TGenericSeq Sup;
  tyObject_TIdPair__CEfaiHL4gHg86NKgeeQ7lA data[SEQ_DECL_SIZE];
};
struct tySequence__9c3OY0aBmSBgwdsnBAPf4Ag {
  TGenericSeq Sup;
  tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg* data[SEQ_DECL_SIZE];
};
struct tySequence__q9cq1Li6c1nMjHpacEbCj0g {
  TGenericSeq Sup;
  tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* data[SEQ_DECL_SIZE];
};
struct tySequence__Jhh6ks9carRtwV9aOuM8yMNw {
  TGenericSeq Sup;
  tyTuple__8vGER9aaTtt9bUk9avNQ3fEIg 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__k7EQb9bN3Uhl608xoPGMRJA {
  TGenericSeq Sup;
  tyTuple__toqrUPSdp8zSxOdlxMJj9cA data[SEQ_DECL_SIZE];
};
struct tySequence__XDpbjnuseLNZDGLBQ2Qzow {
  TGenericSeq Sup;
  tyTuple__VbApVidEWCFLq9a29bPtaS7A data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__QqvaCqCpEE1QmQZbcZLi5A {
  TGenericSeq Sup;
  tyTuple__EbsafWGli8bW2GRJQ9apsjA data[SEQ_DECL_SIZE];
};
struct tySequence__RNhZxf20g9beyq5VBOGxhDg {
  TGenericSeq Sup;
  tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ data[SEQ_DECL_SIZE];
};
struct tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ {
  TGenericSeq Sup;
  tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg data[SEQ_DECL_SIZE];
};
struct tySequence__lFbCtu5P2Kf7YDYtGjkxAQ {
  TGenericSeq Sup;
  tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ data[SEQ_DECL_SIZE];
};
struct tySequence__dlD6tEGzYLLpKVq3XwuFlA {
  TGenericSeq Sup;
  tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ data[SEQ_DECL_SIZE];
};
struct tySequence__ijtae5OneaLys0hN9alAicA {
  TGenericSeq Sup;
  tyTuple__UluY8x0Nj6cp9b0o88wJ0lg data[SEQ_DECL_SIZE];
};
struct tySequence__6OFCSvqRaxyEgUqWtnZSlw {
  TGenericSeq Sup;
  tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q data[SEQ_DECL_SIZE];
};
struct tySequence__SerjNoUujW2dUouVBrJiCw {
  TGenericSeq Sup;
  tyTuple__rZZA0skon1OsHdiEvT8RZQ data[SEQ_DECL_SIZE];
};
struct tySequence__K9agbtcb0qPZuSJFXB9cTe6g {
  TGenericSeq Sup;
  tyTuple__q13Zt16VkCqu6Zg5jWqwHA data[SEQ_DECL_SIZE];
};
struct tySequence__m4PVWjcAAjfxlwJxLkKn8A {
  TGenericSeq Sup;
  tyTuple__RWXAsQlFoGYyEQZp1G65sg data[SEQ_DECL_SIZE];
};
struct tySequence__m88qdML9cQOuqGAQn6XWL1A {
  TGenericSeq Sup;
  tyTuple__aWN9bNzF9bubXNJV9ciomgpfA data[SEQ_DECL_SIZE];
};
struct tySequence__naEbXEp9b9aiW1zXJorqf9cXQ {
  TGenericSeq Sup;
  tyTuple__RmGJuqOgEaHckHndh0LEsw data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw 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__i89c5kdtWKzK3OEiI81pkkw {
  TGenericSeq Sup;
  tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A data[SEQ_DECL_SIZE];
};
struct tySequence__KgiZ29chkJAD01p9aLRB32qw {
  TGenericSeq Sup;
  tyTuple__J4cxakKjhKxTIJR9bojMmXw data[SEQ_DECL_SIZE];
};
struct tySequence__GR8qmV1kNRcoQ2g76VFy3A {
  TGenericSeq Sup;
  tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg* data[SEQ_DECL_SIZE];
};
struct tySequence__rkYRZrbHVYL3nhXlQW3K9bw {
  TGenericSeq Sup;
  tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ data[SEQ_DECL_SIZE];
};
struct tySequence__IRFEb1e9bxgbJLuB5xrdZsQ {
  TGenericSeq Sup;
  tyTuple__a7QginWFapakKbWJBJ2vfA data[SEQ_DECL_SIZE];
};
struct tySequence__YmPd0eWfcTfrVYrthlXPYA {
  TGenericSeq Sup;
  tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__Hz5SYwQU29b9aFLt09blvVQPg {
  TGenericSeq Sup;
  tyTuple__kbX6x85REySUrk9auORL0vw data[SEQ_DECL_SIZE];
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence__3G9aA9cLXaPxuRxMKm3anacQ {
  TGenericSeq Sup;
  tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g data[SEQ_DECL_SIZE];
};
struct tySequence__bPFv6ypvvCX2A9a9al8utL2Q {
  TGenericSeq Sup;
  tyTuple__nF9cH4hinXgGEUwO4G2bshw data[SEQ_DECL_SIZE];
};
struct tySequence__mIo9bZUsotCEUUtEGNhYmaA {
  TGenericSeq Sup;
  tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ data[SEQ_DECL_SIZE];
};
struct tySequence__8rKxBHaz7QqNR9a4WIZqqqQ {
  TGenericSeq Sup;
  tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w data[SEQ_DECL_SIZE];
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence__KLItBKQec3LJzPmfiYYfQA {
  TGenericSeq Sup;
  tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw data[SEQ_DECL_SIZE];
};
struct tySequence__cvxuM2UjDv0O3Q6FcDEAnw {
  TGenericSeq Sup;
  tyTuple__2E9aYKv1U4zUZsR6wkNRkPg data[SEQ_DECL_SIZE];
};
struct tySequence__lo3S1lKyiPLhGGB9cBawd6A {
  TGenericSeq Sup;
  tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ data[SEQ_DECL_SIZE];
};
struct tySequence__UnGSk9aaLosDroi2QDrlOfQ {
  TGenericSeq Sup;
  tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg data[SEQ_DECL_SIZE];
};
struct tySequence__QbmGqFaLnb1IWWToREeaIA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA 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__4Murtwnm0Fyc7F9acrytEXw {
  TGenericSeq Sup;
  tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA data[SEQ_DECL_SIZE];
};
struct tySequence__b89aLriiJnVTD186H6zNIgg {
  TGenericSeq Sup;
  tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE];
};
struct tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw {
  TGenericSeq Sup;
  tyTuple__PsEhl3dzznmmJiLAuIXZOg data[SEQ_DECL_SIZE];
};
struct tySequence__QnmOtn1Iv4LvxOXoMn8Rbg {
  TGenericSeq Sup;
  tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w data[SEQ_DECL_SIZE];
};
struct tySequence__oKtVqsc9bQVCNyrijELM4OQ {
  TGenericSeq Sup;
  tyTuple__Db8CrQifKGIsKc3w71w7Lw data[SEQ_DECL_SIZE];
};
struct tySequence__qy6Iwdy00wN560qud54HTg {
  TGenericSeq Sup;
  tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg data[SEQ_DECL_SIZE];
};
struct tySequence__k67v9bwvvQDmS1ynyGGUbeQ {
  TGenericSeq Sup;
  tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ data[SEQ_DECL_SIZE];
};
struct tySequence__cLsClAAfd0MKkoBQVyvdvw {
  TGenericSeq Sup;
  tyTuple__FEYH9alRJhHD0uTKF2vnIqw data[SEQ_DECL_SIZE];
};
struct tySequence__q9bTuOB0JXh1iZ3CSGdRLbg {
  TGenericSeq Sup;
  tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA data[SEQ_DECL_SIZE];
};
struct tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw {
  TGenericSeq Sup;
  tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw data[SEQ_DECL_SIZE];
};
struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
  TGenericSeq Sup;
  NI64 data[SEQ_DECL_SIZE];
};
struct tySequence__C3r8jsj9chA4sIlYfDN5aDw {
  TGenericSeq Sup;
  tyTuple__VUJ5Hjm4tKAResBsRHJvYg data[SEQ_DECL_SIZE];
};
struct tySequence__qeAsXh2i1GAL5Nl0g3OP8g {
  TGenericSeq Sup;
  tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg data[SEQ_DECL_SIZE];
};
struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ {
  TGenericSeq Sup;
  tyTuple__UvldbCB6B9ayi9bGYW7vJNLA data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw*, newContext__semdata_515)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5311)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5273)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5318)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5316)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5267)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newType__ast_3884)(tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg id, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
static N_INLINE(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextTypeId__ast_3122)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* 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_1441)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConstExpr__sem_619)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExprWithType__sem_57)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExprCheck__sem_15042)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(void, illFormedAst__semdata_1101)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExpr__sem_52)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(void, suggestExpr__sigmatch_6331)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, skipTypes__ast_3723)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*, considerQuotedIdent__lookups_29)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* origin);
static N_INLINE(NI, safeLen__ast_3148)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NI, len__ast_3155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, qualifiedLookUp__lookups_2598)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TLookupFlag__ns0lQuhi2aWBQ9bXAfDCqaA flags);
N_LIB_PRIVATE N_NIMCALL(void, semCaptureSym__lambdalifting_4999)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, symChoice__sem_6911)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ r, NIM_BOOL isField);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, initOverloadIter__lookups_3120)(tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg* o, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, nextOverloadIter__lookups_3274)(tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg* o, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, getCallLineInfo__sem_2443)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newSymNode__ast_3707)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(void, markUsed__sigmatch_85)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeIT__ast_3342)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newTypeS__semdata_763)(tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(void, markOwnerModuleAsUsed__sigmatch_89)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_4798)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* son);
static N_INLINE(void, markIndirect__semdata_1090)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, makeVarType__semdata_796)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* baseType, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, enumFieldSymChoice__sem_21681)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semSym__sem_18211)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getGenSym__semdata_420)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, inlineConst__sem_15114)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyTree__ast_4432)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1128)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg, tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__system_1733)(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__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg prefer);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newSymNode__ast_3704)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, base__types_63)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NI, requiredParams__ast_4715)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semMacroExpr__sem_530)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(void, rememberExpansion__semdata_3686)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* expandedSym);
N_LIB_PRIVATE N_NIMCALL(void, pushInfoContext__msgs_500)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw 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__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TRenderFlag__ppo9aY4M5jqJlCPC7ZH9bmwA renderFlags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalMacroCall__vm_14210)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, NI* templInstCounter, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semAfterMacroCall__sem_2845)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* call, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* macroResult, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getModule__astalgo_216)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, resetSemFlag__sem_2829)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semStmt__sem_87)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExprNoType__sem_62)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasHint__options_530)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA note);
N_LIB_PRIVATE N_NIMCALL(void, discardCheck__sem_9980)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, implicitlyDiscardable__sem_9782)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, lastSon__ast_4833)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCallExpr__ast_3133)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeI__ast_3324)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NI children);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___renderer_2116)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___msgs_634)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, popInfoContext__msgs_517)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
static N_INLINE(NI, len__ast_3990)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* n);
N_LIB_PRIVATE N_NIMCALL(void, transitionSonsKind__ast_4347)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semTypeNode__sem_83)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(void, checkSonsLen__semdata_1107)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI length, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semTypeOf__sem_6197)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ*, openScope__lookups_76)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(void, closeScope__lookups_108)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(void, fixupTypeOf__sem_5909)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* typExpr);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSon__ast_4276)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* father, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* son, NIM_BOOL propagateHasAsgn);
N_LIB_PRIVATE N_NIMCALL(void, assignType__ast_3964)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* dest, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semAnonTuple__sem_3746)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newOrPrevType__sem_2981)(tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLitChecked__sem_3354)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* father, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* son, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* id);
static N_INLINE(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, skipIntLit__magicsys_124)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* id);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, copyType__ast_4034)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg id, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRecursiveType__sem_3350)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
static N_INLINE(void, initIntSet__pureZcollectionsZintsets_238)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result);
N_LIB_PRIVATE N_NIMCALL(void, initPackedSet__pureZcollectionsZintsets_16)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRecursiveType__sem_3329)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* cycleDetector);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__astalgo_402)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, lastSon__ast_3731)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* n);
N_LIB_PRIVATE N_NIMCALL(void, propagateToOwner__ast_4207)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* owner, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* elem, NIM_BOOL propagateHasAsgn);
static N_INLINE(NIM_BOOL, eqeq___idents_229)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* a, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* b);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeI__ast_3320)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semRangeAux__sem_3379)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__magicsys_136)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* father, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* son, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* id);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, errorType__semdata_1032)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__types_1886)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* a, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* b, tySet_tyEnum_TTypeCmpFlag__IRq9bqtrf9ctEUyeRMyvWy4Q flags);
N_LIB_PRIVATE N_NIMCALL(void, typeMismatch__types_3934)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* actual, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__types_299)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, NIM_BOOL allowEnumWithHoles);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, enumHasHoles__types_287)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasUnresolvedArgs__sem_146)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnresolvedSym__sem_16163)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMetaType__ast_3474)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, searchInScopes__lookups_603)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* s, NIM_BOOL* ambiguous);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, makeStaticExpr__semdata_856)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, isNaN__sem_3446)(NF x);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, weakLeValue__astalgo_151)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
static N_INLINE(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, freshType__sem_5944)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* res, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(void, copyTypeProps__modulegraphs_8910)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, NI module, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* dest, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semTypeExpr__sem_5918)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, maybeAliasType__sem_5896)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typeExpr, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, makeAndType__semdata_885)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t1, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, makeOrType__semdata_920)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t1, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, makeTypeFromExpr__semdata_834)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newTree__ast_3356)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, makeNotType__semdata_975)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semAnyRef__sem_4835)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newConstraint__sem_2994)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg k);
N_LIB_PRIVATE N_NIMCALL(void, checkMinSonsLen__semdata_1114)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI length, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semObjectNode__sem_4731)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev, tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, skipTypesOrNil__ast_4173)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kinds);
static N_INLINE(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, skipGenericInvocation__sem_4695)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(void, addInheritedFields__sem_4710)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* check, NI* pos, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* obj);
N_LIB_PRIVATE N_NIMCALL(void, addInheritedFieldsAux__sem_4650)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* check, NI* pos, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, incl__pureZcollectionsZintsets_55)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, semRecordNodeAux__sem_4144)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* check, NI* pos, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* rectype, NIM_BOOL hasCaseFields);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConstBoolExpr__sem_2941)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, forceBool__sem_2933)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, fitNode__sem_73)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getConstExpr__semfold_81)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, indexTypesMatch__sem_123)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* f, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg);
N_LIB_PRIVATE N_NIMCALL(void, newCandidate__sigmatch_195)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* ctx, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* callee, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, paramTypesMatch__sigmatch_3620)(tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* m, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* f, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* argOrig);
N_LIB_PRIVATE N_NIMCALL(void, instGenericConvertersArg__sem_2345)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* x);
static N_INLINE(NIM_BOOL, isGenericRoutineStrict__ast_4640)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4628)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, isGenericParams__ast_4617)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, generateInstance__sem_1319)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fn, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
static N_INLINE(NimStringDesc*, toFileLineCol__msgs_625)(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_1121)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, copySym__ast_4042)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg id);
static N_INLINE(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextSymId__ast_3103)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x);
N_LIB_PRIVATE N_NIMCALL(void, pushOwner__semdata_334)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NIMCALL(void, fillMixinScope__sem_1307)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(void, strTableAdd__astalgo_3325)(tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw* t, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA*, new__sem_1359)(void);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newSym__ast_3409)(tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw symKind, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* name, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg id, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getCurrOwner__semdata_327)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(RootObj*, idTableGet__astalgo_64)(tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ t, tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA* key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, generateTypeInstance__semtypinst_1086)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* p, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
static N_INLINE(void, addDecl__lookups_1517)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
static N_INLINE(void, addDeclAt__lookups_1509)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* scope, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(void, addDeclAt__lookups_995)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* scope, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(void, rawPushProcCon__sem_859)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
N_LIB_PRIVATE N_NIMCALL(void, instantiateProcType__sem_1211)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* prc, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_LayeredIdTablecolonObjectType___9aSR8D74Pb4ozXN6gEJ9a1Pw*, initLayeredTypeMap__semtypinst_134)(tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt);
N_LIB_PRIVATE N_NIMCALL(void, initTypeVars__semtypinst_1018)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* p, tyObject_LayeredIdTablecolonObjectType___9aSR8D74Pb4ozXN6gEJ9a1Pw* typeMap, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TReplTypeVars__itU2h89a2PcJoJ5bHADfePw* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, instCopyType__semtypinst_492)(tyObject_TReplTypeVars__itU2h89a2PcJoJ5bHADfePw* cl, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, shallowCopy__ast_4414)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NIMCALL(void, resetIdTable__ast_4092)(tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, replaceTypeVarsT__semtypinst_178)(tyObject_TReplTypeVars__itU2h89a2PcJoJ5bHADfePw* cl, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, replaceTypeVarsN__semtypinst_130)(tyObject_TReplTypeVars__itU2h89a2PcJoJ5bHADfePw* cl, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI start);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, referencesAnotherParam__sem_1189)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, errorNode__semdata_1039)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, fitNodePostMatch__sem_168)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipConv__types_3661)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, changeType__sem_78)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* newType, NIM_BOOL check);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, elemType__types_263)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getSymFromList__astalgo_245)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* list, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident, NI start);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_931)(NI64 a, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, firstOrd__types_1406)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_905)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, lastOrd__types_1532)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_6)(NI64 x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, floatRangeCheck__types_1675)(NF x, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_3126)(NF x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipHiddenSubConv__types_3738)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(void, eraseVoidParams__semtypinst_694)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(void, skipIntLiteralParams__semtypinst_750)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, genericCacheGet__sem_997)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* genericSym, tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA entry, NI id);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__modulegraphs_3606)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key);
N_LIB_PRIVATE N_NIMCALL(tySequence__6OFCSvqRaxyEgUqWtnZSlw**, X5BX5D___modulegraphs_3922)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w* t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA*, resolveInst__modulegraphs_2919)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameInstantiation__sem_979)(tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA a, tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compareTypes__types_2720)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* x, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* y, tyEnum_TDistinctCompare__UuPcvyG2RecjPyQDW4WlFw cmp, tySet_tyEnum_TTypeCmpFlag__IRq9bqtrf9ctEUyeRMyvWy4Q flags);
N_LIB_PRIVATE N_NIMCALL(void, rawHandleSelf__sem_875)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NIMCALL(void, addObjFieldsToLocalScope__sem_815)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, fieldVisible__sigmatch_4973)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* f);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, strTableIncl__astalgo_3374)(tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw* t, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* n, NIM_BOOL onConflictKeepOld);
N_LIB_PRIVATE N_NIMCALL(void, addToGenericProcCache__semdata_1215)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA* inst);
N_LIB_PRIVATE N_NIMCALL(void, makeInstPair__semdata_309)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA* inst, tyObject_TInstantiationPair__d4lcZMnmQK2Jh2jYkdgB4w* Result);
N_LIB_PRIVATE N_NIMCALL(void, pragma__pragmas_125)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw validPragmas, NIM_BOOL isStatement);
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getBody__modulegraphs_13094)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, loadProcBody__icZic_8386)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ** g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, instantiateBody__sem_1042)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* params, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* orig);
N_LIB_PRIVATE N_NIMCALL(void, maybeAddResult__sem_103)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, sysTypeFromName__magicsys_55)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(void, addResult__sem_13423)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*, getIdent__idents_152)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* ic, NimStringDesc* identifier);
N_LIB_PRIVATE N_NIMCALL(void, swapResult__sem_13402)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sRes, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dNode);
N_LIB_PRIVATE N_NIMCALL(void, addParamOrResult__sem_1038)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* param, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, findEnforcedStaticType__sem_4954)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getSysSym__magicsys_16)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* name);
static N_INLINE(NIM_BOOL, isInlineIterator__ast_4990)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(void, initIdTable__ast_4084)(tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ* x);
N_LIB_PRIVATE N_NIMCALL(void, idTablePut__astalgo_70)(tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ* t, tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA* key, RootObj* val);
N_LIB_PRIVATE N_NIMCALL(void, freshGenSyms__sem_1004)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* orig, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ* symMap);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semProcBody__sem_69)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
static N_INLINE(NIM_BOOL, isEmptyType__ast_4780)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(void, fixNilType__sem_9964)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, isAtom__ast_4769)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semAsgn__sem_16464)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_SemAsgnMode__wU47lOiWWDnJezONEKyuEA mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, builtinFieldAccess__sem_18435)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tryReadingTypeField__sem_18395)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* i, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* ty);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, lookupInRecord__astalgo_84)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* field);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, makeTypeDesc__concepts_49)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tryReadingGenericParam__sem_18381)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* i, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, readTypeParameter__sem_18159)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* paramName, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, linkTo__ast_3511)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, skipGenericAlias__types_2281)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTypeExpr__sem_17995)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, lookupInRecordAndBuildCheck__sem_18013)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* r, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* field, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** check);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, createSetType__sem_18002)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* baseType);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, getSysType__magicsys_60)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getSysMagic__magicsys_29)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* name, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, makeDeref__sem_10575)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, propertyWriteAccess__sem_18799)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIdentNode__ast_3700)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newTreeI__ast_3384)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semOverloadedCallAnalyseEffects__sem_17652)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semOverloadedCall__sem_2551)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig, tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw filter, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(void, resolveOverloads__sem_2071)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig, tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw filter, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tySequence__LFzufdBEvfOUK6PWh0HUtQ** errors, NIM_BOOL errorsEnabled, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* Result);
N_LIB_PRIVATE N_NIMCALL(void, semOpAux__sem_91)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, pickBestCandidate__sem_1529)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* headSymbol, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initialBinding, tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw filter, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* best, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* alt, tySequence__LFzufdBEvfOUK6PWh0HUtQ** errors, NIM_BOOL diagnosticsFlag, NIM_BOOL errorsEnabled, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(NI, lastOverloadScope__lookups_3218)(tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg* o);
N_LIB_PRIVATE N_NIMCALL(void, initCandidate__sigmatch_124)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* ctx, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* callee, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* binding, NI calleeScope, NIM_BOOL diagnosticsEnabled);
N_LIB_PRIVATE N_NIMCALL(void, determineType__sem_1484)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semProcAux__sem_14073)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw validPragmas, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semProcAnnotation__sem_13492)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* prc, tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw validPragmas);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw, whichPragma__trees_244)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, strTableGet__astalgo_3383)(tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw t, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyExcept__sem_13475)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyNode__ast_4324)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplateExpr__sem_524)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalTemplate__evaltempl_275)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* tmpl, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* genSymOwner, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* ic, NI* instID, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, NIM_BOOL fromHlo);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, semIdentDef__sem_10359)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, NIM_BOOL reportToNimsuggest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, semIdentWithPragma__sem_480)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA allowed);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, semIdentVis__sem_475)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA allowed);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newSymG__sem_462)(tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toHumanStr__ast_5170)(tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, getLineInfo__sem_10377)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(void, suggestSym__sigmatch_5404)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** usageSym, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(void, setGenericParamsMisc__sem_6835)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semGenericParamList__sem_6659)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* father);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newTypeWithSons__semdata_851)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, tySequence__vKogasEnJSPhbQmA8r4Y9aA* sons);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semGenericConstraints__sem_6651)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericType__types_3412)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(void, semParamList__sem_94)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* genericParams, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semProcTypeNode__sem_5334)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* genericParams, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, NIM_BOOL isType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newProcType__sem_5320)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TOptionEntry__KcSoeh10J9aas3WZevEUD7Q*, lastOptionEntry__semdata_353)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semParamType__sem_5299)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** constraint);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semNodeKindConstraints__parampatterns_186)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NI start);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMagic__sem_5329)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasPragma__pragmas_2585)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw pragma);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semGenericStmt__sem_2949)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semGenericStmt__sem_8616)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg flags, tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, lookup__sem_8710)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg flags, tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, skipAlias__lookups_125)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__astalgo_3489)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, errorUndeclaredIdentifier__lookups_2564)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* name, NimStringDesc* extra);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semGenericStmtSymbol__sem_8634)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg* ctx, tySet_tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg flags, NIM_BOOL fromDotExpr);
static N_INLINE(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, pop__icZic_2462)(tySequence__ed0C0uAUZPhvw3RAc5hfYg** s);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newSymNodeTypeDesc__semfold_870)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, fuzzyLookup__sem_8789)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg flags, tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg* ctx, NIM_BOOL* isMacro);
N_LIB_PRIVATE N_NIMCALL(tySequence__ed0C0uAUZPhvw3RAc5hfYg*, searchInScopesFilterBy__lookups_644)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* s, tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw filter);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newDot__sem_8776)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semMixinStmt__sem_7026)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* toMixin);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semBindStmt__sem_6972)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* toBind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semGenericStmtScope__sem_8621)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg flags, tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg* ctx);
N_LIB_PRIVATE N_NIMCALL(void, addTempDecl__sem_8871)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newSymS__sem_457)(tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getIdentNode__sem_8596)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, addPrelimDecl__lookups_1520)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, belongsToProjectPackage__packages_50)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(void, nep1CheckDefImpl__linter_112)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw k);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInfixAs__ast_4936)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyContainer__types_3690)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, liftParamType__sem_5056)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw procKind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* genericParams, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* paramType, NimStringDesc* paramName, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NIM_BOOL anon);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, addImplicitGeneric__sem_5004)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typeClass, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* typId, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* genericParams, NimStringDesc* paramName);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, exactReplica__ast_4039)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, instGenericContainer__sem_1149)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* header, NIM_BOOL allowMetaTypes);
N_LIB_PRIVATE N_NIMCALL(void, transitionGenericParamToType__ast_4391)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semPattern__sem_7566)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, flattenStmts__trees_355)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semPatternBody__sem_8338)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, handleSym__sem_8358)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newParam__sem_8344)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, expectParam__sem_8400)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stupidStmtListExpr__trees_404)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, addPattern__semdata_722)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg p);
N_LIB_PRIVATE N_NIMCALL(void, searchForProc__procfind_73)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* scope, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fn, tyTuple__U9cBGRemMbZc6MWph6pfkAg* Result);
N_LIB_PRIVATE N_NIMCALL(void, addInterfaceOverloadableSymAt__lookups_1571)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* scope, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(void, addInterfaceDeclAt__lookups_1547)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* scope, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(void, pragmaCallable__pragmas_2639)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw validPragmas, NIM_BOOL isStatement);
N_LIB_PRIVATE N_NIMCALL(void, implicitPragmas__pragmas_2481)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw validPragmas);
N_LIB_PRIVATE N_NIMCALL(void, setEffectsForProcType__sempass50_4560)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, wrongRedefinition__lookups_985)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* s, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw conflictsWith, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ note);
N_LIB_PRIVATE N_NIMCALL(void, addGenericParamListToScope__sem_12528)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, addParams__sem_99)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind);
static N_INLINE(NIM_BOOL, importantComments__options_4020)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, comment__ast_997)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, commenteq___ast_1365)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(void, popOwner__semdata_341)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(void, semOverride__sem_13839)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, bindTypeHook__sem_13730)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ op);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, canonType__sem_13692)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getAttachedOp__modulegraphs_4049)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ op);
N_LIB_PRIVATE N_NIMCALL(void, setAttachedOp__modulegraphs_4445)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, NI module, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ op, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* value);
N_LIB_PRIVATE N_NIMCALL(void, prevDestructor__sem_13700)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* prevOp, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* obj, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
static N_INLINE(NIM_BOOL, contains__stdZenumutils_44)(NimStringDesc** a, NI aLen_0, NimStringDesc* item);
static N_INLINE(NI, find__stdZenumutils_49)(NimStringDesc** a, NI aLen_0, NimStringDesc* item);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cursorInProc__sem_14012)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cursorInProcAux__sem_13997)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCheckPointResult__1fIaGKvTluv8QtOC3X9afKQ, inCheckpoint__sigmatch_5341)(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw current, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw trackPos);
N_LIB_PRIVATE N_NIMCALL(void, semMethodPrototype__sem_14036)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4647)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, addMethodToGeneric__modulegraphs_7727)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, NI module, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, NI col, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasObjParam__sem_14016)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, methodDef__cgmeth_264)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, pushProcCon__sem_908)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, hloBody__sem_793)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, hlo__sem_678)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, applyPatterns__sem_702)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, applyRule__patterns_548)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalPattern__sem_681)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semDirectOp__sem_515)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, afterCallActions__sem_17753)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(void, semFinishOperands__sigmatch_4203)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, activate__sem_111)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, fixAbstractType__sem_16115)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
static N_INLINE(NIM_BOOL, isArrayConstr__sem_149)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, analyseIfAddressTakenInCall__sem_16299)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow, isAssignable__sem_16158)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL isUnsafeAddr);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow, isAssignable__parampatterns_334)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL isUnsafeAddr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, analyseIfAddressTaken__sem_16241)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newHiddenAddrTaken__sem_16211)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderNotLValue__sem_1645)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, magicsAfterOverloadResolution__sem_17235)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semAddrArg__sem_16419)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL isUnsafeAddr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, makePtrType__semdata_772)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* baseType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTypeOf__sem_136)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, computeSizeAlign__types_2976)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIntNode__ast_3711)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semArrGet__sem_16472)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semSubscript__sem_16468)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semDeref__sem_18616)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semStaticType__sem_132)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* childNode, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, getOrdValue__types_161)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ onError);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_945)(NI64 a, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ b);
N_LIB_PRIVATE N_NIMCALL(NI, toInt__int495056_273)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semSymGenericInstantiation__sem_15109)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, maybeInstantiateGeneric__sem_18638)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, explicitGenericInstantiation__sem_2674)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, explicitGenericSym__sem_2624)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, newCandidate__sigmatch_189)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* ctx, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* callee, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* binding, NI calleeScope, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* Result);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA, typeRel__sigmatch_202)(tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* f, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* aOrig, tySet_tyEnum_TTypeRelFlag__nkWaH9aZ1YawZFP9aSlbYFMw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, explicitGenericInstError__sem_2620)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, symNodeFromType__sem_550)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, symFromType__sem_537)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(void, bracketNotFoundError__sem_1998)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, notFoundError__sem_1955)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySequence__LFzufdBEvfOUK6PWh0HUtQ* errors);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, typSym__astmsgs_5)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getProcHeader__types_222)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg prefer, NIM_BOOL getDeclarationPath);
N_LIB_PRIVATE N_NIMCALL(void, presentFailedCandidates__sem_1669)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySequence__LFzufdBEvfOUK6PWh0HUtQ* errors, tyTuple__w6N3FtUNd27MnpJcSoTdfQ* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, describeArgs__sigmatch_384)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI startIdx, tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg prefer);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
N_LIB_PRIVATE N_NIMCALL(void, addDeclaredLocMaybe__astmsgs_21)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(void, addTypeDeclVerboseMaybe__types_53)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(void, addPragmaAndCallConvMismatch__types_3859)(NimStringDesc** message, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* actual, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(void, effectProblem__sem_1616)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* f, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* a, NimStringDesc** result, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA, compatibleEffects__types_3489)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* actual);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, sort__sem_1825)(NimStringDesc** a, NI aLen_0, tyEnum_SortOrder__TcYjciSJ3jKUT4ygglumjg 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__uh9cWvEa5Ty85PXOtuP5emw*, semArrPut__sem_16495)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipAddr__ast_5230)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semAsgnOpr__sem_16524)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semShallowCopy__sem_16918)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semIsPartOf__sem_16532)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__e4ifdKCCVVqwIObVZzYzMA, isPartOf__aliases_129)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIntNodeT__semfold_57)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ intVal, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, toInt128__types_1431)(NI arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTypeTraits__sem_16796)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalTypeTrait__sem_16611)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* traitCall, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* operand, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* context);
N_LIB_PRIVATE N_NIMCALL(NI, hashString)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, toNode__sem_16585)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newTypeWithSons__semdata_845)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, tySequence__vKogasEnJSPhbQmA8r4Y9aA* sons, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg, parseEnum__sem_16666)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newStrNode__ast_3801)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, NimStringDesc* strVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getTypeDescNode__sem_16604)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toHumanStr__ast_5200)(tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, uninstantiate__sem_16600)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGarbageCollectedRef__types_612)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycle__types_820)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newStrNodeT__semfold_76)(NimStringDesc* strVal, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semInstantiationInfo__sem_16554)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NI, expectIntLit__sem_16547)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, getInfoContext__msgs_526)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NI index);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toFullPath__msgs_548)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NI32 fileIdx);
static N_INLINE(NI, toLinenumber__msgs_619)(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
static N_INLINE(NI, toColumn__msgs_622)(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semOrd__sem_16817)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semOf__sem_16922)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NI, inheritanceDiff__types_2737)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* a, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, commonSuperclass__types_2799)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* a, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semLowHigh__sem_15671)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, emptyRange__nimsets_273)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semBindSym__sem_16823)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, isCompileTimeProc__ast_4684)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semDynamicBindSym__sem_16892)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef__mCf9cYkDtv8sK56ASCMYang)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, setupGlobalCtx__vm_14024)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(NI, registerCallback__vmdef_518)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NimStringDesc* name, tyProc__vkuGXw0bPP9b9cpazTHQY9bqg callback);
N_LIB_PRIVATE N_CLOSURE(void, bindSymWrapper__sem_16901)(tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA* a, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(void, setResult__vm_252)(tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, opBindSym__sem_16862)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* scope, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI isMixin, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getNode__vm_343)(tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA* a, NI i);
N_LIB_PRIVATE N_NIMCALL(NI64, getInt__vm_279)(tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA* a, NI i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIntTypeNode__ast_3771)(NI64 intVal, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(tyProc__uojbiMfaKLMuGW9bbomtTBg, getPlugin__pluginsZactive_25)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* ic, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipConvCastAndClosure__astalgo_114)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, whereToBindTypeHook__sem_13710)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, turnFinalizerIntoDestructor__sem_17038)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* orig, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
static N_NIMCALL(void, Marker_tyRef__lQMImV3D9anOIeIeBWcSo9aA)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, makeVarType__semdata_805)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* baseType, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind);
N_LIB_PRIVATE N_CLOSURE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transform__sem_17043)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* procSym, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* old, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* fresh, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* oldParam, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* newParam, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNil__types_1910)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* a, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* b, tySet_tyEnum_TTypeCmpFlag__IRq9bqtrf9ctEUyeRMyvWy4Q flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newProcType__ast_5068)(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg id, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NIMCALL(void, addParam__ast_5077)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* procType, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* param);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semUnown__sem_16974)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, unownedType__sem_16978)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tySequence__vKogasEnJSPhbQmA8r4Y9aA*, newSeq__modulegraphs_2931)(NI len);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semQuantifier__sem_17081)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semOld__sem_17194)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, requiresInit__typeallowed_593)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkIsolate__isolation95check_112)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semPrivateAccess__sem_17224)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, toObjectFromRefPtrGeneric__ast_4891)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalAtCompileTime__sem_120)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, typeAllowed__typeallowed_487)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tySet_tyEnum_TTypeAllowedFlag__Onpom0WAnwwvAeCSboHTQA flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalStaticExpr__vm_14105)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* prc);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, fixupTypeAfterEval__sem_577)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* evaluated, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* eOrig);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasCycle__sem_555)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, annotateType__semmacrosanity_69)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalConstExpr__vm_14099)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, commonOptimizations__transf_1505)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, trackProc__sempass50_4721)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body);
static N_INLINE(void, popProcCon__semdata_401)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
static N_INLINE(void, paramsTypeCheck__sem_509)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(void, typeAllowedCheck__sem_485)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tySet_tyEnum_TTypeAllowedFlag__Onpom0WAnwwvAeCSboHTQA flags);
N_LIB_PRIVATE N_NIMCALL(void, fixupInstantiatedSymbols__sem_1119)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, semBorrow__sem_13383)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, searchForBorrowProc__sem_2764)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* startScope, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, baseOfDistinct__types_3415)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(void, sideEffectsCheck__sem_1146)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, matches__sigmatch_4222)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* 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__9b35s9cLOLunJ2l2Vo3cQTlw* a, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* b);
N_LIB_PRIVATE N_NIMCALL(tySequence__ugNUvYxERl9aaj9b1GeCSDAg*, initCandidateSymbols__sem_1487)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* headSymbol, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initialBinding, tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw filter, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* best, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* alt, tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg* o, NIM_BOOL diagnostics);
N_LIB_PRIVATE N_NIMCALL(void, insert__liftdestructors_1581)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* item, NI i);
N_LIB_PRIVATE N_NIMCALL(void, delete__closureiters_1723)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** x, NI i);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___pragmas_1747)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** s, tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** b, NI bLen_0);
static N_INLINE(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw, dotdot___pureZunicode_840)(NI a, NI b);
static N_INLINE(NimStringDesc*, X5BX5D___pureZunicode_3215)(NimStringDesc* s, tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw x);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
static N_INLINE(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw, dotdot___stdZenumutils_90)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getMsgDiagnostic__sem_2038)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* f);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getSymRepr__lookups_728)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, NIM_BOOL getDeclarationPath);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameMethodDispatcher__sem_1452)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* a, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semResolvedCall__sem_2454)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(void, instGenericConvertersSons__sem_2369)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* x);
N_LIB_PRIVATE N_NIMCALL(void, updateDefaultParams__sem_2415)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* call);
static N_INLINE(NIM_BOOL, canDeref__sem_2527)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tryDeref__sem_2543)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, isClosureIterator__ast_5016)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, errorSym__lookups_686)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, dotTransformation__sem_18563)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, isSymChoice__sem_15478)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildOverloadedSubscripts__sem_18603)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, lowerTupleUnpackingForAsgn__lowerings_211)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA, cmpTypes__sigmatch_3075)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* f, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* a);
N_LIB_PRIVATE N_NIMCALL(void, borrowCheck__sem_18917)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* le, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri);
static N_INLINE(NIM_BOOL, scopedLifetime__sem_18931)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getRoot__sem_18924)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL followDeref);
static N_INLINE(NIM_BOOL, escapes__sem_18956)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* le);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, goodLineInfo__sem_19000)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg);
static N_INLINE(void, asgnToResultVar__sem_18872)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* le, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri);
N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__u2B9a1gH4LPPJaSqULlL7yQ, classifyViewType__typeallowed_579)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, takeImplicitAddr__sem_18823)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL isLent);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, exprRoot__parampatterns_300)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, createDocLink__lineinfos_6)(NimStringDesc* urlSuffix);
static N_INLINE(NIM_BOOL, isIterator__ast_5005)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(void, finishMethod__sem_117)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, assign__types_3993)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* dest, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* src);
N_LIB_PRIVATE N_NIMCALL(void, semRecordCase__sem_4289)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* check, NI* pos, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* rectype);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_952)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, lengthOrd__types_1723)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(void, semCaseBranch__sem_4013)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch, NI branchIndex, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ* covered);
static N_INLINE(NIM_BOOL, isRange__trees_213)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semCaseBranchRange__sem_3990)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ* covered);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semBranchRange__sem_3969)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ* covered);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipConvTakeType__types_3687)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, minus___int495056_637)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, plus___int495056_987)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, plus___int495056_611)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ b);
N_LIB_PRIVATE N_NIMCALL(void, delSon__ast_4301)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, NI idx);
N_LIB_PRIVATE N_NIMCALL(void, inc__int495056_354)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ* a, NU32 y);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, deduplicate__nimsets_236)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semCaseBranchSetElem__sem_3998)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ* covered);
N_LIB_PRIVATE N_NIMCALL(void, checkForOverlap__sem_3945)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* t, NI currentEx, NI branchIndex);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, overlap__nimsets_40)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_425)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, toCover__sem_4106)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, shl__int495056_542)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, NI b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, formatMissingEnums__sem_4242)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderAsType__sem_4210)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* vals, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__sem_4227)(NimStringDesc** s, NIM_CHAR x);
static N_INLINE(NI, len__nilcheck_1789)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s);
static N_INLINE(void, minus___sem_4262)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s1, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s2, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result);
N_LIB_PRIVATE N_NIMCALL(void, difference__sem_4267)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s1, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s2, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result);
N_LIB_PRIVATE N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, getIntSetOfType__sem_4152)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result);
N_LIB_PRIVATE N_NIMCALL(NI64, toInt64__int495056_88)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ*, rope__ropes_109)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, computeRequiresInit__sem_139)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(void, initConstrContext__sem_21075)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initExpr, tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNode__ast_3289)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind);
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ, semConstructTypeAux__sem_21050)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ* constrCtx, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ, semConstructFields__sem_20745)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ* constrCtx, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(void, mergeInitStatus__sem_20485)(tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ* existing, tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ newStatus);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, fieldsPresentInInitExpr__sem_20717)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fieldsRecList, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, locateFieldInInitExpr__sem_20532)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* field, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initExpr);
N_LIB_PRIVATE N_NIMCALL(void, invalidObjConstr__sem_20519)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConstrField__sem_20553)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* field, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExprFlagDispatched__sem_650)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tryConstExpr__sem_589)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
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__uh9cWvEa5Ty85PXOtuP5emw*, fitNodeConsiderViewType__sem_216)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipHidden__types_3677)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, findUsefulCaseContext__sem_20641)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* discrimator, tyTuple__2E9aYKv1U4zUZsR6wkNRkPg* Result);
N_LIB_PRIVATE N_NIMCALL(void, branchVals__sem_20609)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* caseNode, NI caseIdx, NIM_BOOL isStmtBranch, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result);
N_LIB_PRIVATE N_NIMCALL(void, excl__reorder_273)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s, NI key);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, caseBranchMatchesExpr__sem_20590)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* matched);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__trees_56)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b, NIM_BOOL strictSymEquality);
N_LIB_PRIVATE N_NIMCALL(void, collectMissingFields__sem_20727)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fieldsRecList, tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ* constrCtx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIntLit__lowerings_701)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NI64 value);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, pickCaseBranch__sem_20666)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* caseExpr, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* matched);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSonNoPropagationOfTypeFlags__ast_4287)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* father, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semTypeOf2__sem_6203)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semWhen__sem_520)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL semCheck);
static N_INLINE(NIM_BOOL, contains__pureZtimes_2292)(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw s, NI value);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, lookUp__lookups_2576)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, commonType__sem_241)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* x, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* y);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, semTypeIdent__sem_3651)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, pickSym__lookups_3392)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kinds, tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA flags);
N_LIB_PRIVATE N_NIMCALL(void, reset__sem_3738)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* obj);
N_LIB_PRIVATE N_NIMCALL(void, transitionNoneToSym__ast_4386)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, symFromExpectedTypeNode__sem_6179)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semArray__sem_3596)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semArrayIndex__sem_3527)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, makeRangeWithStaticExpr__semdata_1009)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, makeRangeType__semdata_1069)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, NI64 first, NI64 last, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* intType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semContainer__sem_3283)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, NimStringDesc* kindStr, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(void, semContainerArg__sem_3269)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NimStringDesc* kindStr, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semRange__sem_3467)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semSet__sem_3243)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semOrdinal__sem_3636)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semIterableType__sem_3626)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semVarargs__sem_3290)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semTuple__sem_3756)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTupleRecursive__types_4060)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semGeneric__sem_5778)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semGenericParamInInvocation__sem_5748)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, addTypeHeader__types_216)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg prefer, NIM_BOOL getDeclarationPath);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, skipTypes__ast_4156)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kinds, NI maxIters);
N_LIB_PRIVATE N_NIMCALL(void, semObjectTypeForInheritedGenericInst__sem_5752)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(void, recomputeFieldPositions__semtypinst_1042)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* obj, NI* currPosition);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semTypeClass__sem_5954)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
static N_INLINE(NIM_BOOL, isNewStyleConcept__ast_5238)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConceptDeclaration__concepts_97)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, add__concepts_23)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* father, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, makeTypeWithModifier__semdata_776)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg modifier, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* baseType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConceptBody__sem_2952)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semVarOutType__sem_3308)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind);
static N_INLINE(NIM_BOOL, isSelf__concepts_38)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semDistinct__sem_3365)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semProcTypeWithScope__sem_6128)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, applyTypeSectionPragmas__sem_6039)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pragmas, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* operand);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyTreeWithoutNode__ast_4460)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* skippedNode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semEnum__sem_3002)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(void, initStrTable__ast_4076)(tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw* x);
static N_INLINE(void, addInterfaceDecl__lookups_1551)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(void, declarePureEnumField__importer_61)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, strTableInclReportConflict__astalgo_3335)(tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw* t, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* n, NIM_BOOL onConflictKeepOld);
N_LIB_PRIVATE N_NIMCALL(void, addPureEnum__semdata_704)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg e);
N_LIB_PRIVATE N_NIMCALL(void, setToStringProc__modulegraphs_6073)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* value);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, genEnumToStrProc__enumtostr_6)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semStmtListType__sem_5699)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semBlockType__sem_5727)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev);
N_LIB_PRIVATE N_NIMCALL(void, newIdTable__ast_4090)(tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ* Result);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsthasKey)(tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, wrapInComesFrom__evaltempl_260)(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* res);
static N_INLINE(NIM_BOOL, hasWarn__options_570)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA note);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, getNilType__sem_21674)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(void, transitionIntToFloatKind__ast_4373)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TNodeKind__s2uCfZ39cjRQ1ryTdhQjPCA kind);
N_LIB_PRIVATE N_NIMCALL(void, setIntLitType__semdata_257)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semFieldAccess__sem_15003)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConv__sem_15507)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semStaticExpr__sem_128)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, findUnresolvedStatic__ast_4957)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, maybeLiftType__sem_15485)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA** t, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedSym__sem_15494)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, inferWithMetatype__sem_235)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg, NIM_BOOL coerceDistincts);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw, checkConvertible__sem_15150)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* targetTyp, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw, checkConversionBetweenObjects__sem_15130)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* castDest, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* src, NI pointers);
static N_INLINE(NIM_BOOL, contains__sem_15289)(tyObject_HSlice__4SMQaBRcH5MId3jnPEJfIw s, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw value);
static N_INLINE(tyObject_HSlice__4SMQaBRcH5MId3jnPEJfIw, dotdot___sem_15268)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw a, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw b);
static N_INLINE(NIM_BOOL, contains__semfold_120)(tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA* s, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ value);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_421)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ b);
static N_INLINE(void, dotdot___semfold_99)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ b, tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, getInt__ast_4593)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a);
N_LIB_PRIVATE N_NIMCALL(tyEnum_FloatClass__sXQOxr9c3EE79allMY12fv9cg, classify__pureZmath_147)(NF x);
static N_INLINE(NIM_BOOL, contains__sem_15342)(tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA* s, NI64 value);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_938)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, NI64 b);
static N_INLINE(NIM_BOOL, contains__semfold_973)(tyObject_HSlice__5MokM0MxT5ZF4tSog3uzVQ s, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg value);
static N_INLINE(tyObject_HSlice__5MokM0MxT5ZF4tSog3uzVQ, dotdot___semfold_951)(tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg a, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___int495056_53)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a);
N_LIB_PRIVATE N_NIMCALL(NF, getFloat__ast_4608)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a);
N_LIB_PRIVATE N_NIMCALL(void, errorUseQualifier__lookups_2516)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semObjConstr__sem_17703)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(void, addDeclaredLoc__astmsgs_33)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, listSymbolNames__astalgo_4303)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** symbols, NI symbolsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semMagic__sem_19836)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semDefined__sem_19375)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__options_2292)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* symbol);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, setMs__sem_19810)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semDeclared__sem_19407)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL onlyCurrentScope);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, lookUpForDeclared__sem_19383)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL onlyCurrentScope);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, localSearchInScope__lookups_149)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, someSym__modulegraphs_2849)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semCompiles__sem_19747)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tryExpr__sem_107)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(NI, getInfoContextLen__msgs_486)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(void, trackStmt__sempass50_4945)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL isTopLevel);
N_LIB_PRIVATE N_NIMCALL(void, setInfoContextLen__msgs_493)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NI L);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semIs__sem_15808)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(void, fixupStaticType__sem_15714)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, makeTypeSymNode__semdata_815)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, isOpImpl__sem_15725)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExpandToAst__sem_19514)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* magicSym, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExpandToAst__sem_19451)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semQuoteAst__sem_114)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, expectString__sem_19437)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tySequence__IeU9azYSNIK3V9b36Ir6NZcw*, newSeq__sem_19645)(NI len);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newAnonSym__sem_19446)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(void, processQuotations__sem_19524)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** n, NimStringDesc* op, tySequence__IeU9azYSNIK3V9b36Ir6NZcw** quotes, tySequence__IeU9azYSNIK3V9b36Ir6NZcw** ids);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s, NimStringDesc* prefix);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7757)(NimStringDesc* s, NI first);
N_LIB_PRIVATE N_NIMCALL(void, newSons__semtypinst_416)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, NI length);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newProcNode__ast_3809)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* params, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* name, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pattern, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* genericParams, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pragmas, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* exceptions);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplateDef__sem_8125)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplBodyDirty__sem_8056)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplBody__sem_7113)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplSymbol__sem_7304)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, NIM_BOOL isField);
N_LIB_PRIVATE N_NIMCALL(void, styleCheckUseImpl__linter_158)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplBodySons__sem_7570)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, openScope__sem_7116)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c);
N_LIB_PRIVATE N_NIMCALL(void, closeScope__sem_7118)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplBodyScope__sem_7120)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, addLocalDecl__sem_7169)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw k);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSymBinding__UEP0BDo49bDX0KSLV6GB0eA, symBinding__sem_6872)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw, whichKeyword__idents_223)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* id);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, onlyReplaceParams__sem_7124)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getIdentNode__sem_7074)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, isTemplParam__sem_7093)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, replaceIdentBySym__sem_7058)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newGenSym__sem_7156)(tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c);
N_LIB_PRIVATE N_NIMCALL(void, semTemplSomeDecl__sem_7522)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw symKind, NI start);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semRoutineInTemplBody__sem_7402)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw k);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semRoutineInTemplName__sem_7366)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRunnableExamples__ast_4699)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, symTabReplace__astalgo_3295)(tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw* t, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* prevSym, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* newSym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getCompilerProc__magicsys_145)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, createMagic__modulegraphs_9046)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, NimStringDesc* name, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpawnResult__EdP9a1q3b9blEXGzohsyvYgA, spawnResult__spawn_34)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, NIM_BOOL inParallel);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, createFlowVar__sem_19781)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, instantiateCreateFlowVarCall__sem_19786)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semSizeof__sem_19816)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semIndirectOp__sem_17782)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newDeref__lowerings_11)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, bracketedMacro__sem_17724)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, setGenericParams__sem_17740)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, resolveIndirectCall__sem_17708)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* Result);
N_LIB_PRIVATE N_NIMCALL(void, initCandidate__sigmatch_116)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* ctx, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* callee);
N_LIB_PRIVATE N_NIMCALL(void, addDeclaredLocMaybe__astmsgs_51)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, overloadedCallOpr__sem_15896)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldBeBracketExpr__sem_21515)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, asBracketExpr__sem_21570)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGeneric__sem_21574)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, hoistParamsUsedInDefault__sem_21635)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** call, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** letSection, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** defExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newTreeIT__ast_3395)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semArrayAccess__sem_18789)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(void, invalidPragma__pragmas_150)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA, checkPar__sem_20278)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTupleConstr__sem_21484)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTuplePositionsConstr__sem_20427)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTupleFieldsConstr__sem_20342)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semSetConstr__sem_20081)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semArrayConstr__sem_16015)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semCast__sem_15637)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, errorUseQualifier__lookups_2536)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* choices);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCastable__sem_15388)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* dst, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* src, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFinal__types_808)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NI64, computeSize__types_3369)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semIf__sem_10032)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExprBranch__sem_9919)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, commonType__sem_452)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* y);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, endsInNoReturn__sem_420)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExprBranchScope__sem_9933)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(void, considerGenSyms__semdata_437)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTableConstr__sem_20209)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semBlock__sem_21242)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semStmtList__sem_14827)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnresolvedStatic__ast_3496)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(void, inferConceptStaticParam__sem_14821)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* inferred, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semRaise__sem_12505)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedException__ast_4905)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isException__types_4064)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semVarOrLet__sem_10836)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw symkind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semLowerLetVarCustomPragma__sem_10652)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, suggestStmt__sigmatch_6347)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, errorSymChoiceUseQualifier__sem_10750)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasEmpty__sem_9784)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(void, addToVarSection__sem_10414)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* identDefs);
N_LIB_PRIVATE N_NIMCALL(void, fillPartialObject__sem_10613)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDiscardUnderscore__sem_10442)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, findShadowedVar__sem_10331)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v);
N_LIB_PRIVATE N_NIMCALL(void, setVarType__sem_10644)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(void, defaultConstructionError__sem_142)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(void, checkNilable__sem_10389)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, astdef__ast_3462)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, setupCompileTimeVar__vm_14118)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, globalVarInitCheck__sem_10809)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, usesLocalVar__sem_10771)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConst__sem_11251)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, fitRemoveHiddenConv__sem_10309)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newFloatNode__ast_3797)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, NF floatVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTypeSection__sem_13340)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, typeSectionLeftSidePass__sem_12665)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, typeDefLeftSidePass__sem_12565)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* typeSection, NI i);
N_LIB_PRIVATE N_NIMCALL(void, typeSectionRightSidePass__sem_12786)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, typeSectionTypeName__sem_12549)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, processMagicType__sem_6609)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m);
N_LIB_PRIVATE N_NIMCALL(void, setMagicIntegral__sem_6600)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, NI size);
N_LIB_PRIVATE N_NIMCALL(void, setMagicType__sem_6591)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, NI size);
N_LIB_PRIVATE N_NIMCALL(NI16, floatInt64Align__options_4705)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(void, checkCovariantParamsUsages__sem_12686)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* genericType);
static N_NIMCALL(void, Marker_tyRef__cj85JDaB589buv4QyqKL4kw)(void* p, NI op);
N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, traverseSubTypes__sem_12695)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(void, typeSectionFinalPass__sem_13102)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, safeSkipTypes__types_3616)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kinds);
N_LIB_PRIVATE N_NIMCALL(void, checkConstructedType__semtypinst_26)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(void, checkForMetaFields__sem_13046)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, checkMeta__sem_13049)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semDiscard__sem_9806)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semWhile__sem_9887)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTry__sem_10090)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, toObject__ast_4880)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefectOrCatchableError__types_4119)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, toRef__ast_4872)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semBreakOrContinue__sem_9838)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semFor__sem_12272)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, handleForLoopMacro__sem_12225)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, handleStmtMacro__sem_12171)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* selector, NimStringDesc* magicType, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExprNoDeref__sem_65)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrivalStmtExpr__sem_12155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semForVars__sem_11882)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, symForVar__sem_11811)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semForFields__sem_11679)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, systemModuleSym__modulegraphs_2867)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, instFieldLoopBody__sem_11505)(tyObject_TFieldInstCtx__gggY1l2lKKFHg0YR3GdTXg* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* forLoop);
N_LIB_PRIVATE N_NIMCALL(void, semForObjectFields__sem_11591)(tyObject_TFieldsCtx__qXVR2KI9aIfwG9bg4IHg9cw7w c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* typ, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* forLoop, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father);
N_LIB_PRIVATE N_NIMCALL(void, illFormedAstLocal__semdata_1104)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsNode__ast_4546)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, implicitIterator__sem_12130)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, NimStringDesc* it, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semCase__sem_12403)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(void, pushCaseContext__semdata_1135)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* caseNode);
N_LIB_PRIVATE N_NIMCALL(void, popCaseContext__semdata_1151)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, handleCaseStmtMacro__sem_12235)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(void, setCaseContextIdx__semdata_1166)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, NI idx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semReturn__sem_19136)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semUsing__sem_10449)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semAsm__sem_9881)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, pragmaAsm__pragmas_203)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semAsmOrEmit__pragmas_1136)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* con, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_CHAR marker);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semYield__sem_19322)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, semYieldVarResult__sem_19243)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* restype);
N_LIB_PRIVATE N_NIMCALL(void, semPragmaStmt__sem_21730)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semIterator__sem_14495)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, transitionRoutineSymKind__ast_4394)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyEnum_TSymKind__5avKs4TYFTeLPAJjwtJ4cg kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semProc__sem_9916)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semFunc__sem_14551)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semMethod__sem_14561)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getDispatcher__cgmeth_42)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConverterDef__sem_14596)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, addConverterDef__semdata_697)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg conv);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semMacroDef__sem_14615)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalImport__importer_4976)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalImportExcept__importer_5070)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalFrom__importer_5044)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalInclude__sem_14670)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, incMod__sem_14650)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* includeStmtResult);
N_LIB_PRIVATE N_NIMCALL(NI32, checkModuleName__modulepaths_21)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL doLocalError);
N_LIB_PRIVATE N_NIMCALL(void, addIncludeFileDep__semdata_634)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, NI32 f);
N_LIB_PRIVATE N_NIMCALL(void, onProcessing__modulegraphs_13127)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, NI32 fileIdx, NimStringDesc* moduleStatus, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fromModule);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toMsgFilename__msgs_612)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NI32 fileIdx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExport__sem_21373)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, reexportSym__semdata_747)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_2722)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m);
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_2710)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, NI module);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, initRodIterAllSyms__icZic_8670)(tyObject_RodIter__L6nv9cakjPARHk068AFo6ww* it, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ** g, NI32 module, NIM_BOOL importHidden);
static N_INLINE(void, specialSyms__sem_21377)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, addConverter__semdata_683)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg conv);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, nextRodIter__icZic_8980)(tyObject_RodIter__L6nv9cakjPARHk068AFo6ww* it, tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ** g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExportExcept__sem_21334)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, readExceptSet__importer_17)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semPragmaBlock__sem_14742)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType);
N_LIB_PRIVATE N_NIMCALL(void, setLine__sem_14729)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semStaticStmt__sem_14781)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, evalStaticStmt__vm_14112)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* prc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___msgs_1003)(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw a, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semOperand__sem_15009)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasUnresolvedParams__sem_10567)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semInferredLambda__sem_13629)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, replaceTypesInBody__semtypinst_1024)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* p, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, NIM_BOOL allowMetaTypes);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, instTypeBoundOp__sigmatch_4368)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* dc, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ op, NI col);
N_LIB_PRIVATE N_NIMCALL(NI*, new__sem_22338)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semStmtAndGenerateGenerics__sem_22493)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportSystemStmt__sem_22468)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyTree__sem_22489)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, importAllSymbols__importer_2054)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fromMod);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semAllTypeSections__sem_13257)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, gatherStmts__sem_13261)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, hloStmt__sem_804)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildEchoStmt__sem_17963)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, appendToModule__ast_3519)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, recoverContext__sem_22528)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* 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_3321)(TNimType* obj, TNimType* subclass, TNimType** cache);
N_LIB_PRIVATE N_NIMCALL(void, storeRodNode__semdata_1208)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, suggestSentinel__sigmatch_6362)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(void, rawCloseScope__lookups_106)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(void, reportUnusedModules__sem_22556)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
N_LIB_PRIVATE N_NIMCALL(void, addCodeForGenerics__sem_22292)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, sealRodFile__semdata_3633)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_2, "sem.myOpen", 10);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_4, "/home/runner/work/nightlies/nightlies/nim/compiler/sem.nim", 58);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_3 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 559),
((NI) 30)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_5 = {
0x10, 0x89, 0x10, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_6 = {
0x10, 0xa8, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_7, "constant of type \'", 18);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_8, "\' has no value", 14);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_10, "/home/runner/work/nightlies/nightlies/nim/compiler/semexprs.nim", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_9 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 113),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_11, "recursive dependency: \'$1\'", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_12 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 490),
((NI) 15)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_13, "\'$1\' has unspecified generic parameters", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_14 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 496),
((NI) 15)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_15, "template instantiation too nested", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_16 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 425),
((NI) 15)}
;
extern TNimType NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_;
static NIM_CONST tySet_tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw TM__DKP9c7KM5AbqYVP6Gd9blNUw_17 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04,
0x02, 0x00, 0xe0, 0x11, 0x02, 0x0c, 0x01, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_18, "expression has no type: ", 24);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_20, "/home/runner/work/nightlies/nightlies/nim/compiler/semstmts.nim", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_19 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 157),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_21, "expression \'", 12);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_22, "\' is of type \'", 14);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_23, "\' and has to be used (or discarded)", 35);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_24, "; start of expression here: ", 28);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_25, "; for a function call use ()", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_26 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 170),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_27, "type expected", 13);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_29, "/home/runner/work/nightlies/nightlies/nim/compiler/semtypes.nim", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_28 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 478),
((NI) 14)}
;
extern TNimType NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_30, "illegal recursion in type \'", 27);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_31, "\'", 1);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_32 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 240),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_33, "[]", 2);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_34, "range is empty", 14);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_35 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 260),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_36 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_37 = {
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_38, "ordinal or float type expected", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_39 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 279),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_40, "enum \'$1\' has holes", 19);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_41 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 281),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_42, "NaN is not a valid start or end for a range", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_43 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 292),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_44 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 295),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_45 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_46, "invalid type", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_47 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1790),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_48, "expected type, but got: ", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_49 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1578),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_50, "|", 1);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_51 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1801),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_52 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1804),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_53, "Invalid syntax. When used with a type, \'not\' can be followed only by \'nil\'", 74);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_54 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1816),
((NI) 22)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_55, "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__DKP9c7KM5AbqYVP6Gd9blNUw_56 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1819),
((NI) 22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_57 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1853),
((NI) 22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_58 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1858),
((NI) 20)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_59 = {
0x10, 0x09, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_60, "cannot inherit from a type that is not an object type", 53);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_61 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 904),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_62 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 916),
((NI) 19)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_63, "addInheritedFieldsAux", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_64 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 863),
((NI) 42)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_65, "addInheritedFieldsAux(record case branch)", 41);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_66 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 869),
((NI) 25)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_67, "addInheritedFieldsAux()", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_68 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 876),
((NI) 21)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_69, "inheritance only works with non-final objects; for ", 51);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_70, " to be inheritable it must be \'object of RootObj\' instead of \'object\'", 69);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_71 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 920),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_72, "semObjectNode", 13);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_73 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 925),
((NI) 40)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_74 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 89),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_75 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_76, "(", 1);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_77, ", ", 2);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_78, ")", 1);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_80, "/home/runner/work/nightlies/nightlies/nim/compiler/seminst.nim", 62);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_79 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_80),
((NI) 348),
((NI) 17)}
;
extern NIM_CONST tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw unknownLineInfo__lineinfos_284;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_81, "generic instantiation too nested", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_82 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_80),
((NI) 351),
((NI) 15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_83 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_80),
((NI) 374),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_84 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_80),
((NI) 61),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_85 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_80),
((NI) 63),
((NI) 19)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_86, "cannot instantiate: \'$1\'", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_87 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_80),
((NI) 77),
((NI) 22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_88 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_80),
((NI) 80),
((NI) 18)}
;
extern TNimType NTIpproccon__10LrMeEGcZEU1Ndh5rhoUg_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_89 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_80),
((NI) 283),
((NI) 19)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_90 = {
0x10, 0x28, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_91, "no tuple type for constructor", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_92 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 545),
((NI) 17)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_93, "invalid tuple constructor", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_94 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 551),
((NI) 21)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_95, "unknown identifier: ", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_96 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 556),
((NI) 23)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_97, "cannot convert ", 15);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_98, " to ", 4);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_99 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 574),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_100, "cannot convert \'$1\' to \'$2\'", 27);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_101 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 578),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_102 = {
0x10, 0xa9, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
extern TNimType NTIseqLtinstantiationpairT__yH9bx9bpa6jqsU89cxjyTAlPQ_;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_103 = {
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, 0x0c, 0x49, 0x06, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_104, "NimNode", 7);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_105, "incorrect result proc symbol", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_106 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1572),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_107, "result", 6);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_108, "value of type \'$1\' has to be used (or discarded)", 48);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_109 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 142),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_110 = {
0x10, 0x00, 0xe0, 0x00, 0x00, 0xe0, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_111 = {
0x10, 0x08, 0xe0, 0x00, 0x00, 0xe0, 0x00, 0x10,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_112 = {
0x10, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_113, "contains", 8);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_114, "not", 3);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_115, "semstmts.nim(1639, 14) `r[0].kind == nkSym` ", 44);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_116, "semstmts.nim(1648, 14) `result != nil` ", 39);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_117, "cannot use symbol of kind \'$1\' as a \'$2\'", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_118 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 229),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_119, "\'$1\' is only allowed at top level", 33);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_120, "export", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_121 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 530),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_122, "invalid visibility: \'$1\'", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_123 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 532),
((NI) 20)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_124 = {
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, 0x20, 0x00, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_125 = {
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, 0x4c, 0x2c, 0x00, 0x80, 0x08, 0x20,
0x00, 0x00, 0x04, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_126 = {
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, 0x0c, 0x00, 0x00, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_127, "sem.nim(527, 12) `orig.kind in {nkEmpty, nkGenericParams}` ", 59);
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_128 = {
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_129, "in", 2);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_130, "the \'$1\' modifier can be used only with imported types", 54);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_131 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 2205),
((NI) 24)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_132, "{}", 2);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_133, "\' is only allowed in templates and macros or magic procs", 56);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_134 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1278),
((NI) 20)}
;
extern NIM_CONST tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw OverloadableSyms__ast_3011;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_135, "{}=", 3);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_136, "[]=", 3);
extern NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw Letters__linter_12;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_137, "cannot infer the type of parameter \'", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_138 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1297),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_139, "\':\' expected", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_140 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1321),
((NI) 27)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_141 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_142 = {
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, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_143, "parameter \'$1\' requires a type", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_144 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1335),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_145, ":type", 5);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_146, "the macro body cannot be compiled, because the parameter \'$1\' has a generic type", 80);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_147 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1089),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_148, "typedesc", 8);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_149, "type", 4);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_150, "illegal recursion in type \'$1\'", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_151 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1136),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_152 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_80),
((NI) 190),
((NI) 17)}
;
extern TNimType NTIlayeredidtable__bE7TGBjv9bCsVJO148OW9cHA_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_153 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1179),
((NI) 22)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_154, "attempt to redefine: \'", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_155 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1347),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_156, "`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__DKP9c7KM5AbqYVP6Gd9blNUw_157 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1369),
((NI) 11)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_158, "return type \'", 13);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_159, "\' is only valid for macros and templates", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_160 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1377),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_161, "invalid expression", 18);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_163, "/home/runner/work/nightlies/nightlies/nim/compiler/semtempl.nim", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_162 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_163),
((NI) 758),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_164 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_163),
((NI) 743),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_165 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_163),
((NI) 768),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_166 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_163),
((NI) 770),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_167, "*", 1);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_168, "**", 2);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_169, "~", 1);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_170, "a pattern cannot be empty", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_171 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_163),
((NI) 840),
((NI) 16)}
;
static NIM_CONST tyTuple__U9cBGRemMbZc6MWph6pfkAg TM__DKP9c7KM5AbqYVP6Gd9blNUw_172 = {((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL),
NIM_FALSE}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_173, "pragmas are only allowed in the header of a proc; redefinition of $1", 68);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_174, "\' from ", 7);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_175, " \'", 2);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_176 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2052),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_177, "semProcAux", 10);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_178 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2080),
((NI) 46)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_179, "=destroy", 8);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_180, "deepcopy", 8);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_181, "=deepcopy", 9);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_182, "=", 1);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_183, "=copy", 5);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_184, "=sink", 5);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_185, "=trace", 6);
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_186 = {
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_187, "cannot bind another \'", 21);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_188, "\' to: ", 6);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_189, "; previous declaration was constructed here implicitly: ", 56);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_190, "; previous declaration was here: ", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_191 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1731),
((NI) 12)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_192, "type bound operation `", 22);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_193, "` can be defined only in the same module with its type (", 56);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_194 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1770),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_195, "signature for \'=trace\' must be proc[T: object](x: var T; env: pointer)", 70);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_196 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1774),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_197, "signature for \'", 15);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_198, "\' must be proc[T: object](x: var T)", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_199 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1777),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_200, "raises", 6);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_201, "cannot bind another \'deepCopy\' to: ", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_202 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1807),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_203, "cannot bind \'deepCopy\' to: ", 27);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_204 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1810),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_205 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1814),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_206, "signature for \'deepCopy\' must be proc[T: ptr|ref](x: T): T", 58);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_207 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1818),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_208 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1853),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_209, "\' must be proc[T: object](x: var T; y: T)", 41);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_210 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1858),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_211, "\'destroy\' or \'deepCopy\' expected for \'override\'", 47);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_212 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1865),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_214, ".", 1);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_215, ".()", 3);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_216, ".=", 2);
static NIM_CONST tyArray__24KAM9afIUgUaqBaEBB6r9bg TM__DKP9c7KM5AbqYVP6Gd9blNUw_213 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_214),
((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_215),
((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_216)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_217, "the overloaded ", 15);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_218, " operator has to be enabled with {.experimental: \"dotOperators\".}", 65);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_219 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2092),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_220, "()", 2);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_221, " operator has to be enabled with {.experimental: \"callOperator\".}", 65);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_222 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2095),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_223, "implementation of \'$1\' is not allowed", 37);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_224 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2101),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_225 = {
0x10, 0x0e, 0xe0, 0x00, 0x00, 0xe0, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_226, "generic methods are deprecated", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_227 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1902),
((NI) 11)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_228, "\'method\' needs a parameter that has an object type", 50);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_229 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1912),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_231, "/home/runner/work/nightlies/nightlies/nim/compiler/hlo.nim", 58);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_230 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_231),
((NI) 48),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_232 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_231),
((NI) 15),
((NI) 17)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_233, "\'$1\' has nil child at index $2", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_234 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 670),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_235 = {
0x10, 0xa9, 0x80, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_236 = {
0x10, 0xa9, 0x80, 0x00, 0x00, 0xe0, 0xb0, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag TM__DKP9c7KM5AbqYVP6Gd9blNUw_237 = {
0x00, 0x00, 0x20, 0x60, 0x07, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x38, 0x46, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_238, "for a \'var\' type a variable needs to be passed; but \'$1\' is immutable", 69);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_239 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 782),
((NI) 24)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_240, "address of \'$1\' may not escape its stack frame", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_241 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 789),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_242 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 730),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_243, "analyseIfAddressTaken", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_244 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 744),
((NI) 19)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_245, "expression has no address", 25);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_247, "/home/runner/work/nightlies/nightlies/nim/compiler/semmagic.nim", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_246 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 21),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_248, "expression has no address; maybe use \'unsafeAddr\'", 49);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_249 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 23),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_250, "unsafeAddr", 10);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_251, "typeof: cannot evaluate \'mode\' parameter at compile-time", 56);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_252 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 31),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_253, "can\'t compute offsetof on this ast", 34);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_255, "/home/runner/work/nightlies/nightlies/nim/compiler/sizealignoffsetimpl.nim", 74);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_254 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_255),
((NI) 506),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_256, "nil dereference is not allowed", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_257 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1537),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_258 = {
0x10, 0x08, 0x80, 0x00, 0x00, 0xe0, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_259 = {
0x10, 0x08, 0xe0, 0x00, 0x00, 0xe0, 0x20, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_260 = {
0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_261 = {
0x10, 0x88, 0x10, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
extern NIM_CONST tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ Max__int495056_27;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_262, "invalid index value for tuple subscript", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_263 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1630),
((NI) 22)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_264, "cannot instantiate: \'", 21);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_265, "\'; got ", 7);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_266, " typeof(s) but expected ", 24);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_268, "/home/runner/work/nightlies/nightlies/nim/compiler/semcall.nim", 62);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_267 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 678),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_269 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 636),
((NI) 12)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_270, "AnonType", 8);
extern TNimType NTIcandidateerrors__LFzufdBEvfOUK6PWh0HUtQ_;
extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_271, "could not resolve: ", 19);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_272 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 331),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_273, "type mismatch", 13);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_274 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 289),
((NI) 15)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_275, " for type ", 10);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_276, "undeclared field: \'$1\'", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_277 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 300),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_278, "attempting to call undeclared routine: \'$1\'", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_279 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 305),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_280, "expression \'$1\' cannot be called", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_281 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 307),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_282, "\012", 1);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_283, "  first type mismatch at position: ", 35);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_284, "\012  unknown named parameter", 26);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_285, "\012  unknown named parameter: ", 28);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_286, "\012  named param already provided: ", 33);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_287, "\012  positional param was already given as named param", 52);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_288, "\012  extra argument given", 23);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_289, "\012  missing parameter: ", 22);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_290, "semcall.nim(235, 18) `nArg != nil` ", 35);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_291, "semcall.nim(237, 18) `err.firstMismatch.formal != nil` ", 55);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_292, "\012  required type for ", 21);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_293, ": ", 2);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_294, "\012  but expression \'", 19);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_295, "\' is immutable, not \'var\'", 25);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_296, "\' is of type: ", 14);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_297, "semcall.nim(249, 20) `wanted != nil` ", 37);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_298, "\012  This expression is not GC-safe. Annotate the proc with {.gcsafe.} to get extended error information.", 103);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_299, "\012  This expression can have side effects. Annotate the proc with {.noSideEffect.} to get extended error information.", 116);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_300, "\012  The `.raises` requirements differ.", 37);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_301, "\012  The `.raises` requirements differ. Annotate the proc with {.raises: [].} to get extended error information.", 110);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_302, "\012  The `.tags` requirements differ.", 35);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_303, "\012  The `.tags` requirements differ. Annotate the proc with {.tags: [].} to get extended error information.", 106);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_304, "\012  The `.locks` requirements differ. Annotate the proc with {.locks: 0.} to get extended error information.", 107);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_305, "\012  The `.effectsOf` annotations differ.", 39);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_306, " other mismatching symbols have been suppressed; compile with --showAllMismatches:on to see them\012", 97);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_307, "maybe misplaced space between ", 30);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_308, " and \'(\' \012", 10);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_309, "type mismatch: got <", 20);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_310, "\012but expected one of:\012", 22);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_311, "\012expression: ", 13);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_312 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 316),
((NI) 12)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_313 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 209),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_314 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 129),
((NI) 17)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_315 = {
0x10, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_316, "or", 2);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_317, "and", 3);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_318, "typeToString", 12);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_319, "name", 4);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_320, "$", 1);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_321, "arity", 5);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_322, "genericHead", 11);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_323, "stripGenericParams", 18);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_324, "supportsCopyMem", 15);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_325, "isNamedTuple", 12);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_326, "tupleLen", 8);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_327, "distinctBase", 12);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_328, "isCyclic", 8);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_329, "expected generic type, got: type $2 of kind $1", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_330 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 174),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_331 = {
0x10, 0x08, 0x80, 0x00, 0x00, 0xc0, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_332 = {
0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_333 = {
0x10, 0x09, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_334, "unknown trait: ", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_335 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 203),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_336, "integer literal expected", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_337 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 80),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_338, "command line", 12);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_339, "\?\?\?", 3);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_340, "ordinal type expected", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_341 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 224),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_342 = {
0x10, 0xa8, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_343, "\'of\' takes object types", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_344 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 326),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_345 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 328),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_346 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 337),
((NI) 15)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_347, "\'$1\' cannot be of this subtype", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_348 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 344),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_349 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 346),
((NI) 17)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_350, "\'of\' takes 2 arguments", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_351 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 351),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_352, "\'$1\' expects a type or value", 28);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_353, "low", 3);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_354, "high", 4);
N_LIB_PRIVATE NIM_CONST tyArray__CEYo3qUPMYKtQ3tt8qKa7w opToStr__sem_15676 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_353),
((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_354)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_355 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 385),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_356 = {
0x10, 0xa9, 0x90, 0x00, 0x00, 0x60, 0xa0, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_357, "invalid argument for: ", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_358 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 404),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_359, "string literal expected", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_360 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 233),
((NI) 25)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_361, "constant expression expected", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_362 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 238),
((NI) 25)}
;
extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
N_LIB_PRIVATE TNimType NTIobject__UdwrZCFez7lYdvLY8j2kdQ_;
extern TNimType NTIint__xHTZrq9aYs6boc9bCba0JbpQ_;
extern TNimType NTIpcontext__C5LQliQ3Detta8PpLynVjQ_;
extern TNimType NTIpscope__1WBIpqNgZhwC9bV4356CRhQ_;
N_LIB_PRIVATE TNimType NTIrefobject__mCf9cYkDtv8sK56ASCMYang_;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_364, "bindSymImpl", 11);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_365, "string or ident node expected", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_366 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 255),
((NI) 25)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_367 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 258),
((NI) 25)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_368, "cannot find plugin ", 19);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_369 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 520),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_370, "finalizer must be a direct reference to a proc", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_371 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 527),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_372 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 534),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_373 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 539),
((NI) 20)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_374 = {
0x10, 0xa9, 0x40, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
N_LIB_PRIVATE TNimType NTIobject__G3GDRnS0a9bK9bA0vzUpFf0A_;
extern TNimType NTIpsym__u9bhQvrOYyAS9bCQ6gt41GOQ_;
N_LIB_PRIVATE TNimType NTIrefobject__lQMImV3D9anOIeIeBWcSo9aA_;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_378, "<quantifier> \'in\' <range> expected", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_379 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 448),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_380, "\'old\' takes a parameter name", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_381 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 456),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_382, " does not belong to ", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_383 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 458),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_384 = {
0x10, 0x08, 0xe0, 0x00, 0x00, 0x60, 0x20, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_385 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 573),
((NI) 13)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_386 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 576),
((NI) 12)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_387 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 579),
((NI) 13)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_388, "expression cannot be isolated: ", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_389 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_247),
((NI) 582),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag TM__DKP9c7KM5AbqYVP6Gd9blNUw_390 = {
0xe1, 0x00, 0x00, 0xe0, 0xf0, 0xcf, 0xff, 0xf7,
0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x3f,
0xf8, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_391, "cannot evaluate \'$1\'", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_392 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 872),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_393, "the resulting AST is cyclic and cannot be processed further", 59);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_394 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 322),
((NI) 31)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_395, " --> \'", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_396 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_231),
((NI) 31),
((NI) 11)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_397, "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__DKP9c7KM5AbqYVP6Gd9blNUw_398 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2117),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_399, "invalid type: \'$1\' for $2", 25);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_400, ". Did you mean to call the $1 with \'()\'\?", 40);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_401, "invalid type: \'$1\' in this context: \'$2\' for $3", 47);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_402 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 266),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_403, "implementation of \'$1\' expected", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_404 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2151),
((NI) 27)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_405, "return type \'auto\' cannot be used in forward declarations", 57);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_406 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2155),
((NI) 18)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_407 = {
0x10, 0x88, 0x80, 0x00, 0x00, 0xe0, 0xc0, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_408, "no symbol to borrow from found", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_409 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1553),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_410, "\'.closure\' calling convention for top level routines is invalid", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_411 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2173),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_412 = {
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__9b35s9cLOLunJ2l2Vo3cQTlw_;
extern TNimType NTIseqLLpsym_intTT__ugNUvYxERl9aaj9b1GeCSDAg_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_413 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 411),
((NI) 21)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_414, "\012  found $1", 11);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_415, " ", 1);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_416, "attempting to call routine: \'$1\'$2", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_417 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 442),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_418 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 446),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_419 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 456),
((NI) 19)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_420, "ambiguous call", 14);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_421 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 461),
((NI) 17)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_422, "ambiguous call; both $1 and $2 match for: $3", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_423 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 470),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_424, "Non-matching candidates for ", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_425 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 602),
((NI) 13)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_426 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_268),
((NI) 577),
((NI) 25)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_427, "semOverloadedCallAnalyseEffects", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_428 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 912),
((NI) 19)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_429, "recursion is not supported in iterators: \'$1\'", 45);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_430 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 920),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_431, "expression has no type", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_432 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1832),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_433, "\'$1\' cannot be assigned to", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_434 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1837),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_435 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1851),
((NI) 25)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_436 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_437, "cannot return an owned pointer as an unowned pointer; use \'owned(", 65);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_438, ")\' as the return type", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_439 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1766),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_440, "assignment produces a dangling ref: the unowned ref lives longer than the owned ref", 83);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_441 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1769),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_442, "\'$1\' escapes its stack frame; context: \'$2\'; see $3", 51);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_443, "var_t_return.html", 17);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_444 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1693),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_445, "\'$1\' is not the first parameter; context: \'$2\'; see $3", 54);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_446 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1696),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_447 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1711),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_448 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1713),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_449, "cannot infer the return type of \'$1\'", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_450 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1924),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_451 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1928),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_452 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 515),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_453, "semRecordCase: discriminant is no symbol", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_454 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 711),
((NI) 17)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_455 = {
0x10, 0xa8, 0x80, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_456, "selector must be of an ordinal type, float", 42);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_457 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 729),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_458, "low(", 4);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_459, ") must be 0 for discriminant", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_460 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 731),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_461, "len($1) must be less than 32768", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_462 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 734),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_463 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 573),
((NI) 35)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_464, "duplicate case label", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_465 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 561),
((NI) 18)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_466 = {
0x10, 0xa8, 0x90, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_467 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 746),
((NI) 15)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_468 = {
0x10, 0xa9, 0x10, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_469, "not all cases are covered; missing: $1", 38);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_470, "{", 1);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_471, "omitted $1 values...", 20);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_472, "}", 1);
extern TNimType NTIpackedset__THXDbzJSs2hcC9a33en2pdw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_473 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 753),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_474, "not all cases are covered", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_475 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 756),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_476, "initialization not allowed here", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_477 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 814),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_478 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 817),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_479 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 841),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_480 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 852),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_481, "dummy", 5);
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_482 = {
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, 0x2c, 0x90, 0x01, 0x80, 0x00, 0x00,
0x00, 0x60, 0x00, 0x00, 0x0c}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_484, "/home/runner/work/nightlies/nightlies/nim/compiler/semobjconstr.nim", 67);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_483 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 185),
((NI) 19)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_485, "incorrect object construction syntax; use a space after the colon", 65);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_486 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 54),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_487, "incorrect object construction syntax", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_488 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 56),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_489, "semobjconstr.nim(137, 14) `recList.kind == nkRecList` ", 54);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_490, "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__DKP9c7KM5AbqYVP6Gd9blNUw_491 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 196),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_492, "the field \'$1\' is not accessible.", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_493 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 78),
((NI) 16)}
;
extern TNimType NTIerecoverableerror__aRVEU9aWMU9b9a9baYZqUd3t9cA_;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_495, "branch initialization with a runtime discriminator only supports ordinal types with 2^16 elements or less.", 106);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_496 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 240),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_497, "cannot prove that it\'s safe to initialize $1 with the runtime value for the discriminator \'$2\' ", 95);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_498 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 208),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_499, "possible values $2 are in conflict with discriminator values for selected object branch $1.", 91);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_500 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 254),
((NI) 35)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_501, "runtime discriminator must be immutable if branch fields are initialized, a \'let\' binding is required.", 102);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_502 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 260),
((NI) 22)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_503, "branch initialization with a runtime discriminator is not supported inside of an `elif` branch.", 95);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_504 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 264),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_505 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 273),
((NI) 33)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_506 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 291),
((NI) 35)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_507, "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__DKP9c7KM5AbqYVP6Gd9blNUw_508 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 217),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_509 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 331),
((NI) 19)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_510, "type \'$1 void\' is not allowed", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_511 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 962),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_512, "region needs to be an object type", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_513 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 978),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_514, "region for pointer types is deprecated", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_515 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 981),
((NI) 17)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_516, "typeof", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_517 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1745),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_518, "owned", 5);
extern TNimType NTIptype__q1v0zzhoMWrhMLs6UEp1IA_;
extern TNimType NTIttype__kQDDJGUiaUAtO9c9b6LjZYjA_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_519 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 434),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_520 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 448),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_521 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 458),
((NI) 47)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_522, "identifier expected", 19);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_523 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 473),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_524 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1723),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_525, "..<", 3);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_526, "Array length can\'t be negative, but was ", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_527 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 336),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_528 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 344),
((NI) 18)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_529 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x40, 0x00, 0x10,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_530 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 349),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_531 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 378),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_532 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 380),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_533, "array expects two type parameters", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_534 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 390),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_535, "\'$1\' is not a concrete type", 27);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_536 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 185),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_537, "\'$1\' expects one type parameter", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_538 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 188),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_539, "openarray", 9);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_540, "UncheckedArray", 14);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_541, "range types need to be constructed with \'..\', \'..<\' is not supported", 68);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_542 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 317),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_543, "expected range", 14);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_544 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 319),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_545, "range", 5);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_546 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 322),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_547 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 174),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_548, "set is too large", 16);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_549 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 176),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_550, "set", 3);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_551 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 178),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_552 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 408),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_553, "ordinal", 7);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_554 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 411),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_555, "iterable", 8);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_556 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 399),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_557, "seq", 3);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_558, "varargs", 7);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_559 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 204),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_560, "type \'var var\' is not allowed", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_561 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1917),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_562 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 497),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_563 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 500),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_564 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 507),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_565 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 515),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_566, "cannot instantiate the \'$1\' $2", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_567 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1467),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_568 = {
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_569 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1480),
((NI) 21)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_570, "no generic parameters allowed for $1", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_571 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1492),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_572, "cannot instantiate ", 19);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_573, "\012got: <$1>\012but expected: <$2>", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_574 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1503),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_575 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1524),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_576 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1534),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_577, "object", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_578 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1454),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_579, "inheritance only works with non-final objects", 45);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_580 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1461),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_581, "object constructor needs an object type; for named arguments use \'=\' instead of \':\'", 83);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_582 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1927),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_583 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1933),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_584 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1949),
((NI) 38)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_585 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1952),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_586 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1974),
((NI) 25)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_587, "type expected, but symbol \'$1\' has no type.", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_588 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1989),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_589, "type expected, but got symbol \'$1\' of kind \'$2\'", 47);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_590 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1991),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_591 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 1645),
((NI) 19)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_592 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 214),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_593, "semtypes.nim(1685, 22) `r[0].kind == nkSym` ", 44);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_594, "semtypes.nim(1690, 27) `false` cannot happen", 44);
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_595 = {
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, 0x40, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_596 = {
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__DKP9c7KM5AbqYVP6Gd9blNUw_597, "inheritance only works with an enum", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_598 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 73),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_599 = {
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__DKP9c7KM5AbqYVP6Gd9blNUw_600, "ordinal type expected; given: ", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_601 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 99),
((NI) 24)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_602 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 103),
((NI) 22)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_603, "wrong number of variables", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_604 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 105),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_605 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 111),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_606, "invalid order in enum \'$1\'", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_607 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 117),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_608, "The enum \'$1\' exceeds its maximum value ($2)", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_609 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 157),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_610 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 449),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_611 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 504),
((NI) 11)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_612 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1289),
((NI) 21)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_613, "illegal context for \'nimvm\' magic", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_614 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1293),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_615 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1304),
((NI) 13)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_616 = {
0x10, 0x08, 0xe0, 0x00, 0x00, 0xe0, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_617, "semexprs.nim(1339, 22) `f == s` ", 32);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_618, "bind is deprecated", 18);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_619 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 3016),
((NI) 11)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_620, "a type conversion takes exactly one argument", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_621 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 267),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_622 = {
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_623 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 275),
((NI) 19)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_624 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 892),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_625, "illegal type conversion to \'$1\'", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_626 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 291),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_627, ":anon", 5);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_628, "object construction uses \':\', not \'=\'", 37);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_629 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 311),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_630 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_631 = {
0x10, 0xa8, 0x80, 0x00, 0x00, 0xc0, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_632 = {
0x10, 0xa9, 0x90, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_633, "suspicious code: enum to enum conversion", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_634 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 172),
((NI) 13)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_635 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_636 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 338),
((NI) 13)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_637, "illegal conversion from \'$1\' to \'$2\'", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_638 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 342),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_639, " can\'t be converted to ", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_640 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 347),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_641, "object constructor needs an object type", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_642 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 387),
((NI) 25)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_643 = {
0x10, 0x08, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_644, "\'; the object\'s generic parameters cannot be inferred and must be explicitly given", 82);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_645 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 404),
((NI) 25)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_646, "The $1 type requires the following fields to be initialized: $2.", 64);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_647 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 422),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_648, "field initialized twice: \'$1\'", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_649 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 442),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_650 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 447),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_651, "identifier expected, but got: ", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_652 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2020),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_654, "\'is\' operator takes 2 arguments", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_655 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 471),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_656 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 423),
((NI) 17)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_657, "closure", 7);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_658, "iterator", 8);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_659, "expected a template that takes ", 31);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_660, " arguments", 10);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_661 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2086),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_662, "ambiguous symbol in \'getAst\' context: ", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_663 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2088),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_664, "getAst takes a call, but got ", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_665 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2098),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_666 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2100),
((NI) 17)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_667, "\'quote\' expects 1 or 2 arguments", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_668 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2153),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_669 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2054),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_670, "``", 2);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_671, "block", 5);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_672 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2168),
((NI) 14)}
;
extern TNimType NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_673, "untyped", 7);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_674, "!=", 2);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_675, ">=", 2);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_676, ">", 1);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_677, "incl", 4);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_678, "excl", 4);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_679, "notin", 5);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_680, "isnot", 5);
N_LIB_PRIVATE NIM_CONST tyArray__Q6RksR9bl1dCf8jl3HeN9bXg names__sem_8147 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_674),
((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_675),
((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_676),
((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_677),
((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_678),
((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_129),
((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_679),
((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_680)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_681, "vm", 2);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_682, "stackTrace", 10);
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_683 = {
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, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
extern TNimType NTItspecialword__N2XsqTpO5IzOf2KmXwk4Dw_;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_684, "_", 1);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_685 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_163),
((NI) 698),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_686 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_163),
((NI) 700),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_687, "newIdentNode", 12);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_688, "getAst", 6);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_689, "use the {.experimental.} pragma to enable \'parallel\'", 52);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_690 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2361),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_691, "\'spawn\' takes a call expression; got: ", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_692 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2378),
((NI) 29)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_693, "FlowVar", 7);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_694, "nimCreateFlowVar", 16);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_695, "system needs: nimCreateFlowVar", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_696 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2291),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_698, "sizeof", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_699 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2309),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_700 = {
0x10, 0x88, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_701 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1030),
((NI) 19)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_702, ">\012but expected one of:\012", 23);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_703, " = ", 3);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_704 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1055),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_705, ":tmp", 4);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_706, "named expression expected", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_707 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2611),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_708, "named expression not allowed here", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_709 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2615),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_710, "Mixing types and values in tuples is not allowed.", 49);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_711 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2757),
((NI) 29)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_712 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2633),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_713, "typedesc not allowed as tuple field.", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_714 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2639),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_715 = {
0x10, 0x88, 0x80, 0x00, 0x00, 0xc0, 0x00, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_716 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2552),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_717, "expected ordinal value for array ", 33);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_718, "index, got \'$1\'", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_719 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 624),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_720, "size of array exceeds range of index ", 37);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_721, "type \'$1\' by $2 elements", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_722 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 643),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_723, "invalid order in array constructor", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_724 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 651),
((NI) 20)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_725 = {
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, 0x00, 0x49, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_726, "Invalid usage of cast, cast requires a type to convert to, e.g., cast[int](0d).", 79);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_727 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 368),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_728, "cannot cast to a non concrete type: \'$1\'", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_729 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 370),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_730 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_731 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_732, "target type is larger than source type", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_733 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 244),
((NI) 13)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_734, "expression cannot be cast to ", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_735 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 375),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_736, "==", 2);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_737, "cannot infer the concept parameter \'%s\', due to a type mismatch. ", 65);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_738, "attempt to equate \'%s\' and \'%s\'.", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_739 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2369),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_740, "concept predicate failed", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_741 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2405),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_742 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2428),
((NI) 21)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_743 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_744, "only a \'ref object\' can be raised", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_745 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1116),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_746, "raised object of type $1 does not inherit from Exception", 56);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_747 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1118),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_748, "ambiguous identifier: \'", 23);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_749, " -- use one of the following:\012", 30);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_750, "  ", 2);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_751 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 533),
((NI) 12)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_752 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x10,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_753, "cannot infer the type of the $1", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_754 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 598),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_755, "\'$1\' doesn\'t have a concrete type, due to unspecified generic parameters.", 73);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_756 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 601),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_757, "tuple", 5);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_758 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 621),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_759 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 623),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_760 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 633),
((NI) 13)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_761, "implicit object field construction requires a .partial object, but got ", 71);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_762 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 461),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_763, "nkDotNode requires 2 children", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_764 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 464),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_765 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 655),
((NI) 21)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_766, "a thread var cannot be initialized explicitly; this would only run for the main thread", 86);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_767 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 658),
((NI) 44)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_768, "inconsistent typing for reintroduced symbol \'", 45);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_769, "\': previous type was: ", 22);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_770, "; new type is: ", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_771 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 468),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_772 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_773, "The $1 type doesn\'t have a default value. The following fields must be initialized: $2.", 87);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_774 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 373),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_775, "The $1 distinct type doesn\'t have a default value.", 50);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_776 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_484),
((NI) 376),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_777 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 370),
((NI) 13)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_778 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 372),
((NI) 13)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_779, "\'let\' symbol requires an initialization", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_780 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 698),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_781, "cannot destructure to compile time variable", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_782 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 705),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_783 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 707),
((NI) 15)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_784, "cannot assign local to global variable", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_785 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 551),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_786 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 322),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_787 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 749),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_788 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 759),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_789 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 761),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_790, "unknown package name: ", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_791 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1145),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_792, " is not a type that can be forwarded", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_793 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1161),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_794, "only top level types in a package can be \'package\'", 50);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_795 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1179),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_796, "cannot complete type \'", 22);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_797, "\' twice; previous type completion was here: ", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_798 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1187),
((NI) 22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_799 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1288),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_800, "auto", 4);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_801, "lent", 4);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_802, "sink", 4);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_803 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 2134),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_804 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_29),
((NI) 2135),
((NI) 18)}
;
N_LIB_PRIVATE TNimType NTIobject__3G5lZo0SaSXQI9cud9cmU4vQ_;
N_LIB_PRIVATE TNimType NTIrefobject__cj85JDaB589buv4QyqKL4kw_;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_809, "non-invariant type param used in a proc type: ", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_810 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1237),
((NI) 13)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_812, "covariant param \'", 17);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_813, "\' used in a non-covariant position", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_814 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1248),
((NI) 19)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_815, "contravariant param \'", 21);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_816, "\' used in a non-contravariant position", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_817 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1256),
((NI) 19)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_819, "non-invariant type parameters cannot be used with types such \'", 62);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_820 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1262),
((NI) 11)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_821, "non-invariant type parameters are not supported in concepts", 59);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_822 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1264),
((NI) 11)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_826 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1274),
((NI) 21)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_828, "{.exportc.} not allowed for type aliases", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_829 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1362),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_830 = {
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_831, "only a \'distinct\' type can borrow `.`", 37);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_832 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1366),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_833 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1373),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_834 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1374),
((NI) 21)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_835, ":ObjectType", 11);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_836, "\'$1\' is not a concrete type; for a callback without parameters use \'proc()\'", 75);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_837 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1406),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_838 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1409),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_839 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1428),
((NI) 19)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_840, "statement returns no value that can be discarded", 48);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_841 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 60),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_842, "illegal discard proc, did you mean: ", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_843 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 63),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_844 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 215),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_845, "catch a more precise Exception deriving from CatchableError or Defect.", 70);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_846 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 217),
((NI) 13)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_847, "exception already handled", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_848 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 220),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_849, "The bare except clause is deprecated; use `except CatchableError:` instead", 74);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_850 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 259),
((NI) 15)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_851, "Mix of imported and native exception types is not allowed in one except branch", 78);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_852 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 274),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_853, "Only one finally is allowed after all other branches", 52);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_854 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 278),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_855, "Only one general except clause is allowed after more specific exceptions", 72);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_856 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 286),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_857, "invalid control flow: $1", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_858 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 84),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_859, "\'continue\' cannot have a label", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_860 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 86),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_861 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 88),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_862 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 933),
((NI) 22)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_863, "ForLoopStmt", 11);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_864, "expression \'$1\' has no type (or is ambiguous)", 45);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_865 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 103),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_866 = {
0x10, 0x08, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_867, "cannot infer element type of $1", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_868 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 809),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_869 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 815),
((NI) 31)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_870 = {
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, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_871 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 842),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_872 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 844),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_873 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_874 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 860),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_875, "true", 4);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_876, "system needs: \'true\'", 20);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_878, "/home/runner/work/nightlies/nightlies/nim/compiler/semfields.nim", 64);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_877 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_878),
((NI) 111),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_879 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_878),
((NI) 121),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__DKP9c7KM5AbqYVP6Gd9blNUw_880 = {
0x10, 0xa8, 0x80, 0x00, 0x00, 0xe0, 0xb0, 0x00,
0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_881, "no object or tuple type", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_882 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_878),
((NI) 127),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_883, "Field", 5);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_884, "\'continue\' not supported in a \'fields\' loop", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_885 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_878),
((NI) 53),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_886, "parallel \'fields\' iterator does not work for \'case\' objects", 59);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_887 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_878),
((NI) 81),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw TM__DKP9c7KM5AbqYVP6Gd9blNUw_888 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_889, "items", 5);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_890, "pairs", 5);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_891, "iterator within for loop context expected", 41);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_892 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1013),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_893, "case", 4);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_894, "selector must be of an ordinal type, float or string", 52);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_895 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 976),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_896 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1078),
((NI) 15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_897 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1087),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_898 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1090),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_899, "no return type declared", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_900 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1883),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_901, "\'return\' not allowed here", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_902 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1890),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_903, "using", 5);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_904 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 392),
((NI) 34)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_905, "\'using\' section must have a type", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_906 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 408),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_907, "\'using\' sections cannot contain assignments", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_908 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 411),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_909, "\'yield\' only allowed in an iterator", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_910 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1965),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_911, "semYield", 8);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_912 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1973),
((NI) 39)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_913, "tuple constructor", 17);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_914 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1952),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_915 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1954),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_916, "current routine cannot return an expression", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_917 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1983),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_918, "yield statement must yield a value", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_919 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1985),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_920 = {
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, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_921 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x1f,
0x8f, 0x07, 0x00, 0x00, 0x00, 0x03, 0xc4, 0x33,
0x39, 0xf0, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_922 = {
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, 0x0c, 0x40, 0x00, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_923, "iterator needs a return type", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_924 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2195),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_925 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2204),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_926 = {
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, 0x0c, 0x49, 0x06, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_927 = {
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, 0x00, 0x49, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_928, "method", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_929 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2218),
((NI) 34)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_930 = {
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, 0x0c, 0x49, 0x06, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_931, "converter", 9);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_932 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2239),
((NI) 34)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_933, "$1 needs a return type", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_934 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2249),
((NI) 28)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_935, "a converter takes exactly one argument", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_936 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2250),
((NI) 27)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_937 = {
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, 0x0c, 0x00, 0x00, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_938 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2269),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_939, "import", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_940 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 3193),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_941 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 3196),
((NI) 36)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_942, "from", 4);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_943 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 3199),
((NI) 36)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_944, "/", 1);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_945, "Cannot use \'", 12);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_946, "\' in \'include\'.", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_947 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2289),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_948, "include", 7);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_949 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2277),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_950 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 3205),
((NI) 36)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_951, "cannot export: ", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_952 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2718),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_953, "; enum field cannot be exported individually", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_954 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2731),
((NI) 20)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_955, "rawImportSymbol", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_956 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2744),
((NI) 31)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_957 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 3208),
((NI) 36)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_958, "The export/except syntax expects a module name", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_959 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 2693),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw TM__DKP9c7KM5AbqYVP6Gd9blNUw_960 = {
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, 0x40, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_961, "invalid pragma block: ", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_962 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 2322),
((NI) 18)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_963, "defer statement not supported at top level", 42);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_964 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 3216),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_965, "\'defer\' takes a \'void\' expression", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_966 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 3219),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_967, "invalid context for \'bind\' statement: ", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_968 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 3232),
((NI) 16)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_969, "invalid expression: ", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_970 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 3235),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_971 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 79),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_972 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 91),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_973 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 371),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_974 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 382),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_975 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 385),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_976 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 60),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_977 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 65),
((NI) 14)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_978, "cannot infer type of parameter: ", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_979 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1678),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_983 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_20),
((NI) 1480),
((NI) 22)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_984, "echo", 4);
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_985, "system needs: echo", 18);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_986 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_10),
((NI) 1100),
((NI) 29)}
;
extern TNimType NTIesuggestdone__0sxcG9bses4KEF5Ub8L9ae1Q_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_989 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 677),
((NI) 13)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_990, "n is not nil", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_991 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 688),
((NI) 17)}
;
STRING_LITERAL(TM__DKP9c7KM5AbqYVP6Gd9blNUw_992, "no code for ", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__DKP9c7KM5AbqYVP6Gd9blNUw_993 = {((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_4),
((NI) 548),
((NI) 21)}
;
extern tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ gch__system_5220;
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_CACHE989[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_5311)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* 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__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5273)(void* usr) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* result;
	NI T1_;
	result = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (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_5316)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	addZCT__system_5267((&gch__system_5220.zct), c);
}
static N_INLINE(void, decRef__system_5318)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* 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_5316(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T5_ = usrToCell__system_5273(src);
		incRef__system_5311(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T10_ = usrToCell__system_5273((*dest));
		decRef__system_5318(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__wg9aowaxscbUe2F0nV9btZLg, nextTypeId__ast_3122)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x) {
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	(*x).typeId_0 += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	result.module = (*x).module;
	result.item = (*x).typeId_0;
	return result;
}
static N_INLINE(NI, len__ast_3155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(NI, safeLen__ast_3148)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 0) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__ast_3155(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, getCallLineInfo__sem_2443)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw result;
{	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw));
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26):
	{
		{
			NI T4_;
			T4_ = (NI)0;
			T4_ = len__ast_3155(n);
			if (!(((NI) 0) < T4_)) goto LA5_;
			result = getCallLineInfo__sem_2443((*n)._kind_6.sons->data[((NI) 0)]);
			goto BeforeRet_;
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
	{
		{
			NI T10_;
			T10_ = (NI)0;
			T10_ = len__ast_3155(n);
			if (!(((NI) 1) < T10_)) goto LA11_;
			result = getCallLineInfo__sem_2443((*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__uh9cWvEa5Ty85PXOtuP5emw*, symChoice__sem_6911)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ r, NIM_BOOL isField) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* a;
	tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg o;
	NI i;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
	result = NIM_NIL;
	a = NIM_NIL;
	nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg));
	i = ((NI) 0);
	a = initOverloadIter__lookups_3120((&o), c, n);
	{
		while (1) {
			if (!!((a == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA2;
			{
				if (!!(((*a).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6)))) goto LA5_;
				i += ((NI) 1);
				{
					if (!(((NI) 1) < i)) goto LA9_;
					goto LA1;
				}
				LA9_: ;
			}
			LA5_: ;
			a = nextOverloadIter__lookups_3274((&o), c, n);
		} LA2: ;
	} LA1: ;
	info = getCallLineInfo__sem_2443(n);
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = (i <= ((NI) 1));
		if (!(T13_)) goto LA14_;
		T13_ = !((r == ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 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__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0));
			LA20_: ;
			if (!T19_) goto LA21_;
			result = newSymNode__ast_3707(s, info);
			markUsed__sigmatch_85(c, info, s);
		}
		goto LA17_;
		LA21_: ;
		{
			result = n;
		}
		LA17_: ;
	}
	goto LA11_;
	LA15_: ;
	{
		tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T32_;
		{
			NIM_BOOL T27_;
			T27_ = (NIM_BOOL)0;
			T27_ = (r == ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0));
			if (T27_) goto LA28_;
			T27_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45));
			LA28_: ;
			if (!T27_) goto LA29_;
			kind = ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56);
		}
		goto LA25_;
		LA29_: ;
		{
			kind = ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57);
		}
		LA25_: ;
		T32_ = NIM_NIL;
		T32_ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0), c);
		result = newNodeIT__ast_3342(kind, info, T32_);
		a = initOverloadIter__lookups_3120((&o), c, n);
		{
			while (1) {
				if (!!((a == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA34;
				{
					NIM_BOOL T37_;
					NIM_BOOL T39_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T43_;
					T37_ = (NIM_BOOL)0;
					T37_ = !(((*a).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6)));
					if (!(T37_)) goto LA38_;
					T39_ = (NIM_BOOL)0;
					T39_ = !(isField);
					if (T39_) goto LA40_;
					T39_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0));
					LA40_: ;
					T37_ = T39_;
					LA38_: ;
					if (!T37_) goto LA41_;
					(*a).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
					markOwnerModuleAsUsed__sigmatch_89(c, a);
					T43_ = NIM_NIL;
					T43_ = newSymNode__ast_3707(a, info);
					add__ast_4798(result, T43_);
				}
				LA41_: ;
				a = nextOverloadIter__lookups_3274((&o), c, n);
			} LA34: ;
		}
	}
	LA11_: ;
	return result;
}
static N_INLINE(void, markIndirect__semdata_1090)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	{
		if (!((126976 &((NU32)1<<((NU)((*s).kind)&31U)))!=0)) goto LA3_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 17)) & 63);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, enumFieldSymChoice__sem_21681)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg o;
	NI i;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* a;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
	result = NIM_NIL;
	nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg));
	i = ((NI) 0);
	a = initOverloadIter__lookups_3120((&o), c, n);
	{
		while (1) {
			if (!!((a == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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_3274((&o), c, n);
		} LA2: ;
	} LA1: ;
	info = getCallLineInfo__sem_2443(n);
	{
		if (!(i <= ((NI) 1))) goto LA13_;
		{
			if (!!((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0))) goto LA17_;
			result = newSymNode__ast_3707(s, info);
			markUsed__sigmatch_85(c, info, s);
		}
		goto LA15_;
		LA17_: ;
		{
			result = n;
		}
		LA15_: ;
	}
	goto LA11_;
	LA13_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T21_;
		T21_ = NIM_NIL;
		T21_ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0), c);
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56), info, T21_);
		a = initOverloadIter__lookups_3120((&o), c, n);
		{
			while (1) {
				if (!!((a == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA23;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T28_;
					if (!((1568768 &((NU32)1<<((NU)((*a).kind)&31U)))!=0)) goto LA26_;
					(*a).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
					markOwnerModuleAsUsed__sigmatch_89(c, a);
					T28_ = NIM_NIL;
					T28_ = newSymNode__ast_3707(a, info);
					add__ast_4798(result, T28_);
				}
				LA26_: ;
				a = nextOverloadIter__lookups_3274((&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_1733)(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_1733(((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__uh9cWvEa5Ty85PXOtuP5emw*, inlineConst__sem_15114)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = copyTree__ast_4432((*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__lx9aDnWjKktcSUo0yfjOvMg) 0));
		T5_ = rawNewString((T6_ ? T6_->Sup.len : 0) + 32);
appendString(T5_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_7));
appendString(T5_, T6_);
appendString(T5_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_8));
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T5_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_9, NIM_FALSE);
		result = newSymNode__ast_3704(s);
	}
	goto LA1_;
	LA3_: ;
	{
		asgnRef((void**) (&(*result).typ), (*s).typ);
		(*result).info = (*n).info;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, resetSemFlag__sem_2829)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		if (!!((n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA3_;
		(*n).flags &= ~(((NU32)1) << ((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 7)) & 31));
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					resetSemFlag__sem_2829((*n)._kind_6.sons->data[i]);
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, implicitlyDiscardable__sem_9782)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
	NIM_BOOL T3_;
	NIM_BOOL T5_;
	NIM_BOOL T6_;
	result = (NIM_BOOL)0;
	n_2 = n;
	{
		while (1) {
			if (!((TM__DKP9c7KM5AbqYVP6Gd9blNUw_17[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)) goto LA2;
			n_2 = lastSon__ast_4833(n_2);
		} LA2: ;
	}
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 108) || (*n_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 109) || (*n_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 110) || (*n_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 111));
	if (T3_) goto LA4_;
	T5_ = (NIM_BOOL)0;
	T6_ = (NIM_BOOL)0;
	T6_ = isCallExpr__ast_3133(n_2);
	if (!(T6_)) goto LA7_;
	T6_ = ((*(*n_2)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0);
	LA8_: ;
	T3_ = T5_;
	LA4_: ;
	result = T3_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, discardCheck__sem_9980)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
{	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*c).matchedConcept == ((tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw*) NIM_NIL)));
		if (T3_) goto LA4_;
		T3_ = ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 3))&31U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = !(((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T9_)) goto LA10_;
		T9_ = !(((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7) || (*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63)));
		LA10_: ;
		if (!T9_) goto LA11_;
		{
			NIM_BOOL T15_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
			T15_ = (NIM_BOOL)0;
			T15_ = implicitlyDiscardable__sem_9782(result);
			if (!T15_) goto LA16_;
			n = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 114), (*result).info, ((NI) 1));
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), result);
		}
		goto LA13_;
		LA16_: ;
		{
			NIM_BOOL T19_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
			NimStringDesc* s;
			NimStringDesc* T36_;
			NimStringDesc* T37_;
			NimStringDesc* T38_;
			T19_ = (NIM_BOOL)0;
			T19_ = !(((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50)));
			if (!(T19_)) goto LA20_;
			T19_ = !(((*(*(*c).graph).config).cmd == ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 24)));
			LA20_: ;
			if (!T19_) goto LA21_;
			{
				NimStringDesc* T27_;
				NimStringDesc* T28_;
				if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0))) goto LA25_;
				T27_ = NIM_NIL;
				T28_ = NIM_NIL;
				T28_ = renderTree__renderer_46(result, 4);
				T27_ = rawNewString((T28_ ? T28_->Sup.len : 0) + 24);
appendString(T27_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_18));
appendString(T27_, T28_);
				liMessage__msgs_1128((*(*c).graph).config, (*result).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T27_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_19, NIM_FALSE);
			}
			LA25_: ;
			n_2 = result;
			{
				while (1) {
					if (!((TM__DKP9c7KM5AbqYVP6Gd9blNUw_17[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)) goto LA30;
					{
						if (!((*n_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106))) goto LA33_;
						n_2 = (*n_2)._kind_6.sons->data[((NI) 0)];
					}
					goto LA31_;
					LA33_: ;
					{
						n_2 = lastSon__ast_4833(n_2);
					}
					LA31_: ;
				} LA30: ;
			}
			T36_ = NIM_NIL;
			T37_ = NIM_NIL;
			T37_ = dollar___renderer_2116(n_2);
			T38_ = NIM_NIL;
			T38_ = typeToString__types_50((*result).typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T36_ = rawNewString((T37_ ? T37_->Sup.len : 0) + (T38_ ? T38_->Sup.len : 0) + 61);
appendString(T36_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_21));
appendString(T36_, T37_);
appendString(T36_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_22));
appendString(T36_, T38_);
appendString(T36_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_23));
			s = T36_;
			{
				NIM_BOOL T41_;
				NimStringDesc* T45_;
				NimStringDesc* T46_;
				T41_ = (NIM_BOOL)0;
				T41_ = !(((*result).info.line == (*n_2).info.line));
				if (T41_) goto LA42_;
				T41_ = !(((*result).info.fileIndex == (*n_2).info.fileIndex));
				LA42_: ;
				if (!T41_) goto LA43_;
				T45_ = NIM_NIL;
				T46_ = NIM_NIL;
				T46_ = dollar___msgs_634((*(*c).graph).config, (*result).info);
				T45_ = rawNewString((T46_ ? T46_->Sup.len : 0) + 28);
appendString(T45_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_24));
appendString(T45_, T46_);
				s = resizeString(s, (T45_ ? T45_->Sup.len : 0) + 0);
appendString(s, T45_);
			}
			LA43_: ;
			{
				if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25))) goto LA49_;
				s = resizeString(s, 28);
appendString(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_25));
			}
			LA49_: ;
			liMessage__msgs_1128((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), s, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_26, NIM_FALSE);
		}
		goto LA13_;
		LA21_: ;
		LA13_: ;
	}
	LA11_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExprNoType__sem_62)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NIM_BOOL isPush;
	result = NIM_NIL;
	isPush = hasHint__options_530((*(*c).graph).config, ((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 104));
	{
		if (!isPush) goto LA3_;
		pushInfoContext__msgs_500((*(*c).graph).config, (*n).info, ((NimStringDesc*) NIM_NIL));
	}
	LA3_: ;
	result = semExpr__sem_52(c, n, 128, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	discardCheck__sem_9980(c, result, 0);
	{
		if (!isPush) goto LA7_;
		popInfoContext__msgs_517((*(*c).graph).config);
	}
	LA7_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semStmt__sem_87)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 3))&31U)))!=0))) goto LA3_;
		result = semExprNoType__sem_62(c, n);
	}
	goto LA1_;
	LA3_: ;
	{
		result = semExpr__sem_52(c, n, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, len__ast_3990)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* 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_5909)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* typExpr) {
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
		if (!!((prev == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA3_;
		result = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4), c);
		rawAddSon__ast_4276(result, (*typExpr).typ, NIM_TRUE);
		asgnRef((void**) (&(*result).sym), (*prev).sym);
		assignType__ast_3964(prev, result);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semTypeOf__sem_6197)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* t;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	t = semExprWithType__sem_57(c, n, 8, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	closeScope__lookups_108(c);
	fixupTypeOf__sem_5909(c, prev, t);
	result = (*t).typ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newOrPrevType__sem_2981)(tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	{
		if (!(prev == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA3_;
		result = newTypeS__semdata_763(kind, c);
	}
	goto LA1_;
	LA3_: ;
	{
		result = prev;
		{
			if (!((*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 30))) goto LA8_;
			(*result).kind = kind;
		}
		LA8_: ;
	}
	LA1_: ;
	return result;
}
static N_INLINE(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, skipIntLit__magicsys_124)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* id) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*t).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = nextTypeId__ast_3122(id);
		result = copyType__ast_4034(t, T7_, (*t).owner);
		asgnRef((void**) (&(*result).n), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
	}
	goto LA1_;
	LA5_: ;
	{
		result = t;
	}
	LA1_: ;
	return result;
}
static N_INLINE(void, initIntSet__pureZcollectionsZintsets_238)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result) {
	initPackedSet__pureZcollectionsZintsets_16(Result);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRecursiveType__sem_3329)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* cycleDetector) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!(t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* xX60gensym674_;
		NIM_BOOL T7_;
		xX60gensym674_ = t;
		T7_ = (NIM_BOOL)0;
		T7_ = containsOrIncl__astalgo_402(cycleDetector, (NI)((NI)((NU64)(((NI) ((*xX60gensym674_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym674_).Sup.itemId.item))));
		if (!T7_) goto LA8_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA8_: ;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T11_;
		T11_ = NIM_NIL;
		T11_ = lastSon__ast_3731(t);
		result = isRecursiveType__sem_3329(T11_, cycleDetector);
		goto BeforeRet_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRecursiveType__sem_3350)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	NIM_BOOL result;
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw cycleDetector;
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&cycleDetector), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	initIntSet__pureZcollectionsZintsets_238((&cycleDetector));
	result = isRecursiveType__sem_3329(t, (&cycleDetector));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLitChecked__sem_3354)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* father, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* son, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* id) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* s;
	NI T1_;
	s = skipIntLit__magicsys_124(son, id);
	asgnRef((void**) (&(*father).sons), (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) incrSeqV3((TGenericSeq*)((*father).sons), (&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_)));
	T1_ = (*father).sons->Sup.len++;
	asgnRef((void**) (&(*father).sons->data[T1_]), s);
	{
		NIM_BOOL T4_;
		NimStringDesc* T7_;
		NimStringDesc* T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = isRecursiveType__sem_3350(s);
		if (!T4_) goto LA5_;
		T7_ = NIM_NIL;
		T8_ = NIM_NIL;
		T8_ = typeToString__types_50(s, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
		T7_ = rawNewString((T8_ ? T8_->Sup.len : 0) + 28);
appendString(T7_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_30));
appendString(T7_, T8_);
appendString(T7_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_31));
		liMessage__msgs_1128((*(*c).graph).config, (*it).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T7_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_32, NIM_FALSE);
	}
	goto LA2_;
	LA5_: ;
	{
		propagateToOwner__ast_4207(father, s, NIM_TRUE);
	}
	LA2_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semAnonTuple__sem_3746)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_28, NIM_FALSE);
	}
	LA4_: ;
	result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18), prev, c);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
		it = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
					if (!(i_2 < colontmp_)) goto LA9;
					i = i_2;
					it = (*n)._kind_6.sons->data[i];
					t = semTypeNode__sem_83(c, it, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					addSonSkipIntLitChecked__sem_3354(c, result, t, it, (*c).Sup.idgen);
					i_2 += ((NI) 1);
				} LA9: ;
			}
		}
	}
	return result;
}
static N_INLINE(NIM_BOOL, eqeq___idents_229)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* a, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* 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_1741)(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_1741(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnresolvedSym__sem_16163)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = (((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 27))&63U)))!=0);
		if (T8_) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3));
		if (!(T10_)) goto LA11_;
		T10_ = isMetaType__ast_3474((*s).typ);
		LA11_: ;
		T8_ = T10_;
		LA9_: ;
		T7_ = T8_;
		if (T7_) goto LA12_;
		T13_ = (NIM_BOOL)0;
		T13_ = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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_146)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		result = isUnresolvedSym__sem_16163((*n)._kind_4.sym);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
		NIM_BOOL amb;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
		ident = considerQuotedIdent__lookups_29(c, n, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		amb = NIM_FALSE;
		sym = searchInScopes__lookups_603(c, ident, (&amb));
		{
			if (!!((sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA5_;
			result = isUnresolvedSym__sem_16163(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_3148(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_146(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_3446)(NF x) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = isnan(x);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semRangeAux__sem_3379)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg range;
	tyArray__UPrnokFxJ17u4nhV8hUltw rangeT;
	NIM_BOOL hasUnknownTypes;
	NIM_BOOL T12_;
	NIM_BOOL T13_;
	result = NIM_NIL;
	checkSonsLen__semdata_1107(n, ((NI) 3), (*(*c).graph).config);
	result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 20), prev, c);
	asgnRef((void**) (&(*result).n), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 44), (*n).info));
	T1_ = NIM_NIL;
	T1_ = errorType__semdata_1032(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__clSgDh22o9au33BrVH9bDQZw) 1));
		if (T4_) goto LA5_;
		T4_ = ((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
		LA5_: ;
		if (!T4_) goto LA6_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_34), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_35, NIM_FALSE);
	}
	LA6_: ;
	nimZeroMem((void*)range, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	range[(((NI) 0))- 0] = semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 1)], 512, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	range[(((NI) 1))- 0] = semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 2)], 512, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	nimZeroMem((void*)rangeT, sizeof(tyArray__UPrnokFxJ17u4nhV8hUltw));
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T11_;
				if (!(res <= ((NI) 1))) goto LA10;
				i = res;
				T11_ = NIM_NIL;
				T11_ = skipTypes__ast_3723((*range[(i)- 0]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_36);
				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__b28l2MkhJpnFhatVrsrXpg) 61));
	LA14_: ;
	T12_ = T13_;
	if (T12_) goto LA15_;
	T12_ = ((*rangeT[(((NI) 1))- 0]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 61));
	LA15_: ;
	hasUnknownTypes = T12_;
	{
		if (!!(hasUnknownTypes)) goto LA18_;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T22_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T23_;
			NIM_BOOL T24_;
			T22_ = NIM_NIL;
			T22_ = skipTypes__ast_3723(rangeT[(((NI) 0))- 0], TM__DKP9c7KM5AbqYVP6Gd9blNUw_37);
			T23_ = NIM_NIL;
			T23_ = skipTypes__ast_3723(rangeT[(((NI) 1))- 0], TM__DKP9c7KM5AbqYVP6Gd9blNUw_37);
			T24_ = (NIM_BOOL)0;
			T24_ = sameType__types_1886(T22_, T23_, 0);
			if (!!(T24_)) goto LA25_;
			typeMismatch__types_3934((*(*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__b28l2MkhJpnFhatVrsrXpg) 36) && (*rangeT[(((NI) 0))- 0]).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39)));
			LA31_: ;
			T28_ = T29_;
			if (T28_) goto LA32_;
			T28_ = ((*rangeT[(((NI) 0))- 0]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
			LA32_: ;
			if (!T28_) goto LA33_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_38), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_39, 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__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T40_ = NIM_NIL;
			T40_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_40), T39_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T40_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_41, 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__uh9cWvEa5Ty85PXOtuP5emw* T49_;
					T46_ = (NIM_BOOL)0;
					T46_ = hasUnresolvedArgs__sem_146(c, range[(i_2)- 0]);
					if (!T46_) goto LA47_;
					T49_ = NIM_NIL;
					T49_ = makeStaticExpr__semdata_856(c, range[(i_2)- 0]);
					add__ast_4798((*result).n, T49_);
					(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9)) & 63);
				}
				goto LA44_;
				LA47_: ;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T51_;
					T51_ = NIM_NIL;
					T51_ = semConstExpr__sem_619(c, range[(i_2)- 0], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					add__ast_4798((*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__clSgDh22o9au33BrVH9bDQZw) 16) && (*(*(*result).n)._kind_6.sons->data[((NI) 0)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 18));
		if (!(T55_)) goto LA56_;
		T55_ = isNaN__sem_3446((*(*(*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__clSgDh22o9au33BrVH9bDQZw) 16) && (*(*(*result).n)._kind_6.sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 18));
		if (!(T58_)) goto LA59_;
		T58_ = isNaN__sem_3446((*(*(*result).n)._kind_6.sons->data[((NI) 1)])._kind_2.floatVal);
		LA59_: ;
		T54_ = T58_;
		LA57_: ;
		if (!T54_) goto LA60_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_42), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_43, NIM_FALSE);
	}
	LA60_: ;
	{
		tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T64_;
		T64_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)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__IpKb3A5pjRWQdH9cJ0v9cKgg) 1))) goto LA65_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_34), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_44, NIM_FALSE);
	}
	LA65_: ;
	asgnRef((void**) (&(*result).sons->data[((NI) 0)]), rangeT[(((NI) 0))- 0]);
	return result;
}
static N_INLINE(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, freshType__sem_5944)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* res, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	{
		tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T5_;
		if (!(prev == 0)) goto LA3_;
		T5_ = nextTypeId__ast_3122((*c).Sup.idgen);
		result = copyType__ast_4034(res, T5_, (*res).owner);
		copyTypeProps__modulegraphs_8910((*c).graph, ((NI) ((*(*c).Sup.idgen).module)), result, res);
	}
	goto LA1_;
	LA3_: ;
	{
		result = res;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, maybeAliasType__sem_5896)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typeExpr, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*typeExpr).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17) || (*typeExpr).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*typeExpr).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13) || (*typeExpr).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 30) || (*typeExpr).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10));
		if (!(T3_)) goto LA4_;
		T3_ = !((prev == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4), c);
		rawAddSon__ast_4276(result, typeExpr, NIM_TRUE);
		asgnRef((void**) (&(*result).sym), (*prev).sym);
		assignType__ast_3964(prev, result);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semTypeExpr__sem_5918)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
	result = NIM_NIL;
	n_2 = semExprWithType__sem_57(c, n, 512, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	{
		if (!((*(*n_2).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8))) goto LA3_;
		result = base__types_63((*n_2).typ);
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = !((prev == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T7_)) goto LA8_;
			T7_ = !(((*prev).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__kQDDJGUiaUAtO9c9b6LjZYjA* alias;
				alias = maybeAliasType__sem_5896(c, result, prev);
				{
					if (!!((alias == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) 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__DKP9c7KM5AbqYVP6Gd9blNUw_48));
appendString(T21_, T22_);
		liMessage__msgs_1128((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T21_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_49, NIM_FALSE);
		result = errorType__semdata_1032(c);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newConstraint__sem_2994)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg k) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	result = NIM_NIL;
	result = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 51), c);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 38)) & 63);
	T1_ = NIM_NIL;
	T1_ = newTypeS__semdata_763(k, c);
	addSonSkipIntLit__magicsys_136(result, T1_, (*c).Sup.idgen);
	return result;
}
static N_INLINE(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, skipGenericInvocation__sem_4695)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	result = t;
	{
		if (!((*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9))) goto LA3_;
		result = (*result).sons->data[((NI) 0)];
	}
	LA3_: ;
	{
		while (1) {
			if (!((*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11) || (*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10) || (*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22) || (*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21) || (*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4) || (*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46) || (*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45))) goto LA6;
			result = lastSon__ast_3731(result);
		} LA6: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addInheritedFieldsAux__sem_4650)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* check, NI* pos, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 139):
	{
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA4_;
			internalErrorImpl__msgs_1441((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_63), TM__DKP9c7KM5AbqYVP6Gd9blNUw_64);
		}
		LA4_: ;
		addInheritedFieldsAux__sem_4650(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_3155(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__clSgDh22o9au33BrVH9bDQZw) 85):
					case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88):
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T10_;
						T10_ = NIM_NIL;
						T10_ = lastSon__ast_4833((*n)._kind_6.sons->data[i]);
						addInheritedFieldsAux__sem_4650(c, check, pos, T10_);
					}
					break;
					default:
					{
						internalErrorImpl__msgs_1441((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_65), TM__DKP9c7KM5AbqYVP6Gd9blNUw_66);
					}
					break;
					}
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 140):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 86))));
			colontmp__3 = len__ast_3155(n);
			i_4 = colontmp__2;
			{
				while (1) {
					if (!(i_4 < colontmp__3)) goto LA15;
					i_3 = i_4;
					addInheritedFieldsAux__sem_4650(c, check, pos, (*n)._kind_6.sons->data[i_3]);
					i_4 += ((NI) 1);
				} LA15: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		incl__pureZcollectionsZintsets_55(check, (*(*(*n)._kind_4.sym).name).id);
		(*pos) += ((NI) 1);
	}
	break;
	default:
	{
		internalErrorImpl__msgs_1441((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_67), TM__DKP9c7KM5AbqYVP6Gd9blNUw_68);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, addInheritedFields__sem_4710)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* check, NI* pos, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* obj) {
	{
		NIM_BOOL T3_;
		NI T4_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T8_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_3990(obj);
		T3_ = (((NI) 0) < T4_);
		if (!(T3_)) goto LA5_;
		T3_ = !(((*obj).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA5_: ;
		if (!T3_) goto LA6_;
		T8_ = NIM_NIL;
		T8_ = skipGenericInvocation__sem_4695((*obj).sons->data[((NI) 0)]);
		addInheritedFields__sem_4710(c, check, pos, T8_);
	}
	LA6_: ;
	addInheritedFieldsAux__sem_4650(c, check, pos, (*obj).n);
}
static N_INLINE(NIM_BOOL, isGenericParams__ast_4617)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = !((n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
	if (!(T1_)) goto LA2_;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 75));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4628)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
	if (!(T2_)) goto LA3_;
	T2_ = ((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52) || (*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = isGenericParams__ast_4617((*n)._kind_6.sons->data[((NI) 2)]);
	LA4_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isGenericRoutineStrict__ast_4640)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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_4628((*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_625)(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__DKP9c7KM5AbqYVP6Gd9blNUw_76));
		addInt__stdZprivateZdigitsutils_189((&result), info.Field1);
		{
			if (!(((NI) 0) < (NI)(info.Field2 + ((NI) 1)))) goto LA7_;
			result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_77));
			addInt__stdZprivateZdigitsutils_189((&result), (NI)(info.Field2 + ((NI) 1)));
		}
		LA7_: ;
		result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_78));
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isTopLevel__semdata_1121)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*(*c).currentScope).depthLevel <= ((NI) 2));
	return result;
}
static N_INLINE(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextSymId__ast_3103)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x) {
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	(*x).symId += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	result.module = (*x).module;
	result.item = (*x).symId;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fillMixinScope__sem_1307)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c) {
	tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA* p;
	p = (*c).p;
	{
		while (1) {
			if (!!((p == ((tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA*) NIM_NIL)))) goto LA2;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** bnd;
				NI i;
				NI L;
				NI T4_;
				bnd = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)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__uh9cWvEa5Ty85PXOtuP5emw* n;
							n = NIM_NIL;
							{
								NI i_2;
								NI colontmp_;
								NI i_3;
								i_2 = (NI)0;
								colontmp_ = (NI)0;
								colontmp_ = safeLen__ast_3148((*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, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T1_;
	T1_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = usrToCell__system_5273(p);
	decRef__system_5318(T1_);
}
static N_INLINE(void, addDeclAt__lookups_1509)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* scope, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym) {
	addDeclAt__lookups_995(c, scope, sym, (*sym).info);
}
static N_INLINE(void, addDecl__lookups_1517)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym) {
	addDeclAt__lookups_1509(c, (*c).currentScope, sym);
}
N_LIB_PRIVATE N_NIMCALL(void, rawPushProcCon__sem_859)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner) {
	tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA* x;
	x = NIM_NIL;
	x = (tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA*) newObj((&NTIpproccon__10LrMeEGcZEU1Ndh5rhoUg_), sizeof(tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA));
	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_1189)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* p) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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_3148(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_1189((*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_78)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* newType, NIM_BOOL check) {
{	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T5_;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					T5_ = NIM_NIL;
					T5_ = elemType__types_263(newType);
					changeType__sem_78(c, (*n)._kind_6.sons->data[i], T5_, check);
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tup;
		tup = skipTypes__ast_3723(newType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_90);
		{
			if (!!(((*tup).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18)))) goto LA9_;
			{
				if (!((*tup).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17))) goto LA13_;
				goto BeforeRet_;
			}
			LA13_: ;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_91), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__DKP9c7KM5AbqYVP6Gd9blNUw_92, NIM_FALSE);
		}
		goto LA7_;
		LA9_: ;
		{
			NIM_BOOL T16_;
			NI T17_;
			T16_ = (NIM_BOOL)0;
			T17_ = (NI)0;
			T17_ = len__ast_3155(n);
			T16_ = (((NI) 0) < T17_);
			if (!(T16_)) goto LA18_;
			T16_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_3155(n);
				i_4 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA26_;
							liMessage__msgs_1128((*(*c).graph).config, (*m).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_93), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__DKP9c7KM5AbqYVP6Gd9blNUw_94, NIM_FALSE);
							goto BeforeRet_;
						}
						LA26_: ;
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* f;
							if (!!(((*tup).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA30_;
							f = getSymFromList__astalgo_245((*tup).n, (*(*m)._kind_4.sym).name, ((NI) 0));
							{
								NimStringDesc* T36_;
								if (!(f == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__DKP9c7KM5AbqYVP6Gd9blNUw_95));
appendString(T36_, (*(*(*m)._kind_4.sym).name).s);
								liMessage__msgs_1128((*(*c).graph).config, (*m).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T36_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__DKP9c7KM5AbqYVP6Gd9blNUw_96, NIM_FALSE);
								goto BeforeRet_;
							}
							LA34_: ;
							changeType__sem_78(c, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 1)], (*f).typ, check);
						}
						goto LA28_;
						LA30_: ;
						{
							changeType__sem_78(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_3155(n);
				i_6 = ((NI) 0);
				{
					while (1) {
						if (!(i_6 < colontmp__3)) goto LA41;
						i_5 = i_6;
						changeType__sem_78(c, (*n)._kind_6.sons->data[i_5], (*tup).sons->data[i_5], check);
						i_6 += ((NI) 1);
					} LA41: ;
				}
			}
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 15)));
			LA47_: ;
			T45_ = T46_;
			if (!(T45_)) goto LA48_;
			T49_ = (NIM_BOOL)0;
			T49_ = sameType__types_1886((*n).typ, newType, 0);
			T45_ = !(T49_);
			LA48_: ;
			if (!T45_) goto LA50_;
			value = (*n)._kind_1.intVal;
			{
				NIM_BOOL T54_;
				tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T55_;
				tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T57_;
				NimStringDesc* T60_;
				NimStringDesc* T61_;
				NimStringDesc* T62_;
				T54_ = (NIM_BOOL)0;
				T55_ = firstOrd__types_1406((*(*c).graph).config, newType);
				T54_ = lt___int495056_931(value, T55_);
				if (T54_) goto LA56_;
				T57_ = lastOrd__types_1532((*(*c).graph).config, newType);
				T54_ = lt___int495056_905(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__lx9aDnWjKktcSUo0yfjOvMg) 0));
				T60_ = rawNewString((T61_ ? T61_->Sup.len : 0) + (T62_ ? T62_->Sup.len : 0) + 19);
appendString(T60_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_97));
appendString(T60_, T61_);
appendString(T60_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_98));
appendString(T60_, T62_);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T60_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_99, NIM_FALSE);
			}
			LA58_: ;
		}
		LA50_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 16) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_1675((*n)._kind_2.floatVal, newType);
			T66_ = !(T68_);
			LA67_: ;
			if (!T66_) goto LA69_;
			nimZeroMem((void*)T71_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T71_[0] = dollar___system_3126((*n)._kind_2.floatVal);
			T71_[1] = typeToString__types_50(newType, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T72_ = NIM_NIL;
			T72_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_100), T71_, 2);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T72_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_101, NIM_FALSE);
		}
		LA69_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	asgnRef((void**) (&(*n).typ), newType);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, fitNodePostMatch__sem_168)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
	result = NIM_NIL;
	x = skipConv__types_3661(arg);
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T8_;
		NIM_BOOL T10_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39));
		if (!(T5_)) goto LA6_;
		T5_ = ((*formal).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19));
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA7_;
		T8_ = NIM_NIL;
		T8_ = base__types_63(formal);
		T4_ = !(((*T8_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12)));
		LA7_: ;
		T3_ = T4_;
		if (T3_) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160));
		if (!(T10_)) goto LA11_;
		T10_ = !(((*formal).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6) || (*formal).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 51) || (*formal).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 59)));
		LA11_: ;
		T3_ = T10_;
		LA9_: ;
		if (!T3_) goto LA12_;
		changeType__sem_78(c, x, formal, NIM_TRUE);
	}
	LA12_: ;
	result = arg;
	result = skipHiddenSubConv__types_3738(result, (*c).graph, (*c).Sup.idgen);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, instantiateProcType__sem_1211)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* prc, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_LayeredIdTablecolonObjectType___9aSR8D74Pb4ozXN6gEJ9a1Pw* typeMap;
	tyObject_TReplTypeVars__itU2h89a2PcJoJ5bHADfePw cl;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* originalParams;
	pushInfoContext__msgs_500((*(*c).graph).config, info, ((NimStringDesc*) NIM_NIL));
	typeMap = initLayeredTypeMap__semtypinst_134(pt);
	nimZeroMem((void*)(&cl), sizeof(tyObject_TReplTypeVars__itU2h89a2PcJoJ5bHADfePw));
	initTypeVars__semtypinst_1018(c, typeMap, info, ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL), (&cl));
	result = instCopyType__semtypinst_492((&cl), (*prc).typ);
	originalParams = (*result).n;
	asgnRef((void**) (&(*result).n), shallowCopy__ast_4414(originalParams));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3990(result);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typeToFit;
				NIM_BOOL needsStaticSkipping;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* oldParam;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* param;
				tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T25_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					if (!(((NI) 1) < i)) goto LA6_;
					resetIdTable__ast_4092((&cl.symMap));
					resetIdTable__ast_4092((&cl.localCache));
				}
				LA6_: ;
				typeToFit = (*result).sons->data[i];
				needsStaticSkipping = ((*(*result).sons->data[i]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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_3723((*result).sons->data[i], TM__DKP9c7KM5AbqYVP6Gd9blNUw_36));
				}
				LA10_: ;
				{
					NIM_BOOL T14_;
					NIM_BOOL T15_;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T17_;
					T14_ = (NIM_BOOL)0;
					T15_ = (NIM_BOOL)0;
					T15_ = !(((*typeToFit).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
					if (T15_) goto LA16_;
					T17_ = NIM_NIL;
					T17_ = base__types_63(typeToFit);
					T15_ = !(((*T17_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0)));
					LA16_: ;
					T14_ = T15_;
					if (!(T14_)) goto LA18_;
					T14_ = !(((*typeToFit).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60)));
					LA18_: ;
					if (!T14_) goto LA19_;
					typeToFit = (*result).sons->data[i];
				}
				LA19_: ;
				{
					NimStringDesc* argX60gensym194_;
					if (!!(((*(*originalParams)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA23_;
					argX60gensym194_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_89);
					internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym194_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_89);
				}
				LA23_: ;
				oldParam = (*(*originalParams)._kind_6.sons->data[i])._kind_4.sym;
				T25_ = nextSymId__ast_3103((*c).Sup.idgen);
				param = copySym__ast_4042(oldParam, T25_);
				asgnRef((void**) (&(*param).owner), prc);
				asgnRef((void**) (&(*param).typ), (*result).sons->data[i]);
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* def;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* converted;
					if (!!(((*oldParam).ast == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA28_;
					def = copyTree__ast_4432((*oldParam).ast);
					{
						if (!((*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27))) goto LA32_;
						{
							NI i_3;
							NI colontmp__2;
							NI i_4;
							i_3 = (NI)0;
							colontmp__2 = (NI)0;
							colontmp__2 = len__ast_3155(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_57(c, def, 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					{
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T39_;
						NIM_BOOL T40_;
						T39_ = NIM_NIL;
						T39_ = getCurrOwner__semdata_327(c);
						T40_ = (NIM_BOOL)0;
						T40_ = referencesAnotherParam__sem_1189(def, T39_);
						if (!T40_) goto LA41_;
						(*def).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 19)) & 31);
					}
					LA41_: ;
					converted = indexTypesMatch__sem_123(c, typeToFit, (*def).typ, def);
					{
						if (!(converted == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA45_;
						asgnRef((void**) (&(*param).ast), errorNode__semdata_1039(c, def));
					}
					goto LA43_;
					LA45_: ;
					{
						asgnRef((void**) (&(*param).ast), fitNodePostMatch__sem_168(c, typeToFit, converted));
					}
					LA43_: ;
					asgnRef((void**) (&(*param).typ), (*result).sons->data[i]);
				}
				LA28_: ;
				asgnRef((void**) (&(*(*result).n)._kind_6.sons->data[i]), newSymNode__ast_3704(param));
				propagateToOwner__ast_4207(result, (*result).sons->data[i], NIM_TRUE);
				addDecl__lookups_1517(c, param);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	resetIdTable__ast_4092((&cl.symMap));
	resetIdTable__ast_4092((&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_4432((*originalParams)._kind_6.sons->data[((NI) 0)]));
	{
		if (!!(((*result).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA50_;
		propagateToOwner__ast_4207(result, (*result).sons->data[((NI) 0)], NIM_TRUE);
	}
	LA50_: ;
	eraseVoidParams__semtypinst_694(result);
	skipIntLiteralParams__semtypinst_750(result, (*c).Sup.idgen);
	asgnRef((void**) (&(*prc).typ), result);
	popInfoContext__msgs_517((*(*c).graph).config);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameInstantiation__sem_979)(tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA a, tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA 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_2720(a.concreteTypes->data[i], b.concreteTypes->data[i], ((tyEnum_TDistinctCompare__UuPcvyG2RecjPyQDW4WlFw) 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__3r34mwqcVmg5JFNmiaVncw*, genericCacheGet__sem_997)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* genericSym, tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA entry, NI id) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
{	result = NIM_NIL;
	{
		tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA* inst;
		inst = NIM_NIL;
		{
			NIM_BOOL T4_;
			tySequence__6OFCSvqRaxyEgUqWtnZSlw** x;
			T4_ = (NIM_BOOL)0;
			T4_ = contains__modulegraphs_3606((*g).procInstCache, (*genericSym).Sup.itemId);
			if (!T4_) goto LA5_;
			x = X5BX5D___modulegraphs_3922((&(*g).procInstCache), (*genericSym).Sup.itemId);
			{
				tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q* t;
				NI i;
				NI L;
				NI T8_;
				t = (tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q*)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_2919(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_979(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_4973)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* f) {
	NIM_BOOL result;
	NI fmoduleId;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym804_;
	NIM_BOOL T1_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym806_;
{	result = (NIM_BOOL)0;
	xX60gensym804_ = getModule__astalgo_216(f);
	fmoduleId = (NI)((NI)((NU64)(((NI) ((*xX60gensym804_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym804_).Sup.itemId.item)));
	T1_ = (NIM_BOOL)0;
	T1_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 1))&63U)))!=0);
	if (T1_) goto LA2_;
	xX60gensym806_ = (*c).module;
	T1_ = (fmoduleId == (NI)((NI)((NU64)(((NI) ((*xX60gensym806_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym806_).Sup.itemId.item))));
	LA2_: ;
	result = T1_;
	{
		if (!!(result)) goto LA5_;
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** module;
			NI i;
			NI L;
			NI T8_;
			module = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)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__3r34mwqcVmg5JFNmiaVncw* xX60gensym807_;
						xX60gensym807_ = (*module);
						if (!(fmoduleId == (NI)((NI)((NU64)(((NI) ((*xX60gensym807_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym807_).Sup.itemId.item))))) goto LA13_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA13_: ;
					i += ((NI) 1);
				} LA10: ;
			}
		}
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* symObj;
			if (!((*f).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 19))) goto LA17_;
			symObj = (*f).owner;
			{
				if (!((*(*symObj).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22) || (*(*symObj).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21))) goto LA21_;
				symObj = (*(*(*symObj).typ).sons->data[((NI) 0)]).sym;
			}
			LA21_: ;
			{
				tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* scope;
				tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* current;
				scope = NIM_NIL;
				current = (*c).currentScope;
				{
					while (1) {
						if (!!((current == ((tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ*) NIM_NIL)))) goto LA25;
						scope = current;
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** sym;
							NI i_2;
							NI L_2;
							NI T27_;
							sym = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)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__3r34mwqcVmg5JFNmiaVncw* xX60gensym810_;
										tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym811_;
										xX60gensym810_ = symObj;
										xX60gensym811_ = (*sym);
										if (!((NI)((NI)((NU64)(((NI) ((*xX60gensym810_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym810_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym811_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym811_).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_815)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					addObjFieldsToLocalScope__sem_815(c, (*n)._kind_6.sons->data[i]);
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 139):
	{
		{
			NI T8_;
			T8_ = (NI)0;
			T8_ = len__ast_3155(n);
			if (!(((NI) 0) < T8_)) goto LA9_;
			addObjFieldsToLocalScope__sem_815(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_3155(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA13;
					i_3 = i_4;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
						if (!((*(*n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85) || (*(*n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88))) goto LA16_;
						T18_ = NIM_NIL;
						T18_ = lastSon__ast_4833((*n)._kind_6.sons->data[i_3]);
						addObjFieldsToLocalScope__sem_815(c, T18_);
					}
					LA16_: ;
					i_4 += ((NI) 1);
				} LA13: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* f;
		f = (*n)._kind_4.sym;
		{
			NIM_BOOL T22_;
			NIM_BOOL T26_;
			T22_ = (NIM_BOOL)0;
			T22_ = ((*f).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 19));
			if (!(T22_)) goto LA23_;
			T22_ = fieldVisible__sigmatch_4973(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__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
		}
		LA24_: ;
	}
	break;
	default:
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, rawHandleSelf__sem_875)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* params;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = eqeq___idents_229((*c).selfName, ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) 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__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA7_: ;
		if (!T3_) goto LA8_;
		params = (*(*owner).typ).n;
		{
			NI T12_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* arg;
			T12_ = (NI)0;
			T12_ = len__ast_3155(params);
			if (!(((NI) 1) < T12_)) goto LA13_;
			arg = (*(*params)._kind_6.sons->data[((NI) 1)])._kind_4.sym;
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
				if (!((*(*arg).name).id == (*(*c).selfName).id)) goto LA17_;
				asgnRef((void**) (&(*(*c).p).selfSym), arg);
				(*arg).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 35)) & 63);
				t = skipTypes__ast_3723((*(*(*c).p).selfSym).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_102);
				{
					while (1) {
						if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17))) goto LA20;
						addObjFieldsToLocalScope__sem_815(c, (*t).n);
						{
							if (!((*t).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA23_;
							goto LA19;
						}
						LA23_: ;
						t = skipTypes__ast_3723((*t).sons->data[((NI) 0)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_59);
					} LA20: ;
				} LA19: ;
			}
			LA17_: ;
		}
		LA13_: ;
	}
	LA8_: ;
}
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getBody__modulegraphs_13094)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = (*(*s).ast)._kind_6.sons->data[((NI) 6)];
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = ((28 &((NU8)1<<((NU)((*(*g).config).symbolFiles)&7U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = loadProcBody__icZic_8386((*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_13402)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sRes, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dNode) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = safeLen__ast_3148(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__clSgDh22o9au33BrVH9bDQZw) 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_13402((*n)._kind_6.sons->data[i], sRes, dNode);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, findEnforcedStaticType__sem_4954)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
{	result = NIM_NIL;
	{
		if (!(t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA3_;
		result = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60))) goto LA7_;
		result = t;
		goto BeforeRet_;
	}
	LA7_: ;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 56))) goto LA11_;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA** s;
			NI i;
			NI L;
			NI T14_;
			s = (tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA**)0;
			i = ((NI) 0);
			T14_ = ((*t).sons ? (*t).sons->Sup.len : 0);
			L = T14_;
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_2;
					if (!(i < L)) goto LA16;
					s = &(*t).sons->data[i];
					t_2 = findEnforcedStaticType__sem_4954((*s));
					{
						if (!!((t_2 == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) 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_1038)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* param, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind) {
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* staticType;
		if (!(kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17))) goto LA3_;
		staticType = findEnforcedStaticType__sem_4954((*param).typ);
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* a;
			tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T9_;
			if (!!((staticType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA7_;
			T9_ = nextSymId__ast_3103((*c).Sup.idgen);
			a = copySym__ast_4042(param, T9_);
			asgnRef((void**) (&(*a).typ), base__types_63(staticType));
			addDecl__lookups_1517(c, a);
		}
		goto LA5_;
		LA7_: ;
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* nn;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* a_2;
			tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T11_;
			nn = getSysSym__magicsys_16((*c).graph, (*param).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_104));
			T11_ = nextSymId__ast_3103((*c).Sup.idgen);
			a_2 = copySym__ast_4042(param, T11_);
			asgnRef((void**) (&(*a_2).typ), (*nn).typ);
			addDecl__lookups_1517(c, a_2);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			if (!(((*param).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0)) goto LA15_;
			{
				if (!((*param).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA19_;
				asgnRef((void**) (&(*param).owner), getCurrOwner__semdata_327(c));
			}
			LA19_: ;
		}
		goto LA13_;
		LA15_: ;
		{
			addDecl__lookups_1517(c, param);
		}
		LA13_: ;
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addResult__sem_13423)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw owner) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (owner == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17));
		if (T3_) goto LA4_;
		T3_ = !((t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T9_;
			NI T10_;
			T9_ = (NIM_BOOL)0;
			T10_ = (NI)0;
			T10_ = len__ast_3155(n);
			T9_ = (((NI) 7) < T10_);
			if (!(T9_)) goto LA11_;
			T9_ = !(((*n)._kind_6.sons->data[((NI) 7)] == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
			LA11_: ;
			if (!T9_) goto LA12_;
			{
				if (!!(((*(*(*n)._kind_6.sons->data[((NI) 7)])._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)))) goto LA16_;
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_105), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_106, NIM_FALSE);
			}
			LA16_: ;
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T20_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sResSym;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
				tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T23_;
				tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T24_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T25_;
				T20_ = NIM_NIL;
				T20_ = getCurrOwner__semdata_327(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_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_107));
				T24_ = nextSymId__ast_3103((*c).Sup.idgen);
				T25_ = NIM_NIL;
				T25_ = getCurrOwner__semdata_327(c);
				s = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11), T23_, T24_, T25_, (*n).info, 0);
				asgnRef((void**) (&(*s).typ), t);
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 7)]), newSymNode__ast_3704(s));
				swapResult__sem_13402(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__3r34mwqcVmg5JFNmiaVncw* s_2;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T27_;
			tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T28_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T29_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T30_;
			T27_ = NIM_NIL;
			T27_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_107));
			T28_ = nextSymId__ast_3103((*c).Sup.idgen);
			T29_ = NIM_NIL;
			T29_ = getCurrOwner__semdata_327(c);
			s_2 = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11), T27_, T28_, T29_, (*n).info, 0);
			asgnRef((void**) (&(*s_2).typ), t);
			(*s_2).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
			asgnRef((void**) (&(*(*c).p).resultSym), s_2);
			T30_ = NIM_NIL;
			T30_ = newSymNode__ast_3704((*(*c).p).resultSym);
			add__ast_4798(n, T30_);
		}
		LA7_: ;
		addParamOrResult__sem_1038(c, (*(*c).p).resultSym, owner);
	}
	LA5_: ;
}
static N_INLINE(NIM_BOOL, isInlineIterator__ast_4990)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* 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__b28l2MkhJpnFhatVrsrXpg) 25));
	if (!(T2_)) goto LA3_;
	T2_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = !(((*typ).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9)));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, maybeAddResult__sem_103)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* resultType;
		if (!((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17))) goto LA3_;
		resultType = sysTypeFromName__magicsys_55((*c).graph, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_104));
		addResult__sem_13423(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__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T6_)) goto LA7_;
		T8_ = (NIM_BOOL)0;
		T8_ = isInlineIterator__ast_4990((*s).typ);
		T6_ = !(T8_);
		LA7_: ;
		if (!T6_) goto LA9_;
		addResult__sem_13423(c, n, (*(*s).typ).sons->data[((NI) 0)], (*s).kind);
	}
	goto LA1_;
	LA9_: ;
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, freshGenSyms__sem_1004)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* orig, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ* symMap) {
	{
		NIM_BOOL T3_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* x;
		RootObj* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 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__3r34mwqcVmg5JFNmiaVncw*) (T7_));
		{
			if (!!((x == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA10_;
			asgnRef((void**) (&(*n)._kind_4.sym), x);
		}
		goto LA8_;
		LA10_: ;
		{
			NIM_BOOL T13_;
			tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T17_;
			T13_ = (NIM_BOOL)0;
			T13_ = ((*s).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
			if (T13_) goto LA14_;
			T13_ = ((*(*s).owner).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 24));
			LA14_: ;
			if (!T13_) goto LA15_;
			T17_ = nextSymId__ast_3103((*c).Sup.idgen);
			x = copySym__ast_4042(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_3148(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA21;
					i = i_2;
					freshGenSyms__sem_1004(c, (*n)._kind_6.sons->data[i], owner, orig, symMap);
					i_2 += ((NI) 1);
				} LA21: ;
			}
		}
	}
	LA1_: ;
}
static N_INLINE(NIM_BOOL, isEmptyType__ast_4780)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	if (T1_) goto LA2_;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isAtom__ast_4769)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 0) <= (*n).kind);
	if (!(T1_)) goto LA2_;
	T1_ = ((*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fixNilType__sem_9964)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isAtom__ast_4769(n);
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			NimStringDesc* T12_;
			NimStringDesc* T13_;
			T8_ = (NIM_BOOL)0;
			T8_ = !(((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23)));
			if (!(T8_)) goto LA9_;
			T8_ = !(((*n).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			LA9_: ;
			if (!T8_) goto LA10_;
			T12_ = NIM_NIL;
			T12_ = typeToString__types_50((*n).typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T13_ = NIM_NIL;
			T13_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_108), T12_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T13_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_109, NIM_FALSE);
		}
		LA10_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA15_;
		transitionSonsKind__ast_4347(n, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 115));
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
			it = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3148(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_9964(c, it);
						i_2 += ((NI) 1);
					} LA20: ;
				}
			}
		}
	}
	goto LA1_;
	LA15_: ;
	LA1_: ;
	asgnRef((void**) (&(*n).typ), ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, readTypeParameter__sem_18159)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* paramName, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52) || (*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 53))) goto LA3_;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* statement;
			statement = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3148((*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__clSgDh22o9au33BrVH9bDQZw) 98):
						{
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(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__kQDDJGUiaUAtO9c9b6LjZYjA* foundType;
												tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T18_;
												tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T19_;
												tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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_3103((*c).Sup.idgen);
												T19_ = NIM_NIL;
												T19_ = copySym__ast_4042((*(*def)._kind_6.sons->data[((NI) 0)])._kind_4.sym, T18_);
												T20_ = NIM_NIL;
												T20_ = linkTo__ast_3511(T19_, foundType);
												result = newSymNode__ast_3707(T20_, info);
												goto BeforeRet_;
											}
											LA16_: ;
											i_4 += ((NI) 1);
										} LA13: ;
									}
								}
							}
						}
						break;
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 101):
						{
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(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__kQDDJGUiaUAtO9c9b6LjZYjA* ty;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tbody;
		if (!!(((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52)))) goto LA33_;
		{
			if (!((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54))) goto LA37_;
			ty = skipGenericAlias__types_2281((*typ).sons->data[((NI) 1)]);
		}
		goto LA35_;
		LA37_: ;
		{
			ty = skipGenericAlias__types_2281(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_3990(tbody);
			colontmp__4 = (NI)(T41_ - ((NI) 1));
			i_7 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tParam;
					if (!(i_7 < colontmp__4)) goto LA43;
					s = i_7;
					tParam = (*tbody).sons->data[s];
					{
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* rawTyp;
						if (!((*(*(*tParam).sym).name).id == (*paramName).id)) goto LA46_;
						rawTyp = (*ty).sons->data[(NI)(s + ((NI) 1))];
						{
							if (!((*rawTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60))) goto LA50_;
							{
								if (!!(((*rawTyp).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA54_;
								result = (*rawTyp).n;
								goto BeforeRet_;
							}
							goto LA52_;
							LA54_: ;
							{
								result = (*(*c).graph).emptyNode;
								goto BeforeRet_;
							}
							LA52_: ;
						}
						goto LA48_;
						LA50_: ;
						{
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* foundTyp;
							tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T58_;
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T59_;
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T60_;
							foundTyp = makeTypeDesc__concepts_49(c, rawTyp);
							T58_ = nextSymId__ast_3103((*c).Sup.idgen);
							T59_ = NIM_NIL;
							T59_ = copySym__ast_4042((*tParam).sym, T58_);
							T60_ = NIM_NIL;
							T60_ = linkTo__ast_3511(T59_, foundTyp);
							result = newSymNode__ast_3707(T60_, info);
							goto BeforeRet_;
						}
						LA48_: ;
					}
					LA46_: ;
					i_7 += ((NI) 1);
				} LA43: ;
			}
		}
	}
	LA33_: ;
	result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tryReadingGenericParam__sem_18381)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* i, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54):
	{
		result = readTypeParameter__sem_18159(c, t, i, (*n).info);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
			if (!(result == (*(*c).graph).emptyNode)) goto LA4_;
			result = n;
			T6_ = NIM_NIL;
			T6_ = copyTree__ast_4432(n);
			asgnRef((void**) (&(*n).typ), makeTypeFromExpr__semdata_834(c, T6_));
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 53):
	{
		{
			if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 10))&63U)))!=0)) goto LA10_;
			result = readTypeParameter__sem_18159(c, t, i, (*n).info);
		}
		goto LA8_;
		LA10_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T13_;
			T13_ = NIM_NIL;
			T13_ = copyTree__ast_4432(n);
			asgnRef((void**) (&(*n).typ), makeTypeFromExpr__semdata_834(c, T13_));
			result = n;
		}
		LA8_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 59):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T15_;
		T15_ = NIM_NIL;
		T15_ = copyTree__ast_4432(n);
		asgnRef((void**) (&(*n).typ), makeTypeFromExpr__semdata_834(c, T15_));
		result = n;
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tryReadingTypeField__sem_18395)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* i, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* ty) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* ty_2;
	result = NIM_NIL;
	ty_2 = skipTypes__ast_3723(ty, TM__DKP9c7KM5AbqYVP6Gd9blNUw_110);
	switch ((*ty_2).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* f;
		f = ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL);
		{
			while (1) {
				if (!!((ty_2 == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA3;
				f = getSymFromList__astalgo_245((*ty_2).n, i, ((NI) 0));
				{
					if (!!((f == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA6_;
					goto LA2;
				}
				LA6_: ;
				ty_2 = (*ty_2).sons->data[((NI) 0)];
			} LA3: ;
		} LA2: ;
		{
			if (!!((f == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA10_;
			result = newSymNode__ast_3704(f);
			(*result).info = (*n).info;
			asgnRef((void**) (&(*result).typ), ty_2);
			markUsed__sigmatch_85(c, (*n).info, f);
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18):
	{
		{
			NIM_BOOL T15_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* field;
			T15_ = (NIM_BOOL)0;
			T15_ = !(((*ty_2).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
			if (!(T15_)) goto LA16_;
			T15_ = ((*(*ty_2).n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138));
			LA16_: ;
			if (!T15_) goto LA17_;
			field = lookupInRecord__astalgo_84((*ty_2).n, i);
			{
				if (!!((field == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA21_;
				asgnRef((void**) (&(*n).typ), makeTypeDesc__concepts_49(c, (*field).typ));
				result = n;
			}
			LA21_: ;
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T24_;
		T24_ = NIM_NIL;
		T24_ = lastSon__ast_3731(ty_2);
		result = tryReadingTypeField__sem_18395(c, n, i, T24_);
		{
			if (!(result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA27_;
			result = tryReadingGenericParam__sem_18381(c, n, i, ty_2);
		}
		LA27_: ;
	}
	break;
	default:
	{
		result = tryReadingGenericParam__sem_18381(c, n, i, ty_2);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTypeExpr__sem_17995)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 132):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		result = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7));
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, createSetType__sem_18002)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* baseType) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	result = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19), c);
	rawAddSon__ast_4276(result, baseType, NIM_TRUE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, lookupInRecordAndBuildCheck__sem_18013)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* r, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* field, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** check) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
{	result = NIM_NIL;
	result = ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL);
	switch ((*r).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(r);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					result = lookupInRecordAndBuildCheck__sem_18013(c, n, (*r)._kind_6.sons->data[i], field, check);
					{
						if (!!((result == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA7_;
						goto BeforeRet_;
					}
					LA7_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 139):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* setType;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s;
		checkMinSonsLen__semdata_1114(r, ((NI) 2), (*(*c).graph).config);
		{
			if (!!(((*(*r)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA12_;
			illFormedAst__semdata_1101(r, (*(*c).graph).config);
		}
		LA12_: ;
		result = lookupInRecordAndBuildCheck__sem_18013(c, n, (*r)._kind_6.sons->data[((NI) 0)], field, check);
		{
			if (!!((result == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA16_;
			goto BeforeRet_;
		}
		LA16_: ;
		setType = createSetType__sem_18002(c, (*(*r)._kind_6.sons->data[((NI) 0)]).typ);
		s = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_3155(r);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__clSgDh22o9au33BrVH9bDQZw) 85):
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T22_;
						T22_ = NIM_NIL;
						T22_ = lastSon__ast_4833(it);
						result = lookupInRecordAndBuildCheck__sem_18013(c, n, T22_, field, check);
						{
							if (!(result == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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_3155(it);
								colontmp__3 = (NI)(T28_ - ((NI) 1));
								i_5 = ((NI) 0);
								{
									while (1) {
										tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T31_;
										if (!(i_5 < colontmp__3)) goto LA30;
										j = i_5;
										T31_ = NIM_NIL;
										T31_ = copyTree__ast_4432((*it)._kind_6.sons->data[j]);
										add__ast_4798(s, T31_);
										i_5 += ((NI) 1);
									} LA30: ;
								}
							}
						}
						goto LA23_;
						LA25_: ;
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* inExpr;
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T42_;
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T43_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T44_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T45_;
							{
								if (!((*check) == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA35_;
								unsureAsgnRef((void**) (&(*check)), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46), (*n).info));
								add__ast_4798((*check), (*(*c).graph).emptyNode);
							}
							LA35_: ;
							s = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_3155(it);
								colontmp__4 = (NI)(T38_ - ((NI) 1));
								i_6 = ((NI) 0);
								{
									while (1) {
										tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T41_;
										if (!(i_6 < colontmp__4)) goto LA40;
										j_2 = i_6;
										T41_ = NIM_NIL;
										T41_ = copyTree__ast_4432((*it)._kind_6.sons->data[j_2]);
										add__ast_4798(s, T41_);
										i_6 += ((NI) 1);
									} LA40: ;
								}
							}
							T42_ = NIM_NIL;
							T42_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
							inExpr = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, T42_);
							T43_ = NIM_NIL;
							T43_ = getSysMagic__magicsys_29((*c).graph, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_113), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 134));
							T44_ = NIM_NIL;
							T44_ = newSymNode__ast_3707(T43_, (*n).info);
							add__ast_4798(inExpr, T44_);
							add__ast_4798(inExpr, s);
							T45_ = NIM_NIL;
							T45_ = copyTree__ast_4432((*r)._kind_6.sons->data[((NI) 0)]);
							add__ast_4798(inExpr, T45_);
							add__ast_4798((*check), inExpr);
							goto BeforeRet_;
						}
						LA23_: ;
					}
					break;
					case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88):
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T47_;
						T47_ = NIM_NIL;
						T47_ = lastSon__ast_4833(it);
						result = lookupInRecordAndBuildCheck__sem_18013(c, n, T47_, field, check);
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* inExpr_2;
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T56_;
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T57_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T58_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T59_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* notExpr;
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T60_;
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T61_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T62_;
							if (!!((result == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA50_;
							{
								if (!((*check) == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA54_;
								unsureAsgnRef((void**) (&(*check)), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46), (*n).info));
								add__ast_4798((*check), (*(*c).graph).emptyNode);
							}
							LA54_: ;
							T56_ = NIM_NIL;
							T56_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
							inExpr_2 = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, T56_);
							T57_ = NIM_NIL;
							T57_ = getSysMagic__magicsys_29((*c).graph, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_113), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 134));
							T58_ = NIM_NIL;
							T58_ = newSymNode__ast_3707(T57_, (*n).info);
							add__ast_4798(inExpr_2, T58_);
							add__ast_4798(inExpr_2, s);
							T59_ = NIM_NIL;
							T59_ = copyTree__ast_4432((*r)._kind_6.sons->data[((NI) 0)]);
							add__ast_4798(inExpr_2, T59_);
							T60_ = NIM_NIL;
							T60_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
							notExpr = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, T60_);
							T61_ = NIM_NIL;
							T61_ = getSysMagic__magicsys_29((*c).graph, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_114), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96));
							T62_ = NIM_NIL;
							T62_ = newSymNode__ast_3707(T61_, (*n).info);
							add__ast_4798(notExpr, T62_);
							add__ast_4798(notExpr, inExpr_2);
							add__ast_4798((*check), notExpr);
							goto BeforeRet_;
						}
						LA50_: ;
					}
					break;
					default:
					{
						illFormedAst__semdata_1101(it, (*(*c).graph).config);
					}
					break;
					}
					i_4 += ((NI) 1);
				} LA20: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		{
			if (!((*(*(*r)._kind_4.sym).name).id == (*field).id)) goto LA67_;
			result = (*r)._kind_4.sym;
		}
		LA67_: ;
	}
	break;
	default:
	{
		illFormedAst__semdata_1101(n, (*(*c).graph).config);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, makeDeref__sem_10575)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	result = NIM_NIL;
	t = (*n).typ;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 53));
		if (!(T3_)) goto LA4_;
		T3_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 10))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		t = lastSon__ast_3731(t);
	}
	LA5_: ;
	t = skipTypes__ast_3723(t, TM__DKP9c7KM5AbqYVP6Gd9blNUw_45);
	result = n;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47))) goto LA9_;
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65), (*n).info, (*t).sons->data[((NI) 0)]);
		add__ast_4798(result, n);
		t = skipTypes__ast_3723((*t).sons->data[((NI) 0)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_45);
	}
	LA9_: ;
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* baseTyp;
			if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22))) goto LA12;
			a = result;
			baseTyp = lastSon__ast_3731(t);
			result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65), (*n).info, baseTyp);
			add__ast_4798(result, a);
			t = skipTypes__ast_3723(baseTyp, TM__DKP9c7KM5AbqYVP6Gd9blNUw_45);
		} LA12: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, builtinFieldAccess__sem_18435)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* i;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* ty;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* f;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* check;
{	result = NIM_NIL;
	checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
	s = qualifiedLookUp__lookups_2598(c, n, 7);
	{
		if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA3_;
		{
			if (!((1568832 &((NU32)1<<((NU)((*s).kind)&31U)))!=0)) goto LA7_;
			result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0), NIM_FALSE);
			{
				if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA11_;
				result = semSym__sem_18211(c, n, s, flags);
			}
			LA11_: ;
		}
		goto LA5_;
		LA7_: ;
		{
			markUsed__sigmatch_85(c, (*(*n)._kind_6.sons->data[((NI) 1)]).info, s);
			result = semSym__sem_18211(c, n, s, flags);
		}
		LA5_: ;
		goto BeforeRet_;
	}
	LA3_: ;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 0)], (flags | 516), ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
	i = considerQuotedIdent__lookups_29(c, (*n)._kind_6.sons->data[((NI) 1)], n);
	ty = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
	f = ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL);
	result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
	{
		if (!((*ty).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8))) goto LA16_;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T20_;
			T20_ = NIM_NIL;
			T20_ = base__types_63(ty);
			if (!((*T20_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0))) goto LA21_;
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T25_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T28_;
				T25_ = NIM_NIL;
				T25_ = getCurrOwner__semdata_327(c);
				if (!!(((*T25_).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17)))) goto LA26_;
				T28_ = NIM_NIL;
				T28_ = copyTree__ast_4432(n);
				asgnRef((void**) (&(*n).typ), makeTypeFromExpr__semdata_834(c, T28_));
				result = n;
				goto BeforeRet_;
			}
			goto LA23_;
			LA26_: ;
			{
				result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
				goto BeforeRet_;
			}
			LA23_: ;
		}
		goto LA18_;
		LA21_: ;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T31_;
			T31_ = NIM_NIL;
			T31_ = base__types_63(ty);
			result = tryReadingTypeField__sem_18395(c, n, i, T31_);
			goto BeforeRet_;
		}
		LA18_: ;
	}
	goto LA14_;
	LA16_: ;
	{
		NIM_BOOL T33_;
		T33_ = (NIM_BOOL)0;
		T33_ = isTypeExpr__sem_17995((*n)._kind_6.sons->data[((NI) 0)]);
		if (!T33_) goto LA34_;
		result = tryReadingTypeField__sem_18395(c, n, i, ty);
		goto BeforeRet_;
	}
	goto LA14_;
	LA34_: ;
	{
		if (!((*ty).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50))) goto LA37_;
		result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
		goto BeforeRet_;
	}
	goto LA14_;
	LA37_: ;
	LA14_: ;
	{
		NIM_BOOL T41_;
		T41_ = (NIM_BOOL)0;
		T41_ = ((*ty).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52) || (*ty).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 53));
		if (!(T41_)) goto LA42_;
		T41_ = (((*ty).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 10))&63U)))!=0);
		LA42_: ;
		if (!T41_) goto LA43_;
		ty = lastSon__ast_3731(ty);
	}
	LA43_: ;
	ty = skipTypes__ast_3723(ty, TM__DKP9c7KM5AbqYVP6Gd9blNUw_111);
	{
		while (1) {
			if (!(((*ty).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 32))&63U)))!=0)) goto LA46;
			ty = skipTypes__ast_3723(ty, TM__DKP9c7KM5AbqYVP6Gd9blNUw_112);
		} LA46: ;
	}
	check = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
	{
		if (!((*ty).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17))) goto LA49_;
		{
			while (1) {
				check = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
				f = lookupInRecordAndBuildCheck__sem_18013(c, n, (*ty).n, i, &check);
				{
					if (!!((f == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA55_;
					goto LA51;
				}
				LA55_: ;
				{
					if (!((*ty).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA59_;
					goto LA51;
				}
				LA59_: ;
				ty = skipTypes__ast_3723((*ty).sons->data[((NI) 0)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_59);
			}
		} LA51: ;
		{
			NIM_BOOL visibilityCheckNeeded;
			if (!!((f == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA63_;
			{
				NIM_BOOL T67_;
				T67_ = (NIM_BOOL)0;
				T67_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__66OQV9bsmGEfS6hVHBswcPw info;
				T74_ = (NIM_BOOL)0;
				T74_ = !(visibilityCheckNeeded);
				if (T74_) goto LA75_;
				T74_ = fieldVisible__sigmatch_4973(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_10575((*n)._kind_6.sons->data[((NI) 0)]));
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), newSymNode__ast_3704(f));
				(*(*n)._kind_6.sons->data[((NI) 1)]).info = info;
				asgnRef((void**) (&(*n).typ), (*f).typ);
				{
					if (!(check == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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__b28l2MkhJpnFhatVrsrXpg) 18));
		if (!(T84_)) goto LA85_;
		T84_ = !(((*ty).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
		LA85_: ;
		if (!T84_) goto LA86_;
		f = getSymFromList__astalgo_245((*ty).n, i, ((NI) 0));
		{
			if (!!((f == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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_10575((*n)._kind_6.sons->data[((NI) 0)]));
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), newSymNode__ast_3704(f));
			asgnRef((void**) (&(*n).typ), (*f).typ);
			result = n;
		}
		LA90_: ;
	}
	goto LA47_;
	LA86_: ;
	LA47_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
		if (!(result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA94_;
		t = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_110);
		result = tryReadingGenericParam__sem_18381(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_91)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T6_;
					NI T8_;
					tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
					tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T11_;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 33));
					if (!(T6_)) goto LA7_;
					T8_ = (NI)0;
					T8_ = len__ast_3155(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_29(c, (*a)._kind_6.sons->data[((NI) 0)], a);
					asgnRef((void**) (&(*a)._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3700(T11_, info));
					asgnRef((void**) (&(*a)._kind_6.sons->data[((NI) 1)]), semExprWithType__sem_57(c, (*a)._kind_6.sons->data[((NI) 1)], 512, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
					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_57(c, a, 512, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyExcept__sem_13475)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI i) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = copyNode__ast_4324(n);
	{
		NI j;
		NI colontmp_;
		NI i_2;
		j = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				j = i_2;
				{
					if (!!((j == i))) goto LA6_;
					add__ast_4798(result, (*n)._kind_6.sons->data[j]);
				}
				LA6_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplateExpr__sem_524)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T1_;
	result = NIM_NIL;
	rememberExpansion__semdata_3686(c, (*n).info, s);
	info = getCallLineInfo__sem_2443(n);
	markUsed__sigmatch_85(c, info, s);
	pushInfoContext__msgs_500((*(*c).graph).config, (*n).info, (*(*s).name).s);
	T1_ = NIM_NIL;
	T1_ = getCurrOwner__semdata_327(c);
	result = evalTemplate__evaltempl_275(n, s, T1_, (*(*c).graph).config, (*c).cache, (*c).templInstCounter, (*c).Sup.idgen, ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 16))&31U)))!=0));
	{
		if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 13))&31U)))!=0))) goto LA4_;
		result = semAfterMacroCall__sem_2845(c, n, result, s, flags, expectedType);
	}
	LA4_: ;
	popInfoContext__msgs_517((*(*c).graph).config);
	(*result).info = info;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semProcAnnotation__sem_13492)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* prc, tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw validPragmas) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
{	result = NIM_NIL;
	n = (*prc)._kind_6.sons->data[((NI) 4)];
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* key;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* r;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m;
					it = (*n)._kind_6.sons->data[i];
					{
						NIM_BOOL T13_;
						NI T15_;
						T13_ = (NIM_BOOL)0;
						T13_ = ((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28));
						if (!(T13_)) goto LA14_;
						T15_ = (NI)0;
						T15_ = len__ast_3155(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__N2XsqTpO5IzOf2KmXwk4Dw T21_;
						T21_ = (tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw)0;
						T21_ = whichPragma__trees_244(it);
						if (!!((T21_ == ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 0)))) goto LA22_;
						goto LA10;
					}
					goto LA19_;
					LA22_: ;
					{
						tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
						ident = considerQuotedIdent__lookups_29(c, key, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T27_;
							T27_ = NIM_NIL;
							T27_ = strTableGet__astalgo_3383((*c).userPragmas, ident);
							if (!!((T27_ == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA28_;
							goto LA10;
						}
						goto LA25_;
						LA28_: ;
						{
							NIM_BOOL amb;
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
							amb = NIM_FALSE;
							sym = searchInScopes__lookups_603(c, ident, (&amb));
							{
								NIM_BOOL T33_;
								T33_ = (NIM_BOOL)0;
								T33_ = !((sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
								if (!(T33_)) goto LA34_;
								T33_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 10))&63U)))!=0);
								LA34_: ;
								if (!T33_) goto LA35_;
								goto LA10;
							}
							LA35_: ;
						}
						LA25_: ;
					}
					LA19_: ;
					x = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*key).info);
					add__ast_4798(x, key);
					{
						NIM_BOOL T39_;
						NI T41_;
						T39_ = (NIM_BOOL)0;
						T39_ = ((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28));
						if (!(T39_)) goto LA40_;
						T41_ = (NI)0;
						T41_ = len__ast_3155(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_3155(it);
							i_4 = ((NI) 1);
							{
								while (1) {
									if (!(i_4 < colontmp__2)) goto LA46;
									i_3 = i_4;
									add__ast_4798(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_13475(n, i));
					{
						NIM_BOOL T49_;
						NI T51_;
						T49_ = (NIM_BOOL)0;
						T49_ = !(((*(*prc)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
						if (!(T49_)) goto LA50_;
						T51_ = (NI)0;
						T51_ = len__ast_3155((*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_4798(x, prc);
					r = semOverloadedCall__sem_2551(c, x, x, 393216, 262144);
					{
						if (!(r == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA60_;
						failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_115));
					}
					LA60_: ;
					m = (*(*r)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
					switch ((*m).kind) {
					case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
					{
						result = semMacroExpr__sem_530(c, r, r, m, 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					}
					break;
					case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
					{
						result = semTemplateExpr__sem_524(c, r, m, 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					}
					break;
					default:
					{
						asgnRef((void**) (&(*prc)._kind_6.sons->data[((NI) 4)]), n);
						goto LA10;
					}
					break;
					}
					{
						if (!!(!((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))))) goto LA67_;
						failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_116));
					}
					LA67_: ;
					{
						NIM_BOOL T71_;
						NIM_BOOL T72_;
						T71_ = (NIM_BOOL)0;
						T72_ = (NIM_BOOL)0;
						T72_ = ((*result).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) && (*result).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52) || (*result).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) && (*result).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81) || (*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84) || (*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159));
						if (!(T72_)) goto LA73_;
						T72_ = ((*(*result)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
						LA73_: ;
						T71_ = T72_;
						if (!(T71_)) goto LA74_;
						T71_ = !(((*(*result)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
						LA74_: ;
						if (!T71_) goto LA75_;
						pragma__pragmas_125(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__3r34mwqcVmg5JFNmiaVncw*, newSymG__sem_462)(tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA3_;
		result = (*n)._kind_4.sym;
		{
			tyArray__Re75IspeoxXy2oCZHwcRrA T9_;
			NimStringDesc* T10_;
			if (!!(((*result).kind == kind || (*result).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)))) goto LA7_;
			nimZeroMem((void*)T9_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T9_[0] = toHumanStr__ast_5170((*result).kind);
			T9_[1] = toHumanStr__ast_5170(kind);
			T10_ = NIM_NIL;
			T10_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_117), T9_, 2);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T10_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_118, NIM_FALSE);
		}
		LA7_: ;
		asgnRef((void**) (&(*result).owner), getCurrOwner__semdata_327(c));
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T12_;
		tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T13_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T14_;
		T12_ = NIM_NIL;
		T12_ = considerQuotedIdent__lookups_29(c, n, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		T13_ = nextSymId__ast_3103((*c).Sup.idgen);
		T14_ = NIM_NIL;
		T14_ = getCurrOwner__semdata_327(c);
		result = newSym__ast_3409(kind, T12_, T13_, T14_, (*n).info, 0);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, semIdentVis__sem_475)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA allowed) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31))) goto LA3_;
		{
			NI T7_;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* v;
			T7_ = (NI)0;
			T7_ = len__ast_3155(n);
			if (!(T7_ == ((NI) 2))) goto LA8_;
			result = newSymG__sem_462(kind, (*n)._kind_6.sons->data[((NI) 1)], c);
			v = considerQuotedIdent__lookups_29(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = ((allowed &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 1))&63U)))!=0);
				if (!(T12_)) goto LA13_;
				T12_ = ((*v).id == ((NI) 72));
				LA13_: ;
				if (!T12_) goto LA14_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 1)) & 63);
			}
			goto LA10_;
			LA14_: ;
			{
				{
					NimStringDesc* T21_;
					if (!!(((allowed &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 1))&63U)))!=0))) goto LA19_;
					T21_ = NIM_NIL;
					T21_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_119), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_120));
					liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T21_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_121, 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__DKP9c7KM5AbqYVP6Gd9blNUw_122), T23_);
					liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T24_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_123, NIM_FALSE);
				}
				LA17_: ;
			}
			LA10_: ;
		}
		goto LA5_;
		LA8_: ;
		{
			illFormedAst__semdata_1101(n, (*(*c).graph).config);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = newSymG__sem_462(kind, n, c);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, semIdentWithPragma__sem_480)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA allowed) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43))) goto LA3_;
		checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
		result = semIdentVis__sem_475(c, kind, (*n)._kind_6.sons->data[((NI) 0)], allowed);
		switch (kind) {
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7):
		{
		}
		break;
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 19):
		{
			pragma__pragmas_125(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_124, NIM_FALSE);
		}
		break;
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 8):
		{
			pragma__pragmas_125(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_125, NIM_FALSE);
		}
		break;
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9):
		{
			pragma__pragmas_125(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_125, NIM_FALSE);
		}
		break;
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10):
		{
			pragma__pragmas_125(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_126, NIM_FALSE);
		}
		break;
		default:
		{
		}
		break;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		result = semIdentVis__sem_475(c, kind, n, allowed);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, getLineInfo__sem_10377)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw result;
{	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw));
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31):
	{
		{
			NI T4_;
			T4_ = (NI)0;
			T4_ = len__ast_3155(n);
			if (!(((NI) 1) < T4_)) goto LA5_;
			result = getLineInfo__sem_10377((*n)._kind_6.sons->data[((NI) 1)]);
			goto BeforeRet_;
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43):
	{
		{
			NI T10_;
			T10_ = (NI)0;
			T10_ = len__ast_3155(n);
			if (!(((NI) 0) < T10_)) goto LA11_;
			result = getLineInfo__sem_10377((*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_5404)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** usageSym, NIM_BOOL isDecl) {
	tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf;
	conf = (*g).config;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, semIdentDef__sem_10359)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, NIM_BOOL reportToNimsuggest) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__semdata_1121(c);
		if (!T3_) goto LA4_;
		result = semIdentWithPragma__sem_480(c, kind, n, 2);
		(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3)) & 63);
	}
	goto LA1_;
	LA4_: ;
	{
		result = semIdentWithPragma__sem_480(c, kind, n, 0);
		{
			if (!((*(*result).owner).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6))) goto LA9_;
			(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3)) & 63);
		}
		LA9_: ;
	}
	LA1_: ;
	(*result).options = (*(*(*c).graph).config).options;
	info = getLineInfo__sem_10377(n);
	{
		if (!reportToNimsuggest) goto LA13_;
		suggestSym__sigmatch_5404((*c).graph, info, result, &(*(*c).graph).usageSym, NIM_TRUE);
	}
	LA13_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semGenericConstraints__sem_6651)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* x) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tySequence__vKogasEnJSPhbQmA8r4Y9aA* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 1);
	asgnRef((void**) (&T1_->data[0]), x);
	result = newTypeWithSons__semdata_851(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12), T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semGenericParamList__sem_6659)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* father) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	result = copyNode__ast_4324(n);
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 75)))) goto LA3_;
		illFormedAst__semdata_1101(n, (*(*c).graph).config);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
				if (!(i_2 < colontmp_)) goto LA7;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				switch ((*a).kind) {
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T17_;
					{
						if (!!((father == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) 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__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0))) goto LA15_;
						addDecl__lookups_1517(c, (*a)._kind_4.sym);
					}
					LA15_: ;
					T17_ = NIM_NIL;
					T17_ = newSymNode__ast_3704((*a)._kind_4.sym);
					add__ast_4798(result, T17_);
				}
				break;
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35):
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* def;
					NI T19_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* constraint;
					NI T20_;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
					T19_ = (NI)0;
					T19_ = len__ast_3155(a);
					def = (*a)._kind_6.sons->data[(NI)(T19_ - ((NI) 1))];
					T20_ = (NI)0;
					T20_ = len__ast_3155(a);
					constraint = (*a)._kind_6.sons->data[(NI)(T20_ - ((NI) 2))];
					typ = NIM_NIL;
					{
						if (!!(((*constraint).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA23_;
						typ = semTypeNode__sem_83(c, constraint, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
						{
							NIM_BOOL T27_;
							NI T29_;
							T27_ = (NIM_BOOL)0;
							T27_ = !(((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60)));
							if (T27_) goto LA28_;
							T29_ = (NI)0;
							T29_ = len__ast_3990(typ);
							T27_ = (T29_ == ((NI) 0));
							LA28_: ;
							if (!T27_) goto LA30_;
							{
								if (!((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8))) goto LA34_;
								{
									tySequence__vKogasEnJSPhbQmA8r4Y9aA* T40_;
									if (!((*(*typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0))) goto LA38_;
									T40_ = NIM_NIL;
									T40_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 1);
									asgnRef((void**) (&T40_->data[0]), newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0), c));
									typ = newTypeWithSons__semdata_851(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8), T40_);
									(*typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 38)) & 63);
								}
								LA38_: ;
							}
							goto LA32_;
							LA34_: ;
							{
								typ = semGenericConstraints__sem_6651(c, typ);
							}
							LA32_: ;
						}
						LA30_: ;
					}
					LA23_: ;
					{
						if (!!(((*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA44_;
						def = semConstExpr__sem_619(c, def, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
						{
							if (!(typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA48_;
							{
								tySequence__vKogasEnJSPhbQmA8r4Y9aA* T54_;
								if (!!(((*(*def).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)))) goto LA52_;
								T54_ = NIM_NIL;
								T54_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 1);
								asgnRef((void**) (&T54_->data[0]), (*def).typ);
								typ = newTypeWithSons__semdata_851(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60), T54_);
							}
							LA52_: ;
						}
						goto LA46_;
						LA48_: ;
						{
							asgnRef((void**) (&(*def).typ), skipTypes__ast_3723((*def).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128));
							{
								NIM_BOOL T58_;
								T58_ = (NIM_BOOL)0;
								T58_ = containsGenericType__types_3412((*def).typ);
								if (!!(T58_)) goto LA59_;
								def = fitNode__sem_73(c, typ, def, (*def).info);
							}
							LA59_: ;
						}
						LA46_: ;
					}
					LA44_: ;
					{
						if (!(typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA63_;
						typ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12), c);
						{
							if (!(father == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA67_;
							(*typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 30)) & 63);
						}
						LA67_: ;
					}
					LA63_: ;
					(*typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 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_3155(a);
						colontmp__2 = (NI)(T70_ - ((NI) 2));
						i_3 = ((NI) 0);
						{
							while (1) {
								tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* finalType;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* paramName;
								tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw covarianceFlag;
								tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__wg9aowaxscbUe2F0nV9btZLg T78_;
									T78_ = nextTypeId__ast_3122((*c).Sup.idgen);
									finalType = copyType__ast_4034(typ, T78_, (*typ).owner);
									copyTypeProps__modulegraphs_8910((*c).graph, ((NI) ((*(*c).Sup.idgen).module)), finalType, typ);
								}
								LA73_: ;
								paramName = (*a)._kind_6.sons->data[j];
								covarianceFlag = ((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9);
								{
									NI T81_;
									T81_ = (NI)0;
									T81_ = safeLen__ast_3148(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__DKP9c7KM5AbqYVP6Gd9blNUw_129));
										LA87_: ;
										if (!T86_) goto LA88_;
										{
											NIM_BOOL T92_;
											NimStringDesc* T96_;
											NimStringDesc* T97_;
											T92_ = (NIM_BOOL)0;
											T92_ = (father == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
											if (T92_) goto LA93_;
											T92_ = !((((*(*father).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 6))&63U)))!=0));
											LA93_: ;
											if (!T92_) goto LA94_;
											T96_ = NIM_NIL;
											T96_ = dollar___renderer_2116((*paramName)._kind_6.sons->data[((NI) 0)]);
											T97_ = NIM_NIL;
											T97_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_130), T96_);
											liMessage__msgs_1128((*(*c).graph).config, (*paramName).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T97_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_131, NIM_FALSE);
										}
										LA94_: ;
									}
									LA88_: ;
									{
										if (!eqStrings((*(*(*paramName)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_129))) goto LA100_;
										covarianceFlag = ((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 37);
									}
									goto LA98_;
									LA100_: ;
									{
										covarianceFlag = ((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 35);
									}
									LA98_: ;
									{
										if (!!((father == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA105_;
										(*father).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 35)) & 63);
									}
									LA105_: ;
									paramName = (*paramName)._kind_6.sons->data[((NI) 1)];
								}
								LA82_: ;
								{
									NIM_BOOL T109_;
									tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T113_;
									T109_ = (NIM_BOOL)0;
									T109_ = ((*finalType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60));
									if (T109_) goto LA110_;
									T109_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 30))&63U)))!=0);
									LA110_: ;
									if (!T109_) goto LA111_;
									T113_ = NIM_NIL;
									T113_ = newSymG__sem_462(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 4), paramName, c);
									s = linkTo__ast_3511(T113_, finalType);
								}
								goto LA107_;
								LA111_: ;
								{
									tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T115_;
									T115_ = NIM_NIL;
									T115_ = newSymG__sem_462(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7), paramName, c);
									s = linkTo__ast_3511(T115_, finalType);
								}
								LA107_: ;
								{
									if (!!((covarianceFlag == ((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9)))) goto LA118_;
									(*(*s).typ).flags |= ((NU64)1)<<((covarianceFlag) & 63);
								}
								LA118_: ;
								{
									if (!!(((*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA122_;
									asgnRef((void**) (&(*s).ast), def);
								}
								LA122_: ;
								(*s).position = len__ast_3155(result);
								{
									if (!!((father == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA126_;
									addSonSkipIntLit__magicsys_136(father, (*s).typ, (*c).Sup.idgen);
								}
								LA126_: ;
								{
									if (!!((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0))) goto LA130_;
									addDecl__lookups_1517(c, s);
								}
								LA130_: ;
								T132_ = NIM_NIL;
								T132_ = newSymNode__ast_3704(s);
								add__ast_4798(result, T132_);
								i_3 += ((NI) 1);
							} LA72: ;
						}
					}
				}
				break;
				default:
				{
					illFormedAst__semdata_1101(n, (*(*c).graph).config);
				}
				break;
				}
				i_2 += ((NI) 1);
			} LA7: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setGenericParamsMisc__sem_6835)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig;
	orig = (*n)._kind_6.sons->data[((NI) 2)];
	{
		if (!!(((*orig).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) || (*orig).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 75)))) goto LA3_;
		failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_127));
	}
	LA3_: ;
	{
		if (!((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA7_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 75), (*n).info));
	}
	goto LA5_;
	LA7_: ;
	{
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), semGenericParamList__sem_6659(c, orig, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
	}
	LA5_: ;
	{
		tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T14_;
		if (!((*(*n)._kind_6.sons->data[((NI) 5)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA12_;
		nimZeroMem((void*)T14_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
		T14_[0] = (*(*c).graph).emptyNode;
		T14_[1] = orig;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 5)]), newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__kQDDJGUiaUAtO9c9b6LjZYjA*, newProcType__sem_5320)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TOptionEntry__KcSoeh10J9aas3WZevEUD7Q* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	result = NIM_NIL;
	result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25), prev, c);
	T1_ = NIM_NIL;
	T1_ = lastOptionEntry__semdata_353(c);
	(*result).callConv = (*T1_).defaultCC;
	asgnRef((void**) (&(*result).n), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 76), info));
	rawAddSon__ast_4276(result, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL), NIM_TRUE);
	T2_ = NIM_NIL;
	T2_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 152), info);
	add__ast_4798((*result).n, T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semParamType__sem_5299)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** constraint) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 40))) goto LA3_;
		result = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) 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__PKDcQ7dqdhiSW9c9cXUFFpMg* T10_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27));
		if (!(T7_)) goto LA8_;
		T7_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56));
		LA8_: ;
		T6_ = T7_;
		if (!(T6_)) goto LA9_;
		T10_ = NIM_NIL;
		T10_ = considerQuotedIdent__lookups_29(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		T6_ = eqStrings((*T10_).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_132));
		LA9_: ;
		if (!T6_) goto LA11_;
		result = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		unsureAsgnRef((void**) (&(*constraint)), semNodeKindConstraints__parampatterns_186(n, (*(*c).graph).config, ((NI) 2)));
	}
	goto LA1_;
	LA11_: ;
	{
		result = semTypeNode__sem_83(c, n, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMagic__sem_5329)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym) {
	NIM_BOOL result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nPragmas;
{	result = (NIM_BOOL)0;
	nPragmas = (*(*sym).ast)._kind_6.sons->data[((NI) 4)];
	result = hasPragma__pragmas_2585(nPragmas, ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 74));
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, pop__icZic_2462)(tySequence__ed0C0uAUZPhvw3RAc5hfYg** s) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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__ed0C0uAUZPhvw3RAc5hfYg*) setLengthSeqV2(((*s))?&((*s))->Sup:NIM_NIL, (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_), ((NI) (L))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semGenericStmtSymbol__sem_8634)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg* ctx, tySet_tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg flags, NIM_BOOL fromDotExpr) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
	switch ((*s).kind) {
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 0):
	{
		result = n;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12):
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 13):
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14):
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15):
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 16):
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6):
	{
		result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 1), NIM_FALSE);
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
	{
		{
			NIM_BOOL T6_;
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			NI T11_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T15_;
			NI T16_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T17_;
			T6_ = (NIM_BOOL)0;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T8_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 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_3990((*s).typ);
			T7_ = (T11_ == ((NI) 1));
			LA10_: ;
			T6_ = T7_;
			if (!(T6_)) goto LA12_;
			T6_ = !(fromDotExpr);
			LA12_: ;
			if (!T6_) goto LA13_;
			result = semTemplateExpr__sem_524(c, n, s, 8192, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			T15_ = NIM_NIL;
			T15_ = getModule__astalgo_216((*s).owner);
			asgnRef((void**) (&(*c).friendModules), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) incrSeqV3((TGenericSeq*)((*c).friendModules), (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_)));
			T16_ = (*c).friendModules->Sup.len++;
			asgnRef((void**) (&(*c).friendModules->data[T16_]), T15_);
			result = semGenericStmt__sem_8616(c, result, 0, ctx);
			T17_ = NIM_NIL;
			T17_ = pop__icZic_2462((&(*c).friendModules));
			(void)(T17_);
		}
		goto LA4_;
		LA13_: ;
		{
			result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 1), NIM_FALSE);
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
	{
		{
			NIM_BOOL T22_;
			NIM_BOOL T23_;
			NIM_BOOL T24_;
			NI T27_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T31_;
			NI T32_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T33_;
			T22_ = (NIM_BOOL)0;
			T23_ = (NIM_BOOL)0;
			T24_ = (NIM_BOOL)0;
			T24_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 10))&63U)))!=0));
			if (!(T24_)) goto LA25_;
			T24_ = ((393216 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
			LA25_: ;
			T23_ = T24_;
			if (!(T23_)) goto LA26_;
			T27_ = (NI)0;
			T27_ = len__ast_3990((*s).typ);
			T23_ = (T27_ == ((NI) 1));
			LA26_: ;
			T22_ = T23_;
			if (!(T22_)) goto LA28_;
			T22_ = !(fromDotExpr);
			LA28_: ;
			if (!T22_) goto LA29_;
			result = semMacroExpr__sem_530(c, n, n, s, 8192, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			T31_ = NIM_NIL;
			T31_ = getModule__astalgo_216((*s).owner);
			asgnRef((void**) (&(*c).friendModules), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) incrSeqV3((TGenericSeq*)((*c).friendModules), (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_)));
			T32_ = (*c).friendModules->Sup.len++;
			asgnRef((void**) (&(*c).friendModules->data[T32_]), T31_);
			result = semGenericStmt__sem_8616(c, result, 0, ctx);
			T33_ = NIM_NIL;
			T33_ = pop__icZic_2462((&(*c).friendModules));
			(void)(T33_);
		}
		goto LA20_;
		LA29_: ;
		{
			result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 1), NIM_FALSE);
		}
		LA20_: ;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 4):
	{
		{
			NIM_BOOL T38_;
			T38_ = (NIM_BOOL)0;
			T38_ = !(((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T38_)) goto LA39_;
			T38_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60));
			LA39_: ;
			if (!T38_) goto LA40_;
			{
				if (!!(((*(*s).typ).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA44_;
				result = (*(*s).typ).n;
			}
			goto LA42_;
			LA44_: ;
			{
				result = n;
			}
			LA42_: ;
		}
		goto LA36_;
		LA40_: ;
		{
			result = newSymNodeTypeDesc__semfold_870(s, (*c).Sup.idgen, (*n).info);
		}
		LA36_: ;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3):
	{
		result = n;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7):
	{
		{
			NIM_BOOL T52_;
			T52_ = (NIM_BOOL)0;
			T52_ = !(((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T52_)) goto LA53_;
			T52_ = (((*(*s).typ).flags & 100663296) == 0);
			LA53_: ;
			if (!T52_) goto LA54_;
			result = newSymNodeTypeDesc__semfold_870(s, (*c).Sup.idgen, (*n).info);
		}
		goto LA50_;
		LA54_: ;
		{
			result = n;
		}
		LA50_: ;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 20):
	{
		{
			if (!(((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 15))&31U)))!=0)) goto LA60_;
			result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 1), NIM_FALSE);
		}
		goto LA58_;
		LA60_: ;
		{
			result = newSymNode__ast_3707(s, (*n).info);
		}
		LA58_: ;
	}
	break;
	default:
	{
		result = newSymNode__ast_3707(s, (*n).info);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, lookup__sem_8710)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg flags, tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg* ctx) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
	NIM_BOOL amb;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T1_;
	result = NIM_NIL;
	result = n;
	ident = considerQuotedIdent__lookups_29(c, n, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
	amb = NIM_FALSE;
	T1_ = NIM_NIL;
	T1_ = searchInScopes__lookups_603(c, ident, (&amb));
	s = skipAlias__lookups_125(T1_, n, (*(*c).graph).config);
	{
		if (!(s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA4_;
		s = strTableGet__astalgo_3383((*c).pureEnumFields, ident);
	}
	LA4_: ;
	{
		if (!(s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__t75cnSW7fJYmKJQlh9ckkpg) 2))&7U)))!=0));
			LA14_: ;
			if (!T12_) goto LA15_;
			errorUndeclaredIdentifier__lookups_2564(c, (*n).info, (*ident).s, ((NimStringDesc*) NIM_NIL));
		}
		LA15_: ;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NIM_BOOL T20_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym2133_;
			T20_ = (NIM_BOOL)0;
			T20_ = ((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg) 0))&7U)))!=0);
			if (T20_) goto LA21_;
			xX60gensym2133_ = s;
			T20_ = contains__astalgo_3489((&(*ctx).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym2133_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2133_).Sup.itemId.item))));
			LA21_: ;
			if (!T20_) goto LA22_;
			result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0), NIM_FALSE);
		}
		goto LA18_;
		LA22_: ;
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sX60gensym2134_;
			NIM_BOOL T25_;
			NIM_BOOL T27_;
			NIM_BOOL T28_;
			sX60gensym2134_ = s;
			T25_ = (NIM_BOOL)0;
			T25_ = contains__astalgo_3489((&(*ctx).toMixin), (*(*sX60gensym2134_).name).id);
			if (T25_) goto LA26_;
			T27_ = (NIM_BOOL)0;
			T28_ = (NIM_BOOL)0;
			T28_ = ((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg) 3))&7U)))!=0);
			if (!(T28_)) goto LA29_;
			T28_ = ((*sX60gensym2134_).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0));
			LA29_: ;
			T27_ = T28_;
			if (!(T27_)) goto LA30_;
			T27_ = ((OverloadableSyms__ast_3011 &((NU32)1<<((NU)((*sX60gensym2134_).kind)&31U)))!=0);
			LA30_: ;
			T25_ = T27_;
			LA26_: ;
			if (!T25_) goto LA31_;
			result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 2), NIM_FALSE);
		}
		goto LA18_;
		LA31_: ;
		{
			result = semGenericStmtSymbol__sem_8634(c, n, s, ctx, flags, NIM_FALSE);
		}
		LA18_: ;
	}
	LA6_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newDot__sem_8776)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45), (*n).info);
	add__ast_4798(result, (*n)._kind_6.sons->data[((NI) 0)]);
	add__ast_4798(result, b);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, fuzzyLookup__sem_8789)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg flags, tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg* ctx, NIM_BOOL* isMacro) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tySet_tyEnum_TLookupFlag__ns0lQuhi2aWBQ9bXAfDCqaA luf;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	result = NIM_NIL;
	{
		if (!!(((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg) 2))&7U)))!=0))) goto LA3_;
		luf = 6;
	}
	goto LA1_;
	LA3_: ;
	{
		luf = 4;
	}
	LA1_: ;
	s = qualifiedLookUp__lookups_2598(c, n, luf);
	{
		if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA8_;
		result = semGenericStmtSymbol__sem_8634(c, n, s, ctx, flags, NIM_FALSE);
	}
	goto LA6_;
	LA8_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
		tySequence__ed0C0uAUZPhvw3RAc5hfYg* candidates;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[((NI) 0)], flags, ctx));
		result = n;
		n_2 = (*n)._kind_6.sons->data[((NI) 1)];
		ident = considerQuotedIdent__lookups_29(c, n_2, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		candidates = searchInScopesFilterBy__lookups_644(c, ident, 520192);
		{
			NI T13_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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__3r34mwqcVmg5JFNmiaVncw* xX60gensym2151_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T22_;
				T18_ = (NIM_BOOL)0;
				T18_ = ((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg) 0))&7U)))!=0);
				if (T18_) goto LA19_;
				xX60gensym2151_ = s_2;
				T18_ = contains__astalgo_3489((&(*ctx).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym2151_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2151_).Sup.itemId.item))));
				LA19_: ;
				if (!T18_) goto LA20_;
				T22_ = NIM_NIL;
				T22_ = symChoice__sem_6911(c, n_2, s_2, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0), NIM_FALSE);
				result = newDot__sem_8776(result, T22_);
			}
			goto LA16_;
			LA20_: ;
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sX60gensym2152_;
				NIM_BOOL T24_;
				NIM_BOOL T26_;
				NIM_BOOL T27_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T32_;
				sX60gensym2152_ = s_2;
				T24_ = (NIM_BOOL)0;
				T24_ = contains__astalgo_3489((&(*ctx).toMixin), (*(*sX60gensym2152_).name).id);
				if (T24_) goto LA25_;
				T26_ = (NIM_BOOL)0;
				T27_ = (NIM_BOOL)0;
				T27_ = ((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg) 3))&7U)))!=0);
				if (!(T27_)) goto LA28_;
				T27_ = ((*sX60gensym2152_).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0));
				LA28_: ;
				T26_ = T27_;
				if (!(T26_)) goto LA29_;
				T26_ = ((OverloadableSyms__ast_3011 &((NU32)1<<((NU)((*sX60gensym2152_).kind)&31U)))!=0);
				LA29_: ;
				T24_ = T26_;
				LA25_: ;
				if (!T24_) goto LA30_;
				T32_ = NIM_NIL;
				T32_ = symChoice__sem_6911(c, n_2, s_2, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 2), NIM_FALSE);
				result = newDot__sem_8776(result, T32_);
			}
			goto LA16_;
			LA30_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* syms;
				syms = semGenericStmtSymbol__sem_8634(c, n_2, s_2, ctx, flags, NIM_TRUE);
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* choice;
					if (!((*syms).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA36_;
					choice = symChoice__sem_6911(c, n_2, s_2, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 2), NIM_FALSE);
					transitionSonsKind__ast_4347(choice, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 56));
					result = newDot__sem_8776(result, choice);
				}
				goto LA34_;
				LA36_: ;
				{
					result = newDot__sem_8776(result, syms);
				}
				LA34_: ;
			}
			LA16_: ;
		}
		LA14_: ;
	}
	LA6_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semMixinStmt__sem_7026)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* toMixin) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI count;
	result = NIM_NIL;
	result = copyNode__ast_4324(n);
	count = ((NI) 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T4_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
				NI T5_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = NIM_NIL;
				T4_ = considerQuotedIdent__lookups_29(c, (*n)._kind_6.sons->data[i], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
				incl__pureZcollectionsZintsets_55(toMixin, (*T4_).id);
				x = symChoice__sem_6911(c, (*n)._kind_6.sons->data[i], ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL), ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 2), NIM_FALSE);
				T5_ = (NI)0;
				T5_ = len__ast_3155(x);
				count += T5_;
				add__ast_4798(result, x);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	{
		if (!(count == ((NI) 0))) goto LA8_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*n).info);
	}
	LA8_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semBindStmt__sem_6972)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* toBind) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = copyNode__ast_4324(n);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				s = qualifiedLookUp__lookups_2598(c, a, 2);
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* sc;
					if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA6_;
					sc = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0), NIM_FALSE);
					{
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym1701_;
						if (!((*sc).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA10_;
						xX60gensym1701_ = (*sc)._kind_4.sym;
						incl__pureZcollectionsZintsets_55(toBind, (NI)((NI)((NU64)(((NI) ((*xX60gensym1701_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1701_).Sup.itemId.item))));
						add__ast_4798(result, sc);
					}
					goto LA8_;
					LA10_: ;
					{
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(sc);
								i_4 = ((NI) 0);
								{
									while (1) {
										tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym1702_;
										if (!(i_4 < colontmp__2)) goto LA16;
										i_3 = i_4;
										x = (*sc)._kind_6.sons->data[i_3];
										xX60gensym1702_ = (*x)._kind_4.sym;
										incl__pureZcollectionsZintsets_55(toBind, (NI)((NI)((NU64)(((NI) ((*xX60gensym1702_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1702_).Sup.itemId.item))));
										add__ast_4798(result, x);
										i_4 += ((NI) 1);
									} LA16: ;
								}
							}
						}
					}
					LA8_: ;
				}
				goto LA4_;
				LA6_: ;
				{
					illFormedAst__semdata_1101(a, (*(*c).graph).config);
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semGenericStmtScope__sem_8621)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg flags, tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg* ctx) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	result = semGenericStmt__sem_8616(c, n, flags, ctx);
	closeScope__lookups_108(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newSymS__sem_457)(tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T1_;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T2_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T3_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = considerQuotedIdent__lookups_29(c, n, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
	T2_ = nextSymId__ast_3103((*c).Sup.idgen);
	T3_ = NIM_NIL;
	T3_ = getCurrOwner__semdata_327(c);
	result = newSym__ast_3409(kind, T1_, T2_, T3_, (*n).info, 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getIdentNode__sem_8596)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31):
	{
		result = getIdentNode__sem_8596(c, (*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43):
	{
		result = getIdentNode__sem_8596(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		result = n;
	}
	break;
	default:
	{
		illFormedAst__semdata_1101(n, (*(*c).graph).config);
		result = n;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addTempDecl__sem_8871)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	T1_ = NIM_NIL;
	T1_ = getIdentNode__sem_8596(c, n);
	s = newSymS__sem_457(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 0), T1_, c);
	addPrelimDecl__lookups_1520(c, s);
	{
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		NIM_BOOL T10_;
		NIM_BOOL T11_;
		NIM_BOOL T12_;
		NIM_BOOL T13_;
		NIM_BOOL T14_;
		NIM_BOOL T24_;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T9_ = (NIM_BOOL)0;
		T10_ = (NIM_BOOL)0;
		T11_ = (NIM_BOOL)0;
		T12_ = (NIM_BOOL)0;
		T13_ = (NIM_BOOL)0;
		T14_ = (NIM_BOOL)0;
		T14_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
		if (!(T14_)) goto LA15_;
		T14_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
		LA15_: ;
		T13_ = T14_;
		if (!(T13_)) goto LA16_;
		T13_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
		LA16_: ;
		T12_ = T13_;
		if (!(T12_)) goto LA17_;
		T12_ = belongsToProjectPackage__packages_50((*(*c).graph).config, s);
		LA17_: ;
		T11_ = T12_;
		if (!(T11_)) goto LA18_;
		T11_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
		LA18_: ;
		T10_ = T11_;
		if (!(T10_)) goto LA19_;
		T10_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
		LA19_: ;
		T9_ = T10_;
		if (!(T9_)) goto LA20_;
		T9_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
		LA20_: ;
		T8_ = T9_;
		if (!(T8_)) goto LA21_;
		T8_ = ((Letters__linter_12[(NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))&7U)))!=0);
		LA21_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA22_;
		T7_ = !(((144 &((NU32)1<<((NU)(kind)&31U)))!=0));
		LA22_: ;
		T6_ = T7_;
		if (!(T6_)) goto LA23_;
		T24_ = (NIM_BOOL)0;
		T24_ = ((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		if (T24_) goto LA25_;
		T24_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
		LA25_: ;
		T6_ = T24_;
		LA23_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA26_;
		T5_ = ((192 & (*s).flags) == 0);
		LA26_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA27_;
		T4_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
		LA27_: ;
		if (!T4_) goto LA28_;
		nep1CheckDefImpl__linter_112((*(*c).graph).config, (*n).info, s, kind);
	}
	LA28_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semGenericStmt__sem_8616)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg flags, tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg* ctx) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
	{
		result = lookup__sem_8710(c, n, flags, ctx);
		{
			NIM_BOOL T4_;
			T4_ = (NIM_BOOL)0;
			T4_ = !((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
			if (!(T4_)) goto LA5_;
			T4_ = ((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
			LA5_: ;
			if (!T4_) goto LA6_;
			markUsed__sigmatch_85(c, (*n).info, (*result)._kind_4.sym);
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
	{
		NIM_BOOL dummy;
		dummy = (NIM_BOOL)0;
		result = fuzzyLookup__sem_8789(c, n, flags, ctx, (&dummy));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* a;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* b;
		a = (*n)._kind_4.sym;
		b = getGenSym__semdata_420(c, a);
		{
			if (!!((b == a))) goto LA12_;
			asgnRef((void**) (&(*n)._kind_4.sym), b);
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 24):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 55):
	{
		result = semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[((NI) 0)], (flags | 1), ctx);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	{
		result = semMixinStmt__sem_7026(c, n, (&(*ctx).toMixin));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122):
	{
		result = semBindStmt__sem_6972(c, n, (&(*ctx).toBind));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fn;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		NI first;
		NIM_BOOL mixinContext;
		tySet_tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg flags_2;
		checkMinSonsLen__semdata_1114(n, ((NI) 1), (*(*c).graph).config);
		fn = (*n)._kind_6.sons->data[((NI) 0)];
		s = qualifiedLookUp__lookups_2598(c, fn, 0);
		{
			NIM_BOOL T21_;
			NIM_BOOL T22_;
			NIM_BOOL T23_;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T27_;
			NIM_BOOL T28_;
			NimStringDesc* T31_;
			T21_ = (NIM_BOOL)0;
			T22_ = (NIM_BOOL)0;
			T23_ = (NIM_BOOL)0;
			T23_ = (s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
			if (!(T23_)) goto LA24_;
			T23_ = ((12 & flags) == 0);
			LA24_: ;
			T22_ = T23_;
			if (!(T22_)) goto LA25_;
			T22_ = ((*fn).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2) || (*fn).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53));
			LA25_: ;
			T21_ = T22_;
			if (!(T21_)) goto LA26_;
			T27_ = NIM_NIL;
			T27_ = considerQuotedIdent__lookups_29(c, fn, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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_2564(c, (*n).info, T31_, ((NimStringDesc*) NIM_NIL));
		}
		LA29_: ;
		first = ((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg) 3))&7U)))!=0);
		mixinContext = NIM_FALSE;
		{
			tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ whichChoice;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* sc;
			if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA34_;
			(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
			mixinContext = ((*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 1) || (*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 2) || (*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 3) || (*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 4) || (*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 140));
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym2190_;
				NIM_BOOL T38_;
				xX60gensym2190_ = s;
				T38_ = (NIM_BOOL)0;
				T38_ = contains__astalgo_3489((&(*ctx).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym2190_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2190_).Sup.itemId.item))));
				if (!T38_) goto LA39_;
				whichChoice = ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0);
			}
			goto LA36_;
			LA39_: ;
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sX60gensym2191_;
				NIM_BOOL T42_;
				NIM_BOOL T44_;
				NIM_BOOL T45_;
				sX60gensym2191_ = s;
				T42_ = (NIM_BOOL)0;
				T42_ = contains__astalgo_3489((&(*ctx).toMixin), (*(*sX60gensym2191_).name).id);
				if (T42_) goto LA43_;
				T44_ = (NIM_BOOL)0;
				T45_ = (NIM_BOOL)0;
				T45_ = ((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__t75cnSW7fJYmKJQlh9ckkpg) 3))&7U)))!=0);
				if (!(T45_)) goto LA46_;
				T45_ = ((*sX60gensym2191_).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0));
				LA46_: ;
				T44_ = T45_;
				if (!(T44_)) goto LA47_;
				T44_ = ((OverloadableSyms__ast_3011 &((NU32)1<<((NU)((*sX60gensym2191_).kind)&31U)))!=0);
				LA47_: ;
				T42_ = T44_;
				LA43_: ;
				if (!T42_) goto LA48_;
				whichChoice = ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 2);
			}
			goto LA36_;
			LA48_: ;
			{
				whichChoice = ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 1);
			}
			LA36_: ;
			sc = symChoice__sem_6911(c, fn, s, whichChoice, NIM_FALSE);
			switch ((*s).kind) {
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
			{
				{
					NIM_BOOL T54_;
					NIM_BOOL T55_;
					NIM_BOOL T57_;
					NI T58_;
					NI T61_;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T64_;
					NI T65_;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T66_;
					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_3990((*s).typ);
					T57_ = (T58_ == ((NI) 1));
					if (T57_) goto LA59_;
					T57_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 9))&63U)))!=0);
					LA59_: ;
					T55_ = T57_;
					LA56_: ;
					T54_ = T55_;
					if (!(T54_)) goto LA60_;
					T61_ = (NI)0;
					T61_ = safeLen__ast_3148(sc);
					T54_ = (T61_ <= ((NI) 1));
					LA60_: ;
					if (!T54_) goto LA62_;
					result = semMacroExpr__sem_530(c, n, n, s, 8192, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					T64_ = NIM_NIL;
					T64_ = getModule__astalgo_216((*s).owner);
					asgnRef((void**) (&(*c).friendModules), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) incrSeqV3((TGenericSeq*)((*c).friendModules), (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_)));
					T65_ = (*c).friendModules->Sup.len++;
					asgnRef((void**) (&(*c).friendModules->data[T65_]), T64_);
					result = semGenericStmt__sem_8616(c, result, flags, ctx);
					T66_ = NIM_NIL;
					T66_ = pop__icZic_2462((&(*c).friendModules));
					(void)(T66_);
				}
				goto LA52_;
				LA62_: ;
				{
					asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), sc);
					result = n;
				}
				LA52_: ;
				mixinContext = NIM_TRUE;
			}
			break;
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
			{
				{
					NIM_BOOL T71_;
					NIM_BOOL T72_;
					NIM_BOOL T74_;
					NI T75_;
					NI T78_;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T81_;
					NI T82_;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T83_;
					T71_ = (NIM_BOOL)0;
					T72_ = (NIM_BOOL)0;
					T72_ = ((393216 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
					if (!(T72_)) goto LA73_;
					T74_ = (NIM_BOOL)0;
					T75_ = (NI)0;
					T75_ = len__ast_3990((*s).typ);
					T74_ = (T75_ == ((NI) 1));
					if (T74_) goto LA76_;
					T74_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 9))&63U)))!=0);
					LA76_: ;
					T72_ = T74_;
					LA73_: ;
					T71_ = T72_;
					if (!(T71_)) goto LA77_;
					T78_ = (NI)0;
					T78_ = safeLen__ast_3148(sc);
					T71_ = (T78_ <= ((NI) 1));
					LA77_: ;
					if (!T71_) goto LA79_;
					result = semTemplateExpr__sem_524(c, n, s, 8192, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					T81_ = NIM_NIL;
					T81_ = getModule__astalgo_216((*s).owner);
					asgnRef((void**) (&(*c).friendModules), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) incrSeqV3((TGenericSeq*)((*c).friendModules), (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_)));
					T82_ = (*c).friendModules->Sup.len++;
					asgnRef((void**) (&(*c).friendModules->data[T82_]), T81_);
					result = semGenericStmt__sem_8616(c, result, flags, ctx);
					T83_ = NIM_NIL;
					T83_ = pop__icZic_2462((&(*c).friendModules));
					(void)(T83_);
				}
				goto LA69_;
				LA79_: ;
				{
					asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), sc);
					result = n;
				}
				LA69_: ;
				mixinContext = NIM_TRUE;
			}
			break;
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 0):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3):
			{
			}
			break;
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 13):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 16):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6):
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), sc);
				first = ((NI) 1);
				{
					if (!((*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 268))) goto LA89_;
					first = safeLen__ast_3148(result);
				}
				LA89_: ;
			}
			break;
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 4):
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNodeTypeDesc__semfold_870(s, (*c).Sup.idgen, (*fn).info));
				first = ((NI) 1);
			}
			break;
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7):
			{
				{
					NIM_BOOL T95_;
					T95_ = (NIM_BOOL)0;
					T95_ = !(((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
					if (!(T95_)) goto LA96_;
					T95_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12)));
					LA96_: ;
					if (!T95_) goto LA97_;
					asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNodeTypeDesc__semfold_870(s, (*c).Sup.idgen, (*fn).info));
					first = ((NI) 1);
				}
				LA97_: ;
			}
			break;
			default:
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3707(s, (*fn).info));
				first = ((NI) 1);
			}
			break;
			}
		}
		goto LA32_;
		LA34_: ;
		{
			if (!((*fn).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45))) goto LA101_;
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), fuzzyLookup__sem_8789(c, fn, flags, ctx, (&mixinContext)));
			first = ((NI) 1);
		}
		goto LA32_;
		LA101_: ;
		LA32_: ;
		{
			if (!mixinContext) goto LA105_;
			flags_2 = (flags | 4);
		}
		goto LA103_;
		LA105_: ;
		{
			flags_2 = flags;
		}
		LA103_: ;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(result);
			i_2 = first;
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA110;
					i = i_2;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i]), semGenericStmt__sem_8616(c, (*result)._kind_6.sons->data[i], flags_2, ctx));
					i_2 += ((NI) 1);
				} LA110: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 40):
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T112_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T113_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
		T112_ = NIM_NIL;
		T112_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_132));
		T113_ = NIM_NIL;
		T113_ = newIdentNode__ast_3700(T112_, (*n).info);
		add__ast_4798(result, T113_);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3155(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA116;
					i_3 = i_4;
					add__ast_4798(result, (*n)._kind_6.sons->data[i_3]);
					i_4 += ((NI) 1);
				} LA116: ;
			}
		}
		result = semGenericStmt__sem_8616(c, result, flags, ctx);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T118_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T119_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
		T118_ = NIM_NIL;
		T118_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_33));
		T119_ = NIM_NIL;
		T119_ = newIdentNode__ast_3700(T118_, (*n).info);
		add__ast_4798(result, T119_);
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__ast_3155(n);
			i_6 = ((NI) 0);
			{
				while (1) {
					if (!(i_6 < colontmp__3)) goto LA122;
					i_5 = i_6;
					add__ast_4798(result, (*n)._kind_6.sons->data[i_5]);
					i_6 += ((NI) 1);
				} LA122: ;
			}
		}
		result = semGenericStmt__sem_8616(c, result, flags, ctx);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_2;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b_2;
		tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw k;
		checkSonsLen__semdata_1107(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__clSgDh22o9au33BrVH9bDQZw) 40):
		{
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T125_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T126_;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
			T125_ = NIM_NIL;
			T125_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_135));
			T126_ = NIM_NIL;
			T126_ = newIdentNode__ast_3700(T125_, (*n).info);
			add__ast_4798(result, T126_);
			{
				NI i_7;
				NI colontmp__4;
				NI i_8;
				i_7 = (NI)0;
				colontmp__4 = (NI)0;
				colontmp__4 = len__ast_3155(a_2);
				i_8 = ((NI) 0);
				{
					while (1) {
						if (!(i_8 < colontmp__4)) goto LA129;
						i_7 = i_8;
						add__ast_4798(result, (*a_2)._kind_6.sons->data[i_7]);
						i_8 += ((NI) 1);
					} LA129: ;
				}
			}
			add__ast_4798(result, b_2);
			result = semGenericStmt__sem_8616(c, result, flags, ctx);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
		{
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T131_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T132_;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
			T131_ = NIM_NIL;
			T131_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_136));
			T132_ = NIM_NIL;
			T132_ = newIdentNode__ast_3700(T131_, (*n).info);
			add__ast_4798(result, T132_);
			{
				NI i_9;
				NI colontmp__5;
				NI i_10;
				i_9 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = len__ast_3155(a_2);
				i_10 = ((NI) 0);
				{
					while (1) {
						if (!(i_10 < colontmp__5)) goto LA135;
						i_9 = i_10;
						add__ast_4798(result, (*a_2)._kind_6.sons->data[i_9]);
						i_10 += ((NI) 1);
					} LA135: ;
				}
			}
			add__ast_4798(result, b_2);
			result = semGenericStmt__sem_8616(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_3155(n);
				i_12 = ((NI) 0);
				{
					while (1) {
						if (!(i_12 < colontmp__6)) goto LA139;
						i_11 = i_12;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_11]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[i_11], flags, ctx));
						i_12 += ((NI) 1);
					} LA139: ;
				}
			}
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92):
	{
		{
			NI i_13;
			NI colontmp__7;
			NI i_14;
			i_13 = (NI)0;
			colontmp__7 = (NI)0;
			colontmp__7 = len__ast_3155(n);
			i_14 = ((NI) 0);
			{
				while (1) {
					if (!(i_14 < colontmp__7)) goto LA143;
					i_13 = i_14;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_13]), semGenericStmtScope__sem_8621(c, (*n)._kind_6.sons->data[i_13], flags, ctx));
					i_14 += ((NI) 1);
				} LA143: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 93):
	{
		{
			NI i_15;
			NI colontmp__8;
			NI i_16;
			i_15 = (NI)0;
			colontmp__8 = (NI)0;
			colontmp__8 = len__ast_3155(n);
			i_16 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
					if (!(i_16 < colontmp__8)) goto LA147;
					i_15 = i_16;
					it = (*n)._kind_6.sons->data[i_15];
					{
						if (!((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 49) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86))) goto LA150_;
						asgnRef((void**) (&(*(*n)._kind_6.sons->data[i_15])._kind_6.sons->data[((NI) 0)]), semGenericStmt__sem_8616(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_8616(c, (*it)._kind_6.sons->data[((NI) 1)], (flags | 4), ctx));
					}
					goto LA148_;
					LA150_: ;
					{
						asgnRef((void**) (&(*n)._kind_6.sons->data[i_15]), semGenericStmt__sem_8616(c, it, (flags | 4), ctx));
					}
					LA148_: ;
					i_16 += ((NI) 1);
				} LA147: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96):
	{
		tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T154_;
		T154_ = NIM_NIL;
		T154_ = openScope__lookups_76(c);
		{
			NI i_17;
			NI colontmp__9;
			NI i_18;
			i_17 = (NI)0;
			colontmp__9 = (NI)0;
			colontmp__9 = len__ast_3155(n);
			i_18 = ((NI) 0);
			{
				while (1) {
					if (!(i_18 < colontmp__9)) goto LA157;
					i_17 = i_18;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_17]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[i_17], flags, ctx));
					i_18 += ((NI) 1);
				} LA157: ;
			}
		}
		closeScope__lookups_108(c);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 97):
	{
		tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T159_;
		T159_ = NIM_NIL;
		T159_ = openScope__lookups_76(c);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semGenericStmt__sem_8616(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_3155(n);
			i_20 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_3;
					NI T167_;
					NI T168_;
					if (!(i_20 < colontmp__10)) goto LA162;
					i_19 = i_20;
					a_3 = (*n)._kind_6.sons->data[i_19];
					checkMinSonsLen__semdata_1114(a_3, ((NI) 1), (*(*c).graph).config);
					{
						NI j;
						NI colontmp__11;
						NI T164_;
						NI i_21;
						j = (NI)0;
						colontmp__11 = (NI)0;
						T164_ = (NI)0;
						T164_ = len__ast_3155(a_3);
						colontmp__11 = (NI)(T164_ - ((NI) 1));
						i_21 = ((NI) 0);
						{
							while (1) {
								if (!(i_21 < colontmp__11)) goto LA166;
								j = i_21;
								asgnRef((void**) (&(*a_3)._kind_6.sons->data[j]), semGenericStmt__sem_8616(c, (*a_3)._kind_6.sons->data[j], flags, ctx));
								i_21 += ((NI) 1);
							} LA166: ;
						}
					}
					T167_ = (NI)0;
					T167_ = len__ast_3155(a_3);
					T168_ = (NI)0;
					T168_ = len__ast_3155(a_3);
					asgnRef((void**) (&(*a_3)._kind_6.sons->data[(NI)(T167_ - ((NI) 1))]), semGenericStmtScope__sem_8621(c, (*a_3)._kind_6.sons->data[(NI)(T168_ - ((NI) 1))], flags, ctx));
					i_20 += ((NI) 1);
				} LA162: ;
			}
		}
		closeScope__lookups_108(c);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 94):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 95):
	{
		tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T170_;
		NI T171_;
		NI T172_;
		tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T190_;
		NI T191_;
		NI T192_;
		T170_ = NIM_NIL;
		T170_ = openScope__lookups_76(c);
		T171_ = (NI)0;
		T171_ = len__ast_3155(n);
		T172_ = (NI)0;
		T172_ = len__ast_3155(n);
		asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T171_ - ((NI) 2))]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[(NI)(T172_ - ((NI) 2))], flags, ctx));
		{
			NI i_22;
			NI colontmp__12;
			NI T174_;
			NI i_23;
			i_22 = (NI)0;
			colontmp__12 = (NI)0;
			T174_ = (NI)0;
			T174_ = len__ast_3155(n);
			colontmp__12 = (NI)(T174_ - ((NI) 2));
			i_23 = ((NI) 0);
			{
				while (1) {
					if (!(i_23 < colontmp__12)) goto LA176;
					i_22 = i_23;
					{
						if (!((*(*n)._kind_6.sons->data[i_22]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36))) goto LA179_;
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s_2;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(colontmp__13);
								i_25 = ((NI) 0);
								{
									while (1) {
										if (!(i_25 < colontmp__14)) goto LA184;
										i_24 = i_25;
										s_2 = (*colontmp__13)._kind_6.sons->data[i_24];
										{
											if (!((*s_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2))) goto LA187_;
											addTempDecl__sem_8871(c, s_2, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21));
										}
										LA187_: ;
										i_25 += ((NI) 1);
									} LA184: ;
								}
							}
						}
					}
					goto LA177_;
					LA179_: ;
					{
						addTempDecl__sem_8871(c, (*n)._kind_6.sons->data[i_22], ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21));
					}
					LA177_: ;
					i_23 += ((NI) 1);
				} LA176: ;
			}
		}
		T190_ = NIM_NIL;
		T190_ = openScope__lookups_76(c);
		T191_ = (NI)0;
		T191_ = len__ast_3155(n);
		T192_ = (NI)0;
		T192_ = len__ast_3155(n);
		asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T191_ - ((NI) 1))]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[(NI)(T192_ - ((NI) 1))], flags, ctx));
		closeScope__lookups_108(c);
		closeScope__lookups_108(c);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 127):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 129):
	{
		tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T194_;
		checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
		T194_ = NIM_NIL;
		T194_ = openScope__lookups_76(c);
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA197_;
			addTempDecl__sem_8871(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 22));
		}
		LA197_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[((NI) 1)], flags, ctx));
		closeScope__lookups_108(c);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 154):
	{
		checkMinSonsLen__semdata_1114(n, ((NI) 2), (*(*c).graph).config);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semGenericStmtScope__sem_8621(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_3155(n);
			i_27 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_4;
					tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T203_;
					NI T215_;
					NI T216_;
					if (!(i_27 < colontmp__15)) goto LA202;
					i_26 = i_27;
					a_4 = (*n)._kind_6.sons->data[i_26];
					checkMinSonsLen__semdata_1114(a_4, ((NI) 1), (*(*c).graph).config);
					T203_ = NIM_NIL;
					T203_ = openScope__lookups_76(c);
					{
						NI j_2;
						NI colontmp__16;
						NI T205_;
						NI i_28;
						j_2 = (NI)0;
						colontmp__16 = (NI)0;
						T205_ = (NI)0;
						T205_ = len__ast_3155(a_4);
						colontmp__16 = (NI)(T205_ - ((NI) 1));
						i_28 = ((NI) 0);
						{
							while (1) {
								if (!(i_28 < colontmp__16)) goto LA207;
								j_2 = i_28;
								{
									NIM_BOOL T210_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T213_;
									T210_ = (NIM_BOOL)0;
									T210_ = isInfixAs__ast_4936((*a_4)._kind_6.sons->data[j_2]);
									if (!T210_) goto LA211_;
									T213_ = NIM_NIL;
									T213_ = getIdentNode__sem_8596(c, (*(*a_4)._kind_6.sons->data[j_2])._kind_6.sons->data[((NI) 2)]);
									addTempDecl__sem_8871(c, T213_, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9));
									asgnRef((void**) (&(*(*a_4)._kind_6.sons->data[j_2])._kind_6.sons->data[((NI) 1)]), semGenericStmt__sem_8616(c, (*(*a_4)._kind_6.sons->data[j_2])._kind_6.sons->data[((NI) 1)], (flags | 2), ctx));
								}
								goto LA208_;
								LA211_: ;
								{
									asgnRef((void**) (&(*a_4)._kind_6.sons->data[j_2]), semGenericStmt__sem_8616(c, (*a_4)._kind_6.sons->data[j_2], (flags | 2), ctx));
								}
								LA208_: ;
								i_28 += ((NI) 1);
							} LA207: ;
						}
					}
					T215_ = (NI)0;
					T215_ = len__ast_3155(a_4);
					T216_ = (NI)0;
					T216_ = len__ast_3155(a_4);
					asgnRef((void**) (&(*a_4)._kind_6.sons->data[(NI)(T215_ - ((NI) 1))]), semGenericStmtScope__sem_8621(c, (*a_4)._kind_6.sons->data[(NI)(T216_ - ((NI) 1))], flags, ctx));
					closeScope__lookups_108(c);
					i_27 += ((NI) 1);
				} LA202: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 100):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 101):
	{
		tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw varKind;
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99):
		{
			varKind = ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 8);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 100):
		{
			varKind = ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9);
		}
		break;
		default:
		{
			varKind = ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10);
		}
		break;
		}
		{
			NI i_29;
			NI colontmp__17;
			NI i_30;
			i_29 = (NI)0;
			colontmp__17 = (NI)0;
			colontmp__17 = len__ast_3155(n);
			i_30 = ((NI) 0);
			{
				while (1) {
					if (!(i_30 < colontmp__17)) goto LA223;
					i_29 = i_30;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_5;
						a_5 = (*n)._kind_6.sons->data[i_29];
						switch ((*a_5).kind) {
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
						{
							goto LA224;
						}
						break;
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35):
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36):
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 102):
						{
							NI T227_;
							NI T228_;
							NI T229_;
							NI T230_;
							checkMinSonsLen__semdata_1114(a_5, ((NI) 3), (*(*c).graph).config);
							T227_ = (NI)0;
							T227_ = len__ast_3155(a_5);
							T228_ = (NI)0;
							T228_ = len__ast_3155(a_5);
							asgnRef((void**) (&(*a_5)._kind_6.sons->data[(NI)(T227_ - ((NI) 2))]), semGenericStmt__sem_8616(c, (*a_5)._kind_6.sons->data[(NI)(T228_ - ((NI) 2))], (flags | 2), ctx));
							T229_ = (NI)0;
							T229_ = len__ast_3155(a_5);
							T230_ = (NI)0;
							T230_ = len__ast_3155(a_5);
							asgnRef((void**) (&(*a_5)._kind_6.sons->data[(NI)(T229_ - ((NI) 1))]), semGenericStmt__sem_8616(c, (*a_5)._kind_6.sons->data[(NI)(T230_ - ((NI) 1))], flags, ctx));
							{
								NI j_3;
								NI colontmp__18;
								NI T232_;
								NI i_31;
								j_3 = (NI)0;
								colontmp__18 = (NI)0;
								T232_ = (NI)0;
								T232_ = len__ast_3155(a_5);
								colontmp__18 = (NI)(T232_ - ((NI) 2));
								i_31 = ((NI) 0);
								{
									while (1) {
										tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T235_;
										if (!(i_31 < colontmp__18)) goto LA234;
										j_3 = i_31;
										T235_ = NIM_NIL;
										T235_ = getIdentNode__sem_8596(c, (*a_5)._kind_6.sons->data[j_3]);
										addTempDecl__sem_8871(c, T235_, varKind);
										i_31 += ((NI) 1);
									} LA234: ;
								}
							}
						}
						break;
						default:
						{
							illFormedAst__semdata_1101(a_5, (*(*c).graph).config);
						}
						break;
						}
					} LA224: ;
					i_30 += ((NI) 1);
				} LA223: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 75):
	{
		{
			NI i_32;
			NI colontmp__19;
			NI i_33;
			i_32 = (NI)0;
			colontmp__19 = (NI)0;
			colontmp__19 = len__ast_3155(n);
			i_33 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_6;
					NI T245_;
					NI T246_;
					if (!(i_33 < colontmp__19)) goto LA240;
					i_32 = i_33;
					a_6 = (*n)._kind_6.sons->data[i_32];
					{
						if (!!(((*a_6).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35)))) goto LA243_;
						illFormedAst__semdata_1101(a_6, (*(*c).graph).config);
					}
					LA243_: ;
					checkMinSonsLen__semdata_1114(a_6, ((NI) 3), (*(*c).graph).config);
					T245_ = (NI)0;
					T245_ = len__ast_3155(a_6);
					T246_ = (NI)0;
					T246_ = len__ast_3155(a_6);
					asgnRef((void**) (&(*a_6)._kind_6.sons->data[(NI)(T245_ - ((NI) 2))]), semGenericStmt__sem_8616(c, (*a_6)._kind_6.sons->data[(NI)(T246_ - ((NI) 2))], (flags | 2), ctx));
					{
						NI j_4;
						NI colontmp__20;
						NI T248_;
						NI i_34;
						j_4 = (NI)0;
						colontmp__20 = (NI)0;
						T248_ = (NI)0;
						T248_ = len__ast_3155(a_6);
						colontmp__20 = (NI)(T248_ - ((NI) 2));
						i_34 = ((NI) 0);
						{
							while (1) {
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T251_;
								if (!(i_34 < colontmp__20)) goto LA250;
								j_4 = i_34;
								T251_ = NIM_NIL;
								T251_ = getIdentNode__sem_8596(c, (*a_6)._kind_6.sons->data[j_4]);
								addTempDecl__sem_8871(c, T251_, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7));
								i_34 += ((NI) 1);
							} LA250: ;
						}
					}
					i_33 += ((NI) 1);
				} LA240: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	{
		{
			NI i_35;
			NI colontmp__21;
			NI i_36;
			i_35 = (NI)0;
			colontmp__21 = (NI)0;
			colontmp__21 = len__ast_3155(n);
			i_36 = ((NI) 0);
			{
				while (1) {
					if (!(i_36 < colontmp__21)) goto LA255;
					i_35 = i_36;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_7;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T265_;
						a_7 = (*n)._kind_6.sons->data[i_35];
						{
							if (!((*a_7).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125))) goto LA259_;
							goto LA256;
						}
						LA259_: ;
						{
							if (!!(((*a_7).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 103)))) goto LA263_;
							illFormedAst__semdata_1101(a_7, (*(*c).graph).config);
						}
						LA263_: ;
						checkSonsLen__semdata_1107(a_7, ((NI) 3), (*(*c).graph).config);
						T265_ = NIM_NIL;
						T265_ = getIdentNode__sem_8596(c, (*a_7)._kind_6.sons->data[((NI) 0)]);
						addTempDecl__sem_8871(c, T265_, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7));
					} LA256: ;
					i_36 += ((NI) 1);
				} LA255: ;
			}
		}
		{
			NI i_37;
			NI colontmp__22;
			NI i_38;
			i_37 = (NI)0;
			colontmp__22 = (NI)0;
			colontmp__22 = len__ast_3155(n);
			i_38 = ((NI) 0);
			{
				while (1) {
					if (!(i_38 < colontmp__22)) goto LA268;
					i_37 = i_38;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_8;
						a_8 = (*n)._kind_6.sons->data[i_37];
						{
							if (!((*a_8).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125))) goto LA272_;
							goto LA269;
						}
						LA272_: ;
						{
							if (!!(((*a_8).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 103)))) goto LA276_;
							illFormedAst__semdata_1101(a_8, (*(*c).graph).config);
						}
						LA276_: ;
						checkSonsLen__semdata_1107(a_8, ((NI) 3), (*(*c).graph).config);
						{
							tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T282_;
							if (!!(((*(*a_8)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA280_;
							T282_ = NIM_NIL;
							T282_ = openScope__lookups_76(c);
							asgnRef((void**) (&(*a_8)._kind_6.sons->data[((NI) 1)]), semGenericStmt__sem_8616(c, (*a_8)._kind_6.sons->data[((NI) 1)], flags, ctx));
							asgnRef((void**) (&(*a_8)._kind_6.sons->data[((NI) 2)]), semGenericStmt__sem_8616(c, (*a_8)._kind_6.sons->data[((NI) 2)], (flags | 2), ctx));
							closeScope__lookups_108(c);
						}
						goto LA278_;
						LA280_: ;
						{
							asgnRef((void**) (&(*a_8)._kind_6.sons->data[((NI) 2)]), semGenericStmt__sem_8616(c, (*a_8)._kind_6.sons->data[((NI) 2)], (flags | 2), ctx));
						}
						LA278_: ;
					} LA269: ;
					i_38 += ((NI) 1);
				} LA268: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 150):
	{
		{
			NI T287_;
			T287_ = (NI)0;
			T287_ = len__ast_3155(n);
			if (!(((NI) 0) < T287_)) goto LA288_;
			{
				if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA292_;
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[((NI) 0)], (flags | 2), ctx));
			}
			LA292_: ;
			{
				NI i_39;
				NI colontmp__23;
				NI i_40;
				i_39 = (NI)0;
				colontmp__23 = (NI)0;
				colontmp__23 = len__ast_3155(n);
				i_40 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_9;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T300_;
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T301_;
						if (!(i_40 < colontmp__23)) goto LA296;
						i_39 = i_40;
						a_9 = NIM_NIL;
						switch ((*(*n)._kind_6.sons->data[i_39]).kind) {
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 151):
						{
							a_9 = (*(*n)._kind_6.sons->data[i_39])._kind_6.sons->data[((NI) 0)];
						}
						break;
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
						{
							a_9 = (*n)._kind_6.sons->data[i_39];
						}
						break;
						default:
						{
							illFormedAst__semdata_1101(n, (*(*c).graph).config);
						}
						break;
						}
						T300_ = NIM_NIL;
						T300_ = getIdentNode__sem_8596(c, a_9);
						T301_ = NIM_NIL;
						T301_ = newSymS__sem_457(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 0), T300_, c);
						addDecl__lookups_1517(c, T301_);
						i_40 += ((NI) 1);
					} LA296: ;
				}
			}
		}
		LA288_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 133):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 134):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 135):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 76):
	{
		checkMinSonsLen__semdata_1114(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_3155(n);
			i_42 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_10;
					NI T311_;
					NI T312_;
					NI T313_;
					NI T314_;
					if (!(i_42 < colontmp__24)) goto LA306;
					i_41 = i_42;
					a_10 = (*n)._kind_6.sons->data[i_41];
					{
						if (!!(((*a_10).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35)))) goto LA309_;
						illFormedAst__semdata_1101(a_10, (*(*c).graph).config);
					}
					LA309_: ;
					checkMinSonsLen__semdata_1114(a_10, ((NI) 3), (*(*c).graph).config);
					T311_ = (NI)0;
					T311_ = len__ast_3155(a_10);
					T312_ = (NI)0;
					T312_ = len__ast_3155(a_10);
					asgnRef((void**) (&(*a_10)._kind_6.sons->data[(NI)(T311_ - ((NI) 2))]), semGenericStmt__sem_8616(c, (*a_10)._kind_6.sons->data[(NI)(T312_ - ((NI) 2))], (flags | 2), ctx));
					T313_ = (NI)0;
					T313_ = len__ast_3155(a_10);
					T314_ = (NI)0;
					T314_ = len__ast_3155(a_10);
					asgnRef((void**) (&(*a_10)._kind_6.sons->data[(NI)(T313_ - ((NI) 1))]), semGenericStmt__sem_8616(c, (*a_10)._kind_6.sons->data[(NI)(T314_ - ((NI) 1))], flags, ctx));
					{
						NI j_5;
						NI colontmp__25;
						NI T316_;
						NI i_43;
						j_5 = (NI)0;
						colontmp__25 = (NI)0;
						T316_ = (NI)0;
						T316_ = len__ast_3155(a_10);
						colontmp__25 = (NI)(T316_ - ((NI) 2));
						i_43 = ((NI) 0);
						{
							while (1) {
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T319_;
								if (!(i_43 < colontmp__25)) goto LA318;
								j_5 = i_43;
								T319_ = NIM_NIL;
								T319_ = getIdentNode__sem_8596(c, (*a_10)._kind_6.sons->data[j_5]);
								addTempDecl__sem_8871(c, T319_, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3));
								i_43 += ((NI) 1);
							} LA318: ;
						}
					}
					i_42 += ((NI) 1);
				} LA306: ;
			}
		}
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA322_;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[((NI) 0)], (flags | 2), ctx));
		}
		LA322_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 80):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 82):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	{
		tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T330_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body;
		checkSonsLen__semdata_1107(n, ((NI) 7), (*(*c).graph).config);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T329_;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA327_;
			T329_ = NIM_NIL;
			T329_ = getIdentNode__sem_8596(c, (*n)._kind_6.sons->data[((NI) 0)]);
			addTempDecl__sem_8871(c, T329_, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12));
		}
		LA327_: ;
		T330_ = NIM_NIL;
		T330_ = openScope__lookups_76(c);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[((NI) 2)], flags, ctx));
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 3)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA333_;
			{
				tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T339_;
				tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T340_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T341_;
				if (!!(((*(*(*n)._kind_6.sons->data[((NI) 3)])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA337_;
				T339_ = NIM_NIL;
				T339_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_107));
				T340_ = nextSymId__ast_3103((*c).Sup.idgen);
				T341_ = NIM_NIL;
				T341_ = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 0), T339_, T340_, ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL), (*n).info, 0);
				addPrelimDecl__lookups_1520(c, T341_);
			}
			LA337_: ;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 3)]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[((NI) 3)], flags, ctx));
		}
		LA333_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 4)]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[((NI) 4)], flags, ctx));
		body = NIM_NIL;
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s_3;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA344_;
			s_3 = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			{
				NIM_BOOL T348_;
				T348_ = (NIM_BOOL)0;
				T348_ = (((*s_3).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0);
				if (!(T348_)) goto LA349_;
				T348_ = ((*s_3).ast == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
				LA349_: ;
				if (!T348_) goto LA350_;
				body = (*n)._kind_6.sons->data[((NI) 6)];
			}
			goto LA346_;
			LA350_: ;
			{
				body = getBody__modulegraphs_13094((*c).graph, s_3);
			}
			LA346_: ;
		}
		goto LA342_;
		LA344_: ;
		{
			body = (*n)._kind_6.sons->data[((NI) 6)];
		}
		LA342_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), semGenericStmtScope__sem_8621(c, body, flags, ctx));
		closeScope__lookups_108(c);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 90):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 33):
	{
		checkMinSonsLen__semdata_1114(n, ((NI) 2), (*(*c).graph).config);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[((NI) 1)], flags, ctx));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38):
	{
		{
			NI i_44;
			NI colontmp__26;
			NI i_45;
			i_44 = (NI)0;
			colontmp__26 = (NI)0;
			colontmp__26 = len__ast_3155(n);
			i_45 = ((NI) 0);
			{
				while (1) {
					if (!(i_45 < colontmp__26)) goto LA359;
					i_44 = i_45;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i_44]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[i_44], flags, ctx));
					i_45 += ((NI) 1);
				} LA359: ;
			}
		}
		{
			NI fmoduleId;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym2396_;
			NIM_BOOL isVisable;
			if (!((*(*result)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA362_;
			xX60gensym2396_ = getModule__astalgo_216((*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
			fmoduleId = (NI)((NI)((NU64)(((NI) ((*xX60gensym2396_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2396_).Sup.itemId.item)));
			isVisable = NIM_FALSE;
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** module;
				NI i_46;
				NI L;
				NI T365_;
				module = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
				i_46 = ((NI) 0);
				T365_ = ((*c).friendModules ? (*c).friendModules->Sup.len : 0);
				L = T365_;
				{
					while (1) {
						if (!(i_46 < L)) goto LA367;
						module = &(*c).friendModules->data[i_46];
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym2397_;
							xX60gensym2397_ = (*module);
							if (!((NI)((NI)((NU64)(((NI) ((*xX60gensym2397_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2397_).Sup.itemId.item))) == fmoduleId)) goto LA370_;
							isVisable = NIM_TRUE;
							goto LA364;
						}
						LA370_: ;
						i_46 += ((NI) 1);
					} LA367: ;
				}
			} LA364: ;
			{
				if (!isVisable) goto LA374_;
				{
					NI i_47;
					NI colontmp__27;
					NI i_48;
					i_47 = (NI)0;
					colontmp__27 = (NI)0;
					colontmp__27 = len__ast_3155(result);
					i_48 = ((NI) 1);
					{
						while (1) {
							if (!(i_48 < colontmp__27)) goto LA378;
							i_47 = i_48;
							{
								if (!((*(*result)._kind_6.sons->data[i_47]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34))) goto LA381_;
								(*(*(*result)._kind_6.sons->data[i_47])._kind_6.sons->data[((NI) 1)]).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 24)) & 31);
							}
							LA381_: ;
							i_48 += ((NI) 1);
						} LA378: ;
					}
				}
			}
			LA374_: ;
		}
		LA362_: ;
	}
	break;
	default:
	{
		{
			NI i_49;
			NI colontmp__28;
			NI i_50;
			i_49 = (NI)0;
			colontmp__28 = (NI)0;
			colontmp__28 = len__ast_3155(n);
			i_50 = ((NI) 0);
			{
				while (1) {
					if (!(i_50 < colontmp__28)) goto LA386;
					i_49 = i_50;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i_49]), semGenericStmt__sem_8616(c, (*n)._kind_6.sons->data[i_49], flags, ctx));
					i_50 += ((NI) 1);
				} LA386: ;
			}
		}
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semGenericStmt__sem_2949)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg ctx;
	result = NIM_NIL;
	nimZeroMem((void*)(&ctx), sizeof(tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toMixin));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toBind));
	result = semGenericStmt__sem_8616(c, n, 0, (&ctx));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, addImplicitGeneric__sem_5004)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typeClass, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* typId, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* genericParams, NimStringDesc* paramName) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* finalTypId;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T24_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T34_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T35_;
{	result = NIM_NIL;
	{
		if (!(genericParams == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = eqeq___idents_229(typId, ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) 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__DKP9c7KM5AbqYVP6Gd9blNUw_145));
		finalTypId = getIdent__idents_152((*c).cache, T11_);
	}
	LA5_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA21_;
		owner = (*typeClass).sym;
	}
	goto LA19_;
	LA21_: ;
	{
		owner = getCurrOwner__semdata_327(c);
	}
	LA19_: ;
	T24_ = nextSymId__ast_3103((*c).Sup.idgen);
	s = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7), finalTypId, T24_, owner, info, 0);
	{
		if (!(((*owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 23))&63U)))!=0)) goto LA27_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 23)) & 63);
	}
	LA27_: ;
	{
		NIM_BOOL T31_;
		T31_ = (NIM_BOOL)0;
		T31_ = eqeq___idents_229(typId, ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) NIM_NIL));
		if (!T31_) goto LA32_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34)) & 63);
	}
	LA32_: ;
	T34_ = NIM_NIL;
	T34_ = linkTo__ast_3511(s, typeClass);
	(*typeClass).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 26)) & 63);
	(*s).position = len__ast_3155(genericParams);
	T35_ = NIM_NIL;
	T35_ = newSymNode__ast_3704(s);
	add__ast_4798(genericParams, T35_);
	result = typeClass;
	addDecl__lookups_1517(c, s);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, instGenericContainer__sem_1149)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* header, NIM_BOOL allowMetaTypes) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TReplTypeVars__itU2h89a2PcJoJ5bHADfePw cl;
	tyObject_LayeredIdTablecolonObjectType___9aSR8D74Pb4ozXN6gEJ9a1Pw* T5_;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T6_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* genericTyp;
	result = NIM_NIL;
	{
		NimStringDesc* argX60gensym171_;
		if (!!(((*header).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9)))) goto LA3_;
		argX60gensym171_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_152);
		internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym171_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_152);
	}
	LA3_: ;
	nimZeroMem((void*)(&cl), sizeof(tyObject_TReplTypeVars__itU2h89a2PcJoJ5bHADfePw));
	initIdTable__ast_4084((&cl.symMap));
	initIdTable__ast_4084((&cl.localCache));
	T5_ = NIM_NIL;
	T5_ = (tyObject_LayeredIdTablecolonObjectType___9aSR8D74Pb4ozXN6gEJ9a1Pw*) newObj((&NTIlayeredidtable__bE7TGBjv9bCsVJO148OW9cHA_), sizeof(tyObject_LayeredIdTablecolonObjectType___9aSR8D74Pb4ozXN6gEJ9a1Pw));
	cl.typeMap = T5_;
	initIdTable__ast_4084((&(*cl.typeMap).topLayer));
	cl.info = info;
	cl.c = c;
	cl.allowMetaTypes = allowMetaTypes;
	T6_ = NIM_NIL;
	T6_ = openScope__lookups_76(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_3990(genericTyp);
		colontmp_ = (NI)(T8_ - ((NI) 1));
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* genParam;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* param;
				if (!(i_2 < colontmp_)) goto LA10;
				i = i_2;
				genParam = (*genericTyp).sons->data[i];
				param = NIM_NIL;
				{
					tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T15_;
					if (!((*genParam).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60))) goto LA13_;
					T15_ = nextSymId__ast_3103((*c).Sup.idgen);
					param = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__wg9aowaxscbUe2F0nV9btZLg T17_;
					T17_ = nextSymId__ast_3103((*c).Sup.idgen);
					param = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
				addDecl__lookups_1517(c, param);
				i_2 += ((NI) 1);
			} LA10: ;
		}
	}
	result = replaceTypeVarsT__semtypinst_178((&cl), header);
	closeScope__lookups_108(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, liftParamType__sem_5056)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw procKind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* genericParams, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* paramType, NimStringDesc* paramName, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NIM_BOOL anon) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* paramTypId;
{	result = NIM_NIL;
	{
		if (!(paramType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) 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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
		LA8_: ;
		if (!T7_) goto LA9_;
		paramTypId = (*(*paramType).sym).name;
	}
	goto LA5_;
	LA9_: ;
	{
		paramTypId = ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) NIM_NIL);
	}
	LA5_: ;
	switch ((*paramType).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 59):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T13_;
		T13_ = NIM_NIL;
		T13_ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12), c);
		result = addImplicitGeneric__sem_5004(c, T13_, ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) NIM_NIL), info, genericParams, paramName);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* lifted;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T26_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
		tySequence__vKogasEnJSPhbQmA8r4Y9aA* T39_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T40_;
		{
			NIM_BOOL T17_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T18_;
			T17_ = (NIM_BOOL)0;
			T18_ = NIM_NIL;
			T18_ = base__types_63(paramType);
			T17_ = !(((*T18_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0)));
			if (!(T17_)) goto LA19_;
			T17_ = !(((*paramType).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
			LA19_: ;
			if (!T17_) goto LA20_;
			goto BeforeRet_;
		}
		LA20_: ;
		{
			if (!(((*paramType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9))&63U)))!=0)) goto LA24_;
			goto BeforeRet_;
		}
		LA24_: ;
		T26_ = NIM_NIL;
		T26_ = base__types_63(paramType);
		lifted = liftParamType__sem_5056(c, procKind, genericParams, T26_, paramName, info, NIM_FALSE);
		{
			if (!!((lifted == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) 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_3474(base);
			if (!(T34_)) goto LA35_;
			T34_ = (procKind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17));
			LA35_: ;
			if (!T34_) goto LA36_;
			T38_ = NIM_NIL;
			T38_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_146), paramName);
			liMessage__msgs_1128((*(*c).graph).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T38_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_147, NIM_FALSE);
		}
		LA36_: ;
		T39_ = NIM_NIL;
		T39_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 1);
		asgnRef((void**) (&T39_->data[0]), base);
		T40_ = NIM_NIL;
		T40_ = newTypeWithSons__semdata_851(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60), T39_);
		result = addImplicitGeneric__sem_5004(c, T40_, paramTypId, info, genericParams, paramName);
		{
			if (!!((result == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA43_;
			(*result).flags = ((*result).flags | 16777728);
		}
		LA43_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8):
	{
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
			tySequence__vKogasEnJSPhbQmA8r4Y9aA* T64_;
			if (!!((((*paramType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9))&63U)))!=0))) goto LA48_;
			{
				NIM_BOOL T52_;
				NIM_BOOL T53_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T54_;
				NIM_BOOL T56_;
				NIM_BOOL T58_;
				tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T59_;
				tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T61_;
				T52_ = (NIM_BOOL)0;
				T53_ = (NIM_BOOL)0;
				T54_ = NIM_NIL;
				T54_ = base__types_63(paramType);
				T53_ = ((*T54_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0));
				if (!(T53_)) goto LA55_;
				T56_ = (NIM_BOOL)0;
				T56_ = eqeq___idents_229(paramTypId, ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) NIM_NIL));
				T53_ = !(T56_);
				LA55_: ;
				T52_ = T53_;
				if (!(T52_)) goto LA57_;
				T58_ = (NIM_BOOL)0;
				T59_ = NIM_NIL;
				T59_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_148));
				T58_ = ((*paramTypId).id == (*T59_).id);
				if (T58_) goto LA60_;
				T61_ = NIM_NIL;
				T61_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_149));
				T58_ = ((*paramTypId).id == (*T61_).id);
				LA60_: ;
				T52_ = T58_;
				LA57_: ;
				if (!T52_) goto LA62_;
				paramTypId = ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) NIM_NIL);
			}
			LA62_: ;
			T64_ = NIM_NIL;
			T64_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 1);
			asgnRef((void**) (&T64_->data[0]), base__types_63(paramType));
			t = newTypeWithSons__semdata_851(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8), T64_);
			(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 38)) & 63);
			result = addImplicitGeneric__sem_5004(c, t, paramTypId, info, genericParams, paramName);
		}
		LA48_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13):
	{
		{
			NI T68_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T71_;
			T68_ = (NI)0;
			T68_ = len__ast_3990(paramType);
			if (!(T68_ == ((NI) 1))) goto LA69_;
			T71_ = NIM_NIL;
			T71_ = base__types_63(paramType);
			result = liftParamType__sem_5056(c, procKind, genericParams, T71_, paramName, info, NIM_TRUE);
		}
		LA69_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3990(paramType);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_2;
					if (!(i_2 < colontmp_)) goto LA75;
					i = i_2;
					t_2 = liftParamType__sem_5056(c, procKind, genericParams, (*paramType).sons->data[i], paramName, info, NIM_FALSE);
					{
						if (!!((t_2 == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA78_;
						asgnRef((void**) (&(*paramType).sons->data[i]), t_2);
						result = paramType;
					}
					LA78_: ;
					i_2 += ((NI) 1);
				} LA75: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T81_;
		T81_ = NIM_NIL;
		T81_ = base__types_63(paramType);
		result = liftParamType__sem_5056(c, procKind, genericParams, T81_, paramName, info, NIM_FALSE);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25):
	{
		{
			NIM_BOOL T85_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T87_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
			tySequence__vKogasEnJSPhbQmA8r4Y9aA* T90_;
			T85_ = (NIM_BOOL)0;
			T85_ = ((*paramType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24));
			if (!(T85_)) goto LA86_;
			T87_ = NIM_NIL;
			T87_ = lastSon__ast_3731(paramType);
			T85_ = ((*T87_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0));
			LA86_: ;
			if (!T85_) goto LA88_;
			T90_ = NIM_NIL;
			T90_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 1);
			asgnRef((void**) (&T90_->data[0]), newTypeS__semdata_763((*paramType).kind, c));
			typ = newTypeWithSons__semdata_851(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 51), T90_);
			result = addImplicitGeneric__sem_5004(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_3990(paramType);
				i_4 = ((NI) 0);
				{
					while (1) {
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* 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__lx9aDnWjKktcSUo0yfjOvMg) 0));
							T100_ = NIM_NIL;
							T100_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_150), T99_);
							liMessage__msgs_1128((*(*c).graph).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T100_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__DKP9c7KM5AbqYVP6Gd9blNUw_151, NIM_FALSE);
						}
						LA97_: ;
						lifted_2 = liftParamType__sem_5056(c, procKind, genericParams, (*paramType).sons->data[i_3], paramName, info, NIM_FALSE);
						{
							if (!!((lifted_2 == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) 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__b28l2MkhJpnFhatVrsrXpg) 10):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* x;
		tySequence__vKogasEnJSPhbQmA8r4Y9aA* T122_;
		result = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9), c);
		rawAddSon__ast_4276(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_3990(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__kQDDJGUiaUAtO9c9b6LjZYjA* staticCopy;
						if (!((*(*paramType).sons->data[i_5]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60))) goto LA112_;
						staticCopy = exactReplica__ast_4039((*paramType).sons->data[i_5]);
						(*staticCopy).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 27)) & 63);
						rawAddSon__ast_4276(result, staticCopy, NIM_TRUE);
					}
					goto LA110_;
					LA112_: ;
					{
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T115_;
						T115_ = NIM_NIL;
						T115_ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 59), c);
						rawAddSon__ast_4276(result, T115_, NIM_TRUE);
					}
					LA110_: ;
					i_6 += ((NI) 1);
				} LA109: ;
			}
		}
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T118_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T121_;
			T118_ = NIM_NIL;
			T118_ = lastSon__ast_3731(paramType);
			if (!((*T118_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52))) goto LA119_;
			(*result).kind = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 53);
			T121_ = NIM_NIL;
			T121_ = lastSon__ast_3731(paramType);
			rawAddSon__ast_4276(result, T121_, NIM_TRUE);
			result = addImplicitGeneric__sem_5004(c, result, paramTypId, info, genericParams, paramName);
			goto BeforeRet_;
		}
		LA119_: ;
		x = instGenericContainer__sem_1149(c, (*(*paramType).sym).info, result, NIM_TRUE);
		T122_ = NIM_NIL;
		T122_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 2);
		asgnRef((void**) (&T122_->data[0]), paramType);
		asgnRef((void**) (&T122_->data[1]), x);
		result = newTypeWithSons__semdata_851(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54), T122_);
		result = addImplicitGeneric__sem_5004(c, result, paramTypId, info, genericParams, paramName);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* liftBody;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T144_;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T126_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* cp;
			tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T129_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T130_;
			T126_ = NIM_NIL;
			T126_ = lastSon__ast_3731(paramType);
			if (!((*T126_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52))) goto LA127_;
			T129_ = nextTypeId__ast_3122((*c).Sup.idgen);
			T130_ = NIM_NIL;
			T130_ = getCurrOwner__semdata_327(c);
			cp = copyType__ast_4034(paramType, T129_, T130_);
			copyTypeProps__modulegraphs_8910((*c).graph, ((NI) ((*(*c).Sup.idgen).module)), cp, paramType);
			(*cp).kind = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 53);
			result = addImplicitGeneric__sem_5004(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_3990(paramType);
			colontmp__4 = (NI)(T132_ - ((NI) 1));
			i_8 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* lifted_3;
					if (!(i_8 < colontmp__4)) goto LA134;
					i_7 = i_8;
					lifted_3 = liftParamType__sem_5056(c, procKind, genericParams, (*paramType).sons->data[i_7], paramName, info, NIM_FALSE);
					{
						if (!!((lifted_3 == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA137_;
						asgnRef((void**) (&(*paramType).sons->data[i_7]), lifted_3);
						result = paramType;
						{
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T141_;
							NimStringDesc* argX60gensym1218_;
							T141_ = NIM_NIL;
							T141_ = lastSon__ast_3731(result);
							if (!!((((*T141_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 21))&63U)))!=0))) goto LA142_;
							argX60gensym1218_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_153);
							internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym1218_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_153);
						}
						LA142_: ;
					}
					LA137_: ;
					i_8 += ((NI) 1);
				} LA134: ;
			}
		}
		T144_ = NIM_NIL;
		T144_ = lastSon__ast_3731(paramType);
		liftBody = liftParamType__sem_5056(c, procKind, genericParams, T144_, paramName, info, NIM_TRUE);
		{
			if (!!((liftBody == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA147_;
			result = liftBody;
			(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 21)) & 63);
		}
		LA147_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* body;
		{
			NI i_9;
			NI colontmp__5;
			NI i_10;
			i_9 = (NI)0;
			colontmp__5 = (NI)0;
			colontmp__5 = len__ast_3990(paramType);
			i_10 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* lifted_4;
					if (!(i_10 < colontmp__5)) goto LA152;
					i_9 = i_10;
					lifted_4 = liftParamType__sem_5056(c, procKind, genericParams, (*paramType).sons->data[i_9], paramName, info, NIM_FALSE);
					{
						if (!!((lifted_4 == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) 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__b28l2MkhJpnFhatVrsrXpg) 30) || (*body).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50))) goto LA159_;
			goto BeforeRet_;
		}
		LA159_: ;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T163_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expanded;
			T163_ = NIM_NIL;
			T163_ = lastSon__ast_3731(body);
			if (!((*T163_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52))) goto LA164_;
			expanded = instGenericContainer__sem_1149(c, info, paramType, NIM_TRUE);
			result = liftParamType__sem_5056(c, procKind, genericParams, expanded, paramName, info, NIM_TRUE);
		}
		LA164_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 53):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 51):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 56):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 57):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 58):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 62):
	{
		tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T167_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T168_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T169_;
		T167_ = nextTypeId__ast_3122((*c).Sup.idgen);
		T168_ = NIM_NIL;
		T168_ = getCurrOwner__semdata_327(c);
		T169_ = NIM_NIL;
		T169_ = copyType__ast_4034(paramType, T167_, T168_);
		result = addImplicitGeneric__sem_5004(c, T169_, paramTypId, info, genericParams, paramName);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12):
	{
		markUsed__sigmatch_85(c, (*(*paramType).sym).info, (*paramType).sym);
		{
			if (!(((*paramType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 30))&63U)))!=0)) goto LA173_;
			(*paramType).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 30)) & 63));
			transitionGenericParamToType__ast_4391((*paramType).sym);
		}
		LA173_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semProcTypeNode__sem_5334)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* genericParams, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, NIM_BOOL isType) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw check;
	NI counter;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* r;
	result = NIM_NIL;
	checkMinSonsLen__semdata_1114(n, ((NI) 1), (*(*c).graph).config);
	result = newProcType__sem_5320(c, (*n).info, prev);
	nimZeroMem((void*)(&check), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	initIntSet__pureZcollectionsZintsets_238((&check));
	counter = ((NI) 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* def;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* constraint;
					NIM_BOOL hasType;
					NI T15_;
					NIM_BOOL hasDefault;
					NI T16_;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35)))) goto LA7_;
						{
							NIM_BOOL T11_;
							T11_ = (NIM_BOOL)0;
							T11_ = ((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
							if (!(T11_)) goto LA12_;
							T11_ = (((*(*a)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 2))&63U)))!=0);
							LA12_: ;
							if (!T11_) goto LA13_;
							goto LA4;
						}
						LA13_: ;
						illFormedAst__semdata_1101(a, (*(*c).graph).config);
					}
					LA7_: ;
					checkMinSonsLen__semdata_1114(a, ((NI) 3), (*(*c).graph).config);
					typ = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
					def = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
					constraint = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
					T15_ = (NI)0;
					T15_ = len__ast_3155(a);
					hasType = !(((*(*a)._kind_6.sons->data[(NI)(T15_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
					T16_ = (NI)0;
					T16_ = len__ast_3155(a);
					hasDefault = !(((*(*a)._kind_6.sons->data[(NI)(T16_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
					{
						NI T21_;
						if (!hasType) goto LA19_;
						T21_ = (NI)0;
						T21_ = len__ast_3155(a);
						typ = semParamType__sem_5299(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__b28l2MkhJpnFhatVrsrXpg) 7));
							if (T26_) goto LA27_;
							T26_ = ((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6));
							LA27_: ;
							T24_ = T26_;
							LA25_: ;
							if (!T24_) goto LA28_;
							{
								tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T32_;
								NIM_BOOL T33_;
								NI T36_;
								NimStringDesc* T37_;
								T32_ = NIM_NIL;
								T32_ = getCurrOwner__semdata_327(c);
								T33_ = (NIM_BOOL)0;
								T33_ = isMagic__sem_5329(T32_);
								if (!!(T33_)) goto LA34_;
								T36_ = (NI)0;
								T36_ = len__ast_3155(a);
								T37_ = NIM_NIL;
								T37_ = rawNewString(((*(*(*typ).sym).name).s ? (*(*(*typ).sym).name).s->Sup.len : 0) + 57);
appendString(T37_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_31));
appendString(T37_, (*(*(*typ).sym).name).s);
appendString(T37_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_133));
								liMessage__msgs_1128((*(*c).graph).config, (*(*a)._kind_6.sons->data[(NI)(T36_ - ((NI) 2))]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T37_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_134, NIM_FALSE);
							}
							LA34_: ;
						}
						LA28_: ;
					}
					LA19_: ;
					{
						NI T42_;
						if (!hasDefault) goto LA40_;
						T42_ = (NI)0;
						T42_ = len__ast_3155(a);
						def = (*a)._kind_6.sons->data[(NI)(T42_ - ((NI) 1))];
						{
							{
								NIM_BOOL T46_;
								NI T48_;
								T46_ = (NIM_BOOL)0;
								T46_ = !((genericParams == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
								if (!(T46_)) goto LA47_;
								T48_ = (NI)0;
								T48_ = len__ast_3155(genericParams);
								T46_ = (((NI) 0) < T48_);
								LA47_: ;
								if (!T46_) goto LA49_;
								def = semGenericStmt__sem_2949(c, def);
								{
									NIM_BOOL T53_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T56_;
									T53_ = (NIM_BOOL)0;
									T53_ = hasUnresolvedArgs__sem_146(c, def);
									if (!T53_) goto LA54_;
									T56_ = NIM_NIL;
									T56_ = copyTree__ast_4432(def);
									asgnRef((void**) (&(*def).typ), makeTypeFromExpr__semdata_834(c, T56_));
									goto LA43;
								}
								LA54_: ;
							}
							LA49_: ;
							def = semExprWithType__sem_57(c, def, 512, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
							{
								tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T59_;
								NIM_BOOL T60_;
								T59_ = NIM_NIL;
								T59_ = getCurrOwner__semdata_327(c);
								T60_ = (NIM_BOOL)0;
								T60_ = referencesAnotherParam__sem_1189(def, T59_);
								if (!T60_) goto LA61_;
								(*def).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 19)) & 31);
							}
							LA61_: ;
						} LA43: ;
						{
							if (!(typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA65_;
							typ = (*def).typ;
							{
								NIM_BOOL T69_;
								NimStringDesc* T72_;
								NimStringDesc* T73_;
								T69_ = (NIM_BOOL)0;
								T69_ = isEmptyContainer__types_3690(typ);
								if (!T69_) goto LA70_;
								T72_ = NIM_NIL;
								T73_ = NIM_NIL;
								T73_ = dollar___renderer_2116((*a)._kind_6.sons->data[((NI) 0)]);
								T72_ = rawNewString((T73_ ? T73_->Sup.len : 0) + 37);
appendString(T72_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_137));
appendString(T72_, T73_);
appendString(T72_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_31));
								liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T72_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_138, NIM_FALSE);
							}
							LA70_: ;
							{
								tySequence__vKogasEnJSPhbQmA8r4Y9aA* T78_;
								if (!((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8))) goto LA76_;
								T78_ = NIM_NIL;
								T78_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 1);
								asgnRef((void**) (&T78_->data[0]), newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0), c));
								typ = newTypeWithSons__semdata_851(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8), T78_);
								(*typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 38)) & 63);
							}
							LA76_: ;
						}
						goto LA63_;
						LA65_: ;
						{
							{
								NIM_BOOL T82_;
								T82_ = (NIM_BOOL)0;
								T82_ = containsGenericType__types_3412(typ);
								if (!!(T82_)) goto LA83_;
								def = fitNode__sem_73(c, typ, def, (*def).info);
							}
							goto LA80_;
							LA83_: ;
							{
								if (!((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60))) goto LA86_;
								def = semConstExpr__sem_619(c, def, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
								def = fitNode__sem_73(c, typ, def, (*def).info);
							}
							goto LA80_;
							LA86_: ;
							LA80_: ;
						}
						LA63_: ;
					}
					LA40_: ;
					{
						NIM_BOOL T90_;
						T90_ = (NIM_BOOL)0;
						T90_ = !(hasType);
						if (!(T90_)) goto LA91_;
						T90_ = !(hasDefault);
						LA91_: ;
						if (!T90_) goto LA92_;
						{
							if (!isType) goto LA96_;
							liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_139), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_140, NIM_FALSE);
						}
						LA96_: ;
						{
							if (!((393216 &((NU32)1<<((NU)(kind)&31U)))!=0)) goto LA100_;
							typ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6), c);
						}
						LA100_: ;
					}
					goto LA88_;
					LA92_: ;
					{
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T103_;
						T103_ = NIM_NIL;
						T103_ = skipTypes__ast_3723(typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_141);
						if (!((*T103_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63))) goto LA104_;
						goto LA4;
					}
					goto LA88_;
					LA104_: ;
					LA88_: ;
					{
						NI j;
						NI colontmp__2;
						NI T107_;
						NI i_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T107_ = (NI)0;
						T107_ = len__ast_3155(a);
						colontmp__2 = (NI)(T107_ - ((NI) 2));
						i_3 = ((NI) 0);
						{
							while (1) {
								tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* arg;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T110_;
								tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* lifted;
								tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* finalType;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T151_;
								if (!(i_3 < colontmp__2)) goto LA109;
								j = i_3;
								T110_ = NIM_NIL;
								{
									if (!((*(*a)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43))) goto LA113_;
									T110_ = (*(*a)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 0)];
								}
								goto LA111_;
								LA113_: ;
								{
									T110_ = (*a)._kind_6.sons->data[j];
								}
								LA111_: ;
								arg = newSymG__sem_462(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3), T110_, c);
								{
									if (!((*(*a)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43))) goto LA118_;
									pragma__pragmas_125(c, arg, (*(*a)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_142, NIM_FALSE);
								}
								LA118_: ;
								{
									NIM_BOOL T122_;
									NIM_BOOL T123_;
									tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* param;
									T122_ = (NIM_BOOL)0;
									T123_ = (NIM_BOOL)0;
									T123_ = !(hasType);
									if (!(T123_)) goto LA124_;
									T123_ = !(hasDefault);
									LA124_: ;
									T122_ = T123_;
									if (!(T122_)) goto LA125_;
									T122_ = !(((393216 &((NU32)1<<((NU)(kind)&31U)))!=0));
									LA125_: ;
									if (!T122_) goto LA126_;
									param = strTableGet__astalgo_3383((*c).signatures, (*arg).name);
									{
										if (!!((param == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA130_;
										typ = (*param).typ;
									}
									goto LA128_;
									LA130_: ;
									{
										NimStringDesc* T133_;
										T133_ = NIM_NIL;
										T133_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_143), (*(*arg).name).s);
										liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T133_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_144, NIM_FALSE);
										typ = errorType__semdata_1032(c);
									}
									LA128_: ;
								}
								LA126_: ;
								lifted = liftParamType__sem_5056(c, kind, genericParams, typ, (*(*arg).name).s, (*arg).info, NIM_FALSE);
								{
									if (!!((lifted == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA136_;
									finalType = lifted;
								}
								goto LA134_;
								LA136_: ;
								{
									finalType = skipIntLit__magicsys_124(typ, (*c).Sup.idgen);
								}
								LA134_: ;
								asgnRef((void**) (&(*arg).typ), finalType);
								(*arg).position = counter;
								asgnRef((void**) (&(*arg).constraint), constraint);
								counter += ((NI) 1);
								{
									NIM_BOOL T141_;
									T141_ = (NIM_BOOL)0;
									T141_ = !((def == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
									if (!(T141_)) goto LA142_;
									T141_ = !(((*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
									LA142_: ;
									if (!T141_) goto LA143_;
									asgnRef((void**) (&(*arg).ast), copyTree__ast_4432(def));
								}
								LA143_: ;
								{
									NIM_BOOL T147_;
									NimStringDesc* T150_;
									T147_ = (NIM_BOOL)0;
									T147_ = containsOrIncl__astalgo_402((&check), (*(*arg).name).id);
									if (!T147_) goto LA148_;
									T150_ = NIM_NIL;
									T150_ = rawNewString(((*(*arg).name).s ? (*(*arg).name).s->Sup.len : 0) + 23);
appendString(T150_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_154));
appendString(T150_, (*(*arg).name).s);
appendString(T150_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_31));
									liMessage__msgs_1128((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T150_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_155, NIM_FALSE);
								}
								LA148_: ;
								T151_ = NIM_NIL;
								T151_ = newSymNode__ast_3704(arg);
								add__ast_4798((*result).n, T151_);
								rawAddSon__ast_4276(result, finalType, NIM_TRUE);
								addParamOrResult__sem_1038(c, arg, kind);
								{
									NIM_BOOL T154_;
									NIM_BOOL T155_;
									NIM_BOOL T156_;
									NIM_BOOL T157_;
									NIM_BOOL T158_;
									NIM_BOOL T159_;
									NIM_BOOL T160_;
									NIM_BOOL T161_;
									NIM_BOOL T162_;
									NIM_BOOL T163_;
									NIM_BOOL T164_;
									NIM_BOOL T174_;
									T154_ = (NIM_BOOL)0;
									T155_ = (NIM_BOOL)0;
									T156_ = (NIM_BOOL)0;
									T157_ = (NIM_BOOL)0;
									T158_ = (NIM_BOOL)0;
									T159_ = (NIM_BOOL)0;
									T160_ = (NIM_BOOL)0;
									T161_ = (NIM_BOOL)0;
									T162_ = (NIM_BOOL)0;
									T163_ = (NIM_BOOL)0;
									T164_ = (NIM_BOOL)0;
									T164_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
									if (!(T164_)) goto LA165_;
									T164_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
									LA165_: ;
									T163_ = T164_;
									if (!(T163_)) goto LA166_;
									T163_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
									LA166_: ;
									T162_ = T163_;
									if (!(T162_)) goto LA167_;
									T162_ = belongsToProjectPackage__packages_50((*(*c).graph).config, arg);
									LA167_: ;
									T161_ = T162_;
									if (!(T161_)) goto LA168_;
									T161_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
									LA168_: ;
									T160_ = T161_;
									if (!(T160_)) goto LA169_;
									T160_ = !(((*arg).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
									LA169_: ;
									T159_ = T160_;
									if (!(T159_)) goto LA170_;
									T159_ = !(((*arg).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
									LA170_: ;
									T158_ = T159_;
									if (!(T158_)) goto LA171_;
									T158_ = ((Letters__linter_12[(NU)(((NU8)((*(*arg).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*arg).name).s->data[((NI) 0)])))&7U)))!=0);
									LA171_: ;
									T157_ = T158_;
									if (!(T157_)) goto LA172_;
									T157_ = !(((144 &((NU32)1<<((NU)((*arg).kind)&31U)))!=0));
									LA172_: ;
									T156_ = T157_;
									if (!(T156_)) goto LA173_;
									T174_ = (NIM_BOOL)0;
									T174_ = ((*arg).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
									if (T174_) goto LA175_;
									T174_ = !(((*(*arg).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
									LA175_: ;
									T156_ = T174_;
									LA173_: ;
									T155_ = T156_;
									if (!(T155_)) goto LA176_;
									T155_ = ((192 & (*arg).flags) == 0);
									LA176_: ;
									T154_ = T155_;
									if (!(T154_)) goto LA177_;
									T154_ = !((((*arg).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
									LA177_: ;
									if (!T154_) goto LA178_;
									nep1CheckDefImpl__linter_112((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, arg, (*arg).kind);
								}
								LA178_: ;
								{
									if (!((IL64(422212465065984) & (*(*(*c).graph).config).globalOptions) == 0)) goto LA182_;
									asgnRef((void**) (&(*a)._kind_6.sons->data[j]), newSymNode__ast_3704(arg));
								}
								LA182_: ;
								i_3 += ((NI) 1);
							} LA109: ;
						}
					}
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	r = NIM_NIL;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA186_;
		r = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	}
	LA186_: ;
	{
		NIM_BOOL T190_;
		NIM_BOOL T191_;
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
		T190_ = (NIM_BOOL)0;
		T191_ = (NIM_BOOL)0;
		T191_ = !((r == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T191_)) goto LA192_;
		T191_ = ((393216 &((NU32)1<<((NU)(kind)&31U)))!=0);
		LA192_: ;
		T190_ = T191_;
		if (!(T190_)) goto LA193_;
		T190_ = ((*r).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7));
		LA193_: ;
		if (!T190_) goto LA194_;
		info = (*(*n)._kind_6.sons->data[((NI) 0)]).info;
		liMessage__msgs_1128((*(*c).graph).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 21), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_156), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_157, NIM_FALSE);
		r = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
	}
	LA194_: ;
	{
		if (!!((r == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA198_;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T202_;
			tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw oldFlags;
			T202_ = NIM_NIL;
			T202_ = skipTypes__ast_3723(r, TM__DKP9c7KM5AbqYVP6Gd9blNUw_141);
			if (!!(((*T202_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63)))) goto LA203_;
			{
				NIM_BOOL T207_;
				NimStringDesc* T211_;
				NimStringDesc* T212_;
				T207_ = (NIM_BOOL)0;
				T207_ = !(((393216 &((NU32)1<<((NU)(kind)&31U)))!=0));
				if (!(T207_)) goto LA208_;
				T207_ = ((*r).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7) || (*r).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6));
				LA208_: ;
				if (!T207_) goto LA209_;
				T211_ = NIM_NIL;
				T212_ = NIM_NIL;
				T212_ = typeToString__types_50(r, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
				T211_ = rawNewString((T212_ ? T212_->Sup.len : 0) + 53);
appendString(T211_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_158));
appendString(T211_, T212_);
appendString(T211_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_159));
				liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T211_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_160, NIM_FALSE);
			}
			goto LA205_;
			LA209_: ;
			{
				if (!((*r).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 59))) goto LA214_;
			}
			goto LA205_;
			LA214_: ;
			{
				if (!((*r).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60))) goto LA217_;
			}
			goto LA205_;
			LA217_: ;
			{
				{
					NIM_BOOL T222_;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* lifted_2;
					T222_ = (NIM_BOOL)0;
					T222_ = ((*r).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
					if (T222_) goto LA223_;
					T222_ = !((((*(*r).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
					LA223_: ;
					if (!T222_) goto LA224_;
					lifted_2 = liftParamType__sem_5056(c, kind, genericParams, r, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_107), (*(*n)._kind_6.sons->data[((NI) 0)]).info, NIM_FALSE);
					{
						if (!!((lifted_2 == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA228_;
						r = lifted_2;
						(*r).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 11)) & 63);
					}
					LA228_: ;
				}
				LA224_: ;
				r = skipIntLit__magicsys_124(r, (*c).Sup.idgen);
				{
					if (!(kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15))) goto LA232_;
					(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 15)) & 63);
				}
				LA232_: ;
			}
			LA205_: ;
			asgnRef((void**) (&(*result).sons->data[((NI) 0)]), r);
			oldFlags = (*result).flags;
			propagateToOwner__ast_4207(result, r, NIM_TRUE);
			{
				if (!!((oldFlags == (*result).flags))) goto LA236_;
				{
					if (!!(((oldFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 21))&63U)))!=0))) goto LA240_;
					(*result).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 21)) & 63));
				}
				LA240_: ;
			}
			LA236_: ;
			asgnRef((void**) (&(*(*result).n).typ), r);
		}
		LA203_: ;
	}
	LA198_: ;
	{
		NIM_BOOL T244_;
		NI T246_;
		T244_ = (NIM_BOOL)0;
		T244_ = !((genericParams == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
		if (!(T244_)) goto LA245_;
		T246_ = (NI)0;
		T246_ = len__ast_3155(genericParams);
		T244_ = (((NI) 0) < T246_);
		LA245_: ;
		if (!T244_) goto LA247_;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(genericParams);
				i_5 = ((NI) 0);
				{
					while (1) {
						if (!(i_5 < colontmp__3)) goto LA252;
						i_4 = i_5;
						n_2 = (*genericParams)._kind_6.sons->data[i_4];
						{
							if (!((IL64(17179869185) & (*(*n_2)._kind_4.sym).flags) == 0)) goto LA255_;
							(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9)) & 63);
						}
						LA255_: ;
						{
							if (!(((*(*(*n_2)._kind_4.sym).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 30))&63U)))!=0)) goto LA259_;
							transitionGenericParamToType__ast_4391((*n_2)._kind_4.sym);
							(*(*(*n_2)._kind_4.sym).typ).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 30)) & 63));
						}
						LA259_: ;
						i_5 += ((NI) 1);
					} LA252: ;
				}
			}
		}
	}
	LA247_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semParamList__sem_94)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* genericParams, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	asgnRef((void**) (&(*s).typ), semProcTypeNode__sem_5334(c, n, genericParams, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL), (*s).kind, NIM_FALSE));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newParam__sem_8344)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* x;
	result = NIM_NIL;
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
	x = (*(*(*(*(*c).owner).typ).n)._kind_6.sons->data[(NI)((*s).position + ((NI) 1))])._kind_4.sym;
	result = newSymNode__ast_3707(x, (*n).info);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, handleSym__sem_8358)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	{
		if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__sjiB9b9aO1FRPetW6gPYZbfw) 3));
			LA8_: ;
			if (!T7_) goto LA9_;
			result = newParam__sem_8344(c, n, s);
		}
		goto LA5_;
		LA9_: ;
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym2038_;
			NIM_BOOL T12_;
			xX60gensym2038_ = s;
			T12_ = (NIM_BOOL)0;
			T12_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym2038_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2038_).Sup.itemId.item))));
			if (!T12_) goto LA13_;
			result = symChoice__sem_6911((*c).c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0), NIM_FALSE);
		}
		goto LA5_;
		LA13_: ;
		{
			NIM_BOOL T16_;
			NIM_BOOL T18_;
			NI T19_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T23_;
			T16_ = (NIM_BOOL)0;
			T16_ = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18));
			if (!(T16_)) goto LA17_;
			T18_ = (NIM_BOOL)0;
			T19_ = (NI)0;
			T19_ = len__ast_3990((*s).typ);
			T18_ = (T19_ == ((NI) 1));
			if (T18_) goto LA20_;
			T18_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 9))&63U)))!=0);
			LA20_: ;
			T16_ = T18_;
			LA17_: ;
			if (!T16_) goto LA21_;
			T23_ = NIM_NIL;
			T23_ = semTemplateExpr__sem_524((*c).c, n, s, 8192, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			result = semPatternBody__sem_8338(c, T23_);
		}
		goto LA5_;
		LA21_: ;
		{
		}
		LA5_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, expectParam__sem_8400)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	result = NIM_NIL;
	s = qualifiedLookUp__lookups_2598((*c).c, n, 0);
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
		if (!(T4_)) goto LA5_;
		T4_ = ((*s).owner == (*c).owner);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3));
		LA6_: ;
		if (!T3_) goto LA7_;
		result = newParam__sem_8344(c, n, s);
	}
	goto LA1_;
	LA7_: ;
	{
		liMessage__msgs_1128((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_161), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_164, NIM_FALSE);
		result = n;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semPatternBody__sem_8338)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		s = qualifiedLookUp__lookups_2598((*c).c, n, 0);
		result = handleSym__sem_8358(c, n, s);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122):
	{
		result = semBindStmt__sem_6972((*c).c, n, (&(*c).toBind));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 40):
	{
		{
			NI T7_;
			T7_ = (NI)0;
			T7_ = len__ast_3155(n);
			if (!!((T7_ == ((NI) 2)))) goto LA8_;
			liMessage__msgs_1128((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_161), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_162, NIM_FALSE);
		}
		goto LA5_;
		LA8_: ;
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2))) goto LA11_;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semPatternBody__sem_8338(c, (*n)._kind_6.sons->data[((NI) 0)]));
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), expectParam__sem_8400(c, (*n)._kind_6.sons->data[((NI) 1)]));
		}
		goto LA5_;
		LA11_: ;
		{
			NIM_BOOL T14_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* opr;
			T14_ = (NIM_BOOL)0;
			T14_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30));
			if (!(T14_)) goto LA15_;
			T14_ = ((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__DKP9c7KM5AbqYVP6Gd9blNUw_50))) goto LA20_;
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semPatternBody__sem_8338(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_8400(c, (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)]));
			}
			goto LA18_;
			LA20_: ;
			{
				liMessage__msgs_1128((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_161), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_165, NIM_FALSE);
			}
			LA18_: ;
		}
		goto LA5_;
		LA16_: ;
		{
			liMessage__msgs_1128((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_161), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_166, NIM_FALSE);
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126):
	{
		{
			NIM_BOOL T27_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T30_;
			T27_ = (NIM_BOOL)0;
			T27_ = stupidStmtListExpr__trees_404(n);
			if (!T27_) goto LA28_;
			T30_ = NIM_NIL;
			T30_ = lastSon__ast_4833(n);
			result = semPatternBody__sem_8338(c, T30_);
		}
		goto LA25_;
		LA28_: ;
		{
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3155(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_8338(c, (*n)._kind_6.sons->data[i]));
						i_2 += ((NI) 1);
					} LA34: ;
				}
			}
		}
		LA25_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s_2;
		s_2 = qualifiedLookUp__lookups_2598((*c).c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		{
			if (!!((s_2 == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__sjiB9b9aO1FRPetW6gPYZbfw) 3));
				LA43_: ;
				if (!T42_) goto LA44_;
			}
			goto LA40_;
			LA44_: ;
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym2075_;
				NIM_BOOL T47_;
				xX60gensym2075_ = s_2;
				T47_ = (NIM_BOOL)0;
				T47_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym2075_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2075_).Sup.itemId.item))));
				if (!T47_) goto LA48_;
			}
			goto LA40_;
			LA48_: ;
			{
				NIM_BOOL T51_;
				NIM_BOOL T53_;
				NI T54_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T58_;
				T51_ = (NIM_BOOL)0;
				T51_ = ((*s_2).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18));
				if (!(T51_)) goto LA52_;
				T53_ = (NIM_BOOL)0;
				T54_ = (NI)0;
				T54_ = len__ast_3990((*s_2).typ);
				T53_ = (T54_ == ((NI) 1));
				if (T53_) goto LA55_;
				T53_ = (((*s_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 9))&63U)))!=0);
				LA55_: ;
				T51_ = T53_;
				LA52_: ;
				if (!T51_) goto LA56_;
				T58_ = NIM_NIL;
				T58_ = semTemplateExpr__sem_524((*c).c, n, s_2, 8192, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
				result = semPatternBody__sem_8338(c, T58_);
				goto BeforeRet_;
			}
			goto LA40_;
			LA56_: ;
			LA40_: ;
		}
		LA38_: ;
		{
			NIM_BOOL T61_;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* id;
			NIM_BOOL T63_;
			T61_ = (NIM_BOOL)0;
			T61_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29));
			if (!(T61_)) goto LA62_;
			id = considerQuotedIdent__lookups_29((*c).c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
			T63_ = (NIM_BOOL)0;
			T63_ = eqeq___idents_229(id, ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) NIM_NIL));
			T61_ = !(T63_);
			LA62_: ;
			if (!T61_) goto LA64_;
			{
				NIM_BOOL T68_;
				NI T72_;
				T68_ = (NIM_BOOL)0;
				T68_ = eqStrings((*id).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_167));
				if (T68_) goto LA69_;
				T68_ = eqStrings((*id).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_168));
				LA69_: ;
				if (!T68_) goto LA70_;
				T72_ = (NI)0;
				T72_ = len__ast_3155(n);
				result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 153), (*n).info, T72_);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3700(id, (*n).info));
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semPatternBody__sem_8338(c, (*n)._kind_6.sons->data[((NI) 1)]));
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), expectParam__sem_8400(c, (*n)._kind_6.sons->data[((NI) 2)]));
				goto BeforeRet_;
			}
			goto LA66_;
			LA70_: ;
			{
				NI T76_;
				if (!eqStrings((*id).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_50))) goto LA74_;
				T76_ = (NI)0;
				T76_ = len__ast_3155(n);
				result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 153), (*n).info, T76_);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3700(id, (*n).info));
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semPatternBody__sem_8338(c, (*n)._kind_6.sons->data[((NI) 1)]));
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), semPatternBody__sem_8338(c, (*n)._kind_6.sons->data[((NI) 2)]));
				goto BeforeRet_;
			}
			goto LA66_;
			LA74_: ;
			LA66_: ;
		}
		LA64_: ;
		{
			NIM_BOOL T79_;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* id_2;
			NIM_BOOL T81_;
			T79_ = (NIM_BOOL)0;
			T79_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30));
			if (!(T79_)) goto LA80_;
			id_2 = considerQuotedIdent__lookups_29((*c).c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
			T81_ = (NIM_BOOL)0;
			T81_ = eqeq___idents_229(id_2, ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) NIM_NIL));
			T79_ = !(T81_);
			LA80_: ;
			if (!T79_) goto LA82_;
			{
				NI T88_;
				if (!eqStrings((*id_2).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_169))) goto LA86_;
				T88_ = (NI)0;
				T88_ = len__ast_3155(n);
				result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 153), (*n).info, T88_);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3700(id_2, (*n).info));
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semPatternBody__sem_8338(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_3155(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_8338(c, (*n)._kind_6.sons->data[i_3]));
					i_4 += ((NI) 1);
				} LA91: ;
			}
		}
	}
	break;
	default:
	{
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s_3;
			s_3 = qualifiedLookUp__lookups_2598((*c).c, n, 0);
			{
				if (!!((s_3 == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA96_;
				{
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym2098_;
					NIM_BOOL T100_;
					xX60gensym2098_ = s_3;
					T100_ = (NIM_BOOL)0;
					T100_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym2098_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2098_).Sup.itemId.item))));
					if (!T100_) goto LA101_;
					result = symChoice__sem_6911((*c).c, n, s_3, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0), NIM_FALSE);
					goto BeforeRet_;
				}
				goto LA98_;
				LA101_: ;
				{
					result = newIdentNode__ast_3700((*s_3).name, (*n).info);
					goto BeforeRet_;
				}
				LA98_: ;
			}
			LA96_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37):
		{
			{
				NI T107_;
				T107_ = (NI)0;
				T107_ = len__ast_3155(n);
				if (!(T107_ == ((NI) 1))) goto LA108_;
				result = semPatternBody__sem_8338(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_3155(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_8338(c, (*n)._kind_6.sons->data[i_5]));
					i_6 += ((NI) 1);
				} LA113: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semPattern__sem_7566)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q ctx;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg T16_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	nimZeroMem((void*)(&ctx), sizeof(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toBind));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toMixin));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toInject));
	ctx.c = c;
	ctx.owner = getCurrOwner__semdata_327(c);
	T2_ = NIM_NIL;
	T2_ = semPatternBody__sem_8338((&ctx), n);
	result = flattenStmts__trees_355(T2_);
	{
		if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115) || (*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA5_;
		{
			NI T9_;
			T9_ = (NI)0;
			T9_ = len__ast_3155(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_3155(result);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_170), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_171, NIM_FALSE);
		}
		goto LA7_;
		LA14_: ;
		LA7_: ;
	}
	LA5_: ;
	closeScope__lookups_108(c);
	nimZeroMem((void*)(&T16_), sizeof(tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg));
	nimZeroMem((void*)(&T16_), sizeof(tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg));
	T16_.sym = s;
	addPattern__semdata_722(c, T16_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addGenericParamListToScope__sem_12528)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 75)))) goto LA3_;
		illFormedAst__semdata_1101(n, (*(*c).graph).config);
	}
	LA3_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
				if (!(i_2 < colontmp_)) goto LA7;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA10_;
					addDecl__lookups_1517(c, (*a)._kind_4.sym);
				}
				goto LA8_;
				LA10_: ;
				{
					illFormedAst__semdata_1101(a, (*(*c).graph).config);
				}
				LA8_: ;
				i_2 += ((NI) 1);
			} LA7: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, addParams__sem_99)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(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__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA6_;
					addParamOrResult__sem_1038(c, (*(*n)._kind_6.sons->data[i])._kind_4.sym, kind);
				}
				goto LA4_;
				LA6_: ;
				{
					illFormedAst__semdata_1101(n, (*(*c).graph).config);
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
static N_INLINE(NIM_BOOL, importantComments__options_4020)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* 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__kQDDJGUiaUAtO9c9b6LjZYjA*, canonType__sem_13692)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24))) goto LA3_;
		result = (*(*c).graph).sysTypes[(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24))- 0];
	}
	goto LA1_;
	LA3_: ;
	{
		result = t;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, prevDestructor__sem_13700)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* prevOp, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* obj, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	NimStringDesc* msg;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T2_ = NIM_NIL;
	T2_ = typeToString__types_50(obj, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
	T1_ = rawNewString(((*(*prevOp).name).s ? (*(*prevOp).name).s->Sup.len : 0) + (T2_ ? T2_->Sup.len : 0) + 27);
appendString(T1_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_187));
appendString(T1_, (*(*prevOp).name).s);
appendString(T1_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_188));
appendString(T1_, T2_);
	msg = T1_;
	{
		NimStringDesc* T7_;
		NimStringDesc* T8_;
		if (!!((((*prevOp).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 35))&63U)))!=0))) goto LA5_;
		T7_ = NIM_NIL;
		T8_ = NIM_NIL;
		T8_ = dollar___msgs_634((*(*c).graph).config, (*prevOp).info);
		T7_ = rawNewString((T8_ ? T8_->Sup.len : 0) + 56);
appendString(T7_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_189));
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_634((*(*c).graph).config, (*prevOp).info);
		T10_ = rawNewString((T11_ ? T11_->Sup.len : 0) + 33);
appendString(T10_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_190));
appendString(T10_, T11_);
		msg = resizeString(msg, (T10_ ? T10_->Sup.len : 0) + 0);
appendString(msg, T10_);
	}
	LA3_: ;
	liMessage__msgs_1128((*(*c).graph).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), msg, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_191, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(void, bindTypeHook__sem_13730)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ op) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* 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__0IDqFfYT9a3F5i6tmCmdORQ) 0))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T7_ = (NI)0;
		T7_ = len__ast_3990(t);
		T6_ = (T7_ == ((NI) 2));
		if (!(T6_)) goto LA8_;
		T6_ = ((*t).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		LA8_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA9_;
		T5_ = ((*(*t).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23));
		LA9_: ;
		cond = T5_;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T13_;
		NIM_BOOL T14_;
		NIM_BOOL T15_;
		NI T16_;
		if (!(op == ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 3))) goto LA11_;
		T13_ = (NIM_BOOL)0;
		T14_ = (NIM_BOOL)0;
		T15_ = (NIM_BOOL)0;
		T16_ = (NI)0;
		T16_ = len__ast_3990(t);
		T15_ = (T16_ == ((NI) 3));
		if (!(T15_)) goto LA17_;
		T15_ = ((*t).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		LA17_: ;
		T14_ = T15_;
		if (!(T14_)) goto LA18_;
		T14_ = ((*(*t).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23));
		LA18_: ;
		T13_ = T14_;
		if (!(T13_)) goto LA19_;
		T13_ = ((*(*t).sons->data[((NI) 2)]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 26));
		LA19_: ;
		cond = T13_;
	}
	goto LA1_;
	LA11_: ;
	{
		NIM_BOOL T21_;
		NI T22_;
		T21_ = (NIM_BOOL)0;
		T22_ = (NI)0;
		T22_ = len__ast_3990(t);
		T21_ = (((NI) 2) <= T22_);
		if (!(T21_)) goto LA23_;
		T21_ = ((*t).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		LA23_: ;
		cond = T21_;
	}
	LA1_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* obj;
		if (!cond) goto LA26_;
		obj = skipTypes__ast_3723((*t).sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_186);
		{
			while (1) {
				(*obj).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 31)) & 63);
				{
					if (!((*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10) || (*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11))) goto LA32_;
					obj = lastSon__ast_3731(obj);
				}
				goto LA30_;
				LA32_: ;
				{
					if (!((*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9))) goto LA35_;
					obj = (*obj).sons->data[((NI) 0)];
				}
				goto LA30_;
				LA35_: ;
				{
					goto LA28;
				}
				LA30_: ;
			}
		} LA28: ;
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* ao;
			if (!((*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17) || (*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13) || (*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24) || (*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28))) goto LA40_;
			obj = canonType__sem_13692(c, obj);
			ao = getAttachedOp__modulegraphs_4049((*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__Vrztsndr9a9bj8bQ3cn49bwWw) 38))&63U)))!=0));
				LA48_: ;
				if (!T47_) goto LA49_;
				setAttachedOp__modulegraphs_4445((*c).graph, (*(*c).module).position, obj, op, s);
			}
			goto LA42_;
			LA49_: ;
			{
				prevDestructor__sem_13700(c, ao, obj, (*n).info);
			}
			LA42_: ;
			noError = NIM_TRUE;
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T54_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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__lx9aDnWjKktcSUo0yfjOvMg) 0));
				T58_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + (T59_ ? T59_->Sup.len : 0) + 79);
appendString(T58_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_192));
appendString(T58_, (*(*s).name).s);
appendString(T58_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_193));
appendString(T58_, T59_);
appendString(T58_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_78));
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T58_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_194, 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__9be9c6fEXk5NwyPvxxb6toPA) 15))&63U)))!=0));
		LA63_: ;
		if (!T62_) goto LA64_;
		{
			if (!(op == ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 3))) goto LA68_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_195), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_196, 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__DKP9c7KM5AbqYVP6Gd9blNUw_197));
appendString(T71_, (*(*s).name).s);
appendString(T71_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_198));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T71_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_199, NIM_FALSE);
		}
		LA66_: ;
	}
	LA64_: ;
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 35)) & 63);
}
N_LIB_PRIVATE N_NIMCALL(void, semOverride__sem_13839)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NimStringDesc* name;
{	name = nsuNormalize((*(*s).name).s);
	if (eqStrings(name, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_179))) goto LA1_;
	if (eqStrings(name, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_180))) goto LA2_;
	if (eqStrings(name, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_181))) goto LA2_;
	if (eqStrings(name, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_182))) goto LA3_;
	if (eqStrings(name, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_183))) goto LA3_;
	if (eqStrings(name, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_184))) goto LA3_;
	if (eqStrings(name, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_185))) goto LA4_;
	goto LA5_;
	LA1_: ;
	{
		bindTypeHook__sem_13730(c, s, n, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 0));
		{
			tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T16_;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T17_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
			if (!!(((*s).ast == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA10_;
			{
				if (!((*(*(*s).ast)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA14_;
				asgnRef((void**) (&(*(*s).ast)._kind_6.sons->data[((NI) 4)]), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 90), (*s).info));
			}
			LA14_: ;
			nimZeroMem((void*)T16_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
			T17_ = NIM_NIL;
			T17_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_200));
			T16_[0] = newIdentNode__ast_3700(T17_, (*s).info);
			T16_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41), (*s).info);
			T18_ = NIM_NIL;
			T18_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34), T16_, 2);
			add__ast_4798((*(*s).ast)._kind_6.sons->data[((NI) 4)], T18_);
		}
		LA10_: ;
	}
	goto LA6_;
	LA2_: ;
	{
		{
			NIM_BOOL T22_;
			NIM_BOOL T23_;
			NI T24_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T26_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T30_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T31_;
			T22_ = (NIM_BOOL)0;
			T23_ = (NIM_BOOL)0;
			T24_ = (NI)0;
			T24_ = len__ast_3990((*s).typ);
			T23_ = (T24_ == ((NI) 2));
			if (!(T23_)) goto LA25_;
			T26_ = NIM_NIL;
			T26_ = skipTypes__ast_3723((*(*s).typ).sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
			T23_ = ((*T26_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22) || (*T26_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21));
			LA25_: ;
			T22_ = T23_;
			if (!(T22_)) goto LA27_;
			T22_ = sameType__types_1886((*(*s).typ).sons->data[((NI) 1)], (*(*s).typ).sons->data[((NI) 0)], 0);
			LA27_: ;
			if (!T22_) goto LA28_;
			T30_ = NIM_NIL;
			T30_ = skipTypes__ast_3723((*(*s).typ).sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
			T31_ = NIM_NIL;
			T31_ = lastSon__ast_3731(T30_);
			t = skipTypes__ast_3723(T31_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
			{
				while (1) {
					{
						if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10))) goto LA36_;
						t = lastSon__ast_3731(t);
					}
					goto LA34_;
					LA36_: ;
					{
						if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9))) goto LA39_;
						t = (*t).sons->data[((NI) 0)];
					}
					goto LA34_;
					LA39_: ;
					{
						goto LA32;
					}
					LA34_: ;
				}
			} LA32: ;
			{
				if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28))) goto LA44_;
				{
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T48_;
					T48_ = NIM_NIL;
					T48_ = getAttachedOp__modulegraphs_4049((*c).graph, t, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 4));
					if (!(T48_ == 0)) goto LA49_;
					setAttachedOp__modulegraphs_4445((*c).graph, (*(*c).module).position, t, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 4), s);
				}
				goto LA46_;
				LA49_: ;
				{
					NimStringDesc* T52_;
					NimStringDesc* T53_;
					T52_ = NIM_NIL;
					T53_ = NIM_NIL;
					T53_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
					T52_ = rawNewString((T53_ ? T53_->Sup.len : 0) + 35);
appendString(T52_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_201));
appendString(T52_, T53_);
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T52_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_202, NIM_FALSE);
				}
				LA46_: ;
			}
			goto LA42_;
			LA44_: ;
			{
				NimStringDesc* T55_;
				NimStringDesc* T56_;
				T55_ = NIM_NIL;
				T56_ = NIM_NIL;
				T56_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
				T55_ = rawNewString((T56_ ? T56_->Sup.len : 0) + 27);
appendString(T55_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_203));
appendString(T55_, T56_);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T55_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_204, NIM_FALSE);
			}
			LA42_: ;
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T59_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T60_;
				NimStringDesc* T63_;
				NimStringDesc* T64_;
				T59_ = NIM_NIL;
				T59_ = getModule__astalgo_216((*t).owner);
				T60_ = NIM_NIL;
				T60_ = getModule__astalgo_216(s);
				if (!!((T59_ == T60_))) goto LA61_;
				T63_ = NIM_NIL;
				T64_ = NIM_NIL;
				T64_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
				T63_ = rawNewString((name ? name->Sup.len : 0) + (T64_ ? T64_->Sup.len : 0) + 79);
appendString(T63_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_192));
appendString(T63_, name);
appendString(T63_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_193));
appendString(T63_, T64_);
appendString(T63_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_78));
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T63_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_205, NIM_FALSE);
			}
			LA61_: ;
		}
		goto LA20_;
		LA28_: ;
		{
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_206), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_207, NIM_FALSE);
		}
		LA20_: ;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 35)) & 63);
	}
	goto LA6_;
	LA3_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_2;
		{
			if (!((*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 7))) goto LA69_;
			goto BeforeRet_;
		}
		LA69_: ;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 35)) & 63);
		t_2 = (*s).typ;
		{
			NIM_BOOL T73_;
			NIM_BOOL T74_;
			NI T75_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* obj;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* objB;
			T73_ = (NIM_BOOL)0;
			T74_ = (NIM_BOOL)0;
			T75_ = (NI)0;
			T75_ = len__ast_3990(t_2);
			T74_ = (T75_ == ((NI) 3));
			if (!(T74_)) goto LA76_;
			T74_ = ((*t_2).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			LA76_: ;
			T73_ = T74_;
			if (!(T73_)) goto LA77_;
			T73_ = ((*(*t_2).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23));
			LA77_: ;
			if (!T73_) goto LA78_;
			obj = (*(*t_2).sons->data[((NI) 1)]).sons->data[((NI) 0)];
			{
				while (1) {
					(*obj).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 31)) & 63);
					{
						if (!((*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10))) goto LA84_;
						obj = lastSon__ast_3731(obj);
					}
					goto LA82_;
					LA84_: ;
					{
						if (!((*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9))) goto LA87_;
						obj = (*obj).sons->data[((NI) 0)];
					}
					goto LA82_;
					LA87_: ;
					{
						goto LA80;
					}
					LA82_: ;
				}
			} LA80: ;
			objB = (*t_2).sons->data[((NI) 2)];
			{
				while (1) {
					{
						if (!((*objB).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10))) goto LA94_;
						objB = lastSon__ast_3731(objB);
					}
					goto LA92_;
					LA94_: ;
					{
						if (!((*objB).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9) || (*objB).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11))) goto LA97_;
						objB = (*objB).sons->data[((NI) 0)];
					}
					goto LA92_;
					LA97_: ;
					{
						goto LA90;
					}
					LA92_: ;
				}
			} LA90: ;
			{
				NIM_BOOL T102_;
				tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ k;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* ao;
				T102_ = (NIM_BOOL)0;
				T102_ = ((*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17) || (*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13) || (*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24) || (*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28));
				if (!(T102_)) goto LA103_;
				T102_ = sameType__types_1886(obj, objB, 0);
				LA103_: ;
				if (!T102_) goto LA104_;
				obj = canonType__sem_13692(c, obj);
				{
					NIM_BOOL T108_;
					T108_ = (NIM_BOOL)0;
					T108_ = eqStrings(name, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_182));
					if (T108_) goto LA109_;
					T108_ = eqStrings(name, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_183));
					LA109_: ;
					if (!T108_) goto LA110_;
					k = ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 1);
				}
				goto LA106_;
				LA110_: ;
				{
					k = ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 2);
				}
				LA106_: ;
				ao = getAttachedOp__modulegraphs_4049((*c).graph, obj, k);
				{
					if (!(ao == s)) goto LA115_;
				}
				goto LA113_;
				LA115_: ;
				{
					NIM_BOOL T118_;
					T118_ = (NIM_BOOL)0;
					T118_ = (ao == 0);
					if (!(T118_)) goto LA119_;
					T118_ = !((((*obj).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 38))&63U)))!=0));
					LA119_: ;
					if (!T118_) goto LA120_;
					setAttachedOp__modulegraphs_4445((*c).graph, (*(*c).module).position, obj, k, s);
				}
				goto LA113_;
				LA120_: ;
				{
					prevDestructor__sem_13700(c, ao, obj, (*n).info);
				}
				LA113_: ;
				{
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T125_;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T126_;
					NimStringDesc* T129_;
					NimStringDesc* T130_;
					T125_ = NIM_NIL;
					T125_ = getModule__astalgo_216((*obj).owner);
					T126_ = NIM_NIL;
					T126_ = getModule__astalgo_216(s);
					if (!!((T125_ == T126_))) goto LA127_;
					T129_ = NIM_NIL;
					T130_ = NIM_NIL;
					T130_ = typeToString__types_50(obj, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
					T129_ = rawNewString((name ? name->Sup.len : 0) + (T130_ ? T130_->Sup.len : 0) + 79);
appendString(T129_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_192));
appendString(T129_, name);
appendString(T129_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_193));
appendString(T129_, T130_);
appendString(T129_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_78));
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T129_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_208, NIM_FALSE);
				}
				LA127_: ;
				goto BeforeRet_;
			}
			LA104_: ;
		}
		LA78_: ;
		{
			NimStringDesc* T135_;
			if (!!((((*(*s).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 15))&63U)))!=0))) goto LA133_;
			T135_ = NIM_NIL;
			T135_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 56);
appendString(T135_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_197));
appendString(T135_, (*(*s).name).s);
appendString(T135_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_209));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T135_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_210, NIM_FALSE);
		}
		LA133_: ;
	}
	goto LA6_;
	LA4_: ;
	{
		{
			if (!!(((*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 152)))) goto LA139_;
			bindTypeHook__sem_13730(c, s, n, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 3));
		}
		LA139_: ;
	}
	goto LA6_;
	LA5_: ;
	{
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 35))&63U)))!=0)) goto LA144_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_211), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_212, NIM_FALSE);
		}
		LA144_: ;
	}
	LA6_: ;
	}BeforeRet_: ;
}
static N_INLINE(NI, find__stdZenumutils_49)(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_44)(NimStringDesc** a, NI aLen_0, NimStringDesc* item) {
	NIM_BOOL result;
	NI T1_;
{	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = find__stdZenumutils_49(a, aLen_0, item);
	result = (((NI) 0) <= T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cursorInProcAux__sem_13997)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		tyEnum_TCheckPointResult__1fIaGKvTluv8QtOC3X9afKQ T3_;
		T3_ = (tyEnum_TCheckPointResult__1fIaGKvTluv8QtOC3X9afKQ)0;
		T3_ = inCheckpoint__sigmatch_5341((*n).info, (*conf).m.trackPos);
		if (!!((T3_ == ((tyEnum_TCheckPointResult__1fIaGKvTluv8QtOC3X9afKQ) 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_3148(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_13997(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_14012)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!((*n).info.fileIndex == (*conf).m.trackPos.fileIndex)) goto LA3_;
		result = cursorInProcAux__sem_13997(conf, n);
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4647)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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__9be9c6fEXk5NwyPvxxb6toPA) 2))&63U)))!=0);
	if (T3_) goto LA4_;
	T3_ = isGenericRoutine__ast_4628((*s).ast);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasObjParam__sem_14016)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	NIM_BOOL result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
{	result = (NIM_BOOL)0;
	t = (*s).typ;
	{
		NI col;
		NI colontmp_;
		NI i;
		col = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3990(t);
		i = ((NI) 1);
		{
			while (1) {
				if (!(i < colontmp_)) goto LA3;
				col = i;
				{
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T6_;
					T6_ = NIM_NIL;
					T6_ = skipTypes__ast_3723((*t).sons->data[col], TM__DKP9c7KM5AbqYVP6Gd9blNUw_59);
					if (!((*T6_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17))) goto LA7_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA7_: ;
				i += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semMethodPrototype__sem_14036)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		NIM_BOOL T3_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tt;
		NIM_BOOL foundObj;
		T3_ = (NIM_BOOL)0;
		T3_ = isGenericRoutine__ast_4647(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_3990(tt);
			i = ((NI) 1);
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
					if (!(i < colontmp_)) goto LA8;
					col = i;
					t = (*tt).sons->data[col];
					{
						NIM_BOOL T11_;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* x;
						T11_ = (NIM_BOOL)0;
						T11_ = !((t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
						if (!(T11_)) goto LA12_;
						T11_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9));
						LA12_: ;
						if (!T11_) goto LA13_;
						x = skipTypes__ast_3723((*t).sons->data[((NI) 0)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_225);
						{
							NIM_BOOL T17_;
							NI T19_;
							NI T20_;
							T17_ = (NIM_BOOL)0;
							T17_ = ((*x).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17));
							if (!(T17_)) goto LA18_;
							T19_ = (NI)0;
							T19_ = len__ast_3990(t);
							T20_ = (NI)0;
							T20_ = len__ast_3155((*n)._kind_6.sons->data[((NI) 2)]);
							T17_ = ((NI)(T19_ - ((NI) 1)) == T20_);
							LA18_: ;
							if (!T17_) goto LA21_;
							foundObj = NIM_TRUE;
							addMethodToGeneric__modulegraphs_7727((*c).graph, (*(*c).module).position, x, col, s);
						}
						LA21_: ;
					}
					LA13_: ;
					i += ((NI) 1);
				} LA8: ;
			}
		}
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 21), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_226), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_227, NIM_FALSE);
	}
	goto LA1_;
	LA4_: ;
	{
		{
			NIM_BOOL T26_;
			T26_ = (NIM_BOOL)0;
			T26_ = hasObjParam__sem_14016(s);
			if (!T26_) goto LA27_;
			methodDef__cgmeth_264((*c).graph, (*c).Sup.idgen, s);
		}
		goto LA24_;
		LA27_: ;
		{
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_228), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_229, NIM_FALSE);
		}
		LA24_: ;
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pushProcCon__sem_908)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner) {
	rawPushProcCon__sem_859(c, owner);
	rawHandleSelf__sem_875(c, owner);
}
N_LIB_PRIVATE N_NIMCALL(void, activate__sem_111)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
}
static N_INLINE(NIM_BOOL, isArrayConstr__sem_149)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41));
	if (!(T1_)) goto LA2_;
	T3_ = NIM_NIL;
	T3_ = skipTypes__ast_3723((*n).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
	T1_ = ((*T3_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fixAbstractType__sem_16115)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
{	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					tyArray__Re75IspeoxXy2oCZHwcRrA T8_;
					NimStringDesc* T9_;
					if (!(it == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA6_;
					nimZeroMem((void*)T8_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
					T8_[0] = renderTree__renderer_46(n, 4);
					T8_[1] = dollar___systemZdollars_3(i);
					T9_ = NIM_NIL;
					T9_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_233), T8_, 2);
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T9_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_234, NIM_FALSE);
					goto BeforeRet_;
				}
				LA6_: ;
				{
					NIM_BOOL T12_;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T14_;
					T12_ = (NIM_BOOL)0;
					T12_ = ((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59));
					if (!(T12_)) goto LA13_;
					T14_ = NIM_NIL;
					T14_ = skipTypes__ast_3723((*it).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_235);
					T12_ = !(((*T14_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27) || (*T14_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 48)));
					LA13_: ;
					if (!T12_) goto LA15_;
					{
						NIM_BOOL T19_;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T20_;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* s;
						T19_ = (NIM_BOOL)0;
						T20_ = NIM_NIL;
						T20_ = skipTypes__ast_3723((*(*it)._kind_6.sons->data[((NI) 1)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_235);
						T19_ = ((*T20_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5) || (*T20_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18) || (*T20_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19));
						if (T19_) goto LA21_;
						T19_ = isArrayConstr__sem_149((*it)._kind_6.sons->data[((NI) 1)]);
						LA21_: ;
						if (!T19_) goto LA22_;
						s = skipTypes__ast_3723((*it).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_236);
						{
							if (!!(((*s).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6)))) goto LA26_;
							changeType__sem_78(c, (*it)._kind_6.sons->data[((NI) 1)], s, NIM_TRUE);
						}
						LA26_: ;
						asgnRef((void**) (&(*n)._kind_6.sons->data[i]), (*it)._kind_6.sons->data[((NI) 1)]);
					}
					LA22_: ;
				}
				LA15_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow, isAssignable__sem_16158)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL isUnsafeAddr) {
	tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow result;
	result = (tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow)0;
	result = isAssignable__parampatterns_334((*(*c).p).owner, n, isUnsafeAddr);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderNotLValue__sem_1645)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NimStringDesc* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
	result = NIM_NIL;
	result = dollar___renderer_2116(n);
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 32));
		if (!(T8_)) goto LA9_;
		T10_ = (NI)0;
		T10_ = len__ast_3155(n_2);
		T8_ = (((NI) 1) < T10_);
		LA9_: ;
		if (!T8_) goto LA11_;
		T13_ = NIM_NIL;
		T14_ = NIM_NIL;
		T14_ = dollar___renderer_2116((*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__DKP9c7KM5AbqYVP6Gd9blNUw_76));
appendString(T13_, result);
appendString(T13_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_78));
		result = T13_;
	}
	goto LA6_;
	LA11_: ;
	{
		NIM_BOOL T16_;
		NI T18_;
		NimStringDesc* T21_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T22_;
		NimStringDesc* T23_;
		T16_ = (NIM_BOOL)0;
		T16_ = ((*n_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58) || (*n_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59));
		if (!(T16_)) goto LA17_;
		T18_ = (NI)0;
		T18_ = len__ast_3155(n_2);
		T16_ = (T18_ == ((NI) 2));
		LA17_: ;
		if (!T16_) goto LA19_;
		T21_ = NIM_NIL;
		T22_ = NIM_NIL;
		T22_ = skipTypes__ast_3723((*n_2).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_235);
		T23_ = NIM_NIL;
		T23_ = typeToString__types_50(T22_, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
		T21_ = rawNewString((T23_ ? T23_->Sup.len : 0) + (result ? result->Sup.len : 0) + 2);
appendString(T21_, T23_);
appendString(T21_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_76));
appendString(T21_, result);
appendString(T21_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_78));
		result = T21_;
	}
	goto LA6_;
	LA19_: ;
	LA6_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newHiddenAddrTaken__sem_16211)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*(*(*c).graph).config).backend == ((tyEnum_TBackend__zoooocqvga73vZuhGAAy6A) 2));
		if (T5_) goto LA6_;
		T5_ = (((*(*c).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 32))&63U)))!=0);
		LA6_: ;
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA7_;
		checkSonsLen__semdata_1107(n, ((NI) 1), (*(*c).graph).config);
		result = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA7_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T10_;
		tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow aa;
		T10_ = NIM_NIL;
		T10_ = makeVarType__semdata_796(c, (*n).typ, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23));
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 64), (*n).info, T10_);
		add__ast_4798(result, n);
		aa = isAssignable__sem_16158(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__QCmMYhJezk585e39ahToCow) 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_1645(n);
				T23_ = NIM_NIL;
				T23_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_238), T22_);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T23_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_242, NIM_FALSE);
			}
			LA15_: ;
		}
		LA13_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, analyseIfAddressTaken__sem_16241)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		{
			NIM_BOOL T4_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T6_;
			T4_ = (NIM_BOOL)0;
			T4_ = !(((*(*n)._kind_4.sym).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T4_)) goto LA5_;
			T6_ = NIM_NIL;
			T6_ = skipTypes__ast_3723((*(*n)._kind_4.sym).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_6);
			T4_ = !(((*T6_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*T6_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47)));
			LA5_: ;
			if (!T4_) goto LA7_;
			(*(*n)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 17)) & 63);
			result = newHiddenAddrTaken__sem_16211(c, n);
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
	{
		checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA12_;
			internalErrorImpl__msgs_1441((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_243), TM__DKP9c7KM5AbqYVP6Gd9blNUw_244);
			goto BeforeRet_;
		}
		LA12_: ;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T16_;
			T16_ = NIM_NIL;
			T16_ = skipTypes__ast_3723((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_6);
			if (!!(((*T16_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*T16_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47)))) goto LA17_;
			(*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 17)) & 63);
			result = newHiddenAddrTaken__sem_16211(c, n);
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
	{
		checkMinSonsLen__semdata_1114(n, ((NI) 1), (*(*c).graph).config);
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T22_;
			T22_ = NIM_NIL;
			T22_ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_6);
			if (!!(((*T22_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*T22_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47)))) goto LA23_;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA27_;
				(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 17)) & 63);
			}
			LA27_: ;
			result = newHiddenAddrTaken__sem_16211(c, n);
		}
		LA23_: ;
	}
	break;
	default:
	{
		result = newHiddenAddrTaken__sem_16211(c, n);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, analyseIfAddressTakenInCall__sem_16299)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
{	checkMinSonsLen__semdata_1114(n, ((NI) 1), (*(*c).graph).config);
	t = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_141);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = ((TM__DKP9c7KM5AbqYVP6Gd9blNUw_237[(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_3155(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__kQDDJGUiaUAtO9c9b6LjZYjA* T17_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
						tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow aa;
						T12_ = (NIM_BOOL)0;
						T13_ = (NIM_BOOL)0;
						T14_ = (NI)0;
						T14_ = len__ast_3990(t);
						T13_ = (i < T14_);
						if (!(T13_)) goto LA15_;
						T13_ = !(((*t).sons->data[i] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
						LA15_: ;
						T12_ = T13_;
						if (!(T12_)) goto LA16_;
						T17_ = NIM_NIL;
						T17_ = skipTypes__ast_3723((*t).sons->data[i], TM__DKP9c7KM5AbqYVP6Gd9blNUw_6);
						T12_ = ((*T17_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23));
						LA16_: ;
						if (!T12_) goto LA18_;
						it = (*n)._kind_6.sons->data[i];
						aa = isAssignable__sem_16158(c, it, NIM_FALSE);
						{
							if (!!(((6 &((NU8)1<<((NU)(aa)&7U)))!=0))) goto LA22_;
							{
								if (!!(((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 64)))) goto LA26_;
								{
									NIM_BOOL T30_;
									T30_ = (NIM_BOOL)0;
									T30_ = (aa == ((tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow) 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_2116(it);
									T36_ = NIM_NIL;
									T36_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_238), T35_);
									liMessage__msgs_1128((*(*c).graph).config, (*it).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T36_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_239, NIM_FALSE);
								}
								LA28_: ;
							}
							LA26_: ;
						}
						LA22_: ;
					}
					LA18_: ;
					i_2 += ((NI) 1);
				} LA9: ;
			}
		}
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg;
			if (!((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 32) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 33) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 34))) goto LA39_;
			arg = (*n)._kind_6.sons->data[((NI) 1)];
			{
				if (!((*arg).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65))) goto LA43_;
				arg = (*arg)._kind_6.sons->data[((NI) 0)];
			}
			LA43_: ;
			{
				NIM_BOOL T47_;
				NIM_BOOL T48_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T51_;
				NimStringDesc* T54_;
				NimStringDesc* T55_;
				T47_ = (NIM_BOOL)0;
				T48_ = (NIM_BOOL)0;
				T48_ = ((*arg).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
				if (!(T48_)) goto LA49_;
				T48_ = ((*(*arg)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11));
				LA49_: ;
				T47_ = T48_;
				if (!(T47_)) goto LA50_;
				T51_ = NIM_NIL;
				T51_ = skipTypes__ast_3723((*arg).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
				T47_ = ((*T51_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*T51_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__DKP9c7KM5AbqYVP6Gd9blNUw_240), T54_);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T55_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_241, 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_3155(n);
		i_4 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
				if (!(i_4 < colontmp__2)) goto LA58;
				i_3 = i_4;
				{
					if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 32))) goto LA66_;
					analyseIfAddressTakenInCall__sem_16299(c, (*n_2)._kind_6.sons->data[i_3]);
				}
				LA66_: ;
				{
					NIM_BOOL T70_;
					NI T71_;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T73_;
					T70_ = (NIM_BOOL)0;
					T71_ = (NI)0;
					T71_ = len__ast_3990(t);
					T70_ = (i_3 < T71_);
					if (!(T70_)) goto LA72_;
					T73_ = NIM_NIL;
					T73_ = skipTypes__ast_3723((*t).sons->data[i_3], TM__DKP9c7KM5AbqYVP6Gd9blNUw_6);
					T70_ = ((*T73_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23));
					LA72_: ;
					if (!T70_) goto LA74_;
					{
						if (!!(((*(*n_2)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 64)))) goto LA78_;
						asgnRef((void**) (&(*n_2)._kind_6.sons->data[i_3]), analyseIfAddressTaken__sem_16241(c, (*n_2)._kind_6.sons->data[i_3]));
					}
					LA78_: ;
				}
				LA74_: ;
				i_4 += ((NI) 1);
			} LA58: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semAddrArg__sem_16419)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL isUnsafeAddr) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
	result = NIM_NIL;
	x = semExprWithType__sem_57(c, n, 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	{
		if (!((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA3_;
		(*(*x)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 17)) & 63);
	}
	LA3_: ;
	{
		tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow T7_;
		T7_ = (tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow)0;
		T7_ = isAssignable__sem_16158(c, x, isUnsafeAddr);
		if (!!(((6 &((NU8)1<<((NU)(T7_)&7U)))!=0))) goto LA8_;
		{
			if (!isUnsafeAddr) goto LA12_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_245), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_246, NIM_FALSE);
		}
		goto LA10_;
		LA12_: ;
		{
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_248), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_249, NIM_FALSE);
		}
		LA10_: ;
	}
	LA8_: ;
	result = x;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTypeOf__sem_136)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI64 m;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* typExpr;
	tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw T11_;
	result = NIM_NIL;
	m = IL64(1);
	{
		NI T3_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* mode;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 3))) goto LA4_;
		mode = semConstExpr__sem_619(c, (*n)._kind_6.sons->data[((NI) 2)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		{
			if (!!(((*mode).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6)))) goto LA8_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_251), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_252, NIM_FALSE);
		}
		goto LA6_;
		LA8_: ;
		{
			m = (*mode)._kind_1.intVal;
		}
		LA6_: ;
	}
	LA4_: ;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 132), (*n).info);
	{
		if (!(m == IL64(1))) goto LA14_;
		T11_ = 8;
	}
	goto LA12_;
	LA14_: ;
	{
		T11_ = 0;
	}
	LA12_: ;
	typExpr = semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 1)], T11_, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	add__ast_4798(result, typExpr);
	asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, (*typExpr).typ));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semDeref__sem_18616)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	result = NIM_NIL;
	checkSonsLen__semdata_1107(n, ((NI) 1), (*(*c).graph).config);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 0)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
	a = getConstExpr__semfold_81((*c).module, (*n)._kind_6.sons->data[((NI) 0)], (*c).Sup.idgen, (*c).graph);
	{
		if (!!((a == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA3_;
		{
			if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23))) goto LA7_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_256), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_257, NIM_FALSE);
		}
		LA7_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), a);
	}
	LA3_: ;
	result = n;
	t = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_258);
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21):
	{
		asgnRef((void**) (&(*n).typ), lastSon__ast_3731(t));
	}
	break;
	default:
	{
		result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semStaticType__sem_132)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* childNode, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	result = NIM_NIL;
	result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60), prev, c);
	T1_ = NIM_NIL;
	T1_ = semTypeNode__sem_83(c, childNode, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	base = skipTypes__ast_3723(T1_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_260);
	rawAddSon__ast_4276(result, base, NIM_TRUE);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 24)) & 63);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semSymGenericInstantiation__sem_15109)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0), NIM_FALSE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, explicitGenericSym__sem_2624)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw m;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* newInst;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
{	result = NIM_NIL;
	nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw));
	newCandidate__sigmatch_189(c, s, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((NI) -1), (&m));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* arg;
				tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA 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__uh9cWvEa5Ty85PXOtuP5emw* evaluated;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*formal).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60));
					if (!(T6_)) goto LA7_;
					T6_ = !(((*arg).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60)));
					LA7_: ;
					if (!T6_) goto LA8_;
					evaluated = (*c).semTryConstExpr(c, (*n)._kind_6.sons->data[i], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					{
						if (!!((evaluated == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA12_;
						arg = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60), c);
						if ((*arg).sons) { nimGCunrefNoCycle((*arg).sons); (*arg).sons = NIM_NIL; }
						(*arg).sons = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeqRC1((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 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__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
					goto BeforeRet_;
				}
				LA16_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	newInst = generateInstance__sem_1319(c, s, m.bindings, (*n).info);
	(*(*newInst).typ).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9)) & 63));
	info = getCallLineInfo__sem_2443(n);
	markUsed__sigmatch_85(c, info, s);
	result = newSymNode__ast_3707(newInst, info);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, explicitGenericInstError__sem_2620)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	result = NIM_NIL;
	T1_ = getCallLineInfo__sem_2443(n);
	T2_ = NIM_NIL;
	T2_ = renderTree__renderer_46(n, 0);
	T3_ = NIM_NIL;
	T3_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_86), T2_);
	liMessage__msgs_1128((*(*c).graph).config, T1_, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T3_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_269, NIM_FALSE);
	result = n;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, explicitGenericInstantiation__sem_2674)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s_2;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
{	result = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				e = semExprWithType__sem_57(c, (*n)._kind_6.sons->data[i], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
				{
					if (!((*e).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA6_;
					asgnRef((void**) (&(*(*n)._kind_6.sons->data[i]).typ), errorType__semdata_1032(c));
				}
				goto LA4_;
				LA6_: ;
				{
					asgnRef((void**) (&(*(*n)._kind_6.sons->data[i]).typ), skipTypes__ast_3723((*e).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128));
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	s_2 = s;
	a = (*n)._kind_6.sons->data[((NI) 0)];
	{
		if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA11_;
		{
			NI T15_;
			NI T16_;
			NI expected;
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T19_;
			NimStringDesc* T20_;
			NimStringDesc* T21_;
			NI T22_;
			NimStringDesc* T23_;
			NimStringDesc* T24_;
			T15_ = (NI)0;
			T15_ = safeLen__ast_3148((*(*s_2).ast)._kind_6.sons->data[((NI) 2)]);
			T16_ = (NI)0;
			T16_ = len__ast_3155(n);
			if (!!((T15_ == (NI)(T16_ - ((NI) 1))))) goto LA17_;
			expected = safeLen__ast_3148((*(*s_2).ast)._kind_6.sons->data[((NI) 2)]);
			T19_ = getCallLineInfo__sem_2443(n);
			T20_ = NIM_NIL;
			T21_ = NIM_NIL;
			T21_ = renderTree__renderer_46(n, 0);
			T22_ = (NI)0;
			T22_ = len__ast_3155(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__DKP9c7KM5AbqYVP6Gd9blNUw_264));
appendString(T20_, T21_);
appendString(T20_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_265));
appendString(T20_, T23_);
appendString(T20_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_266));
appendString(T20_, T24_);
			liMessage__msgs_1128((*(*c).graph).config, T19_, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T20_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_267, NIM_FALSE);
			result = n;
			goto BeforeRet_;
		}
		LA17_: ;
		result = explicitGenericSym__sem_2624(c, n, s_2);
		{
			if (!(result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA27_;
			result = explicitGenericInstError__sem_2620(c, n);
		}
		LA27_: ;
	}
	goto LA9_;
	LA11_: ;
	{
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T32_;
		if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57))) goto LA30_;
		T32_ = getCallLineInfo__sem_2443(n);
		result = newNodeI__ast_3320((*a).kind, T32_);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3155(a);
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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__uh9cWvEa5Ty85PXOtuP5emw* x;
							T42_ = (NI)0;
							T42_ = safeLen__ast_3148((*(*candidate).ast)._kind_6.sons->data[((NI) 2)]);
							T43_ = (NI)0;
							T43_ = len__ast_3155(n);
							if (!(T42_ == (NI)(T43_ - ((NI) 1)))) goto LA44_;
							x = explicitGenericSym__sem_2624(c, n, candidate);
							{
								if (!!((x == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA48_;
								add__ast_4798(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_3155(result);
			T52_ = (T53_ == ((NI) 1));
			if (!(T52_)) goto LA54_;
			T52_ = ((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_3155(result);
			if (!(T58_ == ((NI) 0))) goto LA59_;
			result = explicitGenericInstError__sem_2620(c, n);
		}
		goto LA50_;
		LA59_: ;
		LA50_: ;
	}
	goto LA9_;
	LA30_: ;
	{
		result = explicitGenericInstError__sem_2620(c, n);
	}
	LA9_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, maybeInstantiateGeneric__sem_18638)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI neededGenParams;
	NI heldGenParams;
	NI T1_;
	NI implicitParams;
	result = NIM_NIL;
	neededGenParams = len__ast_3155((*(*s).ast)._kind_6.sons->data[((NI) 2)]);
	T1_ = (NI)0;
	T1_ = len__ast_3155(n);
	heldGenParams = (NI)(T1_ - ((NI) 1));
	implicitParams = ((NI) 0);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(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__Vrztsndr9a9bj8bQ3cn49bwWw) 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_2674(c, n, s);
		{
			if (!(result == n)) goto LA19_;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), copyTree__ast_4432((*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__3r34mwqcVmg5JFNmiaVncw*, symFromType__sem_537)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T5_;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T6_;
{	result = NIM_NIL;
	{
		if (!!(((*t).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA3_;
		result = (*t).sym;
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = NIM_NIL;
	T5_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_270));
	T6_ = nextSymId__ast_3103((*c).Sup.idgen);
	result = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7), T5_, T6_, (*t).owner, info, 0);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34)) & 63);
	asgnRef((void**) (&(*result).typ), t);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, symNodeFromType__sem_550)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = symFromType__sem_537(c, t, info);
	result = newSymNode__ast_3707(T1_, info);
	asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, t));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semSubscript__sem_16468)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* arr;
{	result = NIM_NIL;
	{
		NI T3_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 1))) goto LA4_;
		x = semDeref__sem_18616(c, n);
		{
			if (!(x == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA8_;
			result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
			goto BeforeRet_;
		}
		LA8_: ;
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47), (*x).info, (*x).typ);
		add__ast_4798(result, (*x)._kind_6.sons->data[((NI) 0)]);
		goto BeforeRet_;
	}
	LA4_: ;
	checkMinSonsLen__semdata_1114(n, ((NI) 2), (*(*c).graph).config);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 0)], 16384, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
	arr = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_259);
	{
		if (!((*arr).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60))) goto LA12_;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T16_;
			T16_ = NIM_NIL;
			T16_ = base__types_63(arr);
			if (!((*T16_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0))) goto LA17_;
			result = n;
			asgnRef((void**) (&(*result).typ), semStaticType__sem_132(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			goto BeforeRet_;
		}
		goto LA14_;
		LA17_: ;
		{
			if (!!(((*arr).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA20_;
			result = semSubscript__sem_16468(c, (*arr).n, flags);
			goto BeforeRet_;
		}
		goto LA14_;
		LA20_: ;
		{
			arr = base__types_63(arr);
		}
		LA14_: ;
	}
	LA12_: ;
	switch ((*arr).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 48):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 49):
	{
		{
			NI T26_;
			T26_ = (NI)0;
			T26_ = len__ast_3155(n);
			if (!!((T26_ == ((NI) 2)))) goto LA27_;
			result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
			goto BeforeRet_;
		}
		LA27_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), makeDeref__sem_10575((*n)._kind_6.sons->data[((NI) 0)]));
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(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_57(c, (*n)._kind_6.sons->data[i], (flags & 520), ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
					i_2 += ((NI) 1);
				} LA31: ;
			}
		}
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* indexType;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg;
			if (!((*arr).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16))) goto LA34_;
			indexType = (*arr).sons->data[((NI) 0)];
			arg = indexTypesMatch__sem_123(c, indexType, (*(*n)._kind_6.sons->data[((NI) 1)]).typ, (*n)._kind_6.sons->data[((NI) 1)]);
			{
				if (!!((arg == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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__kQDDJGUiaUAtO9c9b6LjZYjA* T41_;
			T41_ = NIM_NIL;
			T41_ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
			if (!((*T41_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*T41_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35) || (*T41_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) && (*T41_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44))) goto LA42_;
			result = n;
			asgnRef((void**) (&(*result).typ), elemType__types_263(arr));
		}
		goto LA32_;
		LA42_: ;
		LA32_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T45_;
		result = n;
		T45_ = NIM_NIL;
		T45_ = semTypeNode__sem_83(c, n, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, T45_));
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18):
	{
		{
			NI T49_;
			T49_ = (NI)0;
			T49_ = len__ast_3155(n);
			if (!!((T49_ == ((NI) 2)))) goto LA50_;
			result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
			goto BeforeRet_;
		}
		LA50_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), makeDeref__sem_10575((*n)._kind_6.sons->data[((NI) 0)]));
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semConstExpr__sem_619(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T54_;
			tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ idx;
			T54_ = NIM_NIL;
			T54_ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_261);
			if (!((*T54_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*T54_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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_945(IL64(0), idx);
				if (!(T59_)) goto LA60_;
				T61_ = (NI)0;
				T61_ = len__ast_3990(arr);
				T59_ = lt___int495056_905(idx, ((NI64) (T61_)));
				LA60_: ;
				if (!T59_) goto LA62_;
				T64_ = (NI)0;
				T64_ = toInt__int495056_273(idx);
				asgnRef((void**) (&(*n).typ), (*arr).sons->data[T64_]);
			}
			goto LA57_;
			LA62_: ;
			{
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_262), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_263, NIM_FALSE);
			}
			LA57_: ;
			result = n;
		}
		goto LA52_;
		LA55_: ;
		{
			result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
		}
		LA52_: ;
	}
	break;
	default:
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 56) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL);
		}
		LA68_: ;
		{
			if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA78_;
			switch ((*s).kind) {
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 13):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 16):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15):
			{
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semSymGenericInstantiation__sem_15109(c, (*n)._kind_6.sons->data[((NI) 0)], s));
				result = maybeInstantiateGeneric__sem_18638(c, n, s);
			}
			break;
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
			{
				{
					if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 15))&31U)))!=0)) goto LA84_;
					result = n;
				}
				goto LA82_;
				LA84_: ;
				{
					transitionSonsKind__ast_4347(n, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 27));
					switch ((*s).kind) {
					case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
					{
						result = semMacroExpr__sem_530(c, n, n, s, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					}
					break;
					case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
					{
						result = semTemplateExpr__sem_524(c, n, s, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					}
					break;
					default:
					{
					}
					break;
					}
				}
				LA82_: ;
			}
			break;
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7):
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T91_;
				T91_ = NIM_NIL;
				T91_ = semTypeNode__sem_83(c, n, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
				result = symNodeFromType__sem_550(c, T91_, (*n).info);
			}
			break;
			default:
			{
			}
			break;
			}
		}
		LA78_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, effectProblem__sem_1616)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* f, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* a, NimStringDesc** result, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*f).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
		if (!(T3_)) goto LA4_;
		T3_ = ((*a).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 7))&63U)))!=0);
			if (!(T9_)) goto LA10_;
			T9_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 7))&63U)))!=0));
			LA10_: ;
			if (!T9_) goto LA11_;
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), 103));
appendString((*result), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_298));
		}
		goto LA7_;
		LA11_: ;
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 1))&63U)))!=0);
			if (!(T14_)) goto LA15_;
			T14_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 1))&63U)))!=0));
			LA15_: ;
			if (!T14_) goto LA16_;
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), 116));
appendString((*result), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_299));
		}
		goto LA7_;
		LA16_: ;
		{
			tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA T19_;
			T19_ = (tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA)0;
			T19_ = compatibleEffects__types_3489(f, a);
			switch (T19_) {
			case ((tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA) 0):
			{
			}
			break;
			case ((tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA) 1):
			{
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 37));
appendString((*result), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_300));
			}
			break;
			case ((tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA) 2):
			{
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 110));
appendString((*result), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_301));
			}
			break;
			case ((tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA) 3):
			{
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 35));
appendString((*result), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_302));
			}
			break;
			case ((tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA) 4):
			{
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 106));
appendString((*result), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_303));
			}
			break;
			case ((tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA) 5):
			{
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 107));
appendString((*result), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_304));
			}
			break;
			case ((tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA) 6):
			{
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 39));
appendString((*result), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_305));
			}
			break;
			}
		}
		LA7_: ;
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, presentFailedCandidates__sem_1669)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySequence__LFzufdBEvfOUK6PWh0HUtQ* errors, tyTuple__w6N3FtUNd27MnpJcSoTdfQ* Result) {
	tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg prefer;
	NimStringDesc* proto;
	NIM_BOOL filterOnlyFirst;
	NIM_BOOL maybeWrongSpace;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* candidatesAll;
	NimStringDesc* candidates;
	NI skipped;
	tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg colontmp__2;
	NimStringDesc* colontmp__3;
	prefer = ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0);
	proto = describeArgs__sigmatch_384(c, n, ((NI) 1), ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
	{
		tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ* err;
		NI i;
		NI L;
		NI T2_;
		err = (tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ*)0;
		i = ((NI) 0);
		T2_ = (errors ? errors->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NimStringDesc* errProto;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3155(n_2);
					i_3 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA10_;
								T12_ = NIM_NIL;
								T12_ = typeToString__types_50((*(*p)._kind_4.sym).typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
								errProto = resizeString(errProto, (T12_ ? T12_->Sup.len : 0) + 0);
appendString(errProto, T12_);
								{
									NI T15_;
									T15_ = (NI)0;
									T15_ = len__ast_3155(n_2);
									if (!!((i_2 == (NI)(T15_ - ((NI) 1))))) goto LA16_;
									errProto = resizeString(errProto, 2);
appendString(errProto, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_77));
								}
								LA16_: ;
							}
							LA10_: ;
							i_3 += ((NI) 1);
						} LA7: ;
					}
				}
				{
					if (!eqStrings(errProto, proto)) goto LA20_;
					prefer = ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 3);
					goto LA1;
				}
				LA20_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	} LA1: ;
	filterOnlyFirst = NIM_FALSE;
	{
		if (!!((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 32))&63U)))!=0))) goto LA24_;
		{
			tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ* err_2;
			NI i_4;
			NI L_2;
			NI T27_;
			err_2 = (tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ*)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__gFDKCwBunKZtG86yhpxUMQ* err_3;
		NI i_5;
		NI L_3;
		NI T35_;
		err_3 = (tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ*)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__uh9cWvEa5Ty85PXOtuP5emw* 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__uh9cWvEa5Ty85PXOtuP5emw*) 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__DKP9c7KM5AbqYVP6Gd9blNUw_282));
					{
						NI T56_;
						T56_ = (NI)0;
						T56_ = len__ast_3155(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__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
					}
					LA54_: ;
					{
						if (!!(((*err_3).firstMismatch.formal == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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_3155(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__DKP9c7KM5AbqYVP6Gd9blNUw_283));
appendString(T70_, T71_);
						candidates = resizeString(candidates, (T70_ ? T70_->Sup.len : 0) + 0);
appendString(candidates, T70_);
						switch ((*err_3).firstMismatch.kind) {
						case ((tyEnum_MismatchKind__4mf6T2YBNEEtWBTWMSzL9bw) 2):
						{
							{
								if (!(nArg == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA75_;
								candidates = resizeString(candidates, 26);
appendString(candidates, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_284));
							}
							goto LA73_;
							LA75_: ;
							{
								NimStringDesc* T78_;
								NimStringDesc* T79_;
								T78_ = NIM_NIL;
								T79_ = NIM_NIL;
								T79_ = dollar___renderer_2116((*nArg)._kind_6.sons->data[((NI) 0)]);
								T78_ = rawNewString((T79_ ? T79_->Sup.len : 0) + 28);
appendString(T78_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_285));
appendString(T78_, T79_);
								candidates = resizeString(candidates, (T78_ ? T78_->Sup.len : 0) + 0);
appendString(candidates, T78_);
							}
							LA73_: ;
						}
						break;
						case ((tyEnum_MismatchKind__4mf6T2YBNEEtWBTWMSzL9bw) 1):
						{
							NimStringDesc* T81_;
							NimStringDesc* T82_;
							T81_ = NIM_NIL;
							T82_ = NIM_NIL;
							T82_ = dollar___renderer_2116((*nArg)._kind_6.sons->data[((NI) 0)]);
							T81_ = rawNewString((T82_ ? T82_->Sup.len : 0) + 33);
appendString(T81_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_286));
appendString(T81_, T82_);
							candidates = resizeString(candidates, (T81_ ? T81_->Sup.len : 0) + 0);
appendString(candidates, T81_);
						}
						break;
						case ((tyEnum_MismatchKind__4mf6T2YBNEEtWBTWMSzL9bw) 7):
						{
							candidates = resizeString(candidates, 52);
appendString(candidates, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_287));
						}
						break;
						case ((tyEnum_MismatchKind__4mf6T2YBNEEtWBTWMSzL9bw) 6):
						{
							candidates = resizeString(candidates, 23);
appendString(candidates, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_288));
						}
						break;
						case ((tyEnum_MismatchKind__4mf6T2YBNEEtWBTWMSzL9bw) 5):
						{
							NimStringDesc* T86_;
							T86_ = NIM_NIL;
							T86_ = rawNewString((nameParam ? nameParam->Sup.len : 0) + 22);
appendString(T86_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_289));
appendString(T86_, nameParam);
							candidates = resizeString(candidates, (T86_ ? T86_->Sup.len : 0) + 0);
appendString(candidates, T86_);
						}
						break;
						case ((tyEnum_MismatchKind__4mf6T2YBNEEtWBTWMSzL9bw) 3):
						case ((tyEnum_MismatchKind__4mf6T2YBNEEtWBTWMSzL9bw) 4):
						{
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* wanted;
							NimStringDesc* T96_;
							{
								if (!!(!((nArg == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))))) goto LA90_;
								failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_290));
							}
							LA90_: ;
							wanted = (*(*err_3).firstMismatch.formal).typ;
							{
								if (!!(!(((*err_3).firstMismatch.formal == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))))) goto LA94_;
								failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_291));
							}
							LA94_: ;
							T96_ = NIM_NIL;
							T96_ = rawNewString((nameParam ? nameParam->Sup.len : 0) + 23);
appendString(T96_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_292));
appendString(T96_, nameParam);
appendString(T96_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_293));
							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__DKP9c7KM5AbqYVP6Gd9blNUw_294));
							{
								NimStringDesc* T101_;
								if (!((*err_3).firstMismatch.kind == ((tyEnum_MismatchKind__4mf6T2YBNEEtWBTWMSzL9bw) 4))) goto LA99_;
								T101_ = NIM_NIL;
								T101_ = renderNotLValue__sem_1645(nArg);
								candidates = resizeString(candidates, (T101_ ? T101_->Sup.len : 0) + 0);
appendString(candidates, T101_);
								candidates = resizeString(candidates, 25);
appendString(candidates, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_295));
							}
							goto LA97_;
							LA99_: ;
							{
								NimStringDesc* T103_;
								tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* 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__DKP9c7KM5AbqYVP6Gd9blNUw_296));
								got = (*nArg).typ;
								addTypeDeclVerboseMaybe__types_53((&candidates), (*(*c).graph).config, got);
								{
									if (!!(!((wanted == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))))) goto LA106_;
									failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_297));
								}
								LA106_: ;
								{
									if (!!((got == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA110_;
									{
										NIM_BOOL T114_;
										T114_ = (NIM_BOOL)0;
										T114_ = ((*got).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
										if (!(T114_)) goto LA115_;
										T114_ = ((*wanted).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
										LA115_: ;
										if (!T114_) goto LA116_;
										addPragmaAndCallConvMismatch__types_3859((&candidates), wanted, got, (*(*c).graph).config);
									}
									LA116_: ;
									effectProblem__sem_1616(wanted, got, (&candidates), c);
								}
								LA110_: ;
							}
							LA97_: ;
						}
						break;
						case ((tyEnum_MismatchKind__4mf6T2YBNEEtWBTWMSzL9bw) 0):
						{
						}
						break;
						}
						candidates = resizeString(candidates, 1);
appendString(candidates, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_282));
						{
							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__clSgDh22o9au33BrVH9bDQZw) 160));
							LA123_: ;
							T121_ = T122_;
							if (!(T121_)) goto LA124_;
							T121_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__DKP9c7KM5AbqYVP6Gd9blNUw_282));
								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_1825((candidatesAll) ? (candidatesAll->data) : NIM_NIL, (candidatesAll ? candidatesAll->Sup.len : 0), ((tyEnum_SortOrder__TcYjciSJ3jKUT4ygglumjg) 1));
	candidates = nsuJoinSep((candidatesAll) ? (candidatesAll->data) : NIM_NIL, (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__DKP9c7KM5AbqYVP6Gd9blNUw_306));
		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__DKP9c7KM5AbqYVP6Gd9blNUw_307));
appendString(T144_, T145_);
appendString(T144_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_308));
		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_1955)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySequence__LFzufdBEvfOUK6PWh0HUtQ* errors) {
	tyTuple__w6N3FtUNd27MnpJcSoTdfQ T35_;
	tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg prefer;
	NimStringDesc* candidates;
	NimStringDesc* result;
	NimStringDesc* T36_;
	NimStringDesc* T42_;
	NimStringDesc* T43_;
{	{
		if (!((*(*(*c).graph).config).m.errorOutputs == 0)) goto LA3_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_273), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__DKP9c7KM5AbqYVP6Gd9blNUw_274, NIM_FALSE);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NimStringDesc* ident;
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T11_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
		NimStringDesc* typeHint;
		NimStringDesc* T19_;
		NimStringDesc* T20_;
		T7_ = (NIM_BOOL)0;
		T7_ = !((((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 11))&31U)))!=0));
		if (!(T7_)) goto LA8_;
		T7_ = !(((1536 & (*n).flags) == 0));
		LA8_: ;
		if (!T7_) goto LA9_;
		T11_ = NIM_NIL;
		T11_ = considerQuotedIdent__lookups_29(c, (*n)._kind_6.sons->data[((NI) 0)], n);
		ident = (*T11_).s;
		sym = typSym__astmsgs_5((*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		typeHint = ((NimStringDesc*) NIM_NIL);
		{
			if (!(sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA14_;
		}
		goto LA12_;
		LA14_: ;
		{
			NimStringDesc* T17_;
			NimStringDesc* T18_;
			T17_ = NIM_NIL;
			T18_ = NIM_NIL;
			T18_ = getProcHeader__types_222((*(*c).graph).config, sym, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0), NIM_TRUE);
			T17_ = rawNewString((T18_ ? T18_->Sup.len : 0) + 10);
appendString(T17_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_275));
appendString(T17_, T18_);
			typeHint = T17_;
		}
		LA12_: ;
		T19_ = NIM_NIL;
		T20_ = NIM_NIL;
		T20_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_276), ident);
		T19_ = rawNewString((T20_ ? T20_->Sup.len : 0) + (typeHint ? typeHint->Sup.len : 0) + 0);
appendString(T19_, T20_);
appendString(T19_, typeHint);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T19_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_277, NIM_FALSE);
		goto BeforeRet_;
	}
	LA9_: ;
	{
		NI T23_;
		T23_ = (errors ? errors->Sup.len : 0);
		if (!(T23_ == ((NI) 0))) goto LA24_;
		{
			NimStringDesc* ident_2;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T30_;
			NimStringDesc* T31_;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56))) goto LA28_;
			T30_ = NIM_NIL;
			T30_ = considerQuotedIdent__lookups_29(c, (*n)._kind_6.sons->data[((NI) 0)], n);
			ident_2 = (*T30_).s;
			T31_ = NIM_NIL;
			T31_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_278), ident_2);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T31_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_279, NIM_FALSE);
		}
		goto LA26_;
		LA28_: ;
		{
			NimStringDesc* T33_;
			NimStringDesc* T34_;
			T33_ = NIM_NIL;
			T33_ = renderTree__renderer_46((*n)._kind_6.sons->data[((NI) 0)], 0);
			T34_ = NIM_NIL;
			T34_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_280), T33_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T34_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_281, NIM_FALSE);
		}
		LA26_: ;
		goto BeforeRet_;
	}
	LA24_: ;
	nimZeroMem((void*)(&T35_), sizeof(tyTuple__w6N3FtUNd27MnpJcSoTdfQ));
	presentFailedCandidates__sem_1669(c, n, errors, (&T35_));
	prefer = (tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg)0;
	prefer = T35_.Field0;
	candidates = NIM_NIL;
	candidates = T35_.Field1;
	result = copyString(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_309));
	T36_ = NIM_NIL;
	T36_ = describeArgs__sigmatch_384(c, n, ((NI) 1), prefer);
	result = resizeString(result, (T36_ ? T36_->Sup.len : 0) + 0);
appendString(result, T36_);
	result = addChar(result, 62);
	{
		NimStringDesc* T41_;
		if (!!(((candidates ? candidates->Sup.len : 0) == 0))) goto LA39_;
		T41_ = NIM_NIL;
		T41_ = rawNewString((candidates ? candidates->Sup.len : 0) + 22);
appendString(T41_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_310));
appendString(T41_, candidates);
		result = resizeString(result, (T41_ ? T41_->Sup.len : 0) + 0);
appendString(result, T41_);
	}
	LA39_: ;
	T42_ = NIM_NIL;
	T43_ = NIM_NIL;
	T43_ = dollar___renderer_2116(n);
	T42_ = rawNewString((result ? result->Sup.len : 0) + (T43_ ? T43_->Sup.len : 0) + 13);
appendString(T42_, result);
appendString(T42_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_311));
appendString(T42_, T43_);
	liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T42_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_312, NIM_FALSE);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, bracketNotFoundError__sem_1998)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tySequence__LFzufdBEvfOUK6PWh0HUtQ* errors;
	tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg o;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* headSymbol;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* symx;
	errors = NIM_NIL;
	nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg));
	headSymbol = (*n)._kind_6.sons->data[((NI) 0)];
	symx = initOverloadIter__lookups_3120((&o), c, headSymbol);
	{
		while (1) {
			if (!!((symx == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA2;
			{
				tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ T7_;
				NI T8_;
				if (!((520192 &((NU32)1<<((NU)((*symx).kind)&31U)))!=0)) goto LA5_;
				nimZeroMem((void*)(&T7_), sizeof(tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ));
				nimZeroMem((void*)(&T7_), sizeof(tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ));
				T7_.sym = symx;
				nimZeroMem((void*)(&T7_.firstMismatch), sizeof(tyObject_MismatchInfo__7DZVQMEKp3NTauLRe48cLw));
				T7_.diagnostics = NIM_NIL;
				T7_.enabled = NIM_FALSE;
				errors = (tySequence__LFzufdBEvfOUK6PWh0HUtQ*) incrSeqV3((TGenericSeq*)(errors), (&NTIcandidateerrors__LFzufdBEvfOUK6PWh0HUtQ_));
				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_3274((&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_2116(n);
		T14_ = rawNewString((T15_ ? T15_->Sup.len : 0) + 19);
appendString(T14_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_271));
appendString(T14_, T15_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T14_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_272, NIM_FALSE);
	}
	goto LA9_;
	LA12_: ;
	{
		notFoundError__sem_1955(c, n, errors);
	}
	LA9_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semArrGet__sem_16472)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), (*n).info);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				add__ast_4798(result, (*n)._kind_6.sons->data[i]);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	result = semSubscript__sem_16468(c, result, flags);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T8_;
		if (!(result == 0)) goto LA6_;
		x = copyTree__ast_4432(n);
		T8_ = NIM_NIL;
		T8_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_33));
		asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3700(T8_, (*n).info));
		bracketNotFoundError__sem_1998(c, x);
		result = n;
	}
	LA6_: ;
	return result;
}
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipAddr__ast_5230)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__uh9cWvEa5Ty85PXOtuP5emw*, semArrPut__sem_16495)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	result = NIM_NIL;
	b = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), (*n).info);
	T1_ = NIM_NIL;
	T1_ = skipAddr__ast_5230((*n)._kind_6.sons->data[((NI) 1)]);
	add__ast_4798(b, T1_);
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		colontmp_ = (NI)(T3_ - ((NI) 1));
		i_2 = ((NI) 2);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA5;
				i = i_2;
				add__ast_4798(b, (*n)._kind_6.sons->data[i]);
				i_2 += ((NI) 1);
			} LA5: ;
		}
	}
	result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_4833(n));
	result = semAsgn__sem_16464(c, result, ((tyEnum_SemAsgnMode__wU47lOiWWDnJezONEKyuEA) 1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semAsgnOpr__sem_16524)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_16464(c, result, ((tyEnum_SemAsgnMode__wU47lOiWWDnJezONEKyuEA) 2));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semShallowCopy__sem_16918)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 3))) goto LA4_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), (*n).info);
		add__ast_4798(result, (*n)._kind_6.sons->data[((NI) 1)]);
		add__ast_4798(result, (*n)._kind_6.sons->data[((NI) 2)]);
		result = semAsgn__sem_16464(c, result, ((tyEnum_SemAsgnMode__wU47lOiWWDnJezONEKyuEA) 0));
	}
	goto LA1_;
	LA4_: ;
	{
		result = semDirectOp__sem_515(c, n, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semIsPartOf__sem_16532)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyEnum_TAnalysisResult__e4ifdKCCVVqwIObVZzYzMA r;
	tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ 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_1431(r);
	result = newIntNodeT__semfold_57(T1_, n, (*c).Sup.idgen, (*c).graph);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, toNode__sem_16585)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw i) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4), i, t);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getTypeDescNode__sem_16604)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* resType;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T1_;
	result = NIM_NIL;
	T1_ = nextTypeId__ast_3122((*c).Sup.idgen);
	resType = newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8), T1_, sym);
	rawAddSon__ast_4276(resType, typ, NIM_TRUE);
	result = toNode__sem_16585(resType, info);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, uninstantiate__sem_16600)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27):
	{
		result = t;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 53):
	{
		result = base__types_63(t);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54):
	{
		result = uninstantiate__sem_16600((*t).sons->data[((NI) 1)]);
	}
	break;
	default:
	{
		result = t;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalTypeTrait__sem_16611)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* traitCall, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* operand, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* context) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* trait;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* operand_2;
	NimStringDesc* s;
{	result = NIM_NIL;
	trait = (*traitCall)._kind_6.sons->data[((NI) 0)];
	{
		NimStringDesc* argX60gensym4327_;
		if (!!(((*trait).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA3_;
		argX60gensym4327_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_314);
		internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym4327_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_314);
	}
	LA3_: ;
	operand_2 = skipTypes__ast_3723(operand, TM__DKP9c7KM5AbqYVP6Gd9blNUw_315);
	{
		NIM_BOOL T7_;
		NIM_BOOL T9_;
		NI T10_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T12_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*operand_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12));
		if (T7_) goto LA8_;
		T9_ = (NIM_BOOL)0;
		T10_ = (NI)0;
		T10_ = len__ast_3155(traitCall);
		T9_ = (((NI) 2) < T10_);
		if (!(T9_)) goto LA11_;
		T12_ = NIM_NIL;
		T12_ = skipTypes__ast_3723((*(*traitCall)._kind_6.sons->data[((NI) 2)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128);
		T9_ = ((*T12_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__DKP9c7KM5AbqYVP6Gd9blNUw_320))) goto LA19_;
break;
	case 1: 
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_322))) goto LA21_;
break;
	case 3: 
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_50))) goto LA15_;
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_321))) goto LA20_;
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_325))) goto LA24_;
break;
	case 4: 
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_319))) goto LA19_;
break;
	case 5: 
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_114))) goto LA17_;
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_328))) goto LA27_;
break;
	case 7: 
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_318))) goto LA18_;
break;
	case 9: 
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_327))) goto LA26_;
break;
	case 10: 
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_316))) goto LA15_;
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_326))) goto LA25_;
break;
	case 11: 
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_324))) goto LA23_;
break;
	case 13: 
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_323))) goto LA22_;
break;
	case 14: 
if (eqStrings(s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_317))) goto LA16_;
break;
	}
	goto LA28_;
	LA15_: ;
	{
		tySequence__vKogasEnJSPhbQmA8r4Y9aA* T31_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T32_;
		T31_ = NIM_NIL;
		T31_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 2);
		asgnRef((void**) (&T31_->data[0]), operand_2);
		asgnRef((void**) (&T31_->data[1]), skipTypes__ast_3723((*(*traitCall)._kind_6.sons->data[((NI) 2)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128));
		T32_ = NIM_NIL;
		T32_ = newTypeWithSons__semdata_845(context, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 57), T31_, (*c).Sup.idgen);
		result = toNode__sem_16585(T32_, (*traitCall).info);
		goto BeforeRet_;
	}
	goto LA29_;
	LA16_: ;
	{
		tySequence__vKogasEnJSPhbQmA8r4Y9aA* T34_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T35_;
		T34_ = NIM_NIL;
		T34_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 2);
		asgnRef((void**) (&T34_->data[0]), operand_2);
		asgnRef((void**) (&T34_->data[1]), skipTypes__ast_3723((*(*traitCall)._kind_6.sons->data[((NI) 2)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128));
		T35_ = NIM_NIL;
		T35_ = newTypeWithSons__semdata_845(context, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 56), T34_, (*c).Sup.idgen);
		result = toNode__sem_16585(T35_, (*traitCall).info);
		goto BeforeRet_;
	}
	goto LA29_;
	LA17_: ;
	{
		tySequence__vKogasEnJSPhbQmA8r4Y9aA* T37_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T38_;
		T37_ = NIM_NIL;
		T37_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 1);
		asgnRef((void**) (&T37_->data[0]), operand_2);
		T38_ = NIM_NIL;
		T38_ = newTypeWithSons__semdata_845(context, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 58), T37_, (*c).Sup.idgen);
		result = toNode__sem_16585(T38_, (*traitCall).info);
		goto BeforeRet_;
	}
	goto LA29_;
	LA18_: ;
	{
		tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg prefer;
		NimStringDesc* T45_;
		prefer = ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 5);
		{
			NI T42_;
			NimStringDesc* preferStr;
			T42_ = (NI)0;
			T42_ = len__ast_3155(traitCall);
			if (!(((NI) 2) <= T42_)) goto LA43_;
			preferStr = (*(*traitCall)._kind_6.sons->data[((NI) 2)])._kind_3.strVal;
			prefer = parseEnum__sem_16666(preferStr);
		}
		LA43_: ;
		T45_ = NIM_NIL;
		T45_ = typeToString__types_50(operand_2, prefer);
		result = newStrNode__ast_3801(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20), T45_);
		asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*(*traitCall)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28)));
		(*result).info = (*traitCall).info;
	}
	goto LA29_;
	LA19_: ;
	{
		NimStringDesc* T47_;
		T47_ = NIM_NIL;
		T47_ = typeToString__types_50(operand_2, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 5));
		result = newStrNode__ast_3801(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20), T47_);
		asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*(*traitCall)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28)));
		(*result).info = (*traitCall).info;
	}
	goto LA29_;
	LA20_: ;
	{
		NI T49_;
		tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T50_;
		T49_ = (NI)0;
		T49_ = len__ast_3990(operand_2);
		result = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), ((NI64) ((NI)(T49_ - ((*operand_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25))))));
		T50_ = nextTypeId__ast_3122((*c).Sup.idgen);
		asgnRef((void**) (&(*result).typ), newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31), T50_, context));
		(*result).info = (*traitCall).info;
	}
	goto LA29_;
	LA21_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* arg;
		arg = operand_2;
		switch ((*arg).kind) {
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11):
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T53_;
			T53_ = NIM_NIL;
			T53_ = base__types_63(arg);
			result = getTypeDescNode__sem_16604(c, T53_, (*operand_2).owner, (*traitCall).info);
		}
		break;
		default:
		{
			tyArray__Re75IspeoxXy2oCZHwcRrA T55_;
			NimStringDesc* T56_;
			tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T57_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T58_;
			nimZeroMem((void*)T55_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T55_[0] = toHumanStr__ast_5200((*arg).kind);
			T55_[1] = typeToString__types_50(operand_2, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T56_ = NIM_NIL;
			T56_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_329), T55_, 2);
			liMessage__msgs_1128((*(*c).graph).config, (*traitCall).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T56_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_330, NIM_FALSE);
			T57_ = nextTypeId__ast_3122((*c).Sup.idgen);
			T58_ = NIM_NIL;
			T58_ = newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50), T57_, context);
			result = toNode__sem_16585(T58_, (*traitCall).info);
		}
		break;
		}
	}
	goto LA29_;
	LA22_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T60_;
		T60_ = NIM_NIL;
		T60_ = uninstantiate__sem_16600(operand_2);
		result = toNode__sem_16585(T60_, (*traitCall).info);
	}
	goto LA29_;
	LA23_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
		NIM_BOOL complexObj;
		NIM_BOOL T62_;
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T64_;
		t = skipTypes__ast_3723(operand_2, TM__DKP9c7KM5AbqYVP6Gd9blNUw_331);
		T62_ = (NIM_BOOL)0;
		T62_ = containsGarbageCollectedRef__types_612(t);
		if (T62_) goto LA63_;
		T62_ = !(((IL64(2147483664) & (*t).flags) == 0));
		LA63_: ;
		complexObj = T62_;
		T64_ = toInt128__types_1431(!(complexObj));
		result = newIntNodeT__semfold_57(T64_, traitCall, (*c).Sup.idgen, (*c).graph);
	}
	goto LA29_;
	LA24_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* operand_3;
		NIM_BOOL cond;
		NIM_BOOL T66_;
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T68_;
		operand_3 = skipTypes__ast_3723(operand_2, TM__DKP9c7KM5AbqYVP6Gd9blNUw_332);
		T66_ = (NIM_BOOL)0;
		T66_ = ((*operand_3).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18));
		if (!(T66_)) goto LA67_;
		T66_ = !(((*operand_3).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
		LA67_: ;
		cond = T66_;
		T68_ = toInt128__types_1431(cond);
		result = newIntNodeT__semfold_57(T68_, traitCall, (*c).Sup.idgen, (*c).graph);
	}
	goto LA29_;
	LA25_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* operand_4;
		NI T70_;
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T71_;
		operand_4 = skipTypes__ast_3723(operand_2, TM__DKP9c7KM5AbqYVP6Gd9blNUw_332);
		T70_ = (NI)0;
		T70_ = len__ast_3990(operand_4);
		T71_ = toInt128__types_1431(T70_);
		result = newIntNodeT__semfold_57(T71_, traitCall, (*c).Sup.idgen, (*c).graph);
	}
	goto LA29_;
	LA26_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* arg_2;
		NIM_BOOL rec;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T73_;
		arg_2 = skipTypes__ast_3723(operand_2, TM__DKP9c7KM5AbqYVP6Gd9blNUw_332);
		T73_ = NIM_NIL;
		T73_ = semConstExpr__sem_619(c, (*traitCall)._kind_6.sons->data[((NI) 2)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		rec = !(((*T73_)._kind_1.intVal == IL64(0)));
		{
			while (1) {
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T76_;
				if (!((*arg_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13))) goto LA75;
				T76_ = NIM_NIL;
				T76_ = base__types_63(arg_2);
				arg_2 = skipTypes__ast_3723(T76_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_333);
				{
					if (!!(rec)) goto LA79_;
					goto LA74;
				}
				LA79_: ;
			} LA75: ;
		} LA74: ;
		result = getTypeDescNode__sem_16604(c, arg_2, (*operand_2).owner, (*traitCall).info);
	}
	goto LA29_;
	LA27_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* operand_5;
		NIM_BOOL isCyclic;
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T82_;
		operand_5 = skipTypes__ast_3723(operand_2, TM__DKP9c7KM5AbqYVP6Gd9blNUw_332);
		isCyclic = canFormAcycle__types_820((*c).graph, operand_5);
		T82_ = toInt128__types_1431(isCyclic);
		result = newIntNodeT__semfold_57(T82_, traitCall, (*c).Sup.idgen, (*c).graph);
	}
	goto LA29_;
	LA28_: ;
	{
		NimStringDesc* T84_;
		T84_ = NIM_NIL;
		T84_ = rawNewString((s ? s->Sup.len : 0) + 15);
appendString(T84_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_334));
appendString(T84_, s);
		liMessage__msgs_1128((*(*c).graph).config, (*traitCall).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T84_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_335, NIM_FALSE);
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*traitCall).info);
	}
	LA29_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTypeTraits__sem_16796)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	result = NIM_NIL;
	checkMinSonsLen__semdata_1114(n, ((NI) 2), (*(*c).graph).config);
	t = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	{
		NIM_BOOL T3_;
		NimStringDesc* argX60gensym4364_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		argX60gensym4364_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_313);
		internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym4364_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_313);
	}
	LA5_: ;
	{
		NI T9_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T12_;
		T9_ = (NI)0;
		T9_ = len__ast_3990(t);
		if (!(((NI) 0) < T9_)) goto LA10_;
		T12_ = NIM_NIL;
		T12_ = getCurrOwner__semdata_327(c);
		result = evalTypeTrait__sem_16611(c, n, t, T12_);
	}
	goto LA7_;
	LA10_: ;
	{
		result = n;
	}
	LA7_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, expectIntLit__sem_16547)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
	result = (NI)0;
	x = (*c).semConstExpr(c, n, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	switch ((*x).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 10):
	{
		result = ((NI) ((*x)._kind_1.intVal));
	}
	break;
	default:
	{
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_336), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_337, NIM_FALSE);
	}
	break;
	}
	return result;
}
static N_INLINE(NI, toLinenumber__msgs_619)(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	NI result;
	result = (NI)0;
	result = ((NI) (info.line));
	return result;
}
static N_INLINE(NI, toColumn__msgs_622)(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	NI result;
	result = (NI)0;
	result = ((NI) (info.col));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semInstantiationInfo__sem_16554)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI idx;
	NI useFullPaths;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* filename;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* line;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T22_;
	NI T23_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* column;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T24_;
	NI T25_;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T26_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T27_;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T28_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T29_;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T30_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T31_;
	result = NIM_NIL;
	result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160), (*n).info, (*n).typ);
	idx = expectIntLit__sem_16547(c, (*n)._kind_6.sons->data[((NI) 1)]);
	useFullPaths = expectIntLit__sem_16547(c, (*n)._kind_6.sons->data[((NI) 2)]);
	info = getInfoContext__msgs_526((*(*c).graph).config, idx);
	T1_ = NIM_NIL;
	T1_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28));
	filename = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20), (*n).info, T1_);
	{
		if (!!((useFullPaths == ((NI) 0)))) goto LA4_;
		asgnRef((void**) (&(*filename)._kind_3.strVal), toFullPath__msgs_548((*(*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___XoIrMAjHi4NOQu4oAkNfVQ*) 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__DKP9c7KM5AbqYVP6Gd9blNUw_338));
				if (T17_) nimGCunrefNoCycle(T17_);
			}
			goto LA13_;
			LA15_: ;
			{
				NimStringDesc* T19_;
				T19_ = NIM_NIL;
				T19_ = (*filename)._kind_3.strVal; (*filename)._kind_3.strVal = copyStringRC1(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_339));
				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__b28l2MkhJpnFhatVrsrXpg) 31));
	line = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), (*n).info, T22_);
	T23_ = (NI)0;
	T23_ = toLinenumber__msgs_619(info);
	(*line)._kind_1.intVal = ((NI64) (T23_));
	T24_ = NIM_NIL;
	T24_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
	column = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), (*n).info, T24_);
	T25_ = (NI)0;
	T25_ = toColumn__msgs_622(info);
	(*column)._kind_1.intVal = ((NI64) (T25_));
	nimZeroMem((void*)T26_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T26_[0] = (*(*(*n).typ).n)._kind_6.sons->data[((NI) 0)];
	T26_[1] = filename;
	T27_ = NIM_NIL;
	T27_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34), T26_, 2);
	add__ast_4798(result, T27_);
	nimZeroMem((void*)T28_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T28_[0] = (*(*(*n).typ).n)._kind_6.sons->data[((NI) 1)];
	T28_[1] = line;
	T29_ = NIM_NIL;
	T29_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34), T28_, 2);
	add__ast_4798(result, T29_);
	nimZeroMem((void*)T30_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T30_[0] = (*(*(*n).typ).n)._kind_6.sons->data[((NI) 2)];
	T30_[1] = column;
	T31_ = NIM_NIL;
	T31_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34), T30_, 2);
	add__ast_4798(result, T31_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semOrd__sem_16817)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* 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_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_340), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_341, NIM_FALSE);
		asgnRef((void**) (&(*result).typ), errorType__semdata_1032(c));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semOf__sem_16922)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	{
		NI T3_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* a;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* b;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* x;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* y;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 3))) goto LA4_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 1)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 2)], 512, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		a = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_102);
		b = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 2)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_102);
		x = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_342);
		y = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 2)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_342);
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((*x).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
			if (T8_) goto LA9_;
			T8_ = !(((*y).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
			LA9_: ;
			if (!T8_) goto LA10_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_343), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_344, NIM_FALSE);
		}
		goto LA6_;
		LA10_: ;
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = !(((*b).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17)));
			if (T13_) goto LA14_;
			T13_ = !(((*a).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17)));
			LA14_: ;
			if (!T13_) goto LA15_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_343), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_345, NIM_FALSE);
		}
		goto LA6_;
		LA15_: ;
		{
			NI diff;
			diff = inheritanceDiff__types_2737(a, b);
			{
				NimStringDesc* T22_;
				if (!(diff <= ((NI) 0))) goto LA20_;
				T22_ = NIM_NIL;
				T22_ = renderTree__renderer_46(n, 0);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 89), T22_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_346, NIM_FALSE);
				result = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(1));
				(*result).info = (*n).info;
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1)));
				goto BeforeRet_;
			}
			goto LA18_;
			LA20_: ;
			{
				if (!(diff == ((NI) IL64(9223372036854775807)))) goto LA24_;
				{
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T28_;
					NimStringDesc* T31_;
					NimStringDesc* T32_;
					T28_ = NIM_NIL;
					T28_ = commonSuperclass__types_2799(a, b);
					if (!(T28_ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA29_;
					T31_ = NIM_NIL;
					T31_ = typeToString__types_50(a, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
					T32_ = NIM_NIL;
					T32_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_347), T31_);
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T32_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_348, NIM_FALSE);
				}
				goto LA26_;
				LA29_: ;
				{
					NimStringDesc* T34_;
					T34_ = NIM_NIL;
					T34_ = renderTree__renderer_46(n, 0);
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 90), T34_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_349, NIM_FALSE);
					result = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(0));
					(*result).info = (*n).info;
					asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1)));
				}
				LA26_: ;
			}
			goto LA18_;
			LA24_: ;
			LA18_: ;
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_350), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_351, NIM_FALSE);
	}
	LA1_: ;
	asgnRef((void**) (&(*n).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1)));
	result = n;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semLowHigh__sem_15671)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NI T3_;
		NimStringDesc* T6_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_352), opToStr__sem_15676[(m)- 8]);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T6_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_355, NIM_FALSE);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 1)], 512, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		typ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_356);
		switch ((*typ).kind) {
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 48):
		{
			asgnRef((void**) (&(*n).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31)));
		}
		break;
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16):
		{
			asgnRef((void**) (&(*n).typ), (*typ).sons->data[((NI) 0)]);
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__b28l2MkhJpnFhatVrsrXpg) 31)));
			}
			LA14_: ;
		}
		break;
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 38):
		{
			asgnRef((void**) (&(*n).typ), skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128));
		}
		break;
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12):
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
			T18_ = NIM_NIL;
			T18_ = copyTree__ast_4432(n);
			asgnRef((void**) (&(*n).typ), makeTypeFromExpr__semdata_834(c, T18_));
		}
		break;
		default:
		{
			NimStringDesc* T20_;
			T20_ = NIM_NIL;
			T20_ = rawNewString((opToStr__sem_15676[(m)- 8] ? opToStr__sem_15676[(m)- 8]->Sup.len : 0) + 22);
appendString(T20_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_357));
appendString(T20_, opToStr__sem_15676[(m)- 8]);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T20_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_358, NIM_FALSE);
		}
		break;
		}
	}
	LA1_: ;
	result = n;
	return result;
}
static N_INLINE(NIM_BOOL, isCompileTimeProc__ast_4684)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__9be9c6fEXk5NwyPvxxb6toPA) 28))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semBindSym__sem_16823)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* sl;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* isMixin;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* id;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T13_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
{	result = NIM_NIL;
	result = copyNode__ast_4324(n);
	add__ast_4798(result, (*n)._kind_6.sons->data[((NI) 0)]);
	sl = semConstExpr__sem_619(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	{
		if (!!(((*sl).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20) || (*sl).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 21) || (*sl).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22)))) goto LA3_;
		liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_359), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_360, NIM_FALSE);
		result = errorNode__semdata_1039(c, n);
		goto BeforeRet_;
	}
	LA3_: ;
	isMixin = semConstExpr__sem_619(c, (*n)._kind_6.sons->data[((NI) 2)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = !(((*isMixin).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 2)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_361), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_362, NIM_FALSE);
		result = errorNode__semdata_1039(c, n);
		goto BeforeRet_;
	}
	LA11_: ;
	T13_ = NIM_NIL;
	T13_ = getIdent__idents_152((*c).cache, (*sl)._kind_3.strVal);
	id = newIdentNode__ast_3700(T13_, (*n).info);
	s = qualifiedLookUp__lookups_2598(c, id, 2);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* sc;
		if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA16_;
		sc = symChoice__sem_6911(c, id, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) ((*isMixin)._kind_1.intVal)), NIM_FALSE);
		{
			NIM_BOOL T20_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T22_;
			T20_ = (NIM_BOOL)0;
			T20_ = (((NI) 0) < (*c).inStaticContext);
			if (T20_) goto LA21_;
			T22_ = NIM_NIL;
			T22_ = getCurrOwner__semdata_327(c);
			T20_ = isCompileTimeProc__ast_4684(T22_);
			LA21_: ;
			if (!!(T20_)) goto LA23_;
			result = sc;
			goto BeforeRet_;
		}
		LA23_: ;
		add__ast_4798(result, sc);
	}
	goto LA14_;
	LA16_: ;
	{
		errorUndeclaredIdentifier__lookups_2564(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__mCf9cYkDtv8sK56ASCMYang)(void* p, NI op) {
	tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ* a;
	a = (tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ*)p;
	nimGCvisit((void*)(*a).c1, op);
	nimGCvisit((void*)(*a).scope2, op);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, opBindSym__sem_16862)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* scope, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI isMixin, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* id;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* tmpScope;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
{	result = NIM_NIL;
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 21) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2)))) goto LA3_;
		liMessage__msgs_1128((*(*c).graph).config, (*info).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_365), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_366, NIM_FALSE);
		result = errorNode__semdata_1039(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_1128((*(*c).graph).config, (*info).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_361), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_367, NIM_FALSE);
		result = errorNode__semdata_1039(c, n);
		goto BeforeRet_;
	}
	LA9_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2))) goto LA13_;
		id = n;
	}
	goto LA11_;
	LA13_: ;
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T16_;
		T16_ = NIM_NIL;
		T16_ = getIdent__idents_152((*c).cache, (*n)._kind_3.strVal);
		id = newIdentNode__ast_3700(T16_, (*info).info);
	}
	LA11_: ;
	tmpScope = (*c).currentScope;
	asgnRef((void**) (&(*c).currentScope), scope);
	s = qualifiedLookUp__lookups_2598(c, id, 2);
	{
		if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA19_;
		result = symChoice__sem_6911(c, id, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) (isMixin)), NIM_FALSE);
	}
	goto LA17_;
	LA19_: ;
	{
		NimStringDesc* T22_;
		T22_ = NIM_NIL;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2))) goto LA25_;
			T22_ = copyString((*(*n)._kind_5.ident).s);
		}
		goto LA23_;
		LA25_: ;
		{
			T22_ = copyString((*n)._kind_3.strVal);
		}
		LA23_: ;
		errorUndeclaredIdentifier__lookups_2564(c, (*info).info, T22_, ((NimStringDesc*) NIM_NIL));
	}
	LA17_: ;
	asgnRef((void**) (&(*c).currentScope), tmpScope);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_CLOSURE(void, bindSymWrapper__sem_16901)(tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA* a, void* ClE_0) {
	tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ* colonenvP_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	NI64 T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T4_;
	colonenvP_ = (tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ*) ClE_0;
	T1_ = NIM_NIL;
	T1_ = getNode__vm_343(a, ((NI) 0));
	T2_ = (NI64)0;
	T2_ = getInt__vm_279(a, ((NI) 1));
	T3_ = NIM_NIL;
	T3_ = getNode__vm_343(a, ((NI) 2));
	T4_ = NIM_NIL;
	T4_ = opBindSym__sem_16862((*colonenvP_).c1, (*colonenvP_).scope2, T1_, ((NI) (T2_)), T3_);
	setResult__vm_252(a, T4_);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semDynamicBindSym__sem_16892)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ* colonenv_;
	tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* vm;
	NI idx;
	tyProc__vkuGXw0bPP9b9cpazTHQY9bqg T12_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* idxNode;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T13_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T14_;
{	result = NIM_NIL;
	colonenv_ = NIM_NIL;
	colonenv_ = (tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ*) newObj((&NTIrefobject__mCf9cYkDtv8sK56ASCMYang_), sizeof(tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ));
	(*colonenv_).Sup.m_type = (&NTIobject__UdwrZCFez7lYdvLY8j2kdQ_);
	asgnRef((void**) (&(*colonenv_).c1), c);
	{
		NIM_BOOL T3_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) < (*(*colonenv_).c1).inStaticContext);
		if (T3_) goto LA4_;
		T5_ = NIM_NIL;
		T5_ = getCurrOwner__semdata_327((*colonenv_).c1);
		T3_ = isCompileTimeProc__ast_4684(T5_);
		LA4_: ;
		if (!!(T3_)) goto LA6_;
		result = semBindSym__sem_16823((*colonenv_).c1, n);
		goto BeforeRet_;
	}
	LA6_: ;
	{
		if (!((*(*(*colonenv_).c1).graph).vm == 0)) goto LA10_;
		setupGlobalCtx__vm_14024((*(*colonenv_).c1).module, (*(*colonenv_).c1).graph, (*(*colonenv_).c1).Sup.idgen);
	}
	LA10_: ;
	vm = (*((tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ**) (&((*(*(*colonenv_).c1).graph).vm))));
	asgnRef((void**) (&(*colonenv_).scope2), (*(*colonenv_).c1).currentScope);
	nimZeroMem((void*)(&T12_), sizeof(tyProc__vkuGXw0bPP9b9cpazTHQY9bqg));
	T12_.ClP_0 = bindSymWrapper__sem_16901; T12_.ClE_0 = colonenv_;
	idx = registerCallback__vmdef_518(vm, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_364), T12_);
	nimZeroMem((void*)(&T13_), sizeof(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw));
	T14_ = NIM_NIL;
	T14_ = getSysType__magicsys_60((*(*colonenv_).c1).graph, T13_, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
	idxNode = newIntTypeNode__ast_3771(((NI64) (idx)), T14_);
	result = copyNode__ast_4324(n);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		x = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(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_4798(result, x);
					i_2 += ((NI) 1);
				} LA18: ;
			}
		}
	}
	add__ast_4798(result, n);
	add__ast_4798(result, idxNode);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, whereToBindTypeHook__sem_13710)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	result = t;
	{
		while (1) {
			{
				if (!((*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10) || (*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11))) goto LA5_;
				result = lastSon__ast_3731(result);
			}
			goto LA3_;
			LA5_: ;
			{
				if (!((*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9))) goto LA8_;
				result = (*result).sons->data[((NI) 0)];
			}
			goto LA3_;
			LA8_: ;
			{
				goto LA1;
			}
			LA3_: ;
		}
	} LA1: ;
	{
		if (!((*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17) || (*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13) || (*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24) || (*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28))) goto LA13_;
		result = canonType__sem_13692(c, result);
	}
	LA13_: ;
	return result;
}
static N_NIMCALL(void, Marker_tyRef__lQMImV3D9anOIeIeBWcSo9aA)(void* p, NI op) {
	tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A* a;
	a = (tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A*)p;
	nimGCvisit((void*)(*a).orig1, op);
}
N_LIB_PRIVATE N_CLOSURE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transform__sem_17043)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* procSym, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* old, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* fresh, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* oldParam, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* newParam, void* ClE_0) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A* colonenvP_;
	result = NIM_NIL;
	colonenvP_ = (tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A*) ClE_0;
	result = shallowCopy__ast_4414(n);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTypeOrNil__types_1910((*n).typ, old, 0);
		if (!T3_) goto LA4_;
		asgnRef((void**) (&(*result).typ), fresh);
	}
	LA4_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA8_;
		{
			if (!((*n)._kind_4.sym == oldParam)) goto LA12_;
			asgnRef((void**) (&(*result)._kind_4.sym), newParam);
		}
		goto LA10_;
		LA12_: ;
		{
			tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T17_;
			if (!((*(*n)._kind_4.sym).owner == (*colonenvP_).orig1)) goto LA15_;
			T17_ = nextSymId__ast_3103((*c).Sup.idgen);
			asgnRef((void**) (&(*result)._kind_4.sym), copySym__ast_4042((*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_3148(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyProc__9aLeotuxKqy0F9awBkTfP6Cg T21_;
				if (!(i_2 < colontmp_)) goto LA20;
				i = i_2;
				nimZeroMem((void*)(&T21_), sizeof(tyProc__9aLeotuxKqy0F9awBkTfP6Cg));
				T21_.ClP_0 = transform__sem_17043; 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__DKP9c7KM5AbqYVP6Gd9blNUw_376)(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__3r34mwqcVmg5JFNmiaVncw*, turnFinalizerIntoDestructor__sem_17038)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* orig, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A* colonenv_;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T1_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* origParamType;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* newParamType;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T2_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* oldParam;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* newParam;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T3_;
	tyProc__9aLeotuxKqy0F9awBkTfP6Cg T4_;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T5_;
	result = NIM_NIL;
	colonenv_ = NIM_NIL;
	colonenv_ = (tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A*) newObj((&NTIrefobject__lQMImV3D9anOIeIeBWcSo9aA_), sizeof(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A));
	(*colonenv_).Sup.m_type = (&NTIobject__G3GDRnS0a9bK9bA0vzUpFf0A_);
	asgnRef((void**) (&(*colonenv_).orig1), orig);
	T1_ = nextSymId__ast_3103((*c).Sup.idgen);
	result = copySym__ast_4042((*colonenv_).orig1, T1_);
	(*result).info = info;
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 2)) & 63);
	asgnRef((void**) (&(*result).owner), (*colonenv_).orig1);
	origParamType = (*(*(*colonenv_).orig1).typ).sons->data[((NI) 1)];
	T2_ = NIM_NIL;
	T2_ = skipTypes__ast_3723(origParamType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_102);
	newParamType = makeVarType__semdata_805(result, T2_, (*c).Sup.idgen, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23));
	oldParam = (*(*(*(*(*colonenv_).orig1).typ).n)._kind_6.sons->data[((NI) 1)])._kind_4.sym;
	T3_ = nextSymId__ast_3103((*c).Sup.idgen);
	newParam = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3), (*oldParam).name, T3_, result, (*result).info, 0);
	asgnRef((void**) (&(*newParam).typ), newParamType);
	nimZeroMem((void*)(&T4_), sizeof(tyProc__9aLeotuxKqy0F9awBkTfP6Cg));
	T4_.ClP_0 = transform__sem_17043; 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__DKP9c7KM5AbqYVP6Gd9blNUw_377)(T4_.ClP_0))(c, result, (*(*colonenv_).orig1).ast, origParamType, newParamType, oldParam, newParam));
	T5_ = nextTypeId__ast_3122((*c).Sup.idgen);
	asgnRef((void**) (&(*result).typ), newProcType__ast_5068((*result).info, T5_, result));
	addParam__ast_5077((*result).typ, newParam);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, unownedType__sem_16978)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18):
	{
		tySequence__vKogasEnJSPhbQmA8r4Y9aA* elems;
		NI T2_;
		NIM_BOOL someChange;
		T2_ = (NI)0;
		T2_ = len__ast_3990(t);
		elems = newSeq__modulegraphs_2931(((NI) (T2_)));
		someChange = NIM_FALSE;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3990(t);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA5;
					i = i_2;
					asgnRef((void**) (&elems->data[i]), unownedType__sem_16978(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__wg9aowaxscbUe2F0nV9btZLg T14_;
			if (!someChange) goto LA12_;
			T14_ = nextTypeId__ast_3122((*c).Sup.idgen);
			result = newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18), T14_, (*t).owner);
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA** e;
				NI i_3;
				NI L;
				NI T16_;
				e = (tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA**)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_4276(result, (*e), NIM_TRUE);
						i_3 += ((NI) 1);
					} LA18: ;
				}
			}
		}
		goto LA10_;
		LA12_: ;
		{
			result = t;
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45):
	{
		result = (*t).sons->data[((NI) 0)];
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 48):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* b;
		NI T22_;
		T22_ = (NI)0;
		T22_ = len__ast_3990(t);
		b = unownedType__sem_16978(c, (*t).sons->data[(NI)(T22_ - ((NI) 1))]);
		{
			NI T25_;
			tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T28_;
			NI T29_;
			T25_ = (NI)0;
			T25_ = len__ast_3990(t);
			if (!!((b == (*t).sons->data[(NI)(T25_ - ((NI) 1))]))) goto LA26_;
			T28_ = nextTypeId__ast_3122((*c).Sup.idgen);
			result = copyType__ast_4034(t, T28_, (*t).owner);
			copyTypeProps__modulegraphs_8910((*c).graph, ((NI) ((*(*c).Sup.idgen).module)), result, t);
			T29_ = (NI)0;
			T29_ = len__ast_3990(result);
			asgnRef((void**) (&(*result).sons->data[(NI)(T29_ - ((NI) 1))]), b);
			(*result).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 4)) & 63));
		}
		goto LA23_;
		LA26_: ;
		{
			result = t;
		}
		LA23_: ;
	}
	break;
	default:
	{
		result = t;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semUnown__sem_16974)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = copyTree__ast_4432((*n)._kind_6.sons->data[((NI) 1)]);
	asgnRef((void**) (&(*result).typ), unownedType__sem_16978(c, (*result).typ));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semQuantifier__sem_17081)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* args;
	NI T48_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T49_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T50_;
	result = NIM_NIL;
	checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	result = newNodeIT__ast_3342((*n).kind, (*n).info, (*n).typ);
	add__ast_4798(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_3155(args);
		colontmp_ = (NI)(T3_ - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
				NIM_BOOL valid;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				it = (*args)._kind_6.sons->data[i];
				valid = NIM_FALSE;
				{
					tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* op;
					if (!((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29))) goto LA8_;
					op = considerQuotedIdent__lookups_29(c, (*it)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
					{
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* domain;
						tyArray__id9c0PBojP5C2oM2bRQSViA T42_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T43_;
						if (!((*op).id == ((NI) 31))) goto LA12_;
						v = newSymS__sem_457(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21), (*it)._kind_6.sons->data[((NI) 1)], c);
						{
							NIM_BOOL T16_;
							NIM_BOOL T17_;
							NIM_BOOL T18_;
							NIM_BOOL T19_;
							NIM_BOOL T20_;
							NIM_BOOL T21_;
							NIM_BOOL T22_;
							NIM_BOOL T23_;
							NIM_BOOL T24_;
							NIM_BOOL T25_;
							NIM_BOOL T26_;
							NIM_BOOL T36_;
							T16_ = (NIM_BOOL)0;
							T17_ = (NIM_BOOL)0;
							T18_ = (NIM_BOOL)0;
							T19_ = (NIM_BOOL)0;
							T20_ = (NIM_BOOL)0;
							T21_ = (NIM_BOOL)0;
							T22_ = (NIM_BOOL)0;
							T23_ = (NIM_BOOL)0;
							T24_ = (NIM_BOOL)0;
							T25_ = (NIM_BOOL)0;
							T26_ = (NIM_BOOL)0;
							T26_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
							if (!(T26_)) goto LA27_;
							T26_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
							LA27_: ;
							T25_ = T26_;
							if (!(T25_)) goto LA28_;
							T25_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
							LA28_: ;
							T24_ = T25_;
							if (!(T24_)) goto LA29_;
							T24_ = belongsToProjectPackage__packages_50((*(*c).graph).config, v);
							LA29_: ;
							T23_ = T24_;
							if (!(T23_)) goto LA30_;
							T23_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
							LA30_: ;
							T22_ = T23_;
							if (!(T22_)) goto LA31_;
							T22_ = !(((*v).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
							LA31_: ;
							T21_ = T22_;
							if (!(T21_)) goto LA32_;
							T21_ = !(((*v).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
							LA32_: ;
							T20_ = T21_;
							if (!(T20_)) goto LA33_;
							T20_ = ((Letters__linter_12[(NU)(((NU8)((*(*v).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*v).name).s->data[((NI) 0)])))&7U)))!=0);
							LA33_: ;
							T19_ = T20_;
							if (!(T19_)) goto LA34_;
							T19_ = !(((144 &((NU32)1<<((NU)((*v).kind)&31U)))!=0));
							LA34_: ;
							T18_ = T19_;
							if (!(T18_)) goto LA35_;
							T36_ = (NIM_BOOL)0;
							T36_ = ((*v).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
							if (T36_) goto LA37_;
							T36_ = !(((*(*v).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
							LA37_: ;
							T18_ = T36_;
							LA35_: ;
							T17_ = T18_;
							if (!(T17_)) goto LA38_;
							T17_ = ((192 & (*v).flags) == 0);
							LA38_: ;
							T16_ = T17_;
							if (!(T16_)) goto LA39_;
							T16_ = !((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
							LA39_: ;
							if (!T16_) goto LA40_;
							nep1CheckDefImpl__linter_112((*(*c).graph).config, (*v).info, v, (*v).kind);
						}
						LA40_: ;
						domain = semExprWithType__sem_57(c, (*it)._kind_6.sons->data[((NI) 2)], 2, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
						asgnRef((void**) (&(*v).typ), (*domain).typ);
						valid = NIM_TRUE;
						addDecl__lookups_1517(c, v);
						nimZeroMem((void*)T42_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
						T42_[0] = (*it)._kind_6.sons->data[((NI) 0)];
						T42_[1] = newSymNode__ast_3704(v);
						T42_[2] = domain;
						T43_ = NIM_NIL;
						T43_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29), T42_, 3);
						add__ast_4798(result, T43_);
					}
					LA12_: ;
				}
				LA8_: ;
				{
					if (!!(valid)) goto LA46_;
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_378), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_379, NIM_FALSE);
				}
				LA46_: ;
				res += ((NI) 1);
			} LA5: ;
		}
	}
	T48_ = (NI)0;
	T48_ = len__ast_3155(args);
	T49_ = NIM_NIL;
	T49_ = semExprWithType__sem_57(c, (*args)._kind_6.sons->data[(NI)(T48_ - ((NI) 1))], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	T50_ = NIM_NIL;
	T50_ = forceBool__sem_2933(c, T49_);
	add__ast_4798(result, T50_);
	closeScope__lookups_108(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semOld__sem_17194)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		if (!((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 3)));
		if (T7_) goto LA8_;
		T7_ = !(((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3)));
		LA8_: ;
		if (!T7_) goto LA9_;
		liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_380), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_381, NIM_FALSE);
	}
	goto LA5_;
	LA9_: ;
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T12_;
		NimStringDesc* T15_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T16_;
		T12_ = NIM_NIL;
		T12_ = getCurrOwner__semdata_327(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_327(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__DKP9c7KM5AbqYVP6Gd9blNUw_382));
appendString(T15_, (*(*T16_).name).s);
		liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T15_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_383, NIM_FALSE);
	}
	goto LA5_;
	LA13_: ;
	LA5_: ;
	result = n;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semPrivateAccess__sem_17224)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	NI T1_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T2_;
	result = NIM_NIL;
	t = toObjectFromRefPtrGeneric__ast_4891((*(*(*n)._kind_6.sons->data[((NI) 1)]).typ).sons->data[((NI) 0)]);
	asgnRef((void**) (&(*(*c).currentScope).allowPrivateAccess), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) incrSeqV3((TGenericSeq*)((*(*c).currentScope).allowPrivateAccess), (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_)));
	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__b28l2MkhJpnFhatVrsrXpg) 63));
	result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*n).info, T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, magicsAfterOverloadResolution__sem_17235)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	switch ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 16):
	{
		checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
		result = n;
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semAddrArg__sem_16419(c, (*n)._kind_6.sons->data[((NI) 1)], eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_250))));
		asgnRef((void**) (&(*result).typ), makePtrType__semdata_772(c, (*(*result)._kind_6.sons->data[((NI) 1)]).typ));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 18):
	{
		result = semTypeOf__sem_136(c, n);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 10):
	{
		tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* configX60gensym4511_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nodeX60gensym4511_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typX60gensym4511_;
		NI64 sizeX60gensym4511_;
		configX60gensym4511_ = (*(*c).graph).config;
		nodeX60gensym4511_ = n;
		typX60gensym4511_ = (*(*nodeX60gensym4511_)._kind_6.sons->data[((NI) 1)]).typ;
		computeSizeAlign__types_2976(configX60gensym4511_, typX60gensym4511_);
		sizeX60gensym4511_ = (*typX60gensym4511_).size;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resX60gensym4511_;
			if (!(IL64(0) <= sizeX60gensym4511_)) goto LA6_;
			resX60gensym4511_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), sizeX60gensym4511_);
			(*resX60gensym4511_).info = (*nodeX60gensym4511_).info;
			asgnRef((void**) (&(*resX60gensym4511_).typ), (*nodeX60gensym4511_).typ);
			result = resX60gensym4511_;
		}
		goto LA4_;
		LA6_: ;
		{
			result = n;
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 11):
	{
		tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* configX60gensym4515_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nodeX60gensym4515_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typX60gensym4515_;
		NI16 alignX60gensym4515_;
		configX60gensym4515_ = (*(*c).graph).config;
		nodeX60gensym4515_ = n;
		typX60gensym4515_ = (*(*nodeX60gensym4515_)._kind_6.sons->data[((NI) 1)]).typ;
		computeSizeAlign__types_2976(configX60gensym4515_, typX60gensym4515_);
		alignX60gensym4515_ = (*typX60gensym4515_).align;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resX60gensym4515_;
			if (!(((NI16) 0) <= alignX60gensym4515_)) goto LA12_;
			resX60gensym4515_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), ((NI64) (alignX60gensym4515_)));
			(*resX60gensym4515_).info = (*nodeX60gensym4515_).info;
			asgnRef((void**) (&(*resX60gensym4515_).typ), (*nodeX60gensym4515_).typ);
			result = resX60gensym4515_;
		}
		goto LA10_;
		LA12_: ;
		{
			result = n;
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 12):
	{
		tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* configX60gensym4519_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nodeX60gensym4519_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dotExprX60gensym4519_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* valueX60gensym4519_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* memberX60gensym4519_;
		NI offsetX60gensym4519_;
		configX60gensym4519_ = (*(*c).graph).config;
		nodeX60gensym4519_ = n;
		dotExprX60gensym4519_ = NIM_NIL;
		{
			{
				if (!((*(*nodeX60gensym4519_)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45))) goto LA19_;
				dotExprX60gensym4519_ = (*nodeX60gensym4519_)._kind_6.sons->data[((NI) 1)];
			}
			goto LA17_;
			LA19_: ;
			{
				if (!((*(*nodeX60gensym4519_)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46))) goto LA22_;
				dotExprX60gensym4519_ = (*(*nodeX60gensym4519_)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)];
			}
			goto LA17_;
			LA22_: ;
			{
				liMessage__msgs_1128(configX60gensym4519_, (*nodeX60gensym4519_).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_253), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_254, NIM_FALSE);
			}
			LA17_: ;
		}
		valueX60gensym4519_ = (*dotExprX60gensym4519_)._kind_6.sons->data[((NI) 0)];
		memberX60gensym4519_ = (*dotExprX60gensym4519_)._kind_6.sons->data[((NI) 1)];
		computeSizeAlign__types_2976(configX60gensym4519_, (*valueX60gensym4519_).typ);
		offsetX60gensym4519_ = (*(*memberX60gensym4519_)._kind_4.sym).offset;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym4519_;
			if (!(((NI) 0) <= offsetX60gensym4519_)) goto LA27_;
			tmpX60gensym4519_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), ((NI64) (offsetX60gensym4519_)));
			(*tmpX60gensym4519_).info = (*nodeX60gensym4519_).info;
			asgnRef((void**) (&(*tmpX60gensym4519_).typ), (*nodeX60gensym4519_).typ);
			result = tmpX60gensym4519_;
		}
		goto LA25_;
		LA27_: ;
		{
			result = n;
		}
		LA25_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 5):
	{
		result = semArrGet__sem_16472(c, n, flags);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 6):
	{
		result = semArrPut__sem_16495(c, n, flags);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 7):
	{
		{
			if (!eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_182))) goto LA35_;
			result = semAsgnOpr__sem_16524(c, n);
		}
		goto LA33_;
		LA35_: ;
		{
			result = semShallowCopy__sem_16918(c, n, flags);
		}
		LA33_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 139):
	{
		result = semIsPartOf__sem_16532(c, n, flags);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 13):
	{
		result = semTypeTraits__sem_16796(c, n);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 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__b28l2MkhJpnFhatVrsrXpg) 28)));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 261):
	{
		result = semInstantiationInfo__sem_16554(c, n);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 31):
	{
		result = semOrd__sem_16817(c, n);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 15):
	{
		result = semOf__sem_16922(c, n);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 9):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 8):
	{
		result = semLowHigh__sem_15671(c, n, (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 21):
	{
		result = semShallowCopy__sem_16918(c, n, flags);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 251):
	{
		{
			if (!!((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 6))&31U)))!=0))) goto LA50_;
			result = semBindSym__sem_16823(c, n);
		}
		goto LA48_;
		LA50_: ;
		{
			result = semDynamicBindSym__sem_16892(c, n);
		}
		LA48_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 204):
	{
		result = n;
		asgnRef((void**) (&(*result).typ), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 127):
	{
		result = n;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 19):
	{
		tyProc__uojbiMfaKLMuGW9bbomtTBg 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__DKP9c7KM5AbqYVP6Gd9blNUw_368));
appendString(T60_, (*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T60_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_369, NIM_FALSE);
			result = n;
		}
		goto LA56_;
		LA58_: ;
		{
			result = plugin(c, n);
		}
		LA56_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 33):
	{
		{
			NIM_BOOL T65_;
			NI T66_;
			NI T68_;
			T65_ = (NIM_BOOL)0;
			T66_ = (NI)0;
			T66_ = len__ast_3155(n);
			T65_ = ((*(*n)._kind_6.sons->data[(NI)(T66_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
			if (!(T65_)) goto LA67_;
			T68_ = (NI)0;
			T68_ = len__ast_3155(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_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_370), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_371, NIM_FALSE);
		}
		goto LA63_;
		LA69_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nfin;
			NI T74_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fin;
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 41))&63U)))!=0)) goto LA72_;
			T74_ = (NI)0;
			T74_ = len__ast_3155(n);
			nfin = skipConvCastAndClosure__astalgo_114((*n)._kind_6.sons->data[(NI)(T74_ - ((NI) 1))]);
			switch ((*nfin).kind) {
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
			{
				fin = (*nfin)._kind_4.sym;
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
			{
				fin = (*(*nfin)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			}
			break;
			default:
			{
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_370), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_372, NIM_FALSE);
				fin = ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL);
			}
			break;
			}
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T86_;
				if (!!((fin == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA80_;
				{
					if (!!(((12288 &((NU32)1<<((NU)((*fin).kind)&31U)))!=0))) goto LA84_;
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_370), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_373, NIM_FALSE);
				}
				LA84_: ;
				T86_ = NIM_NIL;
				T86_ = skipTypes__ast_3723((*(*fin).typ).sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_374);
				t = whereToBindTypeHook__sem_13710(c, T86_);
				{
					NIM_BOOL T89_;
					NIM_BOOL T90_;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T92_;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T94_;
					T89_ = (NIM_BOOL)0;
					T90_ = (NIM_BOOL)0;
					T90_ = !((t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
					if (!(T90_)) goto LA91_;
					T92_ = NIM_NIL;
					T92_ = getAttachedOp__modulegraphs_4049((*c).graph, t, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 0));
					T90_ = !((T92_ == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
					LA91_: ;
					T89_ = T90_;
					if (!(T89_)) goto LA93_;
					T94_ = NIM_NIL;
					T94_ = getAttachedOp__modulegraphs_4049((*c).graph, t, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 0));
					T89_ = ((*T94_).owner == fin);
					LA93_: ;
					if (!T89_) goto LA95_;
				}
				goto LA87_;
				LA95_: ;
				{
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T98_;
					T98_ = NIM_NIL;
					T98_ = turnFinalizerIntoDestructor__sem_17038(c, fin, (*n).info);
					bindTypeHook__sem_13730(c, T98_, n, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 0));
				}
				LA87_: ;
			}
			LA80_: ;
		}
		goto LA63_;
		LA72_: ;
		LA63_: ;
		result = n;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 151):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_2;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* op;
		result = n;
		t_2 = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_235);
		op = getAttachedOp__modulegraphs_4049((*c).graph, t_2, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 0));
		{
			if (!!((op == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA102_;
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(op));
		}
		LA102_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 152):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_3;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* op_2;
		result = n;
		t_3 = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_235);
		op_2 = getAttachedOp__modulegraphs_4049((*c).graph, t_3, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 3));
		{
			if (!!((op_2 == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA107_;
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(op_2));
		}
		LA107_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 154):
	{
		result = semUnown__sem_16974(c, n);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 113):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 114):
	{
		result = semQuantifier__sem_17081(c, n);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 115):
	{
		result = semOld__sem_17194(c, n);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 138):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* seqType;
		result = n;
		seqType = skipTypes__ast_3723((*(*result)._kind_6.sons->data[((NI) 1)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_384);
		{
			NIM_BOOL T115_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T117_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T120_;
			NimStringDesc* T121_;
			T115_ = (NIM_BOOL)0;
			T115_ = ((*seqType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24));
			if (!(T115_)) goto LA116_;
			T117_ = NIM_NIL;
			T117_ = base__types_63(seqType);
			T115_ = requiresInit__typeallowed_593(T117_);
			LA116_: ;
			if (!T115_) goto LA118_;
			T120_ = NIM_NIL;
			T120_ = base__types_63(seqType);
			T121_ = NIM_NIL;
			T121_ = typeToString__types_50(T120_, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 40), T121_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_385, NIM_FALSE);
		}
		LA118_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 153):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* constructed;
		result = n;
		{
			NimStringDesc* argX60gensym4582_;
			if (!!(((*(*(*result)._kind_6.sons->data[((NI) 1)]).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)))) goto LA125_;
			argX60gensym4582_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_386);
			internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym4582_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_386);
		}
		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_593(constructed);
			if (!T129_) goto LA130_;
			T132_ = NIM_NIL;
			T132_ = typeToString__types_50(constructed, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 41), T132_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_387, NIM_FALSE);
		}
		LA130_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 156):
	{
		{
			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_2116((*n)._kind_6.sons->data[((NI) 1)]);
			T139_ = rawNewString((T140_ ? T140_->Sup.len : 0) + 31);
appendString(T139_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_388));
appendString(T139_, T140_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T139_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_389, NIM_FALSE);
		}
		LA137_: ;
		result = n;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 52):
	{
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T144_;
			T144_ = NIM_NIL;
			T144_ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
			if (!((*T144_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) && (*T144_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44))) goto LA145_;
			(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic = ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 66);
		}
		LA145_: ;
		result = n;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 276):
	{
		result = semPrivateAccess__sem_17224(c, n);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 144):
	{
		result = n;
		{
			NIM_BOOL T151_;
			NIM_BOOL T152_;
			NIM_BOOL T153_;
			NIM_BOOL T154_;
			T151_ = (NIM_BOOL)0;
			T152_ = (NIM_BOOL)0;
			T153_ = (NIM_BOOL)0;
			T154_ = (NIM_BOOL)0;
			T154_ = !(((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T154_)) goto LA155_;
			T154_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			LA155_: ;
			T153_ = T154_;
			if (!(T153_)) goto LA156_;
			T153_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24));
			LA156_: ;
			T152_ = T153_;
			if (!(T152_)) goto LA157_;
			T152_ = ((*expectedType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24));
			LA157_: ;
			T151_ = T152_;
			if (!(T151_)) goto LA158_;
			T151_ = ((*(*(*result).typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 3));
			LA158_: ;
			if (!T151_) goto LA159_;
			asgnRef((void**) (&(*result).typ), expectedType);
		}
		LA159_: ;
	}
	break;
	default:
	{
		result = n;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasCycle__sem_555)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 0)) & 31);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = safeLen__ast_3148(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__0RUKWdbLPY3l0smKVGDLMg) 0))&31U)))!=0);
					if (T6_) goto LA7_;
					T6_ = hasCycle__sem_555((*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__0RUKWdbLPY3l0smKVGDLMg) 0)) & 31));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, fixupTypeAfterEval__sem_577)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* evaluated, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* eOrig) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		if (!((*(*eOrig).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6) || (*(*eOrig).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7) || (*(*eOrig).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8))) goto LA3_;
		result = semExprWithType__sem_57(c, evaluated, 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType;
		result = evaluated;
		expectedType = skipTypes__ast_3723((*eOrig).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_36);
		{
			NIM_BOOL T8_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n2X60gensym48_;
			T8_ = (NIM_BOOL)0;
			T8_ = hasCycle__sem_555(result);
			if (!T8_) goto LA9_;
			n2X60gensym48_ = eOrig;
			liMessage__msgs_1128((*(*c).graph).config, (*n2X60gensym48_).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_393), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_394, NIM_FALSE);
			result = errorNode__semdata_1039(c, n2X60gensym48_);
		}
		goto LA6_;
		LA9_: ;
		{
			annotateType__semmacrosanity_69(result, expectedType, (*(*c).graph).config);
		}
		LA6_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalAtCompileTime__sem_120)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* callee;
{	result = NIM_NIL;
	result = n;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32)));
		if (T3_) goto LA4_;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T9_)) goto LA10_;
		T9_ = (((*(*n).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 33))&63U)))!=0);
		LA10_: ;
		if (!T9_) goto LA11_;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		NIM_BOOL T15_;
		NIM_BOOL T16_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* call;
		NIM_BOOL allConst;
		T15_ = (NIM_BOOL)0;
		T16_ = (NIM_BOOL)0;
		T16_ = !(((*callee).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0)));
		if (!(T16_)) goto LA17_;
		T16_ = ((TM__DKP9c7KM5AbqYVP6Gd9blNUw_390[(NU)((*callee).magic)>>3] &(1U<<((NU)((*callee).magic)&7U)))!=0);
		LA17_: ;
		T15_ = T16_;
		if (!(T15_)) goto LA18_;
		T15_ = !(((*n).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA18_: ;
		if (!T15_) goto LA19_;
		call = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, (*n).typ);
		add__ast_4798(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_3155(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA26_;
						allConst = NIM_FALSE;
						a = (*n)._kind_6.sons->data[i];
						{
							if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58))) goto LA30_;
							a = (*a)._kind_6.sons->data[((NI) 1)];
						}
						LA30_: ;
					}
					LA26_: ;
					add__ast_4798(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__vKogasEnJSPhbQmA8r4Y9aA* T58_;
			T44_ = (NI)0;
			T44_ = len__ast_3155(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_3155(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__b28l2MkhJpnFhatVrsrXpg) 60)));
							LA54_: ;
							T52_ = T53_;
							if (T52_) goto LA55_;
							T52_ = !((((*(*(*n)._kind_6.sons->data[i_3]).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9))&63U)))!=0));
							LA55_: ;
							if (!T52_) goto LA56_;
							goto LA41;
						}
						LA56_: ;
						i_4 += ((NI) 1);
					} LA49: ;
				}
			}
			T58_ = NIM_NIL;
			T58_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 1);
			asgnRef((void**) (&T58_->data[0]), (*n).typ);
			asgnRef((void**) (&(*n).typ), newTypeWithSons__semdata_851(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60), T58_));
			(*(*n).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9)) & 63);
		}
		LA45_: ;
	} LA41: ;
	{
		NIM_BOOL T61_;
		NIM_BOOL T63_;
		NIM_BOOL T64_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* call_2;
		T61_ = (NIM_BOOL)0;
		T61_ = ((*callee).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__kQDDJGUiaUAtO9c9b6LjZYjA*) 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__sjiB9b9aO1FRPetW6gPYZbfw) 10)));
			if (!(T72_)) goto LA73_;
			T72_ = !((((*callee).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 28))&63U)))!=0));
			LA73_: ;
			T71_ = T72_;
			if (!(T71_)) goto LA74_;
			T71_ = !((((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 22))&31U)))!=0));
			LA74_: ;
			if (!T71_) goto LA75_;
			goto BeforeRet_;
		}
		LA75_: ;
		{
			if (!!(((TM__DKP9c7KM5AbqYVP6Gd9blNUw_390[(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_4647(callee);
			LA84_: ;
			if (!T83_) goto LA85_;
			goto BeforeRet_;
		}
		LA85_: ;
		{
			NIM_BOOL T89_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T91_;
			T89_ = (NIM_BOOL)0;
			T89_ = !(((*n).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T89_)) goto LA90_;
			T91_ = NIM_NIL;
			T91_ = typeAllowed__typeallowed_487((*n).typ, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10), c, 0);
			T89_ = !((T91_ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			LA90_: ;
			if (!T89_) goto LA92_;
			goto BeforeRet_;
		}
		LA92_: ;
		call_2 = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, (*n).typ);
		add__ast_4798(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_3155(n);
			i_6 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA99_;
						result = n;
						goto BeforeRet_;
					}
					LA99_: ;
					add__ast_4798(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__9be9c6fEXk5NwyPvxxb6toPA) 12))&63U)))!=0);
			LA104_: ;
			if (!T103_) goto LA105_;
			{
				if (!(((*callee).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 28))&63U)))!=0)) goto LA109_;
				result = evalStaticExpr__vm_14105((*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__DKP9c7KM5AbqYVP6Gd9blNUw_391), T115_);
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T116_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_392, NIM_FALSE);
				}
				goto LA111_;
				LA113_: ;
				{
					result = fixupTypeAfterEval__sem_577(c, result, n);
				}
				LA111_: ;
			}
			goto LA107_;
			LA109_: ;
			{
				result = evalConstExpr__vm_14099((*c).module, (*c).Sup.idgen, (*c).graph, call_2);
				{
					if (!(result == 0)) goto LA121_;
					result = n;
				}
				goto LA119_;
				LA121_: ;
				{
					result = fixupTypeAfterEval__sem_577(c, result, n);
				}
				LA119_: ;
			}
			LA107_: ;
		}
		goto LA101_;
		LA105_: ;
		{
			result = n;
		}
		LA101_: ;
	}
	LA67_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, afterCallActions__sem_17753)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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__r6ni9cszPdxrSgot9bYmbKjw) 13))&31U)))!=0));
		if (!(T4_)) goto LA5_;
		T4_ = !(((*n).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50));
		LA6_: ;
		if (!T3_) goto LA7_;
		result = errorNode__semdata_1039(c, n);
		goto BeforeRet_;
	}
	LA7_: ;
	result = n;
	callee = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	switch ((*callee).kind) {
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
	{
		result = semMacroExpr__sem_530(c, result, orig, callee, flags, expectedType);
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
	{
		result = semTemplateExpr__sem_524(c, result, callee, flags, expectedType);
	}
	break;
	default:
	{
		semFinishOperands__sigmatch_4203(c, result);
		activate__sem_111(c, result);
		fixAbstractType__sem_16115(c, result);
		analyseIfAddressTakenInCall__sem_16299(c, result);
		{
			if (!!(((*callee).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0)))) goto LA14_;
			result = magicsAfterOverloadResolution__sem_17235(c, result, flags, expectedType);
		}
		LA14_: ;
	}
	break;
	}
	{
		if (!((*c).matchedConcept == ((tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw*) NIM_NIL))) goto LA18_;
		result = evalAtCompileTime__sem_120(c, result);
	}
	LA18_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semDirectOp__sem_515)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig;
	result = NIM_NIL;
	nOrig = copyTree__ast_4432(n);
	result = semOverloadedCallAnalyseEffects__sem_17652(c, n, nOrig, flags);
	{
		if (!!((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA3_;
		result = afterCallActions__sem_17753(c, result, nOrig, flags, expectedType);
	}
	goto LA1_;
	LA3_: ;
	{
		result = errorNode__semdata_1039(c, n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalPattern__sem_681)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NimStringDesc* rule;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NimStringDesc* argX60gensym82_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27));
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		argX60gensym82_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_232);
		internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym82_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_232);
	}
	LA5_: ;
	rule = NIM_NIL;
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = hasHint__options_530((*(*c).graph).config, ((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 92));
		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__sjiB9b9aO1FRPetW6gPYZbfw) 17):
	{
		result = semMacroExpr__sem_530(c, n, orig, s, 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
	{
		result = semTemplateExpr__sem_524(c, n, s, 65536, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	}
	break;
	default:
	{
		result = semDirectOp__sem_515(c, n, 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	}
	break;
	}
	{
		NIM_BOOL T17_;
		NimStringDesc* T20_;
		NimStringDesc* T21_;
		T17_ = (NIM_BOOL)0;
		T17_ = hasHint__options_530((*(*c).graph).config, ((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 92));
		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__DKP9c7KM5AbqYVP6Gd9blNUw_395));
appendString(T20_, T21_);
appendString(T20_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_31));
		liMessage__msgs_1128((*(*c).graph).config, (*orig).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 92), T20_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_396, NIM_FALSE);
	}
	LA18_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, applyPatterns__sem_702)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__3r34mwqcVmg5JFNmiaVncw* pattern;
				if (!(((NI) 0) <= res)) goto LA4;
				i = res;
				pattern = (*c).patterns->data[i];
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_15), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__DKP9c7KM5AbqYVP6Gd9blNUw_230, NIM_FALSE);
						}
						LA15_: ;
						asgnRef((void**) (&(*c).patterns->data[i]), ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
						{
							if (!((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115))) goto LA19_;
							asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 1)]), evalPattern__sem_681(c, (*x)._kind_6.sons->data[((NI) 1)], result));
							result = flattenStmts__trees_355(x);
						}
						goto LA17_;
						LA19_: ;
						{
							result = evalPattern__sem_681(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__uh9cWvEa5Ty85PXOtuP5emw*, hlo__sem_678)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__clSgDh22o9au33BrVH9bDQZw) 82):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
		result = n;
	}
	break;
	default:
	{
		{
			NIM_BOOL T9_;
			NIM_BOOL T10_;
			T9_ = (NIM_BOOL)0;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36));
			if (!(T10_)) goto LA11_;
			T10_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_702(c, n);
		{
			if (!(result == n)) goto LA17_;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3148(result);
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* h;
						if (!(i_2 < colontmp_)) goto LA21;
						i = i_2;
						a = (*result)._kind_6.sons->data[i];
						h = hlo__sem_678(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_4780((*n).typ);
				if (!(T29_)) goto LA30_;
				T29_ = isEmptyType__ast_4780((*result).typ);
				LA30_: ;
				if (!T29_) goto LA31_;
			}
			goto LA27_;
			LA31_: ;
			{
				result = fitNode__sem_73(c, (*n).typ, result, (*n).info);
			}
			LA27_: ;
			result = commonOptimizations__transf_1505((*c).graph, (*c).Sup.idgen, (*c).module, result);
			result = hlo__sem_678(c, result);
			result = commonOptimizations__transf_1505((*c).graph, (*c).Sup.idgen, (*c).module, result);
		}
		LA15_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, hloBody__sem_793)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__HPX9bEWraE8wyYLoP9bHbKYQ) 23))&31U)))!=0));
		LA5_: ;
		if (!T3_) goto LA6_;
		result = n;
		goto BeforeRet_;
	}
	LA6_: ;
	(*c).hloLoopDetector = ((NI) 0);
	result = hlo__sem_678(c, n);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, popProcCon__semdata_401)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c) {
	asgnRef((void**) (&(*c).p), (*(*c).p).next);
}
N_LIB_PRIVATE N_NIMCALL(void, typeAllowedCheck__sem_485)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tySet_tyEnum_TTypeAllowedFlag__Onpom0WAnwwvAeCSboHTQA flags) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	t = typeAllowed__typeallowed_487(typ, kind, c, flags);
	{
		NimStringDesc* err;
		if (!!((t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) 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__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T9_[1] = toHumanStr__ast_5170(kind);
			err = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_399), 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__Onpom0WAnwwvAeCSboHTQA) 5))&7U)))!=0);
				LA13_: ;
				if (!T12_) goto LA14_;
				nimZeroMem((void*)T16_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
				T16_[0] = toHumanStr__ast_5170((*(*typ).owner).kind);
				T17_ = NIM_NIL;
				T17_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_400), 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__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T19_[1] = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T19_[2] = toHumanStr__ast_5170(kind);
			err = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_401), T19_, 3);
		}
		LA5_: ;
		liMessage__msgs_1128((*(*c).graph).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), err, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_402, NIM_FALSE);
	}
	LA3_: ;
}
static N_INLINE(void, paramsTypeCheck__sem_509)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ) {
	typeAllowedCheck__sem_485(c, (*(*typ).n).info, typ, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12), 0);
}
N_LIB_PRIVATE N_NIMCALL(void, fixupInstantiatedSymbols__sem_1119)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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__3r34mwqcVmg5JFNmiaVncw* xX60gensym165_;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym166_;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* oldPrc;
					tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T9_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T10_;
					xX60gensym165_ = (*c).generics->data[i].genericSym;
					xX60gensym166_ = s;
					if (!((NI)((NI)((NU64)(((NI) ((*xX60gensym165_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym165_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym166_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym166_).Sup.itemId.item))))) goto LA7_;
					oldPrc = (*(*c).generics->data[i].inst).sym;
					pushProcCon__sem_908(c, oldPrc);
					pushOwner__semdata_334(c, oldPrc);
					pushInfoContext__msgs_500((*(*c).graph).config, (*oldPrc).info, ((NimStringDesc*) NIM_NIL));
					T9_ = NIM_NIL;
					T9_ = openScope__lookups_76(c);
					n = (*oldPrc).ast;
					T10_ = NIM_NIL;
					T10_ = getBody__modulegraphs_13094((*c).graph, s);
					asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), copyTree__ast_4432(T10_));
					instantiateBody__sem_1042(c, n, (*(*oldPrc).typ).n, oldPrc, s);
					closeScope__lookups_108(c);
					popInfoContext__msgs_517((*(*c).graph).config);
					popOwner__semdata_341(c);
					popProcCon__semdata_401(c);
				}
				LA7_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, searchForBorrowProc__sem_2764)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* startScope, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fn) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* call;
	NIM_BOOL hasDistinct;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	result = NIM_NIL;
	call = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*fn).info);
	hasDistinct = NIM_FALSE;
	T1_ = NIM_NIL;
	T1_ = newIdentNode__ast_3700((*fn).name, (*fn).info);
	add__ast_4798(call, T1_);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155((*(*fn).typ).n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* param;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* x;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T17_;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				param = (*(*(*fn).typ).n)._kind_6.sons->data[i];
				t = skipTypes__ast_3723((*param).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_407);
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13));
					if (T7_) goto LA8_;
					T7_ = ((*(*param).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13));
					LA8_: ;
					if (!T7_) goto LA9_;
					hasDistinct = NIM_TRUE;
				}
				LA9_: ;
				x = NIM_NIL;
				{
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T15_;
					if (!((*(*param).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23))) goto LA13_;
					x = newTypeS__semdata_763((*(*param).typ).kind, c);
					T15_ = NIM_NIL;
					T15_ = baseOfDistinct__types_3415(t, (*c).graph, (*c).Sup.idgen);
					addSonSkipIntLit__magicsys_136(x, T15_, (*c).Sup.idgen);
				}
				goto LA11_;
				LA13_: ;
				{
					x = baseOfDistinct__types_3415(t, (*c).graph, (*c).Sup.idgen);
				}
				LA11_: ;
				T17_ = NIM_NIL;
				T17_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*fn).info, x);
				add__ast_4798(call, T17_);
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw filter;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_2551(c, call, call, filter, 0);
		{
			if (!!((resolved == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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_2720((*(*result).typ).sons->data[((NI) 0)], (*(*fn).typ).sons->data[((NI) 0)], ((tyEnum_TDistinctCompare__UuPcvyG2RecjPyQDW4WlFw) 1), 0);
				if (!!(T33_)) goto LA34_;
				result = ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL);
			}
			goto LA31_;
			LA34_: ;
			{
				if (!((*result).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 6) || (*result).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 5))) goto LA37_;
				result = ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL);
			}
			goto LA31_;
			LA37_: ;
			LA31_: ;
		}
		LA29_: ;
	}
	LA20_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semBorrow__sem_13383)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* b;
	b = searchForBorrowProc__sem_2764(c, (*(*c).currentScope).parent, s);
	{
		if (!!((b == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA3_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), newSymNode__ast_3704(b));
		(*s).magic = (*b).magic;
		{
			NIM_BOOL T7_;
			NI T9_;
			T7_ = (NIM_BOOL)0;
			T7_ = !(((*b).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T7_)) goto LA8_;
			T9_ = (NI)0;
			T9_ = len__ast_3990((*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_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_408), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_409, NIM_FALSE);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sideEffectsCheck__sem_1146)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semProcAux__sem_14073)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw validPragmas, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NIM_BOOL isAnon;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* declarationScope;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T10_;
	tyTuple__U9cBGRemMbZc6MWph6pfkAg T36_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* proto;
	NIM_BOOL comesFromShadowScope;
	NIM_BOOL hasProto;
{	result = NIM_NIL;
	result = semProcAnnotation__sem_13492(c, n, validPragmas);
	{
		if (!!((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	result = n;
	checkMinSonsLen__semdata_1114(n, ((NI) 7), (*(*c).graph).config);
	isAnon = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
	s = NIM_NIL;
	switch ((*(*n)._kind_6.sons->data[((NI) 0)]).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
	{
		tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T6_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T7_;
		T6_ = nextSymId__ast_3103((*c).Sup.idgen);
		T7_ = NIM_NIL;
		T7_ = getCurrOwner__semdata_327(c);
		s = newSym__ast_3409(kind, (*(*c).cache).idAnon, T6_, T7_, (*n).info, 0);
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(s));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		s = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		asgnRef((void**) (&(*s).owner), getCurrOwner__semdata_327(c));
	}
	break;
	default:
	{
		s = semIdentDef__sem_10359(c, (*n)._kind_6.sons->data[((NI) 0)], kind, NIM_TRUE);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(s));
	}
	break;
	}
	asgnRef((void**) (&(*s).ast), n);
	(*s).options = (*(*(*c).graph).config).options;
	declarationScope = (*c).currentScope;
	pushOwner__semdata_334(c, s);
	T10_ = NIM_NIL;
	T10_ = openScope__lookups_76(c);
	setGenericParamsMisc__sem_6835(c, n);
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 3)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA13_;
		semParamList__sem_94(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_5320(c, (*n).info, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
	}
	LA11_: ;
	{
		NI T18_;
		T18_ = (NI)0;
		T18_ = safeLen__ast_3148((*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__Vrztsndr9a9bj8bQ3cn49bwWw) 33))&63U)))!=0)) goto LA23_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 28)) & 63);
	}
	LA23_: ;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA27_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semPattern__sem_7566(c, (*n)._kind_6.sons->data[((NI) 1)], s));
	}
	LA27_: ;
	{
		if (!((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15))) goto LA31_;
		(*(*s).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 15)) & 63);
	}
	goto LA29_;
	LA31_: ;
	{
		if (!((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 13))) goto LA34_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 12)) & 63);
		(*(*s).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 1)) & 63);
	}
	goto LA29_;
	LA34_: ;
	LA29_: ;
	nimZeroMem((void*)(&T36_), sizeof(tyTuple__U9cBGRemMbZc6MWph6pfkAg));
	{
		if (!isAnon) goto LA39_;
		T36_.Field0 = TM__DKP9c7KM5AbqYVP6Gd9blNUw_172.Field0;
		T36_.Field1 = TM__DKP9c7KM5AbqYVP6Gd9blNUw_172.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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
		if (!(T45_)) goto LA46_;
		T45_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 4))&63U)))!=0);
		LA46_: ;
		T44_ = T45_;
		if (!(T44_)) goto LA47_;
		T44_ = !(((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
		LA47_: ;
		if (!T44_) goto LA48_;
		proto = s;
	}
	LA48_: ;
	hasProto = !((proto == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
	switch ((*s).kind) {
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15):
	{
		{
			if (!!(((*(*s).typ).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9)))) goto LA53_;
			{
				if (!isAnon) goto LA57_;
				(*(*s).typ).callConv = ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9);
			}
			goto LA55_;
			LA57_: ;
			{
				(*(*s).typ).callConv = ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 5);
			}
			LA55_: ;
		}
		LA53_: ;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
	{
	}
	break;
	default:
	{
		{
			tyObject_TOptionEntry__KcSoeh10J9aas3WZevEUD7Q* T66_;
			if (!!(hasProto)) goto LA64_;
			T66_ = NIM_NIL;
			T66_ = lastOptionEntry__semdata_353(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__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0));
		LA70_: ;
		if (!T69_) goto LA71_;
		{
			if (!((1568832 &((NU32)1<<((NU)((*s).kind)&31U)))!=0)) goto LA75_;
			addInterfaceOverloadableSymAt__lookups_1571(c, declarationScope, s);
		}
		goto LA73_;
		LA75_: ;
		{
			addInterfaceDeclAt__lookups_1547(c, declarationScope, s);
		}
		LA73_: ;
	}
	LA71_: ;
	pragmaCallable__pragmas_2639(c, s, n, validPragmas, NIM_FALSE);
	{
		if (!!(hasProto)) goto LA80_;
		implicitPragmas__pragmas_2481(c, s, (*n).info, validPragmas);
	}
	LA80_: ;
	{
		NIM_BOOL T84_;
		T84_ = (NIM_BOOL)0;
		T84_ = !(((*(*n)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
		if (!(T84_)) goto LA85_;
		T84_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 31))&63U)))!=0));
		LA85_: ;
		if (!T84_) goto LA86_;
		setEffectsForProcType__sempass50_4560((*c).graph, (*s).typ, (*n)._kind_6.sons->data[((NI) 4)], s);
	}
	LA86_: ;
	(*(*s).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 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__Vrztsndr9a9bj8bQ3cn49bwWw) 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_634((*(*c).graph).config, (*proto).info);
		T100_ = NIM_NIL;
		T100_ = dollar___msgs_634((*(*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__DKP9c7KM5AbqYVP6Gd9blNUw_31));
appendString(T98_, (*(*proto).name).s);
appendString(T98_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_174));
appendString(T98_, T99_);
appendString(T98_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_175));
appendString(T98_, (*(*s).name).s);
appendString(T98_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_174));
appendString(T98_, T100_);
		T101_ = NIM_NIL;
		T101_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_173), T98_);
		liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 4)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T101_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_176, NIM_FALSE);
	}
	LA96_: ;
	{
		NIM_BOOL T104_;
		NIM_BOOL T105_;
		NIM_BOOL T106_;
		NIM_BOOL T107_;
		NIM_BOOL T108_;
		NIM_BOOL T109_;
		NIM_BOOL T110_;
		NIM_BOOL T111_;
		NIM_BOOL T112_;
		NIM_BOOL T113_;
		NIM_BOOL T114_;
		NIM_BOOL T124_;
		T104_ = (NIM_BOOL)0;
		T105_ = (NIM_BOOL)0;
		T106_ = (NIM_BOOL)0;
		T107_ = (NIM_BOOL)0;
		T108_ = (NIM_BOOL)0;
		T109_ = (NIM_BOOL)0;
		T110_ = (NIM_BOOL)0;
		T111_ = (NIM_BOOL)0;
		T112_ = (NIM_BOOL)0;
		T113_ = (NIM_BOOL)0;
		T114_ = (NIM_BOOL)0;
		T114_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
		if (!(T114_)) goto LA115_;
		T114_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
		LA115_: ;
		T113_ = T114_;
		if (!(T113_)) goto LA116_;
		T113_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
		LA116_: ;
		T112_ = T113_;
		if (!(T112_)) goto LA117_;
		T112_ = belongsToProjectPackage__packages_50((*(*c).graph).config, s);
		LA117_: ;
		T111_ = T112_;
		if (!(T111_)) goto LA118_;
		T111_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
		LA118_: ;
		T110_ = T111_;
		if (!(T110_)) goto LA119_;
		T110_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
		LA119_: ;
		T109_ = T110_;
		if (!(T109_)) goto LA120_;
		T109_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
		LA120_: ;
		T108_ = T109_;
		if (!(T108_)) goto LA121_;
		T108_ = ((Letters__linter_12[(NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))&7U)))!=0);
		LA121_: ;
		T107_ = T108_;
		if (!(T107_)) goto LA122_;
		T107_ = !(((144 &((NU32)1<<((NU)((*s).kind)&31U)))!=0));
		LA122_: ;
		T106_ = T107_;
		if (!(T106_)) goto LA123_;
		T124_ = (NIM_BOOL)0;
		T124_ = ((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		if (T124_) goto LA125_;
		T124_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
		LA125_: ;
		T106_ = T124_;
		LA123_: ;
		T105_ = T106_;
		if (!(T105_)) goto LA126_;
		T105_ = ((192 & (*s).flags) == 0);
		LA126_: ;
		T104_ = T105_;
		if (!(T104_)) goto LA127_;
		T104_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
		LA127_: ;
		if (!T104_) goto LA128_;
		nep1CheckDefImpl__linter_112((*(*c).graph).config, (*s).info, s, (*s).kind);
	}
	LA128_: ;
	{
		if (!hasProto) goto LA132_;
	}
	goto LA130_;
	LA132_: ;
	{
	}
	LA130_: ;
	{
		tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T149_;
		if (!hasProto) goto LA137_;
		{
			NIM_BOOL T141_;
			T141_ = (NIM_BOOL)0;
			T141_ = !((((*proto).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 4))&63U)))!=0));
			if (!(T141_)) goto LA142_;
			T141_ = ((*proto).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0));
			LA142_: ;
			if (!T141_) goto LA143_;
			wrongRedefinition__lookups_985(c, (*n).info, (*(*proto).name).s, (*proto).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15));
		}
		LA143_: ;
		{
			if (!!(comesFromShadowScope)) goto LA147_;
			(*proto).flags &= ~(((NU64)1) << ((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 4)) & 63));
			(*proto).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 5)) & 63);
		}
		LA147_: ;
		suggestSym__sigmatch_5404((*c).graph, (*s).info, proto, &(*(*c).graph).usageSym, NIM_TRUE);
		closeScope__lookups_108(c);
		T149_ = NIM_NIL;
		T149_ = openScope__lookups_76(c);
		{
			NIM_BOOL T152_;
			T152_ = (NIM_BOOL)0;
			T152_ = isGenericParams__ast_4617((*(*proto).ast)._kind_6.sons->data[((NI) 2)]);
			if (!T152_) goto LA153_;
			addGenericParamListToScope__sem_12528(c, (*(*proto).ast)._kind_6.sons->data[((NI) 2)]);
		}
		LA153_: ;
		addParams__sem_99(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__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA157_;
			internalErrorImpl__msgs_1441((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_177), TM__DKP9c7KM5AbqYVP6Gd9blNUw_178);
		}
		LA157_: ;
		asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym), proto);
		{
			NIM_BOOL T161_;
			NimStringDesc* T163_;
			NimStringDesc* T166_;
			T161_ = (NIM_BOOL)0;
			T161_ = importantComments__options_4020((*(*c).graph).config);
			if (!(T161_)) goto LA162_;
			T163_ = NIM_NIL;
			T163_ = comment__ast_997((*proto).ast);
			T161_ = (((NI) 0) < (T163_ ? T163_->Sup.len : 0));
			LA162_: ;
			if (!T161_) goto LA164_;
			T166_ = NIM_NIL;
			T166_ = comment__ast_997((*proto).ast);
			commenteq___ast_1365(n, T166_);
		}
		LA164_: ;
		asgnRef((void**) (&(*proto).ast), n);
		popOwner__semdata_341(c);
		pushOwner__semdata_334(c, s);
	}
	LA137_: ;
	{
		if (!!(isAnon)) goto LA169_;
		{
			NIM_BOOL T173_;
			T173_ = (NIM_BOOL)0;
			T173_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 35))&63U)))!=0);
			if (T173_) goto LA174_;
			T173_ = ((NU8)((*(*s).name).s->data[((NI) 0)]) == (NU8)(61));
			LA174_: ;
			if (!T173_) goto LA175_;
			semOverride__sem_13839(c, s, n);
		}
		goto LA171_;
		LA175_: ;
		{
			if (!(((NU8)((*(*s).name).s->data[((NI) 0)])) == ((NU8)(46)) || ((NU8)((*(*s).name).s->data[((NI) 0)])) == ((NU8)(40)))) goto LA178_;
			{
				NIM_BOOL T182_;
				NimStringDesc* T186_;
				T182_ = (NIM_BOOL)0;
				T182_ = contains__stdZenumutils_44(TM__DKP9c7KM5AbqYVP6Gd9blNUw_213, 3, (*(*s).name).s);
				if (!(T182_)) goto LA183_;
				T182_ = ((18 & (*c).features) == 0);
				LA183_: ;
				if (!T182_) goto LA184_;
				T186_ = NIM_NIL;
				T186_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 80);
appendString(T186_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_217));
appendString(T186_, (*(*s).name).s);
appendString(T186_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_218));
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T186_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_219, NIM_FALSE);
			}
			goto LA180_;
			LA184_: ;
			{
				NIM_BOOL T188_;
				NimStringDesc* T192_;
				T188_ = (NIM_BOOL)0;
				T188_ = eqStrings((*(*s).name).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_220));
				if (!(T188_)) goto LA189_;
				T188_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 2))&31U)))!=0));
				LA189_: ;
				if (!T188_) goto LA190_;
				T192_ = NIM_NIL;
				T192_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 80);
appendString(T192_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_217));
appendString(T192_, (*(*s).name).s);
appendString(T192_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_221));
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T192_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_222, NIM_FALSE);
			}
			goto LA180_;
			LA190_: ;
			LA180_: ;
		}
		goto LA171_;
		LA178_: ;
		LA171_: ;
	}
	LA169_: ;
	{
		NIM_BOOL T195_;
		T195_ = (NIM_BOOL)0;
		T195_ = !(((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
		if (!(T195_)) goto LA196_;
		T195_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 24))&63U)))!=0));
		LA196_: ;
		if (!T195_) goto LA197_;
		{
			NimStringDesc* T203_;
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 31))&63U)))!=0)) goto LA201_;
			T203_ = NIM_NIL;
			T203_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_223), (*(*s).name).s);
			liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 6)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T203_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_224, NIM_FALSE);
		}
		LA201_: ;
		{
			NIM_BOOL T206_;
			NIM_BOOL T207_;
			NIM_BOOL T210_;
			T206_ = (NIM_BOOL)0;
			T207_ = (NIM_BOOL)0;
			T207_ = ((6 &((NU32)1<<((NU)((*(*(*c).graph).config).ideCmd)&31U)))!=0);
			if (!(T207_)) goto LA208_;
			T207_ = !(((393216 &((NU32)1<<((NU)((*s).kind)&31U)))!=0));
			LA208_: ;
			T206_ = T207_;
			if (!(T206_)) goto LA209_;
			T210_ = (NIM_BOOL)0;
			T210_ = cursorInProc__sem_14012((*(*c).graph).config, (*n)._kind_6.sons->data[((NI) 6)]);
			T206_ = !(T210_);
			LA209_: ;
			if (!T206_) goto LA211_;
			{
				if (!((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14))) goto LA215_;
				semMethodPrototype__sem_14036(c, s, n);
			}
			LA215_: ;
		}
		goto LA204_;
		LA211_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* gp;
			if (!isAnon) goto LA218_;
			gp = (*n)._kind_6.sons->data[((NI) 2)];
			{
				NIM_BOOL T222_;
				NIM_BOOL T224_;
				NI T225_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T229_;
				T222_ = (NIM_BOOL)0;
				T222_ = ((*gp).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
				if (T222_) goto LA223_;
				T224_ = (NIM_BOOL)0;
				T225_ = (NI)0;
				T225_ = len__ast_3155(gp);
				T224_ = (T225_ == ((NI) 1));
				if (!(T224_)) goto LA226_;
				T224_ = (((*(*(*gp)._kind_6.sons->data[((NI) 0)]).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 11))&63U)))!=0);
				LA226_: ;
				T222_ = T224_;
				LA223_: ;
				if (!T222_) goto LA227_;
				pushProcCon__sem_908(c, s);
				addResult__sem_13423(c, n, (*(*s).typ).sons->data[((NI) 0)], ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12));
				T229_ = NIM_NIL;
				T229_ = semProcBody__sem_69(c, (*n)._kind_6.sons->data[((NI) 6)], (*(*s).typ).sons->data[((NI) 0)]);
				asgnRef((void**) (&(*(*s).ast)._kind_6.sons->data[((NI) 6)]), hloBody__sem_793(c, T229_));
				trackProc__sempass50_4721(c, s, (*(*s).ast)._kind_6.sons->data[((NI) 6)]);
				popProcCon__semdata_401(c);
			}
			goto LA220_;
			LA227_: ;
			{
				if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 12))&31U)))!=0))) goto LA231_;
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_397), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_398, NIM_FALSE);
			}
			goto LA220_;
			LA231_: ;
			LA220_: ;
		}
		goto LA204_;
		LA218_: ;
		{
			pushProcCon__sem_908(c, s);
			{
				NIM_BOOL T236_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* resultType;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T255_;
				T236_ = (NIM_BOOL)0;
				T236_ = ((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
				if (T236_) goto LA237_;
				T236_ = ((393216 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
				LA237_: ;
				if (!T236_) goto LA238_;
				{
					NIM_BOOL T242_;
					T242_ = (NIM_BOOL)0;
					T242_ = !(((393216 &((NU32)1<<((NU)((*s).kind)&31U)))!=0));
					if (!(T242_)) goto LA243_;
					T242_ = ((*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0));
					LA243_: ;
					if (!T242_) goto LA244_;
					paramsTypeCheck__sem_509(c, (*s).typ);
				}
				LA244_: ;
				maybeAddResult__sem_103(c, s, n);
				{
					if (!((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17))) goto LA248_;
					resultType = sysTypeFromName__magicsys_55((*c).graph, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_104));
				}
				goto LA246_;
				LA248_: ;
				{
					NIM_BOOL T251_;
					T251_ = (NIM_BOOL)0;
					T251_ = isInlineIterator__ast_4990((*s).typ);
					if (!!(T251_)) goto LA252_;
					resultType = (*(*s).typ).sons->data[((NI) 0)];
				}
				goto LA246_;
				LA252_: ;
				{
					resultType = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
				}
				LA246_: ;
				T255_ = NIM_NIL;
				T255_ = semProcBody__sem_69(c, (*n)._kind_6.sons->data[((NI) 6)], resultType);
				asgnRef((void**) (&(*(*s).ast)._kind_6.sons->data[((NI) 6)]), hloBody__sem_793(c, T255_));
				trackProc__sempass50_4721(c, s, (*(*s).ast)._kind_6.sons->data[((NI) 6)]);
			}
			goto LA234_;
			LA238_: ;
			{
				tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T266_;
				{
					NIM_BOOL T259_;
					tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T263_;
					tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T264_;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T265_;
					T259_ = (NIM_BOOL)0;
					T259_ = !(((*(*s).typ).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
					if (!(T259_)) goto LA260_;
					T259_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15)));
					LA260_: ;
					if (!T259_) goto LA261_;
					T263_ = NIM_NIL;
					T263_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_107));
					T264_ = nextSymId__ast_3103((*c).Sup.idgen);
					T265_ = NIM_NIL;
					T265_ = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 0), T263_, T264_, s, (*n).info, 0);
					addDecl__lookups_1517(c, T265_);
				}
				LA261_: ;
				T266_ = NIM_NIL;
				T266_ = openScope__lookups_76(c);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), semGenericStmt__sem_2949(c, (*n)._kind_6.sons->data[((NI) 6)]));
				closeScope__lookups_108(c);
				{
					if (!((*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0))) goto LA269_;
					fixupInstantiatedSymbols__sem_1119(c, s);
				}
				LA269_: ;
			}
			LA234_: ;
			{
				if (!((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14))) goto LA273_;
				semMethodPrototype__sem_14036(c, s, n);
			}
			LA273_: ;
			popProcCon__semdata_401(c);
		}
		LA204_: ;
	}
	goto LA193_;
	LA197_: ;
	{
		{
			if (!((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14))) goto LA278_;
			semMethodPrototype__sem_14036(c, s, n);
		}
		LA278_: ;
		{
			NimStringDesc* T284_;
			if (!hasProto) goto LA282_;
			T284_ = NIM_NIL;
			T284_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_403), (*(*proto).name).s);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T284_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_404, NIM_FALSE);
		}
		LA282_: ;
		{
			NIM_BOOL T287_;
			T287_ = (NIM_BOOL)0;
			T287_ = ((IL64(2164260928) & (*s).flags) == 0);
			if (!(T287_)) goto LA288_;
			T287_ = ((*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0));
			LA288_: ;
			if (!T287_) goto LA289_;
			{
				NIM_BOOL T293_;
				NIM_BOOL T294_;
				T293_ = (NIM_BOOL)0;
				T294_ = (NIM_BOOL)0;
				T294_ = ((12288 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
				if (!(T294_)) goto LA295_;
				T294_ = !(((*(*s).typ).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				LA295_: ;
				T293_ = T294_;
				if (!(T293_)) goto LA296_;
				T293_ = ((*(*(*s).typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 59));
				LA296_: ;
				if (!T293_) goto LA297_;
				liMessage__msgs_1128((*(*c).graph).config, (*(*(*n)._kind_6.sons->data[((NI) 3)])._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_405), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_406, NIM_FALSE);
			}
			LA297_: ;
			(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 4)) & 63);
			(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 5)) & 63);
		}
		goto LA285_;
		LA289_: ;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 31))&63U)))!=0)) goto LA300_;
			semBorrow__sem_13383(c, n, s);
		}
		goto LA285_;
		LA300_: ;
		LA285_: ;
	}
	LA193_: ;
	sideEffectsCheck__sem_1146(c, s);
	closeScope__lookups_108(c);
	popOwner__semdata_341(c);
	{
		NI T306_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA304_;
		asgnRef((void**) (&(*c).patterns), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) incrSeqV3((TGenericSeq*)((*c).patterns), (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_)));
		T306_ = (*c).patterns->Sup.len++;
		asgnRef((void**) (&(*c).patterns->data[T306_]), s);
	}
	LA304_: ;
	{
		if (!isAnon) goto LA309_;
		transitionSonsKind__ast_4347(n, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 51));
		asgnRef((void**) (&(*result).typ), (*s).typ);
		{
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 42))&63U)))!=0)) goto LA313_;
			asgnRef((void**) (&(*result).typ), makeVarType__semdata_796(c, (*result).typ, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45)));
		}
		LA313_: ;
	}
	goto LA307_;
	LA309_: ;
	{
		NIM_BOOL T316_;
		NIM_BOOL T317_;
		T316_ = (NIM_BOOL)0;
		T317_ = (NIM_BOOL)0;
		T317_ = isTopLevel__semdata_1121(c);
		if (!(T317_)) goto LA318_;
		T317_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15)));
		LA318_: ;
		T316_ = T317_;
		if (!(T316_)) goto LA319_;
		T316_ = ((*(*s).typ).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9));
		LA319_: ;
		if (!T316_) goto LA320_;
		liMessage__msgs_1128((*(*c).graph).config, (*s).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_410), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_411, NIM_FALSE);
	}
	goto LA307_;
	LA320_: ;
	LA307_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, determineType__sem_1484)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T5_;
{	{
		if (!!(((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = NIM_NIL;
	T5_ = semProcAux__sem_14073(c, (*s).ast, (*s).kind, TM__DKP9c7KM5AbqYVP6Gd9blNUw_412, 0);
	(void)(T5_);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__ugNUvYxERl9aaj9b1GeCSDAg*, initCandidateSymbols__sem_1487)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* headSymbol, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initialBinding, tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw filter, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* best, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* alt, tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg* o, NIM_BOOL diagnostics) {
	tySequence__ugNUvYxERl9aaj9b1GeCSDAg* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* symx;
	result = NIM_NIL;
	result = NIM_NIL;
	symx = initOverloadIter__lookups_3120(o, c, headSymbol);
	{
		while (1) {
			if (!!((symx == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA2;
			{
				tyTuple__BHqtUW7ND5oD8ApFSF1wwQ T7_;
				NI T8_;
				if (!((filter &((NU32)1<<((NU)((*symx).kind)&31U)))!=0)) goto LA5_;
				nimZeroMem((void*)(&T7_), sizeof(tyTuple__BHqtUW7ND5oD8ApFSF1wwQ));
				T7_.Field0 = symx;
				T7_.Field1 = lastOverloadScope__lookups_3218((&(*o)));
				result = (tySequence__ugNUvYxERl9aaj9b1GeCSDAg*) incrSeqV3((TGenericSeq*)(result), (&NTIseqLLpsym_intTT__ugNUvYxERl9aaj9b1GeCSDAg_));
				T8_ = result->Sup.len++;
				asgnRef((void**) (&result->data[T8_].Field0), T7_.Field0);
				result->data[T8_].Field1 = T7_.Field1;
			}
			LA5_: ;
			symx = nextOverloadIter__lookups_3274(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__OWU1uSiYyPkPf9adpdtClBg) 2);
	}
	LA12_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pickBestCandidate__sem_1529)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* headSymbol, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initialBinding, tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw filter, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* best, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* alt, tySequence__LFzufdBEvfOUK6PWh0HUtQ** errors, NIM_BOOL diagnosticsFlag, NIM_BOOL errorsEnabled, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg o;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
	NI scope;
	NI counterInitial;
	tySequence__ugNUvYxERl9aaj9b1GeCSDAg* syms;
	NIM_BOOL noSyms;
	NI nextSymIndex;
	tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw z;
	nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg));
	sym = initOverloadIter__lookups_3120((&o), c, headSymbol);
	scope = lastOverloadScope__lookups_3218((&o));
	counterInitial = (*(*c).currentScope).symbols.counter;
	syms = NIM_NIL;
	noSyms = NIM_TRUE;
	nextSymIndex = ((NI) 0);
	{
		while (1) {
			if (!!((sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__OWU1uSiYyPkPf9adpdtClBg) 2);
				goto LA1;
			}
			goto LA3_;
			LA5_: ;
			{
				sym = nextOverloadIter__lookups_3274((&o), c, headSymbol);
				scope = lastOverloadScope__lookups_3218((&o));
			}
			LA3_: ;
		} LA2: ;
	} LA1: ;
	nimZeroMem((void*)(&z), sizeof(tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw));
	{
		while (1) {
			if (!!((sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA9;
			{
				{
					if (!!(((filter &((NU32)1<<((NU)((*sym).kind)&31U)))!=0))) goto LA13_;
					sym = nextOverloadIter__lookups_3274((&o), c, headSymbol);
					scope = lastOverloadScope__lookups_3218((&o));
					goto LA10;
				}
				LA13_: ;
				determineType__sem_1484(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_4222(c, n, orig, (&z));
					{
						if (!(z.state == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 1))) goto LA24_;
						{
							if (!((*sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15))) goto LA28_;
							{
								NIM_BOOL T32_;
								T32_ = (NIM_BOOL)0;
								T32_ = !(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 1))&31U)))!=0));
								if (!(T32_)) goto LA33_;
								T32_ = ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 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__OWU1uSiYyPkPf9adpdtClBg) 0):
						case ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 2):
						{
							genericAssign((void*)(&(*best)), (void*)(&z), (&NTItcandidate__9b35s9cLOLunJ2l2Vo3cQTlw_));
						}
						break;
						case ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 1):
						{
							NI cmp;
							cmp = cmpCandidates__sigmatch_358((&(*best)), (&z));
							{
								if (!(cmp < ((NI) 0))) goto LA41_;
								genericAssign((void*)(&(*best)), (void*)(&z), (&NTItcandidate__9b35s9cLOLunJ2l2Vo3cQTlw_));
							}
							goto LA39_;
							LA41_: ;
							{
								if (!(cmp == ((NI) 0))) goto LA44_;
								genericAssign((void*)(&(*alt)), (void*)(&z), (&NTItcandidate__9b35s9cLOLunJ2l2Vo3cQTlw_));
							}
							goto LA39_;
							LA44_: ;
							LA39_: ;
						}
						break;
						}
					}
					goto LA22_;
					LA24_: ;
					{
						NIM_BOOL T47_;
						tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ 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__gFDKCwBunKZtG86yhpxUMQ));
						nimZeroMem((void*)(&T51_), sizeof(tyObject_CandidateError__gFDKCwBunKZtG86yhpxUMQ));
						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__LFzufdBEvfOUK6PWh0HUtQ*) incrSeqV3((TGenericSeq*)((*errors)), (&NTIcandidateerrors__LFzufdBEvfOUK6PWh0HUtQ_)));
						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_1487(c, headSymbol, initialBinding, filter, best, alt, (&o), diagnosticsFlag);
					noSyms = NIM_FALSE;
				}
				LA15_: ;
				{
					if (!noSyms) goto LA56_;
					sym = nextOverloadIter__lookups_3274((&o), c, headSymbol);
					scope = lastOverloadScope__lookups_3218((&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__dyNB5o2GYLzoO6FJ2RhiZw, dotdot___pureZunicode_840)(NI a, NI b) {
	tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw));
	result.a = a;
	result.b = b;
	return result;
}
static N_INLINE(NimStringDesc*, X5BX5D___pureZunicode_3215)(NimStringDesc* s, tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw 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__dyNB5o2GYLzoO6FJ2RhiZw, dotdot___stdZenumutils_90)(NI a, NI b) {
	tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw));
	result.a = a;
	result.b = b;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getMsgDiagnostic__sem_2038)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* f) {
	NimStringDesc* result;
	NimStringDesc* ident;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T10_;
	result = NIM_NIL;
	{
		if (!(((NI) 0) < (*c).compilesContextId)) goto LA3_;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg o;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
		nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg));
		sym = initOverloadIter__lookups_3120((&o), c, f);
		{
			while (1) {
				tyArray__nHXaesL0DJZHyVS07ARPRA T8_;
				NimStringDesc* T9_;
				if (!!((sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA7;
				nimZeroMem((void*)T8_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
				T8_[0] = getSymRepr__lookups_728((*(*c).graph).config, sym, NIM_TRUE);
				T9_ = NIM_NIL;
				T9_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_414), T8_, 1);
				result = resizeString(result, (T9_ ? T9_->Sup.len : 0) + 0);
appendString(result, T9_);
				sym = nextOverloadIter__lookups_3274((&o), c, f);
			} LA7: ;
		}
	}
	LA1_: ;
	T10_ = NIM_NIL;
	T10_ = considerQuotedIdent__lookups_29(c, f, n);
	ident = (*T10_).s;
	{
		NIM_BOOL T13_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym_2;
		NimStringDesc* typeHint;
		NimStringDesc* suffix;
		NimStringDesc* T30_;
		NimStringDesc* T31_;
		T13_ = (NIM_BOOL)0;
		T13_ = !((((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 11))&31U)))!=0));
		if (!(T13_)) goto LA14_;
		T13_ = !(((1536 & (*n).flags) == 0));
		LA14_: ;
		if (!T13_) goto LA15_;
		sym_2 = typSym__astmsgs_5((*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		typeHint = ((NimStringDesc*) NIM_NIL);
		{
			if (!(sym_2 == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA19_;
		}
		goto LA17_;
		LA19_: ;
		{
			NimStringDesc* T22_;
			NimStringDesc* T23_;
			T22_ = NIM_NIL;
			T23_ = NIM_NIL;
			T23_ = getProcHeader__types_222((*(*c).graph).config, sym_2, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0), NIM_TRUE);
			T22_ = rawNewString((T23_ ? T23_->Sup.len : 0) + 10);
appendString(T22_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_275));
appendString(T22_, T23_);
			typeHint = T22_;
		}
		LA17_: ;
		{
			NimStringDesc* T28_;
			if (!(((NI) 0) < (result ? result->Sup.len : 0))) goto LA26_;
			T28_ = NIM_NIL;
			T28_ = rawNewString((result ? result->Sup.len : 0) + 1);
appendString(T28_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_415));
appendString(T28_, result);
			suffix = T28_;
		}
		goto LA24_;
		LA26_: ;
		{
			suffix = ((NimStringDesc*) NIM_NIL);
		}
		LA24_: ;
		T30_ = NIM_NIL;
		T31_ = NIM_NIL;
		T31_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_276), ident);
		T30_ = rawNewString((T31_ ? T31_->Sup.len : 0) + (typeHint ? typeHint->Sup.len : 0) + (suffix ? suffix->Sup.len : 0) + 0);
appendString(T30_, T31_);
appendString(T30_, typeHint);
appendString(T30_, suffix);
		result = T30_;
	}
	goto LA11_;
	LA15_: ;
	{
		{
			if (!((result ? result->Sup.len : 0) == ((NI) 0))) goto LA35_;
			result = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_278), ident);
		}
		goto LA33_;
		LA35_: ;
		{
			tyArray__Re75IspeoxXy2oCZHwcRrA T38_;
			nimZeroMem((void*)T38_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T38_[0] = copyString(ident);
			T38_[1] = copyString(result);
			result = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_416), T38_, 2);
		}
		LA33_: ;
	}
	LA11_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameMethodDispatcher__sem_1452)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* a, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* b) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = NIM_FALSE;
	{
		NIM_BOOL T3_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* aa;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* bb;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*a).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14));
		if (!(T3_)) goto LA4_;
		T3_ = ((*b).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14));
		LA4_: ;
		if (!T3_) goto LA5_;
		aa = lastSon__ast_4833((*a).ast);
		bb = lastSon__ast_4833((*b).ast);
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*aa).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
			if (!(T9_)) goto LA10_;
			T9_ = ((*bb).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_2071)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig, tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw filter, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tySequence__LFzufdBEvfOUK6PWh0HUtQ** errors, NIM_BOOL errorsEnabled, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* Result) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initialBinding;
	tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw alt;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* f;
	tySequence__LFzufdBEvfOUK6PWh0HUtQ* dummyErrors;
	tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg 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__9b35s9cLOLunJ2l2Vo3cQTlw));
	f = (*n)._kind_6.sons->data[((NI) 0)];
	{
		if (!((*f).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42))) goto LA3_;
		semOpAux__sem_91(c, f);
		initialBinding = f;
		f = (*f)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		initialBinding = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
	}
	LA1_: ;
	pickBestCandidate__sem_1529(c, f, n, orig, initialBinding, filter, Result, (&alt), errors, ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 10))&31U)))!=0), errorsEnabled, flags);
	dummyErrors = NIM_NIL;
	overloadsState = (*Result).state;
	{
		if (!!((overloadsState == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 1)))) goto LA8_;
		{
			NIM_BOOL T12_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* hiddenArg;
			T12_ = (NIM_BOOL)0;
			T12_ = !(((*c).p == ((tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA*) NIM_NIL)));
			if (!(T12_)) goto LA13_;
			T12_ = !(((*(*c).p).selfSym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
			LA13_: ;
			if (!T12_) goto LA14_;
			hiddenArg = newSymNode__ast_3704((*(*c).p).selfSym);
			asgnRef((void**) (&(*hiddenArg).typ), ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			insert__liftdestructors_1581((&(*n)._kind_6.sons), hiddenArg, ((NI) 1));
			insert__liftdestructors_1581((&(*orig)._kind_6.sons), hiddenArg, ((NI) 1));
			pickBestCandidate__sem_1529(c, f, n, orig, initialBinding, filter, Result, (&alt), (&dummyErrors), ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 10))&31U)))!=0), NIM_FALSE, flags);
			{
				if (!!(((*Result).state == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 1)))) goto LA18_;
				delete__closureiters_1723((&(*n)._kind_6.sons), ((NI) 1));
				delete__closureiters_1723((&(*orig)._kind_6.sons), ((NI) 1));
				(*n).flags &= ~(((NU32)1) << ((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 12)) & 31));
			}
			goto LA16_;
			LA18_: ;
			{
				goto BeforeRet_;
			}
			LA16_: ;
		}
		LA14_: ;
		{
			tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw T32_;
			tyArray__id9c0PBojP5C2oM2bRQSViA T33_;
			tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw T34_;
			tyArray__id9c0PBojP5C2oM2bRQSViA T35_;
			if (!(((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 9))&31U)))!=0)) goto LA23_;
			{
				NIM_BOOL T27_;
				NI T29_;
				NimStringDesc* argX60gensym342_;
				T27_ = (NIM_BOOL)0;
				T27_ = ((*f).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2));
				if (!(T27_)) goto LA28_;
				T29_ = (NI)0;
				T29_ = len__ast_3155(n);
				T27_ = (((NI) 2) <= T29_);
				LA28_: ;
				if (!!(T27_)) goto LA30_;
				argX60gensym342_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_413);
				internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym342_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_413);
			}
			LA30_: ;
			T32_ = dotdot___pureZunicode_840(((NI) 0), ((NI) 1));
			nimZeroMem((void*)T33_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
			T33_[0] = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
			T33_[1] = (*n)._kind_6.sons->data[((NI) 1)];
			T33_[2] = f;
			X5BX5Deq___pragmas_1747((&(*n)._kind_6.sons), T32_, T33_, 3);
			T34_ = dotdot___pureZunicode_840(((NI) 0), ((NI) 1));
			nimZeroMem((void*)T35_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
			T35_[0] = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
			T35_[1] = (*orig)._kind_6.sons->data[((NI) 1)];
			T35_[2] = f;
			X5BX5Deq___pragmas_1747((&(*orig)._kind_6.sons), T34_, T35_, 3);
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* opX60gensym347_;
				tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T40_;
				if (!(((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 11))&31U)))!=0)) goto LA38_;
				T40_ = NIM_NIL;
				T40_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_215));
				opX60gensym347_ = newIdentNode__ast_3700(T40_, (*n).info);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), opX60gensym347_);
				asgnRef((void**) (&(*orig)._kind_6.sons->data[((NI) 0)]), opX60gensym347_);
				pickBestCandidate__sem_1529(c, opX60gensym347_, n, orig, initialBinding, filter, Result, (&alt), (&dummyErrors), ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 10))&31U)))!=0), NIM_FALSE, flags);
			}
			LA38_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* opX60gensym353_;
				tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T45_;
				if (!((5 &((NU8)1<<((NU)((*Result).state)&7U)))!=0)) goto LA43_;
				T45_ = NIM_NIL;
				T45_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_214));
				opX60gensym353_ = newIdentNode__ast_3700(T45_, (*n).info);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), opX60gensym353_);
				asgnRef((void**) (&(*orig)._kind_6.sons->data[((NI) 0)]), opX60gensym353_);
				pickBestCandidate__sem_1529(c, opX60gensym353_, n, orig, initialBinding, filter, Result, (&alt), (&dummyErrors), ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 10))&31U)))!=0), NIM_FALSE, flags);
			}
			LA43_: ;
		}
		goto LA21_;
		LA23_: ;
		{
			NIM_BOOL T47_;
			NIM_BOOL T48_;
			NI T51_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* calleeName;
			tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw T54_;
			NimStringDesc* T55_;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T56_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* callOp;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T57_;
			tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw T58_;
			tyArray__id9c0PBojP5C2oM2bRQSViA T59_;
			tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw T60_;
			tyArray__id9c0PBojP5C2oM2bRQSViA T61_;
			T47_ = (NIM_BOOL)0;
			T48_ = (NIM_BOOL)0;
			T48_ = (((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 10))&31U)))!=0);
			if (!(T48_)) goto LA49_;
			T48_ = ((*f).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2));
			LA49_: ;
			T47_ = T48_;
			if (!(T47_)) goto LA50_;
			T51_ = (NI)0;
			T51_ = len__ast_3155(n);
			T47_ = (T51_ == ((NI) 3));
			LA50_: ;
			if (!T47_) goto LA52_;
			T54_ = dotdot___stdZenumutils_90(((NI) 0), ((NI) 2));
			T55_ = NIM_NIL;
			T55_ = X5BX5D___pureZunicode_3215((*(*f)._kind_5.ident).s, T54_);
			T56_ = NIM_NIL;
			T56_ = getIdent__idents_152((*c).cache, T55_);
			calleeName = newIdentNode__ast_3700(T56_, (*n).info);
			T57_ = NIM_NIL;
			T57_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_216));
			callOp = newIdentNode__ast_3700(T57_, (*n).info);
			T58_ = dotdot___pureZunicode_840(((NI) 0), ((NI) 1));
			nimZeroMem((void*)T59_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
			T59_[0] = callOp;
			T59_[1] = (*n)._kind_6.sons->data[((NI) 1)];
			T59_[2] = calleeName;
			X5BX5Deq___pragmas_1747((&(*n)._kind_6.sons), T58_, T59_, 3);
			T60_ = dotdot___pureZunicode_840(((NI) 0), ((NI) 1));
			nimZeroMem((void*)T61_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
			T61_[0] = callOp;
			T61_[1] = (*orig)._kind_6.sons->data[((NI) 1)];
			T61_[2] = calleeName;
			X5BX5Deq___pragmas_1747((&(*orig)._kind_6.sons), T60_, T61_, 3);
			pickBestCandidate__sem_1529(c, callOp, n, orig, initialBinding, filter, Result, (&alt), (&dummyErrors), ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 10))&31U)))!=0), NIM_FALSE, flags);
		}
		goto LA21_;
		LA52_: ;
		LA21_: ;
		{
			NIM_BOOL T64_;
			T64_ = (NIM_BOOL)0;
			T64_ = (overloadsState == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 0));
			if (!(T64_)) goto LA65_;
			T64_ = ((*Result).state == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 0));
			LA65_: ;
			if (!T64_) goto LA66_;
			{
				NimStringDesc* T72_;
				if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 18))&31U)))!=0))) goto LA70_;
				(*Result).state = ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 2);
				T72_ = NIM_NIL;
				T72_ = getMsgDiagnostic__sem_2038(c, flags, n, f);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T72_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_417, NIM_FALSE);
			}
			LA70_: ;
			goto BeforeRet_;
		}
		goto LA62_;
		LA66_: ;
		{
			if (!!(((*Result).state == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 1)))) goto LA74_;
			{
				NimStringDesc* T80_;
				NimStringDesc* T81_;
				if (!(((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 12))&31U)))!=0)) goto LA78_;
				T80_ = NIM_NIL;
				T80_ = renderTree__renderer_46(n, 4);
				T81_ = NIM_NIL;
				T81_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_280), T80_);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T81_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_418, NIM_FALSE);
			}
			goto LA76_;
			LA78_: ;
			{
				{
					if (!!(((1536 & (*n).flags) == 0))) goto LA85_;
					delete__closureiters_1723((&(*n)._kind_6.sons), ((NI) 2));
					asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), f);
				}
				LA85_: ;
			}
			LA76_: ;
			goto BeforeRet_;
		}
		goto LA62_;
		LA74_: ;
		LA62_: ;
	}
	LA8_: ;
	{
		NIM_BOOL T89_;
		NIM_BOOL T90_;
		NI T92_;
		NIM_BOOL T94_;
		T89_ = (NIM_BOOL)0;
		T90_ = (NIM_BOOL)0;
		T90_ = (alt.state == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 1));
		if (!(T90_)) goto LA91_;
		T92_ = (NI)0;
		T92_ = cmpCandidates__sigmatch_358(Result, (&alt));
		T90_ = (T92_ == ((NI) 0));
		LA91_: ;
		T89_ = T90_;
		if (!(T89_)) goto LA93_;
		T94_ = (NIM_BOOL)0;
		T94_ = sameMethodDispatcher__sem_1452((*Result).calleeSym, alt.calleeSym);
		T89_ = !(T94_);
		LA93_: ;
		if (!T89_) goto LA95_;
		{
			NimStringDesc* argX60gensym377_;
			if (!!(((*Result).state == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 1)))) goto LA99_;
			argX60gensym377_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_419);
			internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym377_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_419);
		}
		LA99_: ;
		{
			if (!((*(*(*c).graph).config).m.errorOutputs == 0)) goto LA103_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_420), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__DKP9c7KM5AbqYVP6Gd9blNUw_421, NIM_FALSE);
		}
		goto LA101_;
		LA103_: ;
		{
			NimStringDesc* args;
			tyArray__24KAM9afIUgUaqBaEBB6r9bg T116_;
			NimStringDesc* T117_;
			if (!((*(*(*c).graph).config).errorCounter == ((NI) 0))) goto LA106_;
			args = copyString(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_76));
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3155(n);
				i_2 = ((NI) 1);
				{
					while (1) {
						NimStringDesc* T115_;
						if (!(i_2 < colontmp_)) goto LA110;
						i = i_2;
						{
							if (!(((NI) 1) < i)) goto LA113_;
							args = resizeString(args, 2);
appendString(args, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_77));
						}
						LA113_: ;
						T115_ = NIM_NIL;
						T115_ = typeToString__types_50((*(*n)._kind_6.sons->data[i]).typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
						args = resizeString(args, (T115_ ? T115_->Sup.len : 0) + 0);
appendString(args, T115_);
						i_2 += ((NI) 1);
					} LA110: ;
				}
			}
			args = resizeString(args, 1);
appendString(args, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_78));
			nimZeroMem((void*)T116_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
			T116_[0] = getProcHeader__types_222((*(*c).graph).config, (*Result).calleeSym, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0), NIM_TRUE);
			T116_[1] = getProcHeader__types_222((*(*c).graph).config, alt.calleeSym, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0), NIM_TRUE);
			T116_[2] = copyString(args);
			T117_ = NIM_NIL;
			T117_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_422), T116_, 3);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T117_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_423, NIM_FALSE);
		}
		goto LA101_;
		LA106_: ;
		LA101_: ;
	}
	LA95_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, instGenericConvertersSons__sem_2369)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* x) {
	{
		if (!(*x).genericConverter) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					instGenericConvertersArg__sem_2345(c, (*n)._kind_6.sons->data[i], x);
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, updateDefaultParams__sem_2415)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* call) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3155(call);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* def;
					if (!(((*(*call)._kind_6.sons->data[i]).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 18))&31U)))!=0)) goto LA6_;
					def = (*(*(*calleeParams)._kind_6.sons->data[i])._kind_4.sym).ast;
					{
						if (!(((*def).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 19))&31U)))!=0)) goto LA10_;
						(*call).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 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__uh9cWvEa5Ty85PXOtuP5emw*, semResolvedCall__sem_2454)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* finalCallee;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* gp;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T94_;
{	result = NIM_NIL;
	finalCallee = (*x).calleeSym;
	info = getCallLineInfo__sem_2443(n);
	markUsed__sigmatch_85(c, info, finalCallee);
	{
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T5_;
		if (!!(((*x).fauxMatch == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0)))) goto LA3_;
		result = (*x).call;
		T5_ = getCallLineInfo__sem_2443((*result)._kind_6.sons->data[((NI) 0)]);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3707(finalCallee, T5_));
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = containsGenericType__types_3412((*result).typ);
			if (T8_) goto LA9_;
			T8_ = ((*x).fauxMatch == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 61));
			LA9_: ;
			if (!T8_) goto LA10_;
			asgnRef((void**) (&(*result).typ), newTypeS__semdata_763((*x).fauxMatch, c));
			{
				if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50))) goto LA14_;
				(*(*result).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 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_4617(gp);
		if (!T18_) goto LA19_;
		{
			if (!!(((393216 &((NU32)1<<((NU)((*(*x).calleeSym).kind)&31U)))!=0))) goto LA23_;
			{
				if (!((*(*x).calleeSym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 5) || (*(*x).calleeSym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 6))) goto LA27_;
				finalCallee = (*x).calleeSym;
			}
			goto LA25_;
			LA27_: ;
			{
				finalCallee = generateInstance__sem_1319(c, (*x).calleeSym, (*x).bindings, (*n).info);
			}
			LA25_: ;
		}
		goto LA21_;
		LA23_: ;
		{
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
				s = NIM_NIL;
				{
					NimStringDesc* argX60gensym132_;
					if (!!(((*gp).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 75)))) goto LA34_;
					argX60gensym132_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_84);
					internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym132_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_84);
				}
				LA34_: ;
				{
					NI i;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(gp);
						i_3 = ((NI) 0);
						{
							while (1) {
								tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA42_;
									argX60gensym135_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_85);
									internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym135_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_85);
								}
								LA42_: ;
								q = (*a)._kind_4.sym;
								{
									tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw symKind;
									tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s_2;
									tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T53_;
									tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T54_;
									tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
									RootObj* T55_;
									if (!((*(*q).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8) || (*(*q).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12) || (*(*q).typ).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 51) && (*(*q).typ).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54) || (*(*q).typ).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 56) && (*(*q).typ).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60) || (*(*q).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 62))) goto LA46_;
									{
										if (!((*(*q).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60))) goto LA50_;
										symKind = ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10);
									}
									goto LA48_;
									LA50_: ;
									{
										symKind = ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7);
									}
									LA48_: ;
									T53_ = nextSymId__ast_3103((*c).Sup.idgen);
									T54_ = NIM_NIL;
									T54_ = getCurrOwner__semdata_327(c);
									s_2 = newSym__ast_3409(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__1qw9bcK4rZXhGbJEJhkKQFA**) (&((*q).typ)))));
									t = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) (T55_));
									{
										if (!(t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA58_;
										{
											if (!(((*(*q).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 11))&63U)))!=0)) goto LA62_;
											t = (*q).typ;
										}
										goto LA60_;
										LA62_: ;
										{
											{
												NimStringDesc* T69_;
												if (!!(((*(*q).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54)))) goto LA67_;
												T69_ = NIM_NIL;
												T69_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_86), (*(*s_2).name).s);
												liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T69_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_87, NIM_FALSE);
											}
											LA67_: ;
											t = errorType__semdata_1032(c);
										}
										LA60_: ;
									}
									goto LA56_;
									LA58_: ;
									{
										NimStringDesc* T73_;
										if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 62))) goto LA71_;
										T73_ = NIM_NIL;
										T73_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_86), (*(*q).name).s);
										liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T73_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_88, NIM_FALSE);
										t = errorType__semdata_1032(c);
									}
									goto LA56_;
									LA71_: ;
									{
										if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9))) goto LA75_;
										t = generateTypeInstance__semtypinst_1086(c, (*x).bindings, (*a).info, t);
									}
									goto LA56_;
									LA75_: ;
									LA56_: ;
									asgnRef((void**) (&(*s_2).typ), t);
									{
										if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60))) goto LA79_;
										asgnRef((void**) (&(*s_2).ast), (*t).n);
									}
									LA79_: ;
									s = s_2;
									switch ((*s).kind) {
									case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10):
									{
										{
											if (!!(((*s).ast == 0))) goto LA84_;
											add__ast_4798((*x).call, (*s).ast);
										}
										goto LA82_;
										LA84_: ;
										{
											add__ast_4798((*x).call, (*(*c).graph).emptyNode);
										}
										LA82_: ;
									}
									break;
									case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7):
									{
										tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T88_;
										T88_ = NIM_NIL;
										T88_ = newSymNode__ast_3707(s, (*n).info);
										add__ast_4798((*x).call, T88_);
									}
									break;
									default:
									{
										{
											NimStringDesc* argX60gensym428_;
											if (!NIM_TRUE) goto LA92_;
											argX60gensym428_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_426);
											internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym428_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_426);
										}
										LA92_: ;
									}
									break;
									}
								}
								LA46_: ;
								i_3 += ((NI) 1);
							} LA39: ;
						}
					}
				}
			}
		}
		LA21_: ;
	}
	LA19_: ;
	result = (*x).call;
	instGenericConvertersSons__sem_2369(c, result, x);
	T94_ = getCallLineInfo__sem_2443((*result)._kind_6.sons->data[((NI) 0)]);
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3707(finalCallee, T94_));
	asgnRef((void**) (&(*result).typ), (*(*finalCallee).typ).sons->data[((NI) 0)]);
	updateDefaultParams__sem_2415(result);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, canDeref__sem_2527)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	NIM_BOOL T4_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T6_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NI)0;
	T2_ = len__ast_3155(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__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
	if (!(T4_)) goto LA5_;
	T6_ = NIM_NIL;
	T6_ = skipTypes__ast_3723(t, TM__DKP9c7KM5AbqYVP6Gd9blNUw_141);
	T4_ = ((*T6_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21) || (*T6_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22));
	LA5_: ;
	T1_ = T4_;
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tryDeref__sem_2543)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65), (*n).info);
	T1_ = NIM_NIL;
	T1_ = skipTypes__ast_3723((*n).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
	asgnRef((void**) (&(*result).typ), (*T1_).sons->data[((NI) 0)]);
	add__ast_4798(result, n);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semOverloadedCall__sem_2551)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig, tySet_tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw filter, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tySequence__LFzufdBEvfOUK6PWh0HUtQ* errors;
	tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw r;
	result = NIM_NIL;
	errors = NIM_NIL;
	nimZeroMem((void*)(&r), sizeof(tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw));
	resolveOverloads__sem_2071(c, n, nOrig, filter, flags, (&errors), ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 10))&31U)))!=0), (&r));
	{
		if (!(r.state == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 1))) goto LA3_;
		{
			NI T7_;
			tyTuple__w6N3FtUNd27MnpJcSoTdfQ T10_;
			tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg _;
			NimStringDesc* candidates;
			NimStringDesc* T11_;
			NimStringDesc* T12_;
			T7_ = (errors ? errors->Sup.len : 0);
			if (!(((NI) 0) < T7_)) goto LA8_;
			nimZeroMem((void*)(&T10_), sizeof(tyTuple__w6N3FtUNd27MnpJcSoTdfQ));
			presentFailedCandidates__sem_1669(c, n, errors, (&T10_));
			_ = (tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg)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__DKP9c7KM5AbqYVP6Gd9blNUw_424));
appendString(T11_, T12_);
appendString(T11_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_282));
appendString(T11_, candidates);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 103), T11_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_425, NIM_FALSE);
		}
		LA8_: ;
		result = semResolvedCall__sem_2454(c, (&r), n, flags);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T14_;
		tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw r_2;
		T14_ = (NIM_BOOL)0;
		T14_ = (((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 0))&31U)))!=0);
		if (!(T14_)) goto LA15_;
		T14_ = canDeref__sem_2527(n);
		LA15_: ;
		if (!T14_) goto LA16_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), tryDeref__sem_2543((*n)._kind_6.sons->data[((NI) 1)]));
		nimZeroMem((void*)(&r_2), sizeof(tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw));
		resolveOverloads__sem_2071(c, n, nOrig, filter, flags, (&errors), ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 10))&31U)))!=0), (&r_2));
		{
			if (!(r_2.state == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 1))) goto LA20_;
			result = semResolvedCall__sem_2454(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__uh9cWvEa5Ty85PXOtuP5emw* T27_;
				if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 10))&31U)))!=0))) goto LA25_;
				T27_ = NIM_NIL;
				T27_ = semOverloadedCall__sem_2551(c, n, nOrig, filter, (flags | 1024));
				(void)(T27_);
			}
			goto LA23_;
			LA25_: ;
			{
				if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 18))&31U)))!=0))) goto LA29_;
				notFoundError__sem_1955(c, n, errors);
			}
			goto LA23_;
			LA29_: ;
			LA23_: ;
		}
		LA18_: ;
	}
	goto LA1_;
	LA16_: ;
	{
		{
			if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 10))&31U)))!=0))) goto LA34_;
			result = semOverloadedCall__sem_2551(c, n, nOrig, filter, (flags | 1024));
		}
		goto LA32_;
		LA34_: ;
		{
			if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 18))&31U)))!=0))) goto LA37_;
			notFoundError__sem_1955(c, n, errors);
		}
		goto LA32_;
		LA37_: ;
		LA32_: ;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isClosureIterator__ast_5016)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* 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__b28l2MkhJpnFhatVrsrXpg) 25));
	if (!(T2_)) goto LA3_;
	T2_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((*typ).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semOverloadedCallAnalyseEffects__sem_17652)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	{
		if (!!(((flags & 14) == 0))) goto LA3_;
		result = semOverloadedCall__sem_2551(c, n, nOrig, 520192, flags);
	}
	goto LA1_;
	LA3_: ;
	{
		result = semOverloadedCall__sem_2551(c, n, nOrig, 487424, flags);
	}
	LA1_: ;
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* callee;
		if (!!((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA8_;
		{
			if (!!(((*(*result)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA12_;
			internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_427), TM__DKP9c7KM5AbqYVP6Gd9blNUw_428);
			goto BeforeRet_;
		}
		LA12_: ;
		callee = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		switch ((*callee).kind) {
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
		{
		}
		break;
		default:
		{
			{
				NIM_BOOL T18_;
				NIM_BOOL T19_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym4647_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym4648_;
				NIM_BOOL T22_;
				NimStringDesc* T25_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T26_;
				T18_ = (NIM_BOOL)0;
				T19_ = (NIM_BOOL)0;
				T19_ = ((*callee).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15));
				if (!(T19_)) goto LA20_;
				xX60gensym4647_ = callee;
				xX60gensym4648_ = (*(*c).p).owner;
				T19_ = ((NI)((NI)((NU64)(((NI) ((*xX60gensym4647_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym4647_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym4648_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym4648_).Sup.itemId.item))));
				LA20_: ;
				T18_ = T19_;
				if (!(T18_)) goto LA21_;
				T22_ = (NIM_BOOL)0;
				T22_ = isClosureIterator__ast_5016((*(*(*c).p).owner).typ);
				T18_ = !(T22_);
				LA21_: ;
				if (!T18_) goto LA23_;
				T25_ = NIM_NIL;
				T25_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_429), (*(*callee).name).s);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T25_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_430, NIM_FALSE);
				T26_ = NIM_NIL;
				T26_ = errorSym__lookups_686(c, n);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(T26_));
			}
			goto LA16_;
			LA23_: ;
			{
				if (!((*callee).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15))) goto LA28_;
				{
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
					if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 2))&31U)))!=0)) goto LA32_;
					typ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 64), c);
					rawAddSon__ast_4276(typ, (*result).typ, NIM_TRUE);
					asgnRef((void**) (&(*result).typ), typ);
				}
				LA32_: ;
			}
			goto LA16_;
			LA28_: ;
			LA16_: ;
		}
		break;
		}
	}
	LA8_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, propertyWriteAccess__sem_18799)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* id;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* setterId;
	NimStringDesc* T1_;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* aOrig;
	tyArray__id9c0PBojP5C2oM2bRQSViA T3_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig;
	tyArray__id9c0PBojP5C2oM2bRQSViA T4_;
	result = NIM_NIL;
	id = considerQuotedIdent__lookups_29(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_152((*c).cache, T1_);
	setterId = newIdentNode__ast_3700(T2_, (*n).info);
	aOrig = (*nOrig)._kind_6.sons->data[((NI) 0)];
	nimZeroMem((void*)T3_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
	T3_[0] = setterId;
	T3_[1] = (*a)._kind_6.sons->data[((NI) 0)];
	T3_[2] = semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 1)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	result = newTreeI__ast_3384(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, T3_, 3);
	(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 10)) & 31);
	nimZeroMem((void*)T4_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
	T4_[0] = setterId;
	T4_[1] = (*aOrig)._kind_6.sons->data[((NI) 0)];
	T4_[2] = (*nOrig)._kind_6.sons->data[((NI) 1)];
	orig = newTreeI__ast_3384(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, T4_, 3);
	result = semOverloadedCallAnalyseEffects__sem_17652(c, result, orig, 0);
	{
		if (!!((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA7_;
		result = afterCallActions__sem_17753(c, result, nOrig, 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	}
	LA7_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isSymChoice__sem_15478)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, dotTransformation__sem_18563)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isSymChoice__sem_15478((*n)._kind_6.sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 25), (*n).info);
		add__ast_4798(result, (*n)._kind_6.sons->data[((NI) 1)]);
		T6_ = NIM_NIL;
		T6_ = copyTree__ast_4432((*n)._kind_6.sons->data[((NI) 0)]);
		add__ast_4798(result, T6_);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* i;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T8_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T9_;
		i = considerQuotedIdent__lookups_29(c, (*n)._kind_6.sons->data[((NI) 1)], n);
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 25), (*n).info);
		(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 9)) & 31);
		T8_ = NIM_NIL;
		T8_ = newIdentNode__ast_3700(i, (*(*n)._kind_6.sons->data[((NI) 1)]).info);
		add__ast_4798(result, T8_);
		T9_ = NIM_NIL;
		T9_ = copyTree__ast_4432((*n)._kind_6.sons->data[((NI) 0)]);
		add__ast_4798(result, T9_);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildOverloadedSubscripts__sem_18603)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
	T1_ = NIM_NIL;
	T1_ = newIdentNode__ast_3700(ident, (*n).info);
	add__ast_4798(result, T1_);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s;
		s = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(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_4798(result, s);
					i_2 += ((NI) 1);
				} LA5: ;
			}
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getRoot__sem_18924)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL followDeref) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	{
		while (1) {
			switch ((*result).kind) {
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65):
			{
				{
					if (!followDeref) goto LA6_;
					result = (*result)._kind_6.sons->data[((NI) 0)];
				}
				goto LA4_;
				LA6_: ;
				{
					goto LA1;
				}
				LA4_: ;
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 63) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 64):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 66) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 67):
			{
				result = (*result)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59):
			{
				result = (*result)._kind_6.sons->data[((NI) 1)];
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	return result;
}
static N_INLINE(NIM_BOOL, scopedLifetime__sem_18931)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri) {
	NIM_BOOL result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NIM_BOOL T4_;
	result = (NIM_BOOL)0;
	n = getRoot__sem_18924(ri, NIM_FALSE);
	T1_ = (NIM_BOOL)0;
	T1_ = ((*ri).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) && (*ri).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32) || (*ri).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T4_ = (NIM_BOOL)0;
	T4_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
	LA6_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, escapes__sem_18956)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* le) {
	NIM_BOOL result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	n = getRoot__sem_18924(le, NIM_TRUE);
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
	if (!(T1_)) goto LA2_;
	T1_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, borrowCheck__sem_18917)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* le, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T8_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T11_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T6_ = !(((*ri).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T6_)) goto LA7_;
		T8_ = NIM_NIL;
		T8_ = skipTypes__ast_3723((*ri).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_436);
		T6_ = ((*T8_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45));
		LA7_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA9_;
		T5_ = !(((*le).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA9_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA10_;
		T11_ = NIM_NIL;
		T11_ = skipTypes__ast_3723((*le).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_436);
		T4_ = !(((*T11_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45)));
		LA10_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA12_;
		T3_ = scopedLifetime__sem_18931(c, ri);
		LA12_: ;
		if (!T3_) goto LA13_;
		{
			NIM_BOOL T17_;
			NimStringDesc* T21_;
			NimStringDesc* T22_;
			T17_ = (NIM_BOOL)0;
			T17_ = ((*le).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
			if (!(T17_)) goto LA18_;
			T17_ = ((*(*le)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11));
			LA18_: ;
			if (!T17_) goto LA19_;
			T21_ = NIM_NIL;
			T22_ = NIM_NIL;
			T22_ = typeToString__types_50((*le).typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T21_ = rawNewString((T22_ ? T22_->Sup.len : 0) + 86);
appendString(T21_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_437));
appendString(T21_, T22_);
appendString(T21_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_438));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T21_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_439, NIM_FALSE);
		}
		goto LA15_;
		LA19_: ;
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = escapes__sem_18956(c, le);
			if (!T24_) goto LA25_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_440), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_441, NIM_FALSE);
		}
		goto LA15_;
		LA25_: ;
		LA15_: ;
	}
	LA13_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, goodLineInfo__sem_19000)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg) {
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw));
	{
		NIM_BOOL T3_;
		NI T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*arg).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126));
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = len__ast_3155(arg);
		T3_ = (((NI) 0) < T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = len__ast_3155(arg);
		result = goodLineInfo__sem_19000((*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__uh9cWvEa5Ty85PXOtuP5emw*, takeImplicitAddr__sem_18823)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL isLent) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* root;
	tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow valid;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T43_;
{	result = NIM_NIL;
	root = exprRoot__parampatterns_300(n);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((root == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__9be9c6fEXk5NwyPvxxb6toPA) 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__DKP9c7KM5AbqYVP6Gd9blNUw_443));
			T14_ = NIM_NIL;
			T14_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_442), T13_, 3);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T14_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_444, NIM_FALSE);
		}
		goto LA7_;
		LA11_: ;
		{
			NIM_BOOL T16_;
			tyArray__24KAM9afIUgUaqBaEBB6r9bg T20_;
			NimStringDesc* T21_;
			T16_ = (NIM_BOOL)0;
			T16_ = ((*root).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__DKP9c7KM5AbqYVP6Gd9blNUw_443));
			T21_ = NIM_NIL;
			T21_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_445), T20_, 3);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T21_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_446, NIM_FALSE);
		}
		goto LA7_;
		LA18_: ;
		LA7_: ;
	}
	LA5_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 64):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 63):
	{
		result = n;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47):
	{
		result = (*n)._kind_6.sons->data[((NI) 0)];
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
	{
		{
			NI T27_;
			T27_ = (NI)0;
			T27_ = len__ast_3155(n);
			if (!(T27_ == ((NI) 1))) goto LA28_;
			result = (*n)._kind_6.sons->data[((NI) 0)];
			goto BeforeRet_;
		}
		LA28_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65):
	{
	}
	break;
	default:
	{
	}
	break;
	}
	valid = isAssignable__sem_16158(c, n, isLent);
	{
		if (!!((valid == ((tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow) 1)))) goto LA34_;
		{
			NimStringDesc* T40_;
			NimStringDesc* T41_;
			if (!(valid == ((tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow) 2))) goto LA38_;
			T40_ = NIM_NIL;
			T40_ = renderTree__renderer_46(n, 4);
			T41_ = NIM_NIL;
			T41_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_240), T40_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T41_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_447, NIM_FALSE);
		}
		goto LA36_;
		LA38_: ;
		{
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_245), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_448, NIM_FALSE);
		}
		LA36_: ;
	}
	LA34_: ;
	T43_ = NIM_NIL;
	{
		if (!((*(*n).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*(*n).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47))) goto LA46_;
		T43_ = (*n).typ;
	}
	goto LA44_;
	LA46_: ;
	{
		T43_ = makePtrType__semdata_772(c, (*n).typ);
	}
	LA44_: ;
	result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 64), (*n).info, T43_);
	add__ast_4798(result, n);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, asgnToResultVar__sem_18872)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* le, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri) {
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		if (!((*le).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65))) goto LA3_;
		x = (*le)._kind_6.sons->data[((NI) 0)];
		{
			if (!((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA7_;
			{
				NIM_BOOL T11_;
				NIM_BOOL T13_;
				tyEnum_ViewTypeKind__u2B9a1gH4LPPJaSqULlL7yQ T15_;
				T11_ = (NIM_BOOL)0;
				T11_ = ((*(*x)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11));
				if (!(T11_)) goto LA12_;
				T13_ = (NIM_BOOL)0;
				T13_ = ((*(*x).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*(*x).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47));
				if (T13_) goto LA14_;
				T15_ = (tyEnum_ViewTypeKind__u2B9a1gH4LPPJaSqULlL7yQ)0;
				T15_ = classifyViewType__typeallowed_579((*x).typ);
				T13_ = !((T15_ == ((tyEnum_ViewTypeKind__u2B9a1gH4LPPJaSqULlL7yQ) 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_18823(c, ri, ((*(*x).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47))));
				(*(*x).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 20)) & 63);
			}
			goto LA9_;
			LA16_: ;
			{
				if (!(((*(*x)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3))&63U)))!=0)) goto LA19_;
				(*(*x).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 20)) & 63);
			}
			goto LA9_;
			LA19_: ;
			LA9_: ;
		}
		LA7_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semAsgn__sem_16464)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_SemAsgnMode__wU47lOiWWDnJezONEKyuEA mode) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* le;
{	result = NIM_NIL;
	checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
	a = (*n)._kind_6.sons->data[((NI) 0)];
	switch ((*a).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig;
		nOrig = copyTree__ast_4432(n);
		a = builtinFieldAccess__sem_18435(c, a, 1);
		{
			if (!(a == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA4_;
			a = propertyWriteAccess__sem_18799(c, n, nOrig, (*n)._kind_6.sons->data[((NI) 0)]);
			{
				if (!!((a == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA8_;
				result = a;
				goto BeforeRet_;
			}
			LA8_: ;
			a = dotTransformation__sem_18563(c, (*n)._kind_6.sons->data[((NI) 0)]);
			{
				if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 25))) goto LA12_;
				transitionSonsKind__ast_4347(a, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 27));
				a = semExprWithType__sem_57(c, a, 1, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			}
			LA12_: ;
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
	{
		a = semSubscript__sem_16468(c, a, 1);
		{
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T19_;
			if (!(a == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA17_;
			T19_ = NIM_NIL;
			T19_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_136));
			result = buildOverloadedSubscripts__sem_18603((*n)._kind_6.sons->data[((NI) 0)], T19_);
			add__ast_4798(result, (*n)._kind_6.sons->data[((NI) 1)]);
			{
				if (!(mode == ((tyEnum_SemAsgnMode__wU47lOiWWDnJezONEKyuEA) 1))) goto LA22_;
				bracketNotFoundError__sem_1998(c, result);
				result = n;
				goto BeforeRet_;
			}
			goto LA20_;
			LA22_: ;
			{
				result = semExprNoType__sem_62(c, result);
				goto BeforeRet_;
			}
			LA20_: ;
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 40):
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T26_;
		T26_ = NIM_NIL;
		T26_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_135));
		result = buildOverloadedSubscripts__sem_18603((*n)._kind_6.sons->data[((NI) 0)], T26_);
		add__ast_4798(result, (*n)._kind_6.sons->data[((NI) 1)]);
		result = semExprNoType__sem_62(c, result);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160):
	{
		{
			NI T30_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T33_;
			T30_ = (NI)0;
			T30_ = len__ast_3155(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_87(c, T33_, 0);
			goto BeforeRet_;
		}
		goto LA28_;
		LA31_: ;
		{
			a = semExprWithType__sem_57(c, a, 1, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		LA28_: ;
	}
	break;
	default:
	{
		a = semExprWithType__sem_57(c, a, 1, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	}
	break;
	}
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), a);
	le = (*a).typ;
	{
		if (!(le == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA38_;
		liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_431), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_432, NIM_FALSE);
	}
	goto LA36_;
	LA38_: ;
	{
		NIM_BOOL T41_;
		NIM_BOOL T42_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T43_;
		tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow T45_;
		NIM_BOOL T47_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T48_;
		NimStringDesc* T52_;
		NimStringDesc* T53_;
		T41_ = (NIM_BOOL)0;
		T42_ = (NIM_BOOL)0;
		T43_ = NIM_NIL;
		T43_ = skipTypes__ast_3723(le, TM__DKP9c7KM5AbqYVP6Gd9blNUw_141);
		T42_ = !(((*T43_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23)));
		if (!(T42_)) goto LA44_;
		T45_ = (tyEnum_TAssignableResult__QCmMYhJezk585e39ahToCow)0;
		T45_ = isAssignable__sem_16158(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_3723(le, TM__DKP9c7KM5AbqYVP6Gd9blNUw_235);
		T47_ = ((*T48_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27) || (*T48_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 48));
		if (!(T47_)) goto LA49_;
		T47_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 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__DKP9c7KM5AbqYVP6Gd9blNUw_433), T52_);
		liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T53_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_434, NIM_FALSE);
	}
	goto LA36_;
	LA50_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* lhs;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* rhs;
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T89_;
		lhs = (*n)._kind_6.sons->data[((NI) 0)];
		rhs = semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 1)], 0, le);
		{
			NIM_BOOL T57_;
			T57_ = (NIM_BOOL)0;
			T57_ = ((*lhs).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
			if (!(T57_)) goto LA58_;
			T57_ = ((*(*lhs)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11));
			LA58_: ;
			if (!T57_) goto LA59_;
			asgnRef((void**) (&(*n).typ), (*c).enforceVoidContext);
			{
				NIM_BOOL T63_;
				NIM_BOOL T65_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* rhsTyp;
				T63_ = (NIM_BOOL)0;
				T63_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17)));
				if (!(T63_)) goto LA64_;
				T65_ = (NIM_BOOL)0;
				T65_ = isMetaType__ast_3474((*(*lhs)._kind_4.sym).typ);
				if (!(T65_)) goto LA66_;
				T65_ = !(((*(*(*lhs)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
				LA66_: ;
				T63_ = T65_;
				LA64_: ;
				if (!T63_) goto LA67_;
				rhsTyp = (*rhs).typ;
				{
					NIM_BOOL T71_;
					T71_ = (NIM_BOOL)0;
					T71_ = ((*rhsTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52) || (*rhsTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 53));
					if (!(T71_)) goto LA72_;
					T71_ = (((*rhsTyp).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 10))&63U)))!=0);
					LA72_: ;
					if (!T71_) goto LA73_;
					rhsTyp = lastSon__ast_3731(rhsTyp);
				}
				LA73_: ;
				{
					if (!((*(*(*lhs)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 59))) goto LA77_;
					rhsTyp = skipIntLit__magicsys_124(rhsTyp, (*c).Sup.idgen);
				}
				LA77_: ;
				{
					tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA T81_;
					T81_ = (tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA)0;
					T81_ = cmpTypes__sigmatch_3075(c, (*lhs).typ, rhsTyp);
					if (!((1280 &((NU16)1<<((NU)(T81_)&15U)))!=0)) goto LA82_;
					{
						NimStringDesc* argX60gensym5002_;
						if (!!(!(((*(*c).p).resultSym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))))) goto LA86_;
						argX60gensym5002_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_435);
						internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym5002_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_435);
					}
					LA86_: ;
					typeAllowedCheck__sem_485(c, (*n).info, rhsTyp, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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 LA79_;
				LA82_: ;
				{
					typeMismatch__types_3934((*(*c).graph).config, (*n).info, (*lhs).typ, rhsTyp, rhs);
				}
				LA79_: ;
			}
			LA67_: ;
		}
		LA59_: ;
		borrowCheck__sem_18917(c, n, lhs, rhs);
		T89_ = goodLineInfo__sem_19000((*n)._kind_6.sons->data[((NI) 1)]);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), fitNode__sem_73(c, le, rhs, T89_));
		fixAbstractType__sem_16115(c, n);
		asgnToResultVar__sem_18872(c, n, (*n)._kind_6.sons->data[((NI) 0)], (*n)._kind_6.sons->data[((NI) 1)]);
	}
	LA36_: ;
	result = n;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isIterator__ast_5005)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
	if (!(T1_)) goto LA2_;
	T1_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 15))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semProcBody__sem_69)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	result = semExpr__sem_52(c, n, 0, expectedType);
	{
		NIM_BOOL T4_;
		NIM_BOOL T6_;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*(*c).p).resultSym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
		if (!(T4_)) goto LA5_;
		T6_ = (NIM_BOOL)0;
		T6_ = isEmptyType__ast_4780((*result).typ);
		T4_ = !(T6_);
		LA5_: ;
		if (!T4_) goto LA7_;
		{
			if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23))) goto LA11_;
			asgnRef((void**) (&(*result).typ), ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		goto LA9_;
		LA11_: ;
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = ((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126));
			if (!(T14_)) goto LA15_;
			T14_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5));
			LA15_: ;
			if (!T14_) goto LA16_;
			fixNilType__sem_9964(c, result);
		}
		goto LA9_;
		LA16_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
			a = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), (*n).info, ((NI) 2));
			asgnRef((void**) (&(*a)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704((*(*c).p).resultSym));
			asgnRef((void**) (&(*a)._kind_6.sons->data[((NI) 1)]), result);
			result = semAsgn__sem_16464(c, a, ((tyEnum_SemAsgnMode__wU47lOiWWDnJezONEKyuEA) 0));
		}
		LA9_: ;
	}
	goto LA2_;
	LA7_: ;
	{
		discardCheck__sem_9980(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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
		LA24_: ;
		T22_ = T23_;
		if (!(T22_)) goto LA25_;
		T22_ = isMetaType__ast_3474((*(*(*c).p).resultSym).typ);
		LA25_: ;
		if (!T22_) goto LA26_;
		{
			NIM_BOOL T30_;
			T30_ = (NIM_BOOL)0;
			T30_ = isEmptyType__ast_4780((*result).typ);
			if (!T30_) goto LA31_;
			asgnRef((void**) (&(*(*(*c).p).resultSym).typ), errorType__semdata_1032(c));
			asgnRef((void**) (&(*(*(*(*c).p).owner).typ).sons->data[((NI) 0)]), ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		goto LA28_;
		LA31_: ;
		{
			NimStringDesc* T34_;
			T34_ = NIM_NIL;
			T34_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_449), (*(*(*(*c).p).owner).name).s);
			liMessage__msgs_1128((*(*c).graph).config, (*(*(*c).p).resultSym).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T34_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_450, NIM_FALSE);
		}
		LA28_: ;
	}
	LA26_: ;
	{
		NIM_BOOL T37_;
		NIM_BOOL T38_;
		NimStringDesc* T43_;
		T37_ = (NIM_BOOL)0;
		T38_ = (NIM_BOOL)0;
		T38_ = isIterator__ast_5005((*(*(*c).p).owner).typ);
		if (!(T38_)) goto LA39_;
		T38_ = !(((*(*(*(*c).p).owner).typ).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA39_: ;
		T37_ = T38_;
		if (!(T37_)) goto LA40_;
		T37_ = ((*(*(*(*(*c).p).owner).typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 59));
		LA40_: ;
		if (!T37_) goto LA41_;
		T43_ = NIM_NIL;
		T43_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_449), (*(*(*(*c).p).owner).name).s);
		liMessage__msgs_1128((*(*c).graph).config, (*(*(*c).p).owner).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T43_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_451, NIM_FALSE);
	}
	LA41_: ;
	closeScope__lookups_108(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, instantiateBody__sem_1042)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* params, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* orig) {
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* procParams;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
		tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ symMap;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA3_;
		procParams = (*(*result).typ).n;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(procParams);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					addDecl__lookups_1517(c, (*(*procParams)._kind_6.sons->data[i])._kind_4.sym);
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
		maybeAddResult__sem_103(c, result, (*result).ast);
		(*c).inGenericInst += ((NI) 1);
		b = (*n)._kind_6.sons->data[((NI) 6)];
		nimZeroMem((void*)(&symMap), sizeof(tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ));
		initIdTable__ast_4084((&symMap));
		{
			if (!!((params == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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_3155(params);
				i_4 = ((NI) 1);
				{
					while (1) {
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0)) goto LA17_;
							idTablePut__astalgo_70((&symMap), (*((tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA**) (&((*(*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_1004(c, b, result, orig, (&symMap));
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* resultType;
			if (!!((((*orig).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 31))&63U)))!=0))) goto LA21_;
			{
				if (!((*result).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17))) goto LA25_;
				resultType = sysTypeFromName__magicsys_55((*c).graph, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_104));
			}
			goto LA23_;
			LA25_: ;
			{
				NIM_BOOL T28_;
				T28_ = (NIM_BOOL)0;
				T28_ = isInlineIterator__ast_4990((*result).typ);
				if (!!(T28_)) goto LA29_;
				resultType = (*(*result).typ).sons->data[((NI) 0)];
			}
			goto LA23_;
			LA29_: ;
			{
				resultType = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
			}
			LA23_: ;
			b = semProcBody__sem_69(c, b, resultType);
		}
		LA21_: ;
		asgnRef((void**) (&(*(*result).ast)._kind_6.sons->data[((NI) 6)]), hloBody__sem_793(c, b));
		(*result).flags &= ~(((NU64)1) << ((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 4)) & 63));
		trackProc__sempass50_4721(c, result, (*(*result).ast)._kind_6.sons->data[((NI) 6)]);
		(*c).inGenericInst -= ((NI) 1);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, finishMethod__sem_117)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasObjParam__sem_14016(s);
		if (!T3_) goto LA4_;
		methodDef__cgmeth_264((*c).graph, (*c).Sup.idgen, s);
	}
	LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, generateInstance__sem_1319)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fn, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T9_;
	NI T10_;
	tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw* oldMatchedConcept;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* oldScope;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T14_;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T15_;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T16_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* gp;
	tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA* entry;
	NI i;
	NI T21_;
	NI T22_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* oldPrc;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T104_;
	result = NIM_NIL;
	{
		NimStringDesc* argX60gensym216_;
		if (!!(!(((393216 &((NU32)1<<((NU)((*fn).kind)&31U)))!=0)))) goto LA3_;
		argX60gensym216_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_79);
		internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym216_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_79);
	}
	LA3_: ;
	{
		if (!(((NI) 50) < (*c).instCounter)) goto LA7_;
		liMessage__msgs_1128((*(*c).graph).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_81), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__DKP9c7KM5AbqYVP6Gd9blNUw_82, NIM_FALSE);
	}
	LA7_: ;
	(*c).instCounter += ((NI) 1);
	n = copyTree__ast_4432((*fn).ast);
	T9_ = NIM_NIL;
	T9_ = getModule__astalgo_216(fn);
	asgnRef((void**) (&(*c).friendModules), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) incrSeqV3((TGenericSeq*)((*c).friendModules), (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_)));
	T10_ = (*c).friendModules->Sup.len++;
	asgnRef((void**) (&(*c).friendModules->data[T10_]), T9_);
	oldMatchedConcept = (*c).matchedConcept;
	(*c).matchedConcept = ((tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw*) NIM_NIL);
	oldScope = (*c).currentScope;
	{
		while (1) {
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = isTopLevel__semdata_1121(c);
			if (!!(T13_)) goto LA12;
			asgnRef((void**) (&(*c).currentScope), (*(*c).currentScope).parent);
		} LA12: ;
	}
	T14_ = nextSymId__ast_3103((*c).Sup.idgen);
	result = copySym__ast_4042(fn, T14_);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 2)) & 63);
	asgnRef((void**) (&(*result).owner), fn);
	asgnRef((void**) (&(*result).ast), n);
	pushOwner__semdata_334(c, result);
	T15_ = NIM_NIL;
	T15_ = openScope__lookups_76(c);
	fillMixinScope__sem_1307(c);
	T16_ = NIM_NIL;
	T16_ = openScope__lookups_76(c);
	gp = (*n)._kind_6.sons->data[((NI) 2)];
	{
		NimStringDesc* argX60gensym224_;
		if (!!(((*gp).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 75)))) goto LA19_;
		argX60gensym224_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_83);
		internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym224_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_83);
	}
	LA19_: ;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(result));
	pushInfoContext__msgs_500((*(*c).graph).config, info, (*(*fn).name).s);
	entry = new__sem_1359();
	asgnRef((void**) (&(*entry).sym), result);
	i = ((NI) 0);
	T21_ = (NI)0;
	T21_ = len__ast_3990((*fn).typ);
	T22_ = (NI)0;
	T22_ = len__ast_3155(gp);
	if ((*entry).concreteTypes) { nimGCunrefNoCycle((*entry).concreteTypes); (*entry).concreteTypes = NIM_NIL; }
	(*entry).concreteTypes = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeqRC1((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), ((NI) ((NI)((NI)(T21_ + T22_) - ((NI) 1)))));
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		s = NIM_NIL;
		{
			NimStringDesc* argX60gensym132_;
			if (!!(((*gp).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 75)))) goto LA26_;
			argX60gensym132_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_84);
			internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym132_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_84);
		}
		LA26_: ;
		{
			NI i_2;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(gp);
				i_4 = ((NI) 0);
				{
					while (1) {
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA34_;
							argX60gensym135_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_85);
							internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym135_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_85);
						}
						LA34_: ;
						q = (*a)._kind_4.sym;
						{
							tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw symKind;
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s_2;
							tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T45_;
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T46_;
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
							RootObj* T47_;
							if (!((*(*q).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8) || (*(*q).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12) || (*(*q).typ).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 51) && (*(*q).typ).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54) || (*(*q).typ).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 56) && (*(*q).typ).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60) || (*(*q).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 62))) goto LA38_;
							{
								if (!((*(*q).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60))) goto LA42_;
								symKind = ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10);
							}
							goto LA40_;
							LA42_: ;
							{
								symKind = ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7);
							}
							LA40_: ;
							T45_ = nextSymId__ast_3103((*c).Sup.idgen);
							T46_ = NIM_NIL;
							T46_ = getCurrOwner__semdata_327(c);
							s_2 = newSym__ast_3409(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__1qw9bcK4rZXhGbJEJhkKQFA**) (&((*q).typ)))));
							t = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) (T47_));
							{
								if (!(t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA50_;
								{
									if (!(((*(*q).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 11))&63U)))!=0)) goto LA54_;
									t = (*q).typ;
								}
								goto LA52_;
								LA54_: ;
								{
									{
										NimStringDesc* T61_;
										if (!!(((*(*q).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54)))) goto LA59_;
										T61_ = NIM_NIL;
										T61_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_86), (*(*s_2).name).s);
										liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T61_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_87, NIM_FALSE);
									}
									LA59_: ;
									t = errorType__semdata_1032(c);
								}
								LA52_: ;
							}
							goto LA48_;
							LA50_: ;
							{
								NimStringDesc* T65_;
								if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 62))) goto LA63_;
								T65_ = NIM_NIL;
								T65_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_86), (*(*q).name).s);
								liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T65_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_88, NIM_FALSE);
								t = errorType__semdata_1032(c);
							}
							goto LA48_;
							LA63_: ;
							{
								if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9))) goto LA67_;
								t = generateTypeInstance__semtypinst_1086(c, pt, (*a).info, t);
							}
							goto LA48_;
							LA67_: ;
							LA48_: ;
							asgnRef((void**) (&(*s_2).typ), t);
							{
								if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60))) goto LA71_;
								asgnRef((void**) (&(*s_2).ast), (*t).n);
							}
							LA71_: ;
							s = s_2;
							addDecl__lookups_1517(c, s);
							asgnRef((void**) (&(*entry).concreteTypes->data[i]), (*s).typ);
							i += ((NI) 1);
						}
						LA38_: ;
						i_4 += ((NI) 1);
					} LA31: ;
				}
			}
		}
	}
	rawPushProcCon__sem_859(c, result);
	instantiateProcType__sem_1211(c, pt, result, info);
	{
		NI j;
		NI colontmp__2;
		NI i_5;
		j = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__ast_3990((*result).typ);
		i_5 = ((NI) 1);
		{
			while (1) {
				if (!(i_5 < colontmp__2)) goto LA75;
				j = i_5;
				asgnRef((void**) (&(*entry).concreteTypes->data[i]), (*(*result).typ).sons->data[j]);
				i += ((NI) 1);
				i_5 += ((NI) 1);
			} LA75: ;
		}
	}
	{
		if (!(((*(*result).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 33))&63U)))!=0)) goto LA78_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 28)) & 63);
	}
	LA78_: ;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), (*(*c).graph).emptyNode);
	oldPrc = genericCacheGet__sem_997((*c).graph, fn, (*entry), (*c).compilesContextId);
	{
		tyObject_TInstantiationPair__d4lcZMnmQK2Jh2jYkdgB4w T84_;
		NI T85_;
		if (!(oldPrc == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA82_;
		rawHandleSelf__sem_875(c, result);
		(*entry).compilesId = (*c).compilesContextId;
		addToGenericProcCache__semdata_1215(c, fn, entry);
		nimZeroMem((void*)(&T84_), sizeof(tyObject_TInstantiationPair__d4lcZMnmQK2Jh2jYkdgB4w));
		makeInstPair__semdata_309(fn, entry, (&T84_));
		asgnRef((void**) (&(*c).generics), (tySequence__yH9bx9bpa6jqsU89cxjyTAlPQ*) incrSeqV3((TGenericSeq*)((*c).generics), (&NTIseqLtinstantiationpairT__yH9bx9bpa6jqsU89cxjyTAlPQ_)));
		T85_ = (*c).generics->Sup.len++;
		asgnRef((void**) (&(*c).generics->data[T85_].genericSym), T84_.genericSym);
		asgnRef((void**) (&(*c).generics->data[T85_].inst), T84_.inst);
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA88_;
			pragma__pragmas_125(c, result, (*n)._kind_6.sons->data[((NI) 4)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_103, NIM_FALSE);
		}
		LA88_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T94_;
			if (!((*n)._kind_6.sons->data[((NI) 6)] == 0)) goto LA92_;
			T94_ = NIM_NIL;
			T94_ = getBody__modulegraphs_13094((*c).graph, fn);
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), copyTree__ast_4432(T94_));
		}
		LA92_: ;
		{
			if (!((*c).inGenericContext == ((NI) 0))) goto LA97_;
			instantiateBody__sem_1042(c, n, (*(*fn).typ).n, result, fn);
		}
		LA97_: ;
		sideEffectsCheck__sem_1146(c, result);
		{
			if (!!(((*result).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 126) || (*result).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 18)))) goto LA101_;
			paramsTypeCheck__sem_509(c, (*result).typ);
		}
		LA101_: ;
	}
	goto LA80_;
	LA82_: ;
	{
		result = oldPrc;
	}
	LA80_: ;
	popProcCon__semdata_401(c);
	popInfoContext__msgs_517((*(*c).graph).config);
	closeScope__lookups_108(c);
	closeScope__lookups_108(c);
	popOwner__semdata_341(c);
	asgnRef((void**) (&(*c).currentScope), oldScope);
	T104_ = NIM_NIL;
	T104_ = pop__icZic_2462((&(*c).friendModules));
	(void)(T104_);
	(*c).instCounter -= ((NI) 1);
	(*c).matchedConcept = oldMatchedConcept;
	{
		if (!((*result).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14))) goto LA107_;
		finishMethod__sem_117(c, result);
	}
	LA107_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, instGenericConvertersArg__sem_2345)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* x) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_2;
	{
		if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65))) goto LA3_;
		a_2 = (*a)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		a_2 = a;
	}
	LA1_: ;
	{
		NIM_BOOL T8_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*a_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32));
		if (!(T8_)) goto LA9_;
		T8_ = ((*(*a_2)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
		LA9_: ;
		if (!T8_) goto LA10_;
		s = (*(*a_2)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		{
			NIM_BOOL T14_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* finalCallee;
			T14_ = (NIM_BOOL)0;
			T14_ = isGenericRoutineStrict__ast_4640(s);
			if (!T14_) goto LA15_;
			finalCallee = generateInstance__sem_1319(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__uh9cWvEa5Ty85PXOtuP5emw*, indexTypesMatch__sem_123)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* f, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw m;
	result = NIM_NIL;
	nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw));
	newCandidate__sigmatch_195(c, f, (&m));
	result = paramTypesMatch__sigmatch_3620((&m), f, a, arg, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = m.genericConverter;
		if (!(T3_)) goto LA4_;
		T3_ = !((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
		LA4_: ;
		if (!T3_) goto LA5_;
		instGenericConvertersArg__sem_2345(c, result, (&m));
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, fitNode__sem_73)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__DKP9c7KM5AbqYVP6Gd9blNUw_18));
appendString(T5_, T6_);
		liMessage__msgs_1128((*(*c).graph).config, (*arg).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T5_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_74, NIM_FALSE);
		result = copyTree__ast_4432(arg);
		asgnRef((void**) (&(*result).typ), formal);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T8_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T10_;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*arg).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56) || (*arg).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57));
		if (!(T8_)) goto LA9_;
		T10_ = NIM_NIL;
		T10_ = skipTypes__ast_3723(formal, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
		T8_ = ((*T10_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14));
		LA9_: ;
		if (!T8_) goto LA11_;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ch;
			ch = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3148(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_1886((*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_3934((*(*c).graph).config, info, formal, (*arg).typ, arg);
	}
	goto LA1_;
	LA11_: ;
	{
		result = indexTypesMatch__sem_123(c, formal, (*arg).typ, arg);
		{
			if (!(result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA25_;
			typeMismatch__types_3934((*(*c).graph).config, info, formal, (*arg).typ, arg);
			result = copyTree__ast_4432(arg);
			asgnRef((void**) (&(*result).typ), formal);
		}
		goto LA23_;
		LA25_: ;
		{
			result = fitNodePostMatch__sem_168(c, formal, result);
		}
		LA23_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, forceBool__sem_2933)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
	result = fitNode__sem_73(c, T1_, n, (*n).info);
	{
		if (!(result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA4_;
		result = n;
	}
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConstBoolExpr__sem_2941)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
	T2_ = NIM_NIL;
	T2_ = semConstExpr__sem_619(c, n, T1_);
	result = forceBool__sem_2933(c, T2_);
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6)))) goto LA5_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_361), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_452, NIM_FALSE);
	}
	LA5_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isRange__trees_213)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* callee;
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 56) || (*callee).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__uh9cWvEa5Ty85PXOtuP5emw*, semBranchRange__sem_3969)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ* covered) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ac;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* bc;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* at;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* bt;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	result = NIM_NIL;
	checkMinSonsLen__semdata_1114(t, ((NI) 1), (*(*c).graph).config);
	ac = semConstExpr__sem_619(c, a, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	bc = semConstExpr__sem_619(c, b, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	T1_ = NIM_NIL;
	T1_ = fitNode__sem_73(c, (*(*t)._kind_6.sons->data[((NI) 0)]).typ, ac, (*ac).info);
	at = skipConvTakeType__types_3687(T1_);
	T2_ = NIM_NIL;
	T2_ = fitNode__sem_73(c, (*(*t)._kind_6.sons->data[((NI) 0)]).typ, bc, (*bc).info);
	bt = skipConvTakeType__types_3687(T2_);
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 44), (*a).info);
	add__ast_4798(result, at);
	add__ast_4798(result, bt);
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = emptyRange__nimsets_273(ac, bc);
		if (!T5_) goto LA6_;
		liMessage__msgs_1128((*(*c).graph).config, (*b).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_34), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_463, NIM_FALSE);
	}
	goto LA3_;
	LA6_: ;
	{
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T9_;
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T10_;
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T11_;
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T12_;
		T9_ = getOrdValue__types_161(bc, Max__int495056_27);
		T10_ = plus___int495056_611((*covered), T9_);
		T11_ = plus___int495056_987(T10_, IL64(1));
		T12_ = getOrdValue__types_161(ac, Max__int495056_27);
		(*covered) = minus___int495056_637(T11_, T12_);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semCaseBranchRange__sem_3990)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ* covered) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	checkSonsLen__semdata_1107(b, ((NI) 3), (*(*c).graph).config);
	result = semBranchRange__sem_3969(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__uh9cWvEa5Ty85PXOtuP5emw*, semCaseBranchSetElem__sem_3998)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ* covered) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isRange__trees_213(b);
		if (!T3_) goto LA4_;
		checkSonsLen__semdata_1107(b, ((NI) 3), (*(*c).graph).config);
		result = semBranchRange__sem_3969(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__clSgDh22o9au33BrVH9bDQZw) 44))) goto LA7_;
		checkSonsLen__semdata_1107(b, ((NI) 2), (*(*c).graph).config);
		result = semBranchRange__sem_3969(c, t, (*b)._kind_6.sons->data[((NI) 0)], (*b)._kind_6.sons->data[((NI) 1)], covered);
	}
	goto LA1_;
	LA7_: ;
	{
		result = fitNode__sem_73(c, (*(*t)._kind_6.sons->data[((NI) 0)]).typ, b, (*b).info);
		inc__int495056_354(covered, ((NU32) 1));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkForOverlap__sem_3945)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* t, NI currentEx, NI branchIndex) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex;
	ex = skipConv__types_3661((*(*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_3155((*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__uh9cWvEa5Ty85PXOtuP5emw* T16_;
								NIM_BOOL T17_;
								T16_ = NIM_NIL;
								T16_ = skipConv__types_3661((*(*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_1128((*(*c).graph).config, (*ex).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_464), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_465, NIM_FALSE);
							}
							LA18_: ;
							i_2 += ((NI) 1);
						} LA7: ;
					}
				} LA4: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, semCaseBranch__sem_4013)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch, NI branchIndex, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ* covered) {
	NI lastIndex;
	NI T1_;
{	T1_ = (NI)0;
	T1_ = len__ast_3155(branch);
	lastIndex = (NI)(T1_ - ((NI) 2));
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
				if (!(res <= lastIndex)) goto LA4;
				i = res;
				b = (*branch)._kind_6.sons->data[i];
				{
					if (!((*b).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_3990(c, t, b, covered));
				}
				goto LA5_;
				LA11_: ;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* r;
					r = semConstExpr__sem_619(c, b, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					{
						NIM_BOOL T16_;
						NIM_BOOL T17_;
						NI T19_;
						NI T21_;
						T16_ = (NIM_BOOL)0;
						T17_ = (NIM_BOOL)0;
						T17_ = ((*r).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39) || (*r).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41));
						if (!(T17_)) goto LA18_;
						T19_ = (NI)0;
						T19_ = len__ast_3155(r);
						T17_ = (T19_ == ((NI) 0));
						LA18_: ;
						T16_ = T17_;
						if (!(T16_)) goto LA20_;
						T21_ = (NI)0;
						T21_ = len__ast_3155(branch);
						T16_ = (T21_ == ((NI) 2));
						LA20_: ;
						if (!T16_) goto LA22_;
						delSon__ast_4301(branch, ((NI) 0));
						goto BeforeRet_;
					}
					goto LA14_;
					LA22_: ;
					{
						NIM_BOOL T25_;
						NI T27_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmp;
						T25_ = (NIM_BOOL)0;
						T25_ = !(((*r).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39) || (*r).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41)));
						if (T25_) goto LA26_;
						T27_ = (NI)0;
						T27_ = len__ast_3155(r);
						T25_ = (T27_ == ((NI) 0));
						LA26_: ;
						if (!T25_) goto LA28_;
						checkMinSonsLen__semdata_1114(t, ((NI) 1), (*(*c).graph).config);
						tmp = fitNode__sem_73(c, (*(*t)._kind_6.sons->data[((NI) 0)]).typ, r, (*r).info);
						{
							if (!((*tmp).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32))) goto LA32_;
							tmp = semConstExpr__sem_619(c, tmp, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
						}
						LA32_: ;
						asgnRef((void**) (&(*branch)._kind_6.sons->data[i]), skipConv__types_3661(tmp));
						inc__int495056_354(covered, ((NU32) 1));
					}
					goto LA14_;
					LA28_: ;
					{
						{
							if (!((*r).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39))) goto LA37_;
							r = deduplicate__nimsets_236((*(*c).graph).config, r);
						}
						LA37_: ;
						asgnRef((void**) (&(*branch)._kind_6.sons->data[i]), semCaseBranchSetElem__sem_3998(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_3155(r);
							i_2 = ((NI) 1);
							{
								while (1) {
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T42_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T43_;
									NI T44_;
									NI T45_;
									if (!(i_2 < colontmp_)) goto LA41;
									j = i_2;
									T42_ = NIM_NIL;
									T42_ = semCaseBranchSetElem__sem_3998(c, t, (*r)._kind_6.sons->data[j], covered);
									add__ast_4798(branch, T42_);
									T43_ = NIM_NIL;
									T44_ = (NI)0;
									T44_ = len__ast_3155(branch);
									T45_ = (NI)0;
									T45_ = len__ast_3155(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_3945(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_3155(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_3945(c, t, i_3, branchIndex);
				i_4 += ((NI) 1);
			} LA49: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, toCover__sem_4106)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t2;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ));
	t2 = skipTypes__ast_3723(t, TM__DKP9c7KM5AbqYVP6Gd9blNUw_466);
	{
		NIM_BOOL T3_;
		NI T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14));
		if (!(T3_)) goto LA4_;
		T3_ = enumHasHoles__types_287(t2);
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NI)0;
		T7_ = len__ast_3155((*t2).n);
		result = toInt128__types_1431(T7_);
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_2;
		t_2 = skipTypes__ast_3723(t, TM__DKP9c7KM5AbqYVP6Gd9blNUw_455);
		{
			tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T13_;
			if (!((*t_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35) || (*t_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44))) goto LA11_;
			T13_ = toInt128__types_1431(((NI) 1));
			result = shl__int495056_542(T13_, ((NI) 64));
		}
		goto LA9_;
		LA11_: ;
		{
			tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T17_;
			if (!((*t_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) || (*t_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40))) goto LA15_;
			T17_ = toInt128__types_1431(((NI) 1));
			result = shl__int495056_542(T17_, (NI)((*(*(*c).graph).config).target.intSize * ((NI) 8)));
		}
		goto LA9_;
		LA15_: ;
		{
			result = lengthOrd__types_1723((*(*c).graph).config, t_2);
		}
		LA9_: ;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, len__nilcheck_1789)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* 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___2fEZuM4UuXkgO9bDnaMLLWg* r;
				r = (*s).head;
				{
					while (1) {
						NI i_3;
						if (!!((r == ((tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg*) 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_4210)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* vals, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	NimStringDesc* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_2;
	NI enumSymOffset;
	NI i;
	result = NIM_NIL;
	result = copyString(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_470));
	t_2 = skipTypes__ast_3723(t, TM__DKP9c7KM5AbqYVP6Gd9blNUw_468);
	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__DKP9c7KM5AbqYVP6Gd9blNUw_77));
						}
						LA11_: ;
						switch ((*t_2).kind) {
						case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14):
						case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__b28l2MkhJpnFhatVrsrXpg) 2):
						{
							addQuoted__sem_4227((&result), ((NIM_CHAR) (val)));
						}
						break;
						default:
						{
							{
								NI T22_;
								NimStringDesc* T23_;
								NimStringDesc* T24_;
								if (!(i == ((NI) 64))) goto LA20_;
								T22_ = (NI)0;
								T22_ = len__nilcheck_1789(vals);
								T23_ = NIM_NIL;
								T23_ = dollar___systemZdollars_3((NI)(T22_ - i));
								T24_ = NIM_NIL;
								T24_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_471), 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___2fEZuM4UuXkgO9bDnaMLLWg* r;
			r = (*vals).head;
			{
				while (1) {
					NI i_4;
					if (!!((r == ((tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg*) 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__DKP9c7KM5AbqYVP6Gd9blNUw_77));
										}
										LA41_: ;
										switch ((*t_2).kind) {
										case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14):
										case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__b28l2MkhJpnFhatVrsrXpg) 2):
										{
											addQuoted__sem_4227((&result), ((NIM_CHAR) (val)));
										}
										break;
										default:
										{
											{
												NI T52_;
												NimStringDesc* T53_;
												NimStringDesc* T54_;
												if (!(i == ((NI) 64))) goto LA50_;
												T52_ = (NI)0;
												T52_ = len__nilcheck_1789(vals);
												T53_ = NIM_NIL;
												T53_ = dollar___systemZdollars_3((NI)(T52_ - i));
												T54_ = NIM_NIL;
												T54_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_471), 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__DKP9c7KM5AbqYVP6Gd9blNUw_472));
	return result;
}
static N_INLINE(void, minus___sem_4262)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s1, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s2, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result) {
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw T1_;
	nimZeroMem((void*)(&T1_), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	difference__sem_4267(s1, s2, (&T1_));
	genericShallowAssign((void*)Result, (void*)(&T1_), (&NTIpackedset__THXDbzJSs2hcC9a33en2pdw_));
}
N_LIB_PRIVATE N_NIMCALL(void, getIntSetOfType__sem_4152)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result) {
	initIntSet__pureZcollectionsZintsets_238(Result);
	{
		NIM_BOOL T3_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_2;
		T3_ = (NIM_BOOL)0;
		T3_ = enumHasHoles__types_287(t);
		if (!T3_) goto LA4_;
		t_2 = skipTypes__ast_3723(t, TM__DKP9c7KM5AbqYVP6Gd9blNUw_468);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** field;
			tySequence__IeU9azYSNIK3V9b36Ir6NZcw* colontmp_;
			NI i;
			NI L;
			NI T7_;
			field = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)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__ZSLNyYMaD8rorY4HZRFSUQ T12_;
			tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T13_;
			NI64 res;
			i_2 = (NI64)0;
			colontmp__2 = (NI64)0;
			colontmp__3 = (NI64)0;
			T12_ = firstOrd__types_1406((*(*c).graph).config, t);
			colontmp__2 = toInt64__int495056_88(T12_);
			T13_ = lastOrd__types_1532((*(*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_4242)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NimStringDesc* result;
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw coveredCases;
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw T23_;
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw T24_;
	result = NIM_NIL;
	nimZeroMem((void*)(&coveredCases), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	initIntSet__pureZcollectionsZintsets_238((&coveredCases));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NI val;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* colontmp__2;
					val = (NI)0;
					colontmp__2 = NIM_NIL;
					colontmp__2 = (*n)._kind_6.sons->data[i];
					{
						if (!((*colontmp__2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_3155(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__clSgDh22o9au33BrVH9bDQZw) 6) || (*(*colontmp__2)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 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__THXDbzJSs2hcC9a33en2pdw));
	getIntSetOfType__sem_4152(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ, (&T23_));
	nimZeroMem((void*)(&T24_), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	minus___sem_4262((&T23_), (&coveredCases), (&T24_));
	result = renderAsType__sem_4210((&T24_), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semRecordCase__sem_4289)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* check, NI* pos, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* rectype) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ covered;
	NIM_BOOL chckCovered;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
{	a = copyNode__ast_4324(n);
	checkMinSonsLen__semdata_1114(n, ((NI) 2), (*(*c).graph).config);
	semRecordNodeAux__sem_4144(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__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA3_;
		internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_453), TM__DKP9c7KM5AbqYVP6Gd9blNUw_454);
		goto BeforeRet_;
	}
	LA3_: ;
	(*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 20)) & 63);
	covered = toInt128__types_1431(((NI) 0));
	chckCovered = NIM_FALSE;
	typ = skipTypes__ast_3723((*(*a)._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_455);
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 43):
	{
		chckCovered = NIM_TRUE;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50):
	{
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 20):
	{
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T10_;
			T10_ = NIM_NIL;
			T10_ = skipTypes__ast_3723((*typ).sons->data[((NI) 0)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
			if (!((*T10_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*T10_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35) || (*T10_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2) || (*T10_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*T10_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) && (*T10_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 43) || (*T10_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1))) goto LA11_;
			chckCovered = NIM_TRUE;
		}
		LA11_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 30):
	{
		errorUndeclaredIdentifier__lookups_2564(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_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_456), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_457, NIM_FALSE);
		}
		LA18_: ;
	}
	break;
	}
	{
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T22_;
		NIM_BOOL T23_;
		NimStringDesc* T26_;
		T22_ = firstOrd__types_1406((*(*c).graph).config, typ);
		T23_ = (NIM_BOOL)0;
		T23_ = eqeq___int495056_952(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__DKP9c7KM5AbqYVP6Gd9blNUw_458));
appendString(T26_, (*(*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s);
appendString(T26_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_459));
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T26_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_460, NIM_FALSE);
	}
	goto LA20_;
	LA24_: ;
	{
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T28_;
		NIM_BOOL T29_;
		NimStringDesc* T32_;
		T28_ = lengthOrd__types_1723((*(*c).graph).config, typ);
		T29_ = (NIM_BOOL)0;
		T29_ = lt___int495056_931(IL64(32767), T28_);
		if (!T29_) goto LA30_;
		T32_ = NIM_NIL;
		T32_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_461), (*(*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T32_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_462, NIM_FALSE);
	}
	goto LA20_;
	LA30_: ;
	LA20_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
				NI T46_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T47_;
				if (!(i_2 < colontmp_)) goto LA35;
				i = i_2;
				b = copyTree__ast_4432((*n)._kind_6.sons->data[i]);
				add__ast_4798(a, b);
				switch ((*(*n)._kind_6.sons->data[i]).kind) {
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85):
				{
					checkMinSonsLen__semdata_1114(b, ((NI) 2), (*(*c).graph).config);
					semCaseBranch__sem_4013(c, a, b, i, (&covered));
				}
				break;
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88):
				{
					checkSonsLen__semdata_1107(b, ((NI) 1), (*(*c).graph).config);
					{
						NIM_BOOL T40_;
						tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T42_;
						T40_ = (NIM_BOOL)0;
						T40_ = chckCovered;
						if (!(T40_)) goto LA41_;
						T42_ = toCover__sem_4106(c, (*(*a)._kind_6.sons->data[((NI) 0)]).typ);
						T40_ = eqeq___int495056_425(covered, T42_);
						LA41_: ;
						if (!T40_) goto LA43_;
						liMessage__msgs_1128((*(*c).graph).config, (*b).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 45), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_467, NIM_FALSE);
					}
					LA43_: ;
					chckCovered = NIM_FALSE;
				}
				break;
				default:
				{
					illFormedAst__semdata_1101(n, (*(*c).graph).config);
				}
				break;
				}
				T46_ = (NI)0;
				T46_ = len__ast_3155(b);
				delSon__ast_4301(b, (NI)(T46_ - ((NI) 1)));
				T47_ = NIM_NIL;
				T47_ = lastSon__ast_4833((*n)._kind_6.sons->data[i]);
				semRecordNodeAux__sem_4144(c, T47_, check, pos, b, rectype, NIM_TRUE);
				i_2 += ((NI) 1);
			} LA35: ;
		}
	}
	{
		NIM_BOOL T50_;
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T52_;
		NIM_BOOL T53_;
		T50_ = (NIM_BOOL)0;
		T50_ = chckCovered;
		if (!(T50_)) goto LA51_;
		T52_ = toCover__sem_4106(c, (*(*a)._kind_6.sons->data[((NI) 0)]).typ);
		T53_ = (NIM_BOOL)0;
		T53_ = eqeq___int495056_425(covered, T52_);
		T50_ = !(T53_);
		LA51_: ;
		if (!T50_) goto LA54_;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T58_;
			NimStringDesc* T61_;
			NimStringDesc* T62_;
			T58_ = NIM_NIL;
			T58_ = skipTypes__ast_3723((*(*a)._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_468);
			if (!((*T58_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14))) goto LA59_;
			T61_ = NIM_NIL;
			T61_ = formatMissingEnums__sem_4242(c, a);
			T62_ = NIM_NIL;
			T62_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_469), T61_);
			liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T62_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_473, NIM_FALSE);
		}
		goto LA56_;
		LA59_: ;
		{
			liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_474), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_475, NIM_FALSE);
		}
		LA56_: ;
	}
	LA54_: ;
	add__ast_4798(father, a);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, semRecordNodeAux__sem_4144)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* check, NI* pos, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* rectype, NIM_BOOL hasCaseFields) {
{	{
		if (!(n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 140):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch;
		a = copyTree__ast_4432(n);
		branch = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(a);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
					NI idx;
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					it = (*a)._kind_6.sons->data[i];
					{
						if (!(it == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA11_;
						illFormedAst__semdata_1101(n, (*(*c).graph).config);
					}
					LA11_: ;
					idx = ((NI) 1);
					switch ((*it).kind) {
					case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86):
					{
						checkSonsLen__semdata_1107(it, ((NI) 2), (*(*c).graph).config);
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e;
							if (!((*c).inGenericContext == ((NI) 0))) goto LA16_;
							e = semConstBoolExpr__sem_2941(c, (*it)._kind_6.sons->data[((NI) 0)]);
							{
								if (!!(((*e).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
								LA24_: ;
								if (!T23_) goto LA25_;
								branch = (*it)._kind_6.sons->data[((NI) 1)];
							}
							goto LA18_;
							LA25_: ;
							LA18_: ;
						}
						goto LA14_;
						LA16_: ;
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T28_;
							T28_ = NIM_NIL;
							T28_ = semExprWithType__sem_57(c, (*it)._kind_6.sons->data[((NI) 0)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
							asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 0)]), forceBool__sem_2933(c, T28_));
						}
						LA14_: ;
					}
					break;
					case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88):
					{
						checkSonsLen__semdata_1107(it, ((NI) 1), (*(*c).graph).config);
						{
							if (!(branch == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA32_;
							branch = (*it)._kind_6.sons->data[((NI) 0)];
						}
						LA32_: ;
						idx = ((NI) 0);
					}
					break;
					default:
					{
						illFormedAst__semdata_1101(n, (*(*c).graph).config);
					}
					break;
					}
					{
						tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw newCheck;
						NI newPos;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* newf;
						if (!(((NI) 0) < (*c).inGenericContext)) goto LA37_;
						nimZeroMem((void*)(&newCheck), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
						assign__types_3993((&newCheck), (&(*check)));
						newPos = (*pos);
						newf = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138), (*n).info);
						semRecordNodeAux__sem_4144(c, (*it)._kind_6.sons->data[idx], (&newCheck), (&newPos), newf, rectype, hasCaseFields);
						{
							NI T41_;
							T41_ = (NI)0;
							T41_ = len__ast_3155(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_4798(father, a);
		}
		goto LA45_;
		LA47_: ;
		{
			if (!!((branch == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA50_;
			semRecordNodeAux__sem_4144(c, branch, check, pos, father, rectype, hasCaseFields);
		}
		goto LA45_;
		LA50_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T55_;
			if (!((*father).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88) || (*father).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85))) goto LA53_;
			T55_ = NIM_NIL;
			T55_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138), (*n).info);
			add__ast_4798(father, T55_);
		}
		goto LA45_;
		LA53_: ;
		LA45_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 139):
	{
		semRecordCase__sem_4289(c, n, check, pos, father, rectype);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T62_;
			if (!!(((*father).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138)))) goto LA60_;
			T62_ = NIM_NIL;
			T62_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138), (*n).info);
			add__ast_4798(father, T62_);
		}
		LA60_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_2;
		{
			if (!((*father).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138))) goto LA66_;
			a_2 = father;
		}
		goto LA64_;
		LA66_: ;
		{
			a_2 = copyNode__ast_4324(n);
		}
		LA64_: ;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3155(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA71;
					i_3 = i_4;
					semRecordNodeAux__sem_4144(c, (*n)._kind_6.sons->data[i_3], check, pos, a_2, rectype, hasCaseFields);
					i_4 += ((NI) 1);
				} LA71: ;
			}
		}
		{
			if (!!((a_2 == father))) goto LA74_;
			add__ast_4798(father, a_2);
		}
		LA74_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_3;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fieldOwner;
		checkMinSonsLen__semdata_1114(n, ((NI) 3), (*(*c).graph).config);
		a_3 = NIM_NIL;
		{
			NIM_BOOL T79_;
			NI T81_;
			T79_ = (NIM_BOOL)0;
			T79_ = !(((*father).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138)));
			if (!(T79_)) goto LA80_;
			T81_ = (NI)0;
			T81_ = len__ast_3155(n);
			T79_ = (((NI) 4) <= T81_);
			LA80_: ;
			if (!T79_) goto LA82_;
			a_3 = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138), (*n).info);
		}
		goto LA77_;
		LA82_: ;
		{
			a_3 = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*n).info);
		}
		LA77_: ;
		{
			NI T87_;
			NI T90_;
			T87_ = (NI)0;
			T87_ = len__ast_3155(n);
			if (!!(((*(*n)._kind_6.sons->data[(NI)(T87_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA88_;
			T90_ = (NI)0;
			T90_ = len__ast_3155(n);
			liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[(NI)(T90_ - ((NI) 1))]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_476), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_477, NIM_FALSE);
		}
		LA88_: ;
		typ = NIM_NIL;
		{
			NI T93_;
			T93_ = (NI)0;
			T93_ = len__ast_3155(n);
			if (!((*(*n)._kind_6.sons->data[(NI)(T93_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA94_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_478, NIM_FALSE);
			typ = errorType__semdata_1032(c);
		}
		goto LA91_;
		LA94_: ;
		{
			NI T97_;
			T97_ = (NI)0;
			T97_ = len__ast_3155(n);
			typ = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[(NI)(T97_ - ((NI) 2))], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			propagateToOwner__ast_4207(rectype, typ, NIM_TRUE);
		}
		LA91_: ;
		{
			if (!(((NI) 0) < (*c).inGenericContext)) goto LA100_;
			fieldOwner = getCurrOwner__semdata_327(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_3155(n);
			colontmp__3 = (NI)(T104_ - ((NI) 2));
			i_6 = ((NI) 0);
			{
				while (1) {
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* f;
					tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
					if (!(i_6 < colontmp__3)) goto LA106;
					i_5 = i_6;
					f = semIdentWithPragma__sem_480(c, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 19), (*n)._kind_6.sons->data[i_5], 2);
					{
						if (!((*(*n)._kind_6.sons->data[i_5]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_5404((*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__3r34mwqcVmg5JFNmiaVncw*) 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__vUl1aIPQxBiroOuyvqu9bZQ*) 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__DKP9c7KM5AbqYVP6Gd9blNUw_154));
appendString(T127_, (*(*f).name).s);
appendString(T127_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_31));
						liMessage__msgs_1128((*(*c).graph).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T127_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_479, NIM_FALSE);
					}
					LA125_: ;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T132_;
						if (!((*a_3).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA130_;
						T132_ = NIM_NIL;
						T132_ = newSymNode__ast_3704(f);
						add__ast_4798(father, T132_);
					}
					goto LA128_;
					LA130_: ;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T134_;
						T134_ = NIM_NIL;
						T134_ = newSymNode__ast_3704(f);
						add__ast_4798(a_3, T134_);
					}
					LA128_: ;
					{
						NIM_BOOL T137_;
						NIM_BOOL T138_;
						NIM_BOOL T139_;
						NIM_BOOL T140_;
						NIM_BOOL T141_;
						NIM_BOOL T142_;
						NIM_BOOL T143_;
						NIM_BOOL T144_;
						NIM_BOOL T145_;
						NIM_BOOL T146_;
						NIM_BOOL T147_;
						NIM_BOOL T157_;
						T137_ = (NIM_BOOL)0;
						T138_ = (NIM_BOOL)0;
						T139_ = (NIM_BOOL)0;
						T140_ = (NIM_BOOL)0;
						T141_ = (NIM_BOOL)0;
						T142_ = (NIM_BOOL)0;
						T143_ = (NIM_BOOL)0;
						T144_ = (NIM_BOOL)0;
						T145_ = (NIM_BOOL)0;
						T146_ = (NIM_BOOL)0;
						T147_ = (NIM_BOOL)0;
						T147_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
						if (!(T147_)) goto LA148_;
						T147_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
						LA148_: ;
						T146_ = T147_;
						if (!(T146_)) goto LA149_;
						T146_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
						LA149_: ;
						T145_ = T146_;
						if (!(T145_)) goto LA150_;
						T145_ = belongsToProjectPackage__packages_50((*(*c).graph).config, f);
						LA150_: ;
						T144_ = T145_;
						if (!(T144_)) goto LA151_;
						T144_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
						LA151_: ;
						T143_ = T144_;
						if (!(T143_)) goto LA152_;
						T143_ = !(((*f).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
						LA152_: ;
						T142_ = T143_;
						if (!(T142_)) goto LA153_;
						T142_ = !(((*f).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
						LA153_: ;
						T141_ = T142_;
						if (!(T141_)) goto LA154_;
						T141_ = ((Letters__linter_12[(NU)(((NU8)((*(*f).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*f).name).s->data[((NI) 0)])))&7U)))!=0);
						LA154_: ;
						T140_ = T141_;
						if (!(T140_)) goto LA155_;
						T140_ = !(((144 &((NU32)1<<((NU)((*f).kind)&31U)))!=0));
						LA155_: ;
						T139_ = T140_;
						if (!(T139_)) goto LA156_;
						T157_ = (NIM_BOOL)0;
						T157_ = ((*f).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
						if (T157_) goto LA158_;
						T157_ = !(((*(*f).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
						LA158_: ;
						T139_ = T157_;
						LA156_: ;
						T138_ = T139_;
						if (!(T138_)) goto LA159_;
						T138_ = ((192 & (*f).flags) == 0);
						LA159_: ;
						T137_ = T138_;
						if (!(T137_)) goto LA160_;
						T137_ = !((((*f).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
						LA160_: ;
						if (!T137_) goto LA161_;
						nep1CheckDefImpl__linter_112((*(*c).graph).config, (*f).info, f, (*f).kind);
					}
					LA161_: ;
					i_6 += ((NI) 1);
				} LA106: ;
			}
		}
		{
			if (!!(((*a_3).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA165_;
			add__ast_4798(father, a_3);
		}
		LA165_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		{
			NIM_BOOL T170_;
			NimStringDesc* T173_;
			T170_ = (NIM_BOOL)0;
			T170_ = containsOrIncl__astalgo_402(check, (*(*(*n)._kind_4.sym).name).id);
			if (!T170_) goto LA171_;
			T173_ = NIM_NIL;
			T173_ = rawNewString(((*(*(*n)._kind_4.sym).name).s ? (*(*(*n)._kind_4.sym).name).s->Sup.len : 0) + 23);
appendString(T173_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_154));
appendString(T173_, (*(*(*n)._kind_4.sym).name).s);
appendString(T173_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_31));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T173_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_480, NIM_FALSE);
		}
		LA171_: ;
		add__ast_4798(father, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
	{
		{
			if (!((*father).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88) || (*father).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85))) goto LA177_;
			add__ast_4798(father, n);
		}
		LA177_: ;
	}
	break;
	default:
	{
		illFormedAst__semdata_1101(n, (*(*c).graph).config);
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initConstrContext__sem_21075)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initExpr, tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ* 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__Vrztsndr9a9bj8bQ3cn49bwWw) 19))&63U)))!=0);
}
N_LIB_PRIVATE N_NIMCALL(void, mergeInitStatus__sem_20485)(tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ* existing, tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ newStatus) {
	switch (newStatus) {
	case ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 4):
	{
		(*existing) = newStatus;
	}
	break;
	case ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 2):
	{
		{
			if (!((11 &((NU8)1<<((NU)((*existing))&7U)))!=0)) goto LA5_;
			(*existing) = ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 2);
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 3):
	{
		{
			if (!((*existing) == ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 0))) goto LA10_;
			(*existing) = ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 3);
		}
		goto LA8_;
		LA10_: ;
		{
			if (!((*existing) == ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 1))) goto LA13_;
			(*existing) = ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 2);
		}
		goto LA8_;
		LA13_: ;
		LA8_: ;
	}
	break;
	case ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 1):
	{
		{
			if (!((*existing) == ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 0))) goto LA18_;
			(*existing) = ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 1);
		}
		goto LA16_;
		LA18_: ;
		{
			if (!((*existing) == ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 3))) goto LA21_;
			(*existing) = ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 2);
		}
		goto LA16_;
		LA21_: ;
		LA16_: ;
	}
	break;
	case ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 0):
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, invalidObjConstr__sem_20519)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29));
		if (!(T4_)) goto LA5_;
		T4_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_485), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_486, NIM_FALSE);
	}
	goto LA1_;
	LA7_: ;
	{
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_487), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_488, NIM_FALSE);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, locateFieldInInitExpr__sem_20532)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* field, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initExpr) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3155(initExpr);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* assignment;
					assignment = (*initExpr)._kind_6.sons->data[i];
					{
						if (!!(((*assignment).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34)))) goto LA7_;
						invalidObjConstr__sem_20519(c, assignment);
						goto LA4;
					}
					LA7_: ;
					{
						tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T11_;
						T11_ = NIM_NIL;
						T11_ = considerQuotedIdent__lookups_29(c, (*assignment)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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_20717)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fieldsRecList, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initExpr) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = ((NimStringDesc*) NIM_NIL);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* field;
		field = NIM_NIL;
		{
			if (!((*fieldsRecList).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA4_;
			field = fieldsRecList;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T8_;
				NimStringDesc* T15_;
				T8_ = NIM_NIL;
				T8_ = locateFieldInInitExpr__sem_20532(c, (*field)._kind_4.sym, initExpr);
				if (!!((T8_ == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA9_;
				{
					if (!!(((result ? result->Sup.len : 0) == ((NI) 0)))) goto LA13_;
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_77));
				}
				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__DKP9c7KM5AbqYVP6Gd9blNUw_31));
appendString(T15_, (*(*(*field)._kind_4.sym).name).s);
appendString(T15_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_31));
				result = resizeString(result, (T15_ ? T15_->Sup.len : 0) + 0);
appendString(result, T15_);
			}
			LA9_: ;
		}
		goto LA2_;
		LA4_: ;
		{
			{
				if (!!(((*fieldsRecList).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138)))) goto LA19_;
				failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_489));
			}
			LA19_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* field_2;
				field_2 = NIM_NIL;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen__ast_3148(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__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA28_;
									goto LA25;
								}
								LA28_: ;
								field = field_2;
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T32_;
									NimStringDesc* T39_;
									T32_ = NIM_NIL;
									T32_ = locateFieldInInitExpr__sem_20532(c, (*field)._kind_4.sym, initExpr);
									if (!!((T32_ == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA33_;
									{
										if (!!(((result ? result->Sup.len : 0) == ((NI) 0)))) goto LA37_;
										result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_77));
									}
									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__DKP9c7KM5AbqYVP6Gd9blNUw_31));
appendString(T39_, (*(*(*field)._kind_4.sym).name).s);
appendString(T39_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_31));
									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__uh9cWvEa5Ty85PXOtuP5emw*, tryConstExpr__sem_589)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* volatile result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e;
	NI oldErrorCount;
	NI oldErrorMax;
	tySet_tyEnum_TErrorOutput__AR9blT7YaZzdImck9a5cntbQ oldErrorOutputs;
	TSafePoint TM__DKP9c7KM5AbqYVP6Gd9blNUw_494;
{	result = NIM_NIL;
	e = semExprWithType__sem_57(c, n, 0, expectedType);
	{
		if (!(e == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	result = getConstExpr__semfold_81((*c).module, e, (*c).Sup.idgen, (*c).graph);
	{
		if (!!((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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__DKP9c7KM5AbqYVP6Gd9blNUw_494);
	TM__DKP9c7KM5AbqYVP6Gd9blNUw_494.status = setjmp(TM__DKP9c7KM5AbqYVP6Gd9blNUw_494.context);
	if (TM__DKP9c7KM5AbqYVP6Gd9blNUw_494.status == 0) {
	result = evalConstExpr__vm_14099((*c).module, (*c).Sup.idgen, (*c).graph, e);
	{
		NIM_BOOL T11_;
		T11_ = (NIM_BOOL)0;
		T11_ = (result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		if (T11_) goto LA12_;
		T11_ = ((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
		LA12_: ;
		if (!T11_) goto LA13_;
		result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
	}
	goto LA9_;
	LA13_: ;
	{
		result = fixupTypeAfterEval__sem_577(c, result, e);
	}
	LA9_: ;
	popSafePoint();
	}
	else {
		popSafePoint();
		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIerecoverableerror__aRVEU9aWMU9b9a9baYZqUd3t9cA_))) {
			TM__DKP9c7KM5AbqYVP6Gd9blNUw_494.status = 0;
			result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
			popCurrentException();
		}
	}
	if (TM__DKP9c7KM5AbqYVP6Gd9blNUw_494.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__uh9cWvEa5Ty85PXOtuP5emw*, semExprFlagDispatched__sem_650)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	{
		if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 4))&31U)))!=0)) goto LA3_;
		{
			if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 6))&31U)))!=0)) goto LA7_;
			result = tryConstExpr__sem_589(c, n, expectedType);
			goto BeforeRet_;
		}
		goto LA5_;
		LA7_: ;
		{
			result = semConstExpr__sem_619(c, n, expectedType);
			goto BeforeRet_;
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = semExprWithType__sem_57(c, n, flags, expectedType);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* evaluated;
			if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 5))&31U)))!=0)) goto LA13_;
			evaluated = getConstExpr__semfold_81((*c).module, result, (*c).Sup.idgen, (*c).graph);
			{
				if (!!((evaluated == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA17_;
				result = evaluated;
				goto BeforeRet_;
			}
			LA17_: ;
			evaluated = evalAtCompileTime__sem_120(c, result);
			{
				if (!!((evaluated == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA21_;
				result = evaluated;
				goto BeforeRet_;
			}
			LA21_: ;
		}
		LA13_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, fitNodeConsiderViewType__sem_216)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	result = NIM_NIL;
	a = fitNode__sem_73(c, formal, arg, info);
	{
		if (!((*formal).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*formal).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47))) goto LA3_;
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 64), (*a).info, formal);
		add__ast_4798(result, a);
		(*formal).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 20)) & 63);
	}
	goto LA1_;
	LA3_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConstrField__sem_20553)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* field, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initExpr) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* assignment;
{	result = NIM_NIL;
	assignment = locateFieldInInitExpr__sem_20532(c, field, initExpr);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* initValue;
		if (!!((assignment == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA3_;
		{
			if (!(((*assignment).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 7))&31U)))!=0)) goto LA7_;
			result = (*assignment)._kind_6.sons->data[((NI) 1)];
			goto BeforeRet_;
		}
		LA7_: ;
		{
			if (!(((*(*assignment)._kind_6.sons->data[((NI) 1)]).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 24))&31U)))!=0)) goto LA11_;
		}
		goto LA9_;
		LA11_: ;
		{
			NIM_BOOL T14_;
			tyArray__nHXaesL0DJZHyVS07ARPRA T17_;
			NimStringDesc* T18_;
			T14_ = (NIM_BOOL)0;
			T14_ = fieldVisible__sigmatch_4973(c, field);
			if (!!(T14_)) goto LA15_;
			nimZeroMem((void*)T17_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
			T17_[0] = copyString((*(*field).name).s);
			T18_ = NIM_NIL;
			T18_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_492), T17_, 1);
			liMessage__msgs_1128((*(*c).graph).config, (*initExpr).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T18_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_493, NIM_FALSE);
			goto BeforeRet_;
		}
		goto LA9_;
		LA15_: ;
		LA9_: ;
		initValue = semExprFlagDispatched__sem_650(c, (*assignment)._kind_6.sons->data[((NI) 1)], flags, (*field).typ);
		{
			if (!!((initValue == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA21_;
			initValue = fitNodeConsiderViewType__sem_216(c, (*field).typ, initValue, (*assignment).info);
		}
		LA21_: ;
		(*initValue).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 24)) & 31);
		asgnRef((void**) (&(*assignment)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(field));
		asgnRef((void**) (&(*assignment)._kind_6.sons->data[((NI) 1)]), initValue);
		(*assignment).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 7)) & 31);
		result = initValue;
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, findUsefulCaseContext__sem_20641)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* discrimator, tyTuple__2E9aYKv1U4zUZsR6wkNRkPg* 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__uh9cWvEa5Ty85PXOtuP5emw* caseNode;
				NI index;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3677((*caseNode)._kind_6.sons->data[((NI) 0)]);
				{
					NIM_BOOL T7_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* colontmp__2;
					NI colontmp__3;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*skipped).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_20609)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* caseNode, NI caseIdx, NIM_BOOL isStmtBranch, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result) {
	{
		if (!((*(*caseNode)._kind_6.sons->data[caseIdx]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85))) goto LA3_;
		initIntSet__pureZcollectionsZintsets_238(Result);
		{
			NI val;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* colontmp_;
			val = (NI)0;
			colontmp_ = NIM_NIL;
			colontmp_ = (*caseNode)._kind_6.sons->data[caseIdx];
			{
				if (!((*colontmp_).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_3155(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__clSgDh22o9au33BrVH9bDQZw) 6) || (*(*colontmp_)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 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_4152(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_3155(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__uh9cWvEa5Ty85PXOtuP5emw* 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__clSgDh22o9au33BrVH9bDQZw) 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_3155(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__clSgDh22o9au33BrVH9bDQZw) 6) || (*(*colontmp__6)._kind_6.sons->data[i_6]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5))) goto LA40_;
											val_2 = ((NI) ((*(*colontmp__6)._kind_6.sons->data[i_6])._kind_1.intVal));
											excl__reorder_273(Result, val_2);
										}
										goto LA38_;
										LA40_: ;
										{
											if (!((*(*colontmp__6)._kind_6.sons->data[i_6]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_273(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_20590)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3155(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__clSgDh22o9au33BrVH9bDQZw) 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_20727)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fieldsRecList, tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ* constrCtx) {
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* r;
		r = NIM_NIL;
		{
			if (!((*fieldsRecList).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA4_;
			r = fieldsRecList;
			{
				NIM_BOOL T8_;
				NIM_BOOL T9_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__9be9c6fEXk5NwyPvxxb6toPA) 21))&63U)))!=0);
				LA10_: ;
				T8_ = T9_;
				if (T8_) goto LA11_;
				T8_ = requiresInit__typeallowed_593((*(*r)._kind_4.sym).typ);
				LA11_: ;
				if (!T8_) goto LA12_;
				assignment = locateFieldInInitExpr__sem_20532(c, (*r)._kind_4.sym, (*constrCtx).initExpr);
				{
					NI T18_;
					if (!(assignment == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA16_;
					unsureAsgnRef((void**) (&(*constrCtx).missingFields), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) incrSeqV3((TGenericSeq*)((*constrCtx).missingFields), (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_)));
					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__clSgDh22o9au33BrVH9bDQZw) 138)))) goto LA22_;
				failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_489));
			}
			LA22_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* field;
				field = NIM_NIL;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen__ast_3148(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__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA31_;
									goto LA28;
								}
								LA31_: ;
								r = field;
								{
									NIM_BOOL T35_;
									NIM_BOOL T36_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__9be9c6fEXk5NwyPvxxb6toPA) 21))&63U)))!=0);
									LA37_: ;
									T35_ = T36_;
									if (T35_) goto LA38_;
									T35_ = requiresInit__typeallowed_593((*(*r)._kind_4.sym).typ);
									LA38_: ;
									if (!T35_) goto LA39_;
									assignment_2 = locateFieldInInitExpr__sem_20532(c, (*r)._kind_4.sym, (*constrCtx).initExpr);
									{
										NI T45_;
										if (!(assignment_2 == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA43_;
										unsureAsgnRef((void**) (&(*constrCtx).missingFields), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) incrSeqV3((TGenericSeq*)((*constrCtx).missingFields), (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_)));
										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__uh9cWvEa5Ty85PXOtuP5emw*, pickCaseBranch__sem_20666)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* caseExpr, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* matched) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NIM_BOOL endsWithElse;
	NI T1_;
{	result = NIM_NIL;
	T1_ = (NI)0;
	T1_ = len__ast_3155(caseExpr);
	endsWithElse = ((*(*caseExpr)._kind_6.sons->data[(NI)(T1_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = len__ast_3155(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_20590((*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_3155(caseExpr);
		result = (*caseExpr)._kind_6.sons->data[(NI)(T15_ - ((NI) 1))];
		goto BeforeRet_;
	}
	LA13_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ, semConstructFields__sem_20745)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ* constrCtx, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ result;
	result = (tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ)0;
	result = ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 0);
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138):
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* field;
			field = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3148(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ status;
						if (!(i_2 < colontmp_)) goto LA5;
						i = i_2;
						field = (*n)._kind_6.sons->data[i];
						status = semConstructFields__sem_20745(c, field, constrCtx, flags);
						mergeInitStatus__sem_20485((&result), status);
						i_2 += ((NI) 1);
					} LA5: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 139):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* discriminator;
		NI selectedBranch;
		discriminator = (*n)._kind_6.sons->data[((NI) 0)];
		{
			NimStringDesc* argX60gensym5465_;
			if (!!(((*discriminator).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA9_;
			argX60gensym5465_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_483);
			internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym5465_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_483);
		}
		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_3155(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* innerRecords;
					NI T14_;
					tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ status_2;
					if (!(i_4 < colontmp__2)) goto LA13;
					i_3 = i_4;
					T14_ = (NI)0;
					T14_ = len__ast_3155((*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_20745(c, innerRecords, constrCtx, flags);
					{
						if (!!(((9 &((NU8)1<<((NU)(status_2)&7U)))!=0))) goto LA17_;
						mergeInitStatus__sem_20485((&result), status_2);
						{
							NimStringDesc* prevFields;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym5473_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fieldsX60gensym5473_;
							NI T23_;
							NimStringDesc* currentFields;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym5478_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fieldsX60gensym5478_;
							NI T24_;
							tyArray__Re75IspeoxXy2oCZHwcRrA T25_;
							NimStringDesc* T26_;
							if (!!((selectedBranch == ((NI) -1)))) goto LA21_;
							branchX60gensym5473_ = (*n)._kind_6.sons->data[selectedBranch];
							T23_ = (NI)0;
							T23_ = len__ast_3155(branchX60gensym5473_);
							fieldsX60gensym5473_ = (*branchX60gensym5473_)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))];
							prevFields = fieldsPresentInInitExpr__sem_20717(c, fieldsX60gensym5473_, (*constrCtx).initExpr);
							branchX60gensym5478_ = (*n)._kind_6.sons->data[i_3];
							T24_ = (NI)0;
							T24_ = len__ast_3155(branchX60gensym5478_);
							fieldsX60gensym5478_ = (*branchX60gensym5478_)._kind_6.sons->data[(NI)(T24_ - ((NI) 1))];
							currentFields = fieldsPresentInInitExpr__sem_20717(c, fieldsX60gensym5478_, (*constrCtx).initExpr);
							nimZeroMem((void*)T25_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
							T25_[0] = copyString(prevFields);
							T25_[1] = copyString(currentFields);
							T26_ = NIM_NIL;
							T26_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_490), T25_, 2);
							liMessage__msgs_1128((*(*c).graph).config, (*(*constrCtx).initExpr).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T26_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_491, NIM_FALSE);
							result = ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 4);
						}
						goto LA19_;
						LA21_: ;
						{
							selectedBranch = i_3;
						}
						LA19_: ;
					}
					LA17_: ;
					i_4 += ((NI) 1);
				} LA13: ;
			}
		}
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchNode;
			tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags_2;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* discriminatorVal;
			if (!!((selectedBranch == ((NI) -1)))) goto LA30_;
			branchNode = (*n)._kind_6.sons->data[selectedBranch];
			flags_2 = 96;
			discriminatorVal = semConstrField__sem_20553(c, flags_2, (*discriminator)._kind_4.sym, (*constrCtx).initExpr);
			{
				if (!!((discriminatorVal == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA34_;
				discriminatorVal = skipHidden__types_3677(discriminatorVal);
				{
					NIM_BOOL T38_;
					NIM_BOOL T40_;
					NIM_BOOL T41_;
					NIM_BOOL T42_;
					tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T44_;
					tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T46_;
					T38_ = (NIM_BOOL)0;
					T38_ = !(((*discriminatorVal).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*discriminatorVal).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_1723((*(*c).graph).config, (*discriminatorVal).typ);
					T41_ = lt___int495056_931(IL64(65536), T44_);
					LA43_: ;
					T40_ = T41_;
					if (T40_) goto LA45_;
					T46_ = lengthOrd__types_1723((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
					T40_ = lt___int495056_931(IL64(65536), T46_);
					LA45_: ;
					T38_ = T40_;
					LA39_: ;
					if (!T38_) goto LA47_;
					liMessage__msgs_1128((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_495), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_496, NIM_FALSE);
				}
				LA47_: ;
			}
			LA34_: ;
			{
				if (!(discriminatorVal == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA51_;
				{
					NimStringDesc* fieldsX60gensym5498_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym5499_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fieldsX60gensym5499_;
					NI T57_;
					tyArray__Re75IspeoxXy2oCZHwcRrA T58_;
					NimStringDesc* T59_;
					if (!((*c).inUncheckedAssignSection == ((NI) 0))) goto LA55_;
					branchX60gensym5499_ = (*n)._kind_6.sons->data[selectedBranch];
					T57_ = (NI)0;
					T57_ = len__ast_3155(branchX60gensym5499_);
					fieldsX60gensym5499_ = (*branchX60gensym5499_)._kind_6.sons->data[(NI)(T57_ - ((NI) 1))];
					fieldsX60gensym5498_ = fieldsPresentInInitExpr__sem_20717(c, fieldsX60gensym5499_, (*constrCtx).initExpr);
					nimZeroMem((void*)T58_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
					T58_[0] = copyString(fieldsX60gensym5498_);
					T58_[1] = copyString((*(*(*discriminator)._kind_4.sym).name).s);
					T59_ = NIM_NIL;
					T59_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_497), T58_, 2);
					liMessage__msgs_1128((*(*c).graph).config, (*(*constrCtx).initExpr).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T59_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_498, NIM_FALSE);
				}
				LA55_: ;
				mergeInitStatus__sem_20485((&result), ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 3));
			}
			goto LA49_;
			LA51_: ;
			{
				tyTuple__2E9aYKv1U4zUZsR6wkNRkPg T63_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ctorCase;
				NI ctorIdx;
				if (!((*discriminatorVal).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA61_;
				nimZeroMem((void*)(&T63_), sizeof(tyTuple__2E9aYKv1U4zUZsR6wkNRkPg));
				findUsefulCaseContext__sem_20641(c, discriminatorVal, (&T63_));
				ctorCase = NIM_NIL;
				ctorCase = T63_.Field0;
				ctorIdx = (NI)0;
				ctorIdx = T63_.Field1;
				{
					if (!(ctorCase == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA66_;
					{
						tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw rangeVals;
						tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw recBranchVals;
						tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw diff;
						tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw T72_;
						if (!((*(*discriminatorVal).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 20))) goto LA70_;
						nimZeroMem((void*)(&rangeVals), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
						getIntSetOfType__sem_4152(c, (*discriminatorVal).typ, (&rangeVals));
						nimZeroMem((void*)(&recBranchVals), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
						branchVals__sem_20609(c, n, selectedBranch, NIM_FALSE, (&recBranchVals));
						nimZeroMem((void*)(&diff), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
						nimZeroMem((void*)(&T72_), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
						minus___sem_4262((&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_1789((&diff));
							if (!!((T75_ == ((NI) 0)))) goto LA76_;
							nimZeroMem((void*)T78_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
							T78_[0] = dollar___systemZdollars_3(selectedBranch);
							T78_[1] = renderAsType__sem_4210((&diff), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
							T79_ = NIM_NIL;
							T79_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_499), T78_, 2);
							liMessage__msgs_1128((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T79_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_500, NIM_FALSE);
						}
						LA76_: ;
					}
					goto LA68_;
					LA70_: ;
					{
						{
							NimStringDesc* fieldsX60gensym5513_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym5514_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fieldsX60gensym5514_;
							NI T85_;
							tyArray__Re75IspeoxXy2oCZHwcRrA T86_;
							NimStringDesc* T87_;
							if (!((*c).inUncheckedAssignSection == ((NI) 0))) goto LA83_;
							branchX60gensym5514_ = (*n)._kind_6.sons->data[selectedBranch];
							T85_ = (NI)0;
							T85_ = len__ast_3155(branchX60gensym5514_);
							fieldsX60gensym5514_ = (*branchX60gensym5514_)._kind_6.sons->data[(NI)(T85_ - ((NI) 1))];
							fieldsX60gensym5513_ = fieldsPresentInInitExpr__sem_20717(c, fieldsX60gensym5514_, (*constrCtx).initExpr);
							nimZeroMem((void*)T86_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
							T86_[0] = copyString(fieldsX60gensym5513_);
							T86_[1] = copyString((*(*(*discriminator)._kind_4.sym).name).s);
							T87_ = NIM_NIL;
							T87_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_497), T86_, 2);
							liMessage__msgs_1128((*(*c).graph).config, (*(*constrCtx).initExpr).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T87_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_498, NIM_FALSE);
						}
						LA83_: ;
						mergeInitStatus__sem_20485((&result), ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 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__b28l2MkhJpnFhatVrsrXpg) 23));
					LA90_: ;
					if (!T89_) goto LA91_;
					{
						if (!((*c).inUncheckedAssignSection == ((NI) 0))) goto LA95_;
						liMessage__msgs_1128((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_501), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_502, NIM_FALSE);
					}
					LA95_: ;
				}
				goto LA64_;
				LA91_: ;
				{
					if (!((*(*ctorCase)._kind_6.sons->data[ctorIdx]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86))) goto LA98_;
					liMessage__msgs_1128((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_503), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_504, NIM_FALSE);
				}
				goto LA64_;
				LA98_: ;
				{
					tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw ctorBranchVals;
					tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw recBranchVals_2;
					tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw branchValsDiff;
					nimZeroMem((void*)(&ctorBranchVals), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
					branchVals__sem_20609(c, ctorCase, ctorIdx, NIM_TRUE, (&ctorBranchVals));
					nimZeroMem((void*)(&recBranchVals_2), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
					branchVals__sem_20609(c, n, selectedBranch, NIM_FALSE, (&recBranchVals_2));
					nimZeroMem((void*)(&branchValsDiff), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
					minus___sem_4262((&ctorBranchVals), (&recBranchVals_2), (&branchValsDiff));
					{
						NI T103_;
						tyArray__Re75IspeoxXy2oCZHwcRrA T106_;
						NimStringDesc* T107_;
						T103_ = (NI)0;
						T103_ = len__nilcheck_1789((&branchValsDiff));
						if (!!((T103_ == ((NI) 0)))) goto LA104_;
						nimZeroMem((void*)T106_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
						T106_[0] = dollar___systemZdollars_3(selectedBranch);
						T106_[1] = renderAsType__sem_4210((&branchValsDiff), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
						T107_ = NIM_NIL;
						T107_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_499), T106_, 2);
						liMessage__msgs_1128((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T107_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_505, NIM_FALSE);
					}
					LA104_: ;
				}
				LA64_: ;
			}
			goto LA49_;
			LA61_: ;
			{
				NI failedBranch;
				failedBranch = ((NI) -1);
				{
					if (!!(((*branchNode).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88)))) goto LA111_;
					{
						NIM_BOOL T115_;
						T115_ = (NIM_BOOL)0;
						T115_ = caseBranchMatchesExpr__sem_20590(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_3155(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_20590((*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__THXDbzJSs2hcC9a33en2pdw rangeVals_2;
						tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw recBranchVals_3;
						tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw diff_2;
						tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw T136_;
						if (!((*(*discriminatorVal).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 20))) goto LA134_;
						nimZeroMem((void*)(&rangeVals_2), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
						getIntSetOfType__sem_4152(c, (*discriminatorVal).typ, (&rangeVals_2));
						nimZeroMem((void*)(&recBranchVals_3), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
						branchVals__sem_20609(c, n, selectedBranch, NIM_FALSE, (&recBranchVals_3));
						nimZeroMem((void*)(&diff_2), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
						nimZeroMem((void*)(&T136_), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
						minus___sem_4262((&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_1789((&diff_2));
							if (!!((T139_ == ((NI) 0)))) goto LA140_;
							nimZeroMem((void*)T142_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
							T142_[0] = dollar___systemZdollars_3(selectedBranch);
							T142_[1] = renderAsType__sem_4210((&diff_2), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
							T143_ = NIM_NIL;
							T143_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_499), T142_, 2);
							liMessage__msgs_1128((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T143_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_506, NIM_FALSE);
						}
						LA140_: ;
					}
					goto LA132_;
					LA134_: ;
					{
						{
							NimStringDesc* fieldsX60gensym5546_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym5547_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fieldsX60gensym5547_;
							NI T149_;
							tyArray__24KAM9afIUgUaqBaEBB6r9bg T150_;
							NimStringDesc* T151_;
							if (!((*c).inUncheckedAssignSection == ((NI) 0))) goto LA147_;
							branchX60gensym5547_ = (*n)._kind_6.sons->data[failedBranch];
							T149_ = (NI)0;
							T149_ = len__ast_3155(branchX60gensym5547_);
							fieldsX60gensym5547_ = (*branchX60gensym5547_)._kind_6.sons->data[(NI)(T149_ - ((NI) 1))];
							fieldsX60gensym5546_ = fieldsPresentInInitExpr__sem_20717(c, fieldsX60gensym5547_, (*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(fieldsX60gensym5546_);
							T151_ = NIM_NIL;
							T151_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_507), T150_, 3);
							liMessage__msgs_1128((*(*c).graph).config, (*(*constrCtx).initExpr).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T151_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_508, NIM_FALSE);
						}
						LA147_: ;
					}
					LA132_: ;
				}
				LA130_: ;
			}
			LA49_: ;
			{
				if (!(result == ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 2))) goto LA154_;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fieldsX60gensym5555_;
					NI T160_;
					if (!!((branchNode == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA158_;
					T160_ = (NI)0;
					T160_ = len__ast_3155(branchNode);
					fieldsX60gensym5555_ = (*branchNode)._kind_6.sons->data[(NI)(T160_ - ((NI) 1))];
					collectMissingFields__sem_20727(c, fieldsX60gensym5555_, constrCtx);
				}
				LA158_: ;
			}
			LA154_: ;
		}
		goto LA28_;
		LA30_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* discriminatorVal_2;
			result = ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 3);
			discriminatorVal_2 = semConstrField__sem_20553(c, (flags | 32), (*discriminator)._kind_4.sym, (*constrCtx).initExpr);
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* defaultValue;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* matchedBranch;
				if (!(discriminatorVal_2 == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA164_;
				defaultValue = newIntLit__lowerings_701((*c).graph, (*(*constrCtx).initExpr).info, IL64(0));
				matchedBranch = pickCaseBranch__sem_20666(n, defaultValue);
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fieldsX60gensym5560_;
					NI T170_;
					if (!!((matchedBranch == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA168_;
					T170_ = (NI)0;
					T170_ = len__ast_3155(matchedBranch);
					fieldsX60gensym5560_ = (*matchedBranch)._kind_6.sons->data[(NI)(T170_ - ((NI) 1))];
					collectMissingFields__sem_20727(c, fieldsX60gensym5560_, constrCtx);
				}
				LA168_: ;
			}
			goto LA162_;
			LA164_: ;
			{
				result = ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 2);
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* matchedBranch_2;
					if (!((*discriminatorVal_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6))) goto LA174_;
					matchedBranch_2 = pickCaseBranch__sem_20666(n, discriminatorVal_2);
					{
						if (!!((matchedBranch_2 == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA178_;
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fieldsX60gensym5566_;
							NI T184_;
							if (!!((matchedBranch_2 == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA182_;
							T184_ = (NI)0;
							T184_ = len__ast_3155(matchedBranch_2);
							fieldsX60gensym5566_ = (*matchedBranch_2)._kind_6.sons->data[(NI)(T184_ - ((NI) 1))];
							collectMissingFields__sem_20727(c, fieldsX60gensym5566_, 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_3155(n);
						i_8 = ((NI) 1);
						{
							while (1) {
								if (!(i_8 < colontmp__4)) goto LA188;
								i_7 = i_8;
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fieldsX60gensym5572_;
									NI T193_;
									if (!!(((*n)._kind_6.sons->data[i_7] == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA191_;
									T193_ = (NI)0;
									T193_ = len__ast_3155((*n)._kind_6.sons->data[i_7]);
									fieldsX60gensym5572_ = (*(*n)._kind_6.sons->data[i_7])._kind_6.sons->data[(NI)(T193_ - ((NI) 1))];
									collectMissingFields__sem_20727(c, fieldsX60gensym5572_, constrCtx);
								}
								LA191_: ;
								i_8 += ((NI) 1);
							} LA188: ;
						}
					}
				}
				LA172_: ;
			}
			LA162_: ;
		}
		LA28_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* field_2;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e;
		field_2 = (*n)._kind_4.sym;
		e = semConstrField__sem_20553(c, flags, field_2, (*constrCtx).initExpr);
		{
			if (!!((e == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA197_;
			result = ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 1);
		}
		goto LA195_;
		LA197_: ;
		{
			result = ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 3);
		}
		LA195_: ;
	}
	break;
	default:
	{
		{
			NimStringDesc* argX60gensym5579_;
			if (!NIM_TRUE) goto LA203_;
			argX60gensym5579_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_509);
			internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym5579_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_509);
		}
		LA203_: ;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ, semConstructTypeAux__sem_21050)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ* constrCtx, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
{	result = (tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ)0;
	result = ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 0);
	t = (*constrCtx).typ;
	{
		while (1) {
			tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ status;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
			NIM_BOOL T15_;
			status = semConstructFields__sem_20745(c, (*t).n, constrCtx, flags);
			mergeInitStatus__sem_20485((&result), status);
			{
				if (!((13 &((NU8)1<<((NU)(status)&7U)))!=0)) goto LA5_;
				collectMissingFields__sem_20727(c, (*t).n, constrCtx);
			}
			LA5_: ;
			base = (*t).sons->data[((NI) 0)];
			{
				if (!(base == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA9_;
				goto LA1;
			}
			LA9_: ;
			t = skipTypes__ast_3723(base, TM__DKP9c7KM5AbqYVP6Gd9blNUw_59);
			{
				if (!!(((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__Vrztsndr9a9bj8bQ3cn49bwWw) 19))&63U)))!=0);
			LA16_: ;
			(*constrCtx).needsFullInit = T15_;
		}
	} LA1: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, computeRequiresInit__sem_139)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	NIM_BOOL result;
	tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ constrCtx;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ initResult;
	NI T2_;
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&constrCtx), sizeof(tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ));
	T1_ = NIM_NIL;
	T1_ = newNode__ast_3289(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38));
	initConstrContext__sem_21075(t, T1_, (&constrCtx));
	initResult = semConstructTypeAux__sem_21050(c, (&constrCtx), 0);
	T2_ = (constrCtx.missingFields ? constrCtx.missingFields->Sup.len : 0);
	result = (((NI) 0) < T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semObjectNode__sem_4731)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev, tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw flags) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw check;
	NI pos;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* realBase;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = newConstraint__sem_2994(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17));
		goto BeforeRet_;
	}
	LA4_: ;
	nimZeroMem((void*)(&check), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	initIntSet__pureZcollectionsZintsets_238((&check));
	pos = ((NI) 0);
	base = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
	realBase = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
	checkSonsLen__semdata_1107(n, ((NI) 3), (*(*c).graph).config);
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA8_;
		realBase = semTypeNode__sem_83(c, (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		base = skipTypesOrNil__ast_4173(realBase, TM__DKP9c7KM5AbqYVP6Gd9blNUw_59);
		{
			if (!(base == 0)) goto LA12_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_60), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_61, NIM_FALSE);
		}
		goto LA10_;
		LA12_: ;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* concreteBase;
			concreteBase = skipGenericInvocation__sem_4695(base);
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = ((*concreteBase).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17) || (*concreteBase).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12) || (*concreteBase).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9));
				if (!(T17_)) goto LA18_;
				T17_ = !((((*concreteBase).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 2))&63U)))!=0));
				LA18_: ;
				if (!T17_) goto LA19_;
				{
					if (!((*concreteBase).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17))) goto LA23_;
					{
						NIM_BOOL T27_;
						NIM_BOOL T28_;
						T27_ = (NIM_BOOL)0;
						T28_ = (NIM_BOOL)0;
						T28_ = !(((*concreteBase).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
						if (!(T28_)) goto LA29_;
						T28_ = ((*(*concreteBase).sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 269));
						LA29_: ;
						T27_ = T28_;
						if (!(T27_)) goto LA30_;
						T27_ = !((((*(*c).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 15))&63U)))!=0));
						LA30_: ;
						if (!T27_) goto LA31_;
						liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 38), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_62, NIM_FALSE);
					}
					LA31_: ;
					addInheritedFields__sem_4710(c, (&check), (&pos), concreteBase);
				}
				LA23_: ;
			}
			goto LA15_;
			LA19_: ;
			{
				{
					NimStringDesc* T38_;
					NimStringDesc* T39_;
					if (!!(((*concreteBase).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50)))) goto LA36_;
					T38_ = NIM_NIL;
					T39_ = NIM_NIL;
					T39_ = typeToString__types_50(realBase, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
					T38_ = rawNewString((T39_ ? T39_->Sup.len : 0) + 120);
appendString(T38_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_69));
appendString(T38_, T39_);
appendString(T38_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_70));
					liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T38_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_71, NIM_FALSE);
				}
				LA36_: ;
				base = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
				realBase = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
			}
			LA15_: ;
		}
		LA10_: ;
	}
	LA8_: ;
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 133)))) goto LA42_;
		internalErrorImpl__msgs_1441((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_72), TM__DKP9c7KM5AbqYVP6Gd9blNUw_73);
	}
	LA42_: ;
	result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17), prev, c);
	rawAddSon__ast_4276(result, realBase, NIM_TRUE);
	{
		NIM_BOOL T46_;
		T46_ = (NIM_BOOL)0;
		T46_ = (realBase == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		if (!(T46_)) goto LA47_;
		T46_ = ((flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 3))&63U)))!=0);
		LA47_: ;
		if (!T46_) goto LA48_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 3)) & 63);
	}
	LA48_: ;
	{
		if (!((flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 39))&63U)))!=0)) goto LA52_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 39)) & 63);
	}
	LA52_: ;
	{
		if (!((*result).n == 0)) goto LA56_;
		asgnRef((void**) (&(*result).n), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138), (*n).info));
	}
	goto LA54_;
	LA56_: ;
	{
		addInheritedFields__sem_4710(c, (&check), (&pos), result);
	}
	LA54_: ;
	semRecordNodeAux__sem_4144(c, (*n)._kind_6.sons->data[((NI) 2)], (&check), (&pos), (*result).n, result, NIM_FALSE);
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T63_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T64_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA61_;
		T63_ = NIM_NIL;
		T63_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_481));
		T64_ = NIM_NIL;
		T64_ = newIdentNode__ast_3700(T63_, (*n).info);
		s = newSymS__sem_457(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7), T64_, c);
		asgnRef((void**) (&(*s).typ), result);
		pragma__pragmas_125(c, s, (*n)._kind_6.sons->data[((NI) 0)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_482, NIM_FALSE);
	}
	LA61_: ;
	{
		NIM_BOOL T67_;
		T67_ = (NIM_BOOL)0;
		T67_ = (base == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		if (!(T67_)) goto LA68_;
		T67_ = !((((*result).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 3))&63U)))!=0));
		LA68_: ;
		if (!T67_) goto LA69_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 2)) & 63);
	}
	LA69_: ;
	{
		NIM_BOOL T73_;
		T73_ = (NIM_BOOL)0;
		T73_ = ((*c).inGenericContext == ((NI) 0));
		if (!(T73_)) goto LA74_;
		T73_ = computeRequiresInit__sem_139(c, result);
		LA74_: ;
		if (!T73_) goto LA75_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 18)) & 63);
	}
	LA75_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semAnyRef__sem_4835)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ < ((NI) 1))) goto LA4_;
		result = newConstraint__sem_2994(c, kind);
	}
	goto LA1_;
	LA4_: ;
	{
		NI isCall;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
		NIM_BOOL isNilable;
		tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg wrapperKind;
		isCall = ((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42));
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41))) goto LA9_;
			n_2 = (*n)._kind_6.sons->data[((NI) 0)];
		}
		goto LA7_;
		LA9_: ;
		{
			n_2 = n;
		}
		LA7_: ;
		checkMinSonsLen__semdata_1114(n_2, ((NI) 1), (*(*c).graph).config);
		body = lastSon__ast_4833(n_2);
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = !((prev == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T14_)) goto LA15_;
			T14_ = ((*body).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 133));
			LA15_: ;
			if (!T14_) goto LA16_;
			t = semObjectNode__sem_4731(c, body, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL), (*prev).flags);
		}
		goto LA12_;
		LA16_: ;
		{
			t = semTypeNode__sem_83(c, body, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		LA12_: ;
		{
			NIM_BOOL T21_;
			T21_ = (NIM_BOOL)0;
			T21_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
			if (!(T21_)) goto LA22_;
			T21_ = !((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9))&63U)))!=0));
			LA22_: ;
			if (!T21_) goto LA23_;
			t = base__types_63(t);
		}
		LA23_: ;
		{
			NimStringDesc* T29_;
			NimStringDesc* T30_;
			if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63))) goto LA27_;
			T29_ = NIM_NIL;
			T29_ = toHumanStr__ast_5200(kind);
			T30_ = NIM_NIL;
			T30_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_510), T29_);
			liMessage__msgs_1128((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T30_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_511, NIM_FALSE);
		}
		LA27_: ;
		result = newOrPrevType__sem_2981(kind, prev, c);
		isNilable = NIM_FALSE;
		wrapperKind = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0);
		{
			NI i;
			NI colontmp_;
			NI T32_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T32_ = (NI)0;
			T32_ = len__ast_3155(n_2);
			colontmp_ = (NI)(T32_ - ((NI) 1));
			i_2 = isCall;
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ni;
					if (!(i_2 < colontmp_)) goto LA34;
					i = i_2;
					ni = (*n_2)._kind_6.sons->data[i];
					{
						if (!((*ni).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23))) goto LA37_;
						isNilable = NIM_TRUE;
					}
					goto LA35_;
					LA37_: ;
					{
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* region;
						region = semTypeNode__sem_83(c, ni, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
						{
							if (!((*region).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45) || (*region).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46))) goto LA42_;
							wrapperKind = (*region).kind;
						}
						goto LA40_;
						LA42_: ;
						{
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T45_;
							T45_ = NIM_NIL;
							T45_ = skipTypes__ast_3723(region, TM__DKP9c7KM5AbqYVP6Gd9blNUw_141);
							if (!!(((*T45_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50) || (*T45_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17)))) goto LA46_;
							liMessage__msgs_1128((*(*c).graph).config, (*(*n_2)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_512), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_513, NIM_FALSE);
							addSonSkipIntLit__magicsys_136(result, region, (*c).Sup.idgen);
						}
						goto LA40_;
						LA46_: ;
						{
							liMessage__msgs_1128((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 21), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_514), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_515, 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__Vrztsndr9a9bj8bQ3cn49bwWw) 16))&63U)))!=0)) goto LA51_;
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T55_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T58_;
				T55_ = NIM_NIL;
				T55_ = lastSon__ast_3731(result);
				if (!((*T55_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17))) goto LA56_;
				T58_ = NIM_NIL;
				T58_ = lastSon__ast_3731(result);
				(*T58_).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 16)) & 63);
			}
			LA56_: ;
		}
		LA51_: ;
		switch (wrapperKind) {
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45):
		{
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_2;
				if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 42))&63U)))!=0)) goto LA62_;
				t_2 = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45), c);
				(*t_2).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 4)) & 63);
				rawAddSonNoPropagationOfTypeFlags__ast_4287(t_2, result);
				result = t_2;
			}
			LA62_: ;
		}
		break;
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46):
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_3;
			t_3 = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46), c);
			rawAddSonNoPropagationOfTypeFlags__ast_4287(t_3, result);
			result = t_3;
		}
		break;
		default:
		{
		}
		break;
		}
		{
			NIM_BOOL T68_;
			T68_ = (NIM_BOOL)0;
			T68_ = ((*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__Vrztsndr9a9bj8bQ3cn49bwWw) 31)) & 63);
		}
		LA70_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semTypeOf2__sem_6203)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	NI64 m;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* t;
	tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw T12_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	m = IL64(1);
	{
		NI T4_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* mode;
		T4_ = (NI)0;
		T4_ = len__ast_3155(n);
		if (!(T4_ == ((NI) 3))) goto LA5_;
		mode = semConstExpr__sem_619(c, (*n)._kind_6.sons->data[((NI) 2)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		{
			if (!!(((*mode).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6)))) goto LA9_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_251), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_517, 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_57(c, (*n)._kind_6.sons->data[((NI) 1)], T12_, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	closeScope__lookups_108(c);
	fixupTypeOf__sem_5909(c, prev, t);
	result = (*t).typ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__pureZtimes_2292)(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw s, NI 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;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, commonType__sem_241)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* x, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* y) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* a;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* b;
{	result = NIM_NIL;
	{
		if (!(x == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA3_;
		result = x;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(y == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA7_;
		result = y;
		goto BeforeRet_;
	}
	LA7_: ;
	a = skipTypes__ast_3723(x, TM__DKP9c7KM5AbqYVP6Gd9blNUw_141);
	b = skipTypes__ast_3723(y, TM__DKP9c7KM5AbqYVP6Gd9blNUw_141);
	result = x;
	{
		if (!((*a).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6) || (*a).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5))) goto LA11_;
		result = y;
	}
	goto LA9_;
	LA11_: ;
	{
		if (!((*b).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6) || (*b).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5))) goto LA14_;
		result = x;
	}
	goto LA9_;
	LA14_: ;
	{
		if (!((*a).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7))) goto LA17_;
		result = a;
	}
	goto LA9_;
	LA17_: ;
	{
		if (!((*b).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7))) goto LA20_;
		result = b;
	}
	goto LA9_;
	LA20_: ;
	{
		if (!((*a).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8))) goto LA23_;
		{
			NI T27_;
			T27_ = (NI)0;
			T27_ = len__ast_3990(a);
			if (!(T27_ == ((NI) 0))) goto LA28_;
			result = a;
		}
		goto LA25_;
		LA28_: ;
		{
			tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T31_;
			tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T32_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T33_;
			T31_ = nextTypeId__ast_3122((*c).Sup.idgen);
			result = newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8), T31_, (*a).owner);
			T32_ = nextTypeId__ast_3122((*c).Sup.idgen);
			T33_ = NIM_NIL;
			T33_ = newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0), T32_, (*a).owner);
			rawAddSon__ast_4276(result, T33_, NIM_TRUE);
		}
		LA25_: ;
	}
	goto LA9_;
	LA23_: ;
	{
		NIM_BOOL T35_;
		NI idx;
		T35_ = (NIM_BOOL)0;
		T35_ = ((*b).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16) || (*b).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19) || (*b).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24));
		if (!(T35_)) goto LA36_;
		T35_ = ((*a).kind == (*b).kind);
		LA36_: ;
		if (!T35_) goto LA37_;
		idx = ((*b).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16));
		{
			if (!((*(*a).sons->data[idx]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 3))) goto LA41_;
			result = y;
			goto BeforeRet_;
		}
		LA41_: ;
	}
	goto LA9_;
	LA37_: ;
	{
		NIM_BOOL T44_;
		NIM_BOOL T45_;
		NI T48_;
		NI T49_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* nt;
		T44_ = (NIM_BOOL)0;
		T45_ = (NIM_BOOL)0;
		T45_ = ((*a).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18));
		if (!(T45_)) goto LA46_;
		T45_ = ((*b).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18));
		LA46_: ;
		T44_ = T45_;
		if (!(T44_)) goto LA47_;
		T48_ = (NI)0;
		T48_ = len__ast_3990(a);
		T49_ = (NI)0;
		T49_ = len__ast_3990(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_3990(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_3690((*a).sons->data[i]);
					bEmpty = isEmptyContainer__types_3690((*b).sons->data[i]);
					{
						if (!!((aEmpty == bEmpty))) goto LA57_;
						{
							tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T63_;
							if (!(nt == 0)) goto LA61_;
							T63_ = nextTypeId__ast_3122((*c).Sup.idgen);
							nt = copyType__ast_4034(a, T63_, (*a).owner);
							copyTypeProps__modulegraphs_8910((*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__b28l2MkhJpnFhatVrsrXpg) 20));
		if (!(T74_)) goto LA75_;
		T74_ = ((*b).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 20));
		LA75_: ;
		if (!T74_) goto LA76_;
		{
			NIM_BOOL T80_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T83_;
			T80_ = (NIM_BOOL)0;
			T80_ = sameType__types_1886(a, b, 0);
			if (!!(T80_)) goto LA81_;
			T83_ = NIM_NIL;
			T83_ = skipTypes__ast_3723(a, TM__DKP9c7KM5AbqYVP6Gd9blNUw_37);
			result = skipIntLit__magicsys_124(T83_, (*c).Sup.idgen);
		}
		LA81_: ;
	}
	goto LA9_;
	LA76_: ;
	{
		NIM_BOOL T85_;
		T85_ = (NIM_BOOL)0;
		T85_ = ((*a).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
		if (!(T85_)) goto LA86_;
		T85_ = ((*b).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
		LA86_: ;
		if (!T85_) goto LA87_;
		{
			NIM_BOOL T91_;
			T91_ = (NIM_BOOL)0;
			T91_ = ((*a).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9));
			if (!(T91_)) goto LA92_;
			T91_ = !(((*b).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9)));
			LA92_: ;
			if (!T91_) goto LA93_;
			result = x;
		}
		goto LA89_;
		LA93_: ;
		{
			NIM_BOOL T96_;
			tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA T97_;
			T96_ = (NIM_BOOL)0;
			T97_ = (tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA)0;
			T97_ = compatibleEffects__types_3489(a, b);
			T96_ = !((T97_ == ((tyEnum_EffectsCompat__Ua7UNlEurqcdZ8OG3EY7xA) 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__b28l2MkhJpnFhatVrsrXpg k;
		k = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0);
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T110_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T111_;
			if (!((*a).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22) || (*a).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21))) goto LA104_;
			k = (*a).kind;
			{
				if (!!(((*b).kind == (*a).kind))) goto LA108_;
				result = x;
				goto BeforeRet_;
			}
			LA108_: ;
			T110_ = NIM_NIL;
			T110_ = lastSon__ast_3731(a);
			a = skipTypes__ast_3723(T110_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_332);
			T111_ = NIM_NIL;
			T111_ = lastSon__ast_3731(b);
			b = skipTypes__ast_3723(T111_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_332);
		}
		LA104_: ;
		{
			NIM_BOOL T114_;
			T114_ = (NIM_BOOL)0;
			T114_ = ((*a).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17));
			if (!(T114_)) goto LA115_;
			T114_ = ((*b).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17));
			LA115_: ;
			if (!T114_) goto LA116_;
			result = commonSuperclass__types_2799(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__kQDDJGUiaUAtO9c9b6LjZYjA* r;
				tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T134_;
				T130_ = (NIM_BOOL)0;
				T130_ = !((k == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0)));
				if (!(T130_)) goto LA131_;
				T130_ = !(((*x).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11)));
				LA131_: ;
				if (!T130_) goto LA132_;
				r = result;
				T134_ = nextTypeId__ast_3122((*c).Sup.idgen);
				result = newType__ast_3884(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__uh9cWvEa5Ty85PXOtuP5emw*, semWhen__sem_520)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL semCheck) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NIM_BOOL whenNimvm;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
{	result = NIM_NIL;
	result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
	whenNimvm = NIM_FALSE;
	T1_ = NIM_NIL;
	T1_ = (tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) newObj((&NTIptype__q1v0zzhoMWrhMLs6UEp1IA_), sizeof(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA));
	(*T1_).Sup.Sup.m_type = (&NTIttype__kQDDJGUiaUAtO9c9b6LjZYjA_);
	(*T1_).kind = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6);
	typ = T1_;
	{
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw T6_;
		NI T7_;
		NIM_BOOL T10_;
		NI T11_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* exprNode;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T6_ = dotdot___pureZunicode_840(((NI) 1), ((NI) 2));
		T7_ = (NI)0;
		T7_ = len__ast_3155(n);
		T5_ = contains__pureZtimes_2292(T6_, T7_);
		if (!(T5_)) goto LA8_;
		T5_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86));
		LA8_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T11_ = (NI)0;
		T11_ = len__ast_3155(n);
		T10_ = (T11_ == ((NI) 1));
		if (T10_) goto LA12_;
		T10_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88));
		LA12_: ;
		T4_ = T10_;
		LA9_: ;
		if (!T4_) goto LA13_;
		exprNode = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T19_;
			if (!((*exprNode).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2))) goto LA17_;
			T19_ = NIM_NIL;
			T19_ = lookUp__lookups_2576(c, exprNode);
			whenNimvm = ((*T19_).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 264));
		}
		goto LA15_;
		LA17_: ;
		{
			if (!((*exprNode).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA21_;
			whenNimvm = ((*(*exprNode)._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 264));
		}
		goto LA15_;
		LA21_: ;
		LA15_: ;
		{
			if (!whenNimvm) goto LA25_;
			(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 8)) & 31);
		}
		LA25_: ;
	}
	LA13_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
				if (!(i_2 < colontmp_)) goto LA29;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				switch ((*it).kind) {
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86):
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 49):
				{
					checkSonsLen__semdata_1107(it, ((NI) 2), (*(*c).graph).config);
					{
						if (!whenNimvm) goto LA33_;
						{
							if (!semCheck) goto LA37_;
							asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 1)]), semExpr__sem_52(c, (*it)._kind_6.sons->data[((NI) 1)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
							typ = commonType__sem_241(c, typ, (*(*it)._kind_6.sons->data[((NI) 1)]).typ);
						}
						LA37_: ;
						result = n;
					}
					goto LA31_;
					LA33_: ;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T40_;
						T40_ = NIM_NIL;
						T40_ = semConstExpr__sem_619(c, (*it)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
						e = forceBool__sem_2933(c, T40_);
						{
							if (!!(((*e).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6)))) goto LA43_;
						}
						goto LA41_;
						LA43_: ;
						{
							NIM_BOOL T46_;
							T46_ = (NIM_BOOL)0;
							T46_ = !(((*e)._kind_1.intVal == IL64(0)));
							if (!(T46_)) goto LA47_;
							T46_ = (result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
							LA47_: ;
							if (!T46_) goto LA48_;
							{
								if (!semCheck) goto LA52_;
								result = semExpr__sem_52(c, (*it)._kind_6.sons->data[((NI) 1)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
							}
							goto LA50_;
							LA52_: ;
							{
								result = (*it)._kind_6.sons->data[((NI) 1)];
							}
							LA50_: ;
							goto BeforeRet_;
						}
						goto LA41_;
						LA48_: ;
						LA41_: ;
					}
					LA31_: ;
				}
				break;
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88):
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 50):
				{
					checkSonsLen__semdata_1107(it, ((NI) 1), (*(*c).graph).config);
					{
						NIM_BOOL T58_;
						T58_ = (NIM_BOOL)0;
						T58_ = (result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
						if (T58_) goto LA59_;
						T58_ = whenNimvm;
						LA59_: ;
						if (!T58_) goto LA60_;
						{
							if (!semCheck) goto LA64_;
							asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 0)]), semExpr__sem_52(c, (*it)._kind_6.sons->data[((NI) 0)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
							typ = commonType__sem_241(c, typ, (*(*it)._kind_6.sons->data[((NI) 0)]).typ);
						}
						LA64_: ;
						{
							if (!(result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA68_;
							result = (*it)._kind_6.sons->data[((NI) 0)];
						}
						LA68_: ;
					}
					LA60_: ;
				}
				break;
				default:
				{
					illFormedAst__semdata_1101(n, (*(*c).graph).config);
				}
				break;
				}
				i_2 += ((NI) 1);
			} LA29: ;
		}
	}
	{
		if (!(result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA73_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*n).info);
	}
	LA73_: ;
	{
		if (!whenNimvm) goto LA77_;
		asgnRef((void**) (&(*result).typ), typ);
		{
			NI T81_;
			tyArray__iegsN9bf6GqRiWprrJjTAoA T84_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T85_;
			T81_ = (NI)0;
			T81_ = len__ast_3155(n);
			if (!(T81_ == ((NI) 1))) goto LA82_;
			nimZeroMem((void*)T84_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
			T84_[0] = newNode__ast_3289(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115));
			T85_ = NIM_NIL;
			T85_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88), T84_, 1);
			add__ast_4798(result, T85_);
		}
		LA82_: ;
	}
	LA77_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, semTypeIdent__sem_3651)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
{	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA3_;
		result = getGenSym__semdata_420(c, (*n)._kind_4.sym);
	}
	goto LA1_;
	LA3_: ;
	{
		result = pickSym__lookups_3392(c, n, 152, 0);
		{
			if (!(result == 0)) goto LA8_;
			result = qualifiedLookUp__lookups_2598(c, n, 3);
		}
		LA8_: ;
		{
			if (!!((result == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA12_;
			markUsed__sigmatch_85(c, (*n).info, result);
			{
				NIM_BOOL T16_;
				tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T32_;
				T16_ = (NIM_BOOL)0;
				T16_ = ((*result).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3));
				if (!(T16_)) goto LA17_;
				T16_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
				LA17_: ;
				if (!T16_) goto LA18_;
				{
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* bound;
					if (!(((NI) 0) < (*c).inGenericInst)) goto LA22_;
					bound = (*(*(*result).typ).sons->data[((NI) 0)]).sym;
					{
						if (!!((bound == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA26_;
						result = bound;
						goto BeforeRet_;
					}
					LA26_: ;
					goto BeforeRet_;
				}
				LA22_: ;
				{
					if (!((*(*result).typ).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA30_;
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_519, NIM_FALSE);
					result = errorSym__lookups_686(c, n);
					goto BeforeRet_;
				}
				LA30_: ;
				T32_ = nextSymId__ast_3103((*c).Sup.idgen);
				result = copySym__ast_4042((*(*result).typ).sym, T32_);
				asgnRef((void**) (&(*result).typ), exactReplica__ast_4039((*result).typ));
				(*(*result).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9)) & 63);
			}
			LA18_: ;
			{
				if (!((*result).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__b28l2MkhJpnFhatVrsrXpg) 12));
					if (!(T40_)) goto LA41_;
					T42_ = (NI)0;
					T42_ = len__ast_3990((*result).typ);
					T40_ = (T42_ == ((NI) 0));
					LA41_: ;
					T39_ = T40_;
					if (!(T39_)) goto LA43_;
					T39_ = (((*(*result).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 30))&63U)))!=0);
					LA43_: ;
					if (!T39_) goto LA44_;
					transitionGenericParamToType__ast_4391(result);
					(*(*result).typ).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 30)) & 63));
					goto BeforeRet_;
				}
				goto LA37_;
				LA44_: ;
				{
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_520, NIM_FALSE);
					result = errorSym__lookups_686(c, n);
					goto BeforeRet_;
				}
				LA37_: ;
			}
			LA35_: ;
			{
				NIM_BOOL T49_;
				tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg ov;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* amb;
				T49_ = (NIM_BOOL)0;
				T49_ = !(((*result).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7)));
				if (!(T49_)) goto LA50_;
				T49_ = !(((*result).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 24) || (*result).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 17) || (*result).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 18)));
				LA50_: ;
				if (!T49_) goto LA51_;
				nimZeroMem((void*)(&ov), sizeof(tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg));
				amb = initOverloadIter__lookups_3120((&ov), c, n);
				{
					while (1) {
						NIM_BOOL T55_;
						T55_ = (NIM_BOOL)0;
						T55_ = !((amb == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
						if (!(T55_)) goto LA56_;
						T55_ = !(((*amb).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7)));
						LA56_: ;
						if (!T55_) goto LA54;
						amb = nextOverloadIter__lookups_3274((&ov), c, n);
					} LA54: ;
				}
				{
					if (!!((amb == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA59_;
					result = amb;
				}
				goto LA57_;
				LA59_: ;
				{
					{
						if (!!(((*result).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 0)))) goto LA64_;
						liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_521, NIM_FALSE);
					}
					LA64_: ;
					result = errorSym__lookups_686(c, n);
					goto BeforeRet_;
				}
				LA57_: ;
			}
			LA51_: ;
			{
				tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw oldInfo;
				if (!!(((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12)))) goto LA68_;
				oldInfo = (*n).info;
				reset__sem_3738(n);
				transitionNoneToSym__ast_4386(n);
				asgnRef((void**) (&(*n)._kind_4.sym), result);
				(*n).info = oldInfo;
				asgnRef((void**) (&(*n).typ), (*result).typ);
			}
			LA68_: ;
		}
		goto LA10_;
		LA12_: ;
		{
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_522), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_523, NIM_FALSE);
			result = errorSym__lookups_686(c, n);
		}
		LA10_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, symFromExpectedTypeNode__sem_6179)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4))) goto LA3_;
		result = symFromType__sem_537(c, (*n).typ, (*n).info);
	}
	goto LA1_;
	LA3_: ;
	{
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_524, NIM_FALSE);
		result = errorSym__lookups_686(c, n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semArrayIndex__sem_3527)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isRange__trees_213(n);
		if (!T3_) goto LA4_;
		result = semRangeAux__sem_3379(c, n, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29));
		if (!(T8_)) goto LA9_;
		T8_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2));
		LA9_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA10_;
		T7_ = eqStrings((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_525));
		LA10_: ;
		if (!T7_) goto LA11_;
		result = errorType__semdata_1032(c);
	}
	goto LA1_;
	LA11_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e;
		e = semExprWithType__sem_57(c, n, 512, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		{
			if (!((*(*e).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 61))) goto LA16_;
			result = makeRangeWithStaticExpr__semdata_1009(c, (*(*e).typ).n);
		}
		goto LA14_;
		LA16_: ;
		{
			if (!((*e).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6) && (*e).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15))) goto LA19_;
			{
				NimStringDesc* T25_;
				NimStringDesc* T26_;
				if (!((*e)._kind_1.intVal < IL64(0))) goto LA23_;
				T25_ = NIM_NIL;
				T26_ = NIM_NIL;
				T26_ = dollar___systemZdollars_6((*e)._kind_1.intVal);
				T25_ = rawNewString((T26_ ? T26_->Sup.len : 0) + 40);
appendString(T25_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_526));
appendString(T25_, T26_);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T25_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_527, NIM_FALSE);
			}
			LA23_: ;
			result = makeRangeType__semdata_1069(c, IL64(0), (NI64)((*e)._kind_1.intVal - IL64(1)), (*n).info, (*e).typ);
		}
		goto LA14_;
		LA19_: ;
		{
			NIM_BOOL T28_;
			T28_ = (NIM_BOOL)0;
			T28_ = ((*e).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
			if (!(T28_)) goto LA29_;
			T28_ = ((*(*e).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60));
			LA29_: ;
			if (!T28_) goto LA30_;
			{
				if (!!(((*(*e)._kind_4.sym).ast == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA34_;
				result = semArrayIndex__sem_3527(c, (*(*e)._kind_4.sym).ast);
				goto BeforeRet_;
			}
			LA34_: ;
			{
				NIM_BOOL T38_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T39_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T41_;
				NIM_BOOL T42_;
				tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
				T38_ = (NIM_BOOL)0;
				T39_ = NIM_NIL;
				T39_ = lastSon__ast_3731((*e).typ);
				T38_ = !(((*T39_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12)));
				if (!(T38_)) goto LA40_;
				T41_ = NIM_NIL;
				T41_ = lastSon__ast_3731((*e).typ);
				T42_ = (NIM_BOOL)0;
				T42_ = isOrdinalType__types_299(T41_, NIM_FALSE);
				T38_ = !(T42_);
				LA40_: ;
				if (!T38_) goto LA43_;
				{
					NI T47_;
					T47_ = (NI)0;
					T47_ = safeLen__ast_3148(n);
					if (!(((NI) 1) < T47_)) goto LA48_;
					info = (*(*n)._kind_6.sons->data[((NI) 1)]).info;
				}
				goto LA45_;
				LA48_: ;
				{
					info = (*n).info;
				}
				LA45_: ;
				liMessage__msgs_1128((*(*c).graph).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_340), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_528, NIM_FALSE);
			}
			LA43_: ;
			result = makeRangeWithStaticExpr__semdata_1009(c, e);
			{
				if (!(((NI) 0) < (*c).inGenericContext)) goto LA53_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9)) & 63);
			}
			LA53_: ;
		}
		goto LA14_;
		LA30_: ;
		{
			NIM_BOOL T56_;
			T56_ = (NIM_BOOL)0;
			T56_ = ((*e).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) && (*e).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32) || (*e).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42));
			if (!(T56_)) goto LA57_;
			T56_ = hasUnresolvedArgs__sem_146(c, e);
			LA57_: ;
			if (!T56_) goto LA58_;
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T62_;
				NIM_BOOL T63_;
				T62_ = NIM_NIL;
				T62_ = skipTypes__ast_3723((*e).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_529);
				T63_ = (NIM_BOOL)0;
				T63_ = isOrdinalType__types_299(T62_, NIM_FALSE);
				if (!!(T63_)) goto LA64_;
				liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_340), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_530, NIM_FALSE);
			}
			LA64_: ;
			result = makeRangeWithStaticExpr__semdata_1009(c, e);
		}
		goto LA14_;
		LA58_: ;
		{
			if (!((*e).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2))) goto LA67_;
			result = skipTypes__ast_3723((*e).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128);
		}
		goto LA14_;
		LA67_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
			x = semConstExpr__sem_619(c, e, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T74_;
				if (!((*x).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6) && (*x).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15))) goto LA72_;
				T74_ = NIM_NIL;
				T74_ = skipTypes__ast_3723((*x).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128);
				result = makeRangeType__semdata_1069(c, IL64(0), (NI64)((*x)._kind_1.intVal - IL64(1)), (*n).info, T74_);
			}
			goto LA70_;
			LA72_: ;
			{
				result = skipTypes__ast_3723((*x).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128);
			}
			LA70_: ;
		}
		LA14_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semArray__sem_3596)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
	result = NIM_NIL;
	base = NIM_NIL;
	{
		NI T3_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* indx;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* indxB;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 3))) goto LA4_;
		indx = semArrayIndex__sem_3527(c, (*n)._kind_6.sons->data[((NI) 1)]);
		indxB = indx;
		{
			if (!((*indxB).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11) || (*indxB).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4) || (*indxB).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46))) goto LA8_;
			indxB = lastSon__ast_3731(indxB);
		}
		LA8_: ;
		{
			if (!!(((*indxB).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12) || (*indxB).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60) || (*indxB).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 61)))) goto LA12_;
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T16_;
				T16_ = NIM_NIL;
				T16_ = skipTypes__ast_3723(indxB, TM__DKP9c7KM5AbqYVP6Gd9blNUw_37);
				if (!((*T16_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) || (*T16_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_340), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_531, NIM_FALSE);
			}
			goto LA14_;
			LA21_: ;
			{
				NIM_BOOL T24_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T27_;
				NimStringDesc* T28_;
				NimStringDesc* T29_;
				T24_ = (NIM_BOOL)0;
				T24_ = enumHasHoles__types_287(indxB);
				if (!T24_) goto LA25_;
				T27_ = NIM_NIL;
				T27_ = skipTypes__ast_3723(indxB, TM__DKP9c7KM5AbqYVP6Gd9blNUw_37);
				T28_ = NIM_NIL;
				T28_ = typeToString__types_50(T27_, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
				T29_ = NIM_NIL;
				T29_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_40), T28_);
				liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T29_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_532, NIM_FALSE);
			}
			goto LA14_;
			LA25_: ;
			LA14_: ;
		}
		LA12_: ;
		base = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 2)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16), prev, c);
		rawAddSonNoPropagationOfTypeFlags__ast_4287(result, indx);
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
	}
	goto LA1_;
	LA4_: ;
	{
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_533), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_534, NIM_FALSE);
		result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50), prev, c);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semContainerArg__sem_3269)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NimStringDesc* kindStr, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result) {
	{
		NI T3_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		base = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		{
			NimStringDesc* T10_;
			NimStringDesc* T11_;
			if (!((*base).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63))) goto LA8_;
			T10_ = NIM_NIL;
			T10_ = typeToString__types_50(base, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T11_ = NIM_NIL;
			T11_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_535), T10_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T11_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_536, NIM_FALSE);
		}
		LA8_: ;
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
	}
	goto LA1_;
	LA4_: ;
	{
		NimStringDesc* T13_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T14_;
		T13_ = NIM_NIL;
		T13_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_537), kindStr);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T13_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_538, NIM_FALSE);
		T14_ = NIM_NIL;
		T14_ = errorType__semdata_1032(c);
		addSonSkipIntLit__magicsys_136(result, T14_, (*c).Sup.idgen);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semContainer__sem_3283)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, NimStringDesc* kindStr, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	result = newOrPrevType__sem_2981(kind, prev, c);
	semContainerArg__sem_3269(c, n, kindStr, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semRange__sem_3467)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	result = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		{
			NIM_BOOL T8_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
			T8_ = (NIM_BOOL)0;
			T8_ = isRange__trees_213((*n)._kind_6.sons->data[((NI) 1)]);
			if (!T8_) goto LA9_;
			result = semRangeAux__sem_3379(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__clSgDh22o9au33BrVH9bDQZw) 5) && (*(*n_2)._kind_6.sons->data[((NI) 0)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__Vrztsndr9a9bj8bQ3cn49bwWw) 18)) & 63);
			}
			goto LA11_;
			LA15_: ;
			{
				NIM_BOOL T18_;
				T18_ = (NIM_BOOL)0;
				T18_ = ((*(*n_2)._kind_6.sons->data[((NI) 1)]).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*(*n_2)._kind_6.sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__Vrztsndr9a9bj8bQ3cn49bwWw) 18)) & 63);
			}
			goto LA11_;
			LA20_: ;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = ((*(*n_2)._kind_6.sons->data[((NI) 0)]).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 16) && (*(*n_2)._kind_6.sons->data[((NI) 0)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__Vrztsndr9a9bj8bQ3cn49bwWw) 18)) & 63);
			}
			goto LA11_;
			LA25_: ;
			{
				NIM_BOOL T28_;
				T28_ = (NIM_BOOL)0;
				T28_ = ((*(*n_2)._kind_6.sons->data[((NI) 1)]).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 16) && (*(*n_2)._kind_6.sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__Vrztsndr9a9bj8bQ3cn49bwWw) 18)) & 63);
			}
			goto LA11_;
			LA30_: ;
			LA11_: ;
		}
		goto LA6_;
		LA9_: ;
		{
			{
				NIM_BOOL T35_;
				tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T37_;
				T35_ = (NIM_BOOL)0;
				T35_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29));
				if (!(T35_)) goto LA36_;
				T37_ = NIM_NIL;
				T37_ = considerQuotedIdent__lookups_29(c, (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
				T35_ = eqStrings((*T37_).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_525));
				LA36_: ;
				if (!T35_) goto LA38_;
				liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_541), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_542, NIM_FALSE);
			}
			goto LA33_;
			LA38_: ;
			{
				liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_543), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_544, NIM_FALSE);
			}
			LA33_: ;
			result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50), prev, c);
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NimStringDesc* T42_;
		T42_ = NIM_NIL;
		T42_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_537), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_545));
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T42_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_546, NIM_FALSE);
		result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50), prev, c);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semSet__sem_3243)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19), prev, c);
	{
		NIM_BOOL T3_;
		NI T4_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_3155(n);
		T3_ = (T4_ == ((NI) 2));
		if (!(T3_)) goto LA5_;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
		LA5_: ;
		if (!T3_) goto LA6_;
		base = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
		{
			if (!((*base).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11) || (*base).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4) || (*base).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46))) goto LA10_;
			base = lastSon__ast_3731(base);
		}
		LA10_: ;
		{
			if (!!(((*base).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12) || (*base).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9)))) goto LA14_;
			{
				NIM_BOOL T18_;
				T18_ = (NIM_BOOL)0;
				T18_ = isOrdinalType__types_299(base, NIM_TRUE);
				if (!!(T18_)) goto LA19_;
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_340), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_547, NIM_FALSE);
			}
			goto LA16_;
			LA19_: ;
			{
				tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T22_;
				NIM_BOOL T23_;
				T22_ = lengthOrd__types_1723((*(*c).graph).config, base);
				T23_ = (NIM_BOOL)0;
				T23_ = lt___int495056_931(IL64(65536), T22_);
				if (!T23_) goto LA24_;
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_548), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_549, NIM_FALSE);
			}
			goto LA16_;
			LA24_: ;
			LA16_: ;
		}
		LA14_: ;
	}
	goto LA1_;
	LA6_: ;
	{
		NimStringDesc* T27_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T28_;
		T27_ = NIM_NIL;
		T27_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_537), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_550));
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T27_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_551, NIM_FALSE);
		T28_ = NIM_NIL;
		T28_ = errorType__semdata_1032(c);
		addSonSkipIntLit__magicsys_136(result, T28_, (*c).Sup.idgen);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semOrdinal__sem_3636)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 15), prev, c);
	{
		NI T3_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		base = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		{
			if (!!(((*base).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12)))) goto LA8_;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = isOrdinalType__types_299(base, NIM_FALSE);
				if (!!(T12_)) goto LA13_;
				liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_340), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_552, NIM_FALSE);
			}
			LA13_: ;
		}
		LA8_: ;
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
	}
	goto LA1_;
	LA4_: ;
	{
		NimStringDesc* T16_;
		T16_ = NIM_NIL;
		T16_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_537), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_553));
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T16_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_554, NIM_FALSE);
		result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50), prev, c);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semIterableType__sem_3626)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 64), prev, c);
	{
		NI T3_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		base = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
	}
	goto LA1_;
	LA4_: ;
	{
		NimStringDesc* T7_;
		T7_ = NIM_NIL;
		T7_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_537), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_555));
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T7_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_556, NIM_FALSE);
		result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50), prev, c);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semVarargs__sem_3290)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 48), prev, c);
	{
		NIM_BOOL T3_;
		NI T4_;
		NI T6_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_3155(n);
		T3_ = (T4_ == ((NI) 2));
		if (T3_) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__ast_3155(n);
		T3_ = (T6_ == ((NI) 3));
		LA5_: ;
		if (!T3_) goto LA7_;
		base = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
		{
			NI T11_;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T14_;
			T11_ = (NI)0;
			T11_ = len__ast_3155(n);
			if (!(T11_ == ((NI) 3))) goto LA12_;
			T14_ = NIM_NIL;
			T14_ = considerQuotedIdent__lookups_29(c, (*n)._kind_6.sons->data[((NI) 2)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
			asgnRef((void**) (&(*result).n), newIdentNode__ast_3700(T14_, (*(*n)._kind_6.sons->data[((NI) 2)]).info));
		}
		LA12_: ;
	}
	goto LA1_;
	LA7_: ;
	{
		NimStringDesc* T16_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T17_;
		T16_ = NIM_NIL;
		T16_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_537), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_558));
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T16_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_559, NIM_FALSE);
		T17_ = NIM_NIL;
		T17_ = errorType__semdata_1032(c);
		addSonSkipIntLit__magicsys_136(result, T17_, (*c).Sup.idgen);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semTuple__sem_3756)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw check;
	NI counter;
	result = NIM_NIL;
	typ = NIM_NIL;
	result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18), prev, c);
	asgnRef((void**) (&(*result).n), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138), (*n).info));
	nimZeroMem((void*)(&check), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	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__clSgDh22o9au33BrVH9bDQZw) 42));
		colontmp__2 = len__ast_3155(n);
		i_2 = colontmp_;
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
				if (!(i_2 < colontmp__2)) goto LA3;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				{
					if (!!(((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35)))) goto LA6_;
					illFormedAst__semdata_1101(a, (*(*c).graph).config);
				}
				LA6_: ;
				checkMinSonsLen__semdata_1114(a, ((NI) 3), (*(*c).graph).config);
				{
					NI T10_;
					NI T13_;
					T10_ = (NI)0;
					T10_ = len__ast_3155(a);
					if (!!(((*(*a)._kind_6.sons->data[(NI)(T10_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA11_;
					T13_ = (NI)0;
					T13_ = len__ast_3155(a);
					typ = semTypeNode__sem_83(c, (*a)._kind_6.sons->data[(NI)(T13_ - ((NI) 2))], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
				}
				goto LA8_;
				LA11_: ;
				{
					liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_562, NIM_FALSE);
					typ = errorType__semdata_1032(c);
				}
				LA8_: ;
				{
					NI T17_;
					NI T20_;
					T17_ = (NI)0;
					T17_ = len__ast_3155(a);
					if (!!(((*(*a)._kind_6.sons->data[(NI)(T17_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA18_;
					T20_ = (NI)0;
					T20_ = len__ast_3155(a);
					liMessage__msgs_1128((*(*c).graph).config, (*(*a)._kind_6.sons->data[(NI)(T20_ - ((NI) 1))]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_476), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_563, 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_3155(a);
					colontmp__3 = (NI)(T22_ - ((NI) 2));
					i_3 = ((NI) 0);
					{
						while (1) {
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* field;
							if (!(i_3 < colontmp__3)) goto LA24;
							j = i_3;
							field = newSymG__sem_462(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__DKP9c7KM5AbqYVP6Gd9blNUw_154));
appendString(T30_, (*(*field).name).s);
appendString(T30_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_31));
								liMessage__msgs_1128((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T30_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_564, NIM_FALSE);
							}
							goto LA25_;
							LA28_: ;
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T32_;
								T32_ = NIM_NIL;
								T32_ = newSymNode__ast_3704(field);
								add__ast_4798((*result).n, T32_);
								addSonSkipIntLit__magicsys_136(result, typ, (*c).Sup.idgen);
							}
							LA25_: ;
							{
								NIM_BOOL T35_;
								NIM_BOOL T36_;
								NIM_BOOL T37_;
								NIM_BOOL T38_;
								NIM_BOOL T39_;
								NIM_BOOL T40_;
								NIM_BOOL T41_;
								NIM_BOOL T42_;
								NIM_BOOL T43_;
								NIM_BOOL T44_;
								NIM_BOOL T45_;
								NIM_BOOL T55_;
								T35_ = (NIM_BOOL)0;
								T36_ = (NIM_BOOL)0;
								T37_ = (NIM_BOOL)0;
								T38_ = (NIM_BOOL)0;
								T39_ = (NIM_BOOL)0;
								T40_ = (NIM_BOOL)0;
								T41_ = (NIM_BOOL)0;
								T42_ = (NIM_BOOL)0;
								T43_ = (NIM_BOOL)0;
								T44_ = (NIM_BOOL)0;
								T45_ = (NIM_BOOL)0;
								T45_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
								if (!(T45_)) goto LA46_;
								T45_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
								LA46_: ;
								T44_ = T45_;
								if (!(T44_)) goto LA47_;
								T44_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
								LA47_: ;
								T43_ = T44_;
								if (!(T43_)) goto LA48_;
								T43_ = belongsToProjectPackage__packages_50((*(*c).graph).config, field);
								LA48_: ;
								T42_ = T43_;
								if (!(T42_)) goto LA49_;
								T42_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
								LA49_: ;
								T41_ = T42_;
								if (!(T41_)) goto LA50_;
								T41_ = !(((*field).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
								LA50_: ;
								T40_ = T41_;
								if (!(T40_)) goto LA51_;
								T40_ = !(((*field).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
								LA51_: ;
								T39_ = T40_;
								if (!(T39_)) goto LA52_;
								T39_ = ((Letters__linter_12[(NU)(((NU8)((*(*field).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*field).name).s->data[((NI) 0)])))&7U)))!=0);
								LA52_: ;
								T38_ = T39_;
								if (!(T38_)) goto LA53_;
								T38_ = !(((144 &((NU32)1<<((NU)((*field).kind)&31U)))!=0));
								LA53_: ;
								T37_ = T38_;
								if (!(T37_)) goto LA54_;
								T55_ = (NIM_BOOL)0;
								T55_ = ((*field).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
								if (T55_) goto LA56_;
								T55_ = !(((*(*field).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
								LA56_: ;
								T37_ = T55_;
								LA54_: ;
								T36_ = T37_;
								if (!(T36_)) goto LA57_;
								T36_ = ((192 & (*field).flags) == 0);
								LA57_: ;
								T35_ = T36_;
								if (!(T35_)) goto LA58_;
								T35_ = !((((*field).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
								LA58_: ;
								if (!T35_) goto LA59_;
								nep1CheckDefImpl__linter_112((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, field, (*field).kind);
							}
							LA59_: ;
							i_3 += ((NI) 1);
						} LA24: ;
					}
				}
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI T63_;
		T63_ = (NI)0;
		T63_ = len__ast_3155((*result).n);
		if (!(T63_ == ((NI) 0))) goto LA64_;
		asgnRef((void**) (&(*result).n), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
	}
	LA64_: ;
	{
		NIM_BOOL T68_;
		NimStringDesc* T71_;
		NimStringDesc* T72_;
		T68_ = (NIM_BOOL)0;
		T68_ = isTupleRecursive__types_4060(result);
		if (!T68_) goto LA69_;
		T71_ = NIM_NIL;
		T71_ = typeToString__types_50(result, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
		T72_ = NIM_NIL;
		T72_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_150), T71_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T72_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_565, NIM_FALSE);
	}
	LA69_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semGenericParamInInvocation__sem_5748)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	result = semTypeNode__sem_83(c, n, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	asgnRef((void**) (&(*n).typ), makeTypeDesc__concepts_49(c, result));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semObjectTypeForInheritedGenericInst__sem_5752)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw check;
	NI pos;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* realBase;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* newf;
	nimZeroMem((void*)(&check), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	initIntSet__pureZcollectionsZintsets_238((&check));
	pos = ((NI) 0);
	realBase = (*t).sons->data[((NI) 0)];
	base = skipTypesOrNil__ast_4173(realBase, TM__DKP9c7KM5AbqYVP6Gd9blNUw_59);
	{
		NimStringDesc* T5_;
		if (!(base == 0)) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_150), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_577));
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T5_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_578, NIM_FALSE);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* concreteBase;
		concreteBase = skipGenericInvocation__sem_4695(base);
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*concreteBase).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17));
			if (!(T9_)) goto LA10_;
			T9_ = !((((*concreteBase).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 2))&63U)))!=0));
			LA10_: ;
			if (!T9_) goto LA11_;
			addInheritedFields__sem_4710(c, (&check), (&pos), concreteBase);
		}
		goto LA7_;
		LA11_: ;
		{
			{
				if (!!(((*concreteBase).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50)))) goto LA16_;
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_579), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_580, NIM_FALSE);
			}
			LA16_: ;
		}
		LA7_: ;
	}
	LA1_: ;
	newf = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138), (*n).info);
	semRecordNodeAux__sem_4144(c, (*t).n, (&check), (&pos), newf, t, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semGeneric__sem_5778)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tx;
{	result = NIM_NIL;
	{
		tyArray__Re75IspeoxXy2oCZHwcRrA T5_;
		NimStringDesc* T6_;
		if (!((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T5_[0] = copyString((*(*s).name).s);
		T5_[1] = toHumanStr__ast_5170((*s).kind);
		T6_ = NIM_NIL;
		T6_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_566), T5_, 2);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T6_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_567, NIM_FALSE);
		result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50), prev, c);
		goto BeforeRet_;
	}
	LA3_: ;
	t = skipTypes__ast_3723((*s).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_568);
	{
		NIM_BOOL T9_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T11_;
		T9_ = (NIM_BOOL)0;
		T9_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54));
		if (!(T9_)) goto LA10_;
		T11_ = NIM_NIL;
		T11_ = base__types_63(t);
		T9_ = ((*T11_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10));
		LA10_: ;
		if (!T9_) goto LA12_;
		t = base__types_63(t);
	}
	LA12_: ;
	result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9), prev, c);
	addSonSkipIntLit__magicsys_136(result, t, (*c).Sup.idgen);
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 30))) goto LA16_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* elem;
					if (!(i_2 < colontmp_)) goto LA20;
					i = i_2;
					elem = semGenericParamInInvocation__sem_5748(c, (*n)._kind_6.sons->data[i]);
					{
						if (!(elem == 0)) goto LA23_;
						{
							NimStringDesc* argX60gensym1375_;
							if (!NIM_TRUE) goto LA27_;
							argX60gensym1375_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_569);
							internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym1375_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_569);
						}
						LA27_: ;
						rawAddSon__ast_4276(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__b28l2MkhJpnFhatVrsrXpg) 10)))) goto LA31_;
		T33_ = NIM_NIL;
		T33_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_570), (*(*s).name).s);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T33_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_571, NIM_FALSE);
		result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50), prev, c);
		goto BeforeRet_;
	}
	goto LA14_;
	LA31_: ;
	{
		tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw m;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T35_;
		NIM_BOOL isConcrete;
		nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw));
		newCandidate__sigmatch_195(c, t, (&m));
		m.isNoCall = NIM_TRUE;
		T35_ = NIM_NIL;
		T35_ = copyTree__ast_4432(n);
		matches__sigmatch_4222(c, n, T35_, (&m));
		{
			NimStringDesc* err;
			tyArray__Re75IspeoxXy2oCZHwcRrA T40_;
			NimStringDesc* T41_;
			if (!!((m.state == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 1)))) goto LA38_;
			err = copyString(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_572));
			addTypeHeader__types_216((&err), (*(*c).graph).config, t, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 7), NIM_TRUE);
			nimZeroMem((void*)T40_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T40_[0] = describeArgs__sigmatch_384(c, n, ((NI) 1), ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T40_[1] = describeArgs__sigmatch_384(c, (*t).n, ((NI) 0), ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T41_ = NIM_NIL;
			T41_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_573), T40_, 2);
			err = resizeString(err, (T41_ ? T41_->Sup.len : 0) + 0);
appendString(err, T41_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), err, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_574, NIM_FALSE);
			result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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_3155(m.call);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* 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__clSgDh22o9au33BrVH9bDQZw) 3));
						if (!(T49_)) goto LA50_;
						T49_ = ((*(*(*m.call)._kind_6.sons->data[i_3])._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3));
						LA50_: ;
						T48_ = T49_;
						if (!(T48_)) goto LA51_;
						T48_ = ((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
						LA51_: ;
						T47_ = T48_;
						if (!(T47_)) goto LA52_;
						T47_ = containsGenericType__types_3412(typ);
						LA52_: ;
						if (!T47_) goto LA53_;
						isConcrete = NIM_FALSE;
						{
							if (!(typ == 0)) goto LA57_;
							{
								NimStringDesc* argX60gensym1391_;
								if (!NIM_TRUE) goto LA61_;
								argX60gensym1391_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_569);
								internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym1391_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_569);
							}
							LA61_: ;
							rawAddSon__ast_4276(result, typ, NIM_TRUE);
						}
						goto LA55_;
						LA57_: ;
						{
							addSonSkipIntLit__magicsys_136(result, typ, (*c).Sup.idgen);
						}
						LA55_: ;
					}
					goto LA45_;
					LA53_: ;
					{
						typ = skipTypes__ast_3723(typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128);
						{
							NIM_BOOL T67_;
							T67_ = (NIM_BOOL)0;
							T67_ = containsGenericType__types_3412(typ);
							if (!T67_) goto LA68_;
							isConcrete = NIM_FALSE;
						}
						LA68_: ;
						{
							if (!(typ == 0)) goto LA72_;
							{
								NimStringDesc* argX60gensym1395_;
								if (!NIM_TRUE) goto LA76_;
								argX60gensym1395_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_569);
								internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym1395_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_569);
							}
							LA76_: ;
							rawAddSon__ast_4276(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__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
				if (!(T85_)) goto LA86_;
				T85_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54)));
				LA86_: ;
				if (!T85_) goto LA87_;
				T89_ = NIM_NIL;
				T89_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_86), (*(*s).name).s);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T89_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_575, NIM_FALSE);
				result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50), prev, c);
			}
			goto LA83_;
			LA87_: ;
			{
				result = instGenericContainer__sem_1149(c, (*n).info, result, NIM_FALSE);
			}
			LA83_: ;
		}
		LA81_: ;
	}
	LA14_: ;
	tx = skipTypes__ast_4156(result, TM__DKP9c7KM5AbqYVP6Gd9blNUw_102, ((NI) 50));
	{
		NIM_BOOL T93_;
		NimStringDesc* T97_;
		NimStringDesc* T98_;
		T93_ = (NIM_BOOL)0;
		T93_ = (tx == 0);
		if (T93_) goto LA94_;
		T93_ = isTupleRecursive__types_4060(tx);
		LA94_: ;
		if (!T93_) goto LA95_;
		T97_ = NIM_NIL;
		T97_ = typeToString__types_50((*result).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
		T98_ = NIM_NIL;
		T98_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_150), T97_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T98_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_576, NIM_FALSE);
		result = errorType__semdata_1032(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__b28l2MkhJpnFhatVrsrXpg) 17));
		LA102_: ;
		if (!T101_) goto LA103_;
		{
			if (!!(((*tx).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA107_;
			semObjectTypeForInheritedGenericInst__sem_5752(c, n, tx);
		}
		LA107_: ;
		position = ((NI) 0);
		recomputeFieldPositions__semtypinst_1042(tx, (*tx).n, (&position));
	}
	LA103_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isNewStyleConcept__ast_5238)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConceptBody__sem_2952)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg ctx;
	result = NIM_NIL;
	nimZeroMem((void*)(&ctx), sizeof(tyObject_GenericCtx__ltZxJxWYIo3jY4t0RIioJg));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toMixin));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toBind));
	result = semGenericStmt__sem_8616(c, n, 8, (&ctx));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semTypeClass__sem_5954)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pragmas;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* inherited;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* candidateTypeSlot;
	tySequence__vKogasEnJSPhbQmA8r4Y9aA* T6_;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T15_;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isNewStyleConcept__ast_5238(n);
		if (!T3_) goto LA4_;
		result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 62), prev, c);
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 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_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52), prev, c);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 38)) & 63);
	owner = getCurrOwner__semdata_327(c);
	T6_ = NIM_NIL;
	T6_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 1);
	asgnRef((void**) (&T6_->data[0]), errorType__semdata_1032(c));
	candidateTypeSlot = newTypeWithSons__semdata_845(owner, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4), T6_, (*c).Sup.idgen);
	if ((*result).sons) { nimGCunrefNoCycle((*result).sons); (*result).sons = NIM_NIL; }
	(*result).sons = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeqRC1((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 1);
	asgnRef((void**) (&(*result).sons->data[0]), candidateTypeSlot);
	asgnRef((void**) (&(*result).n), n);
	{
		if (!!(((*inherited).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA9_;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** n_2;
			tySequence__IeU9azYSNIK3V9b36Ir6NZcw* colontmp_;
			NI i;
			NI L;
			NI T12_;
			n_2 = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
			colontmp_ = NIM_NIL;
			colontmp_ = (*inherited)._kind_6.sons;
			i = ((NI) 0);
			T12_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T12_;
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
					if (!(i < L)) goto LA14;
					n_2 = &colontmp_->data[i];
					typ = semTypeNode__sem_83(c, (*n_2), ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					add__concepts_23(result, typ);
					i += ((NI) 1);
				} LA14: ;
			}
		}
	}
	LA9_: ;
	T15_ = NIM_NIL;
	T15_ = openScope__lookups_76(c);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* param;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(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__uh9cWvEa5Ty85PXOtuP5emw* dummyName;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* dummyType;
						tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg modifier;
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* dummyParam;
						tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw T44_;
						tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T50_;
						dummyName = NIM_NIL;
						dummyType = NIM_NIL;
						switch ((*param).kind) {
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 143):
						{
							modifier = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23);
						}
						break;
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 141):
						{
							modifier = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22);
						}
						break;
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 142):
						{
							modifier = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21);
						}
						break;
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 137):
						{
							modifier = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60);
						}
						break;
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 132):
						{
							modifier = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8);
						}
						break;
						default:
						{
							modifier = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0);
						}
						break;
						}
						{
							if (!!((modifier == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0)))) goto LA29_;
							dummyName = (*param)._kind_6.sons->data[((NI) 0)];
							dummyType = makeTypeWithModifier__semdata_776(c, modifier, candidateTypeSlot);
							{
								if (!(modifier == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8))) goto LA33_;
								(*dummyType).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 28)) & 63);
								(*dummyType).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 38)) & 63);
							}
							LA33_: ;
						}
						goto LA27_;
						LA29_: ;
						{
							dummyName = param;
							dummyType = candidateTypeSlot;
						}
						LA27_: ;
						{
							if (!((*dummyName).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA38_;
							goto LA20;
						}
						LA38_: ;
						{
							NimStringDesc* argX60gensym1425_;
							if (!!(((*dummyName).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2)))) goto LA42_;
							argX60gensym1425_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_591);
							internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym1425_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_591);
						}
						LA42_: ;
						T44_ = (tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw)0;
						{
							if (!(modifier == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8))) goto LA47_;
							T44_ = ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7);
						}
						goto LA45_;
						LA47_: ;
						{
							T44_ = ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 8);
						}
						LA45_: ;
						T50_ = nextSymId__ast_3103((*c).Sup.idgen);
						dummyParam = newSym__ast_3409(T44_, (*dummyName)._kind_5.ident, T50_, owner, (*param).info, 0);
						asgnRef((void**) (&(*dummyParam).typ), dummyType);
						(*dummyParam).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
						addDecl__lookups_1517(c, dummyParam);
					} LA20: ;
					i_3 += ((NI) 1);
				} LA19: ;
			}
		}
	}
	asgnRef((void**) (&(*(*result).n)._kind_6.sons->data[((NI) 3)]), semConceptBody__sem_2952(c, (*n)._kind_6.sons->data[((NI) 3)]));
	closeScope__lookups_108(c);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isSelf__concepts_38)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
	if (!(T1_)) goto LA2_;
	T1_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 23))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semVarOutType__sem_3308)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	{
		NI T3_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 1))) goto LA4_;
		result = newOrPrevType__sem_2981(kind, prev, c);
		base = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		{
			NIM_BOOL T8_;
			NIM_BOOL T10_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((*base).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__b28l2MkhJpnFhatVrsrXpg) 23))) goto LA15_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_560), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_592, NIM_FALSE);
			base = (*base).sons->data[((NI) 0)];
		}
		LA15_: ;
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
	}
	goto LA1_;
	LA4_: ;
	{
		result = newConstraint__sem_2994(c, kind);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semDistinct__sem_3365)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T6_;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = newConstraint__sem_2994(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13));
		goto BeforeRet_;
	}
	LA4_: ;
	result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13), prev, c);
	T6_ = NIM_NIL;
	T6_ = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	addSonSkipIntLitChecked__sem_3354(c, result, T6_, (*n)._kind_6.sons->data[((NI) 0)], (*c).Sup.idgen);
	{
		NI T9_;
		T9_ = (NI)0;
		T9_ = len__ast_3155(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__uh9cWvEa5Ty85PXOtuP5emw*, applyTypeSectionPragmas__sem_6039)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pragmas, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* operand) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* p;
		p = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(pragmas);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__clSgDh22o9au33BrVH9bDQZw) 34) || (*p).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*p).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28));
						if (!(T7_)) goto LA8_;
						T9_ = (NI)0;
						T9_ = len__ast_3155(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__N2XsqTpO5IzOf2KmXwk4Dw T17_;
						T15_ = (NIM_BOOL)0;
						T15_ = ((*p).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
						if (T15_) goto LA16_;
						T17_ = (tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw)0;
						T17_ = whichPragma__trees_244(p);
						T15_ = !((T17_ == ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 0)));
						LA16_: ;
						if (!T15_) goto LA18_;
					}
					goto LA13_;
					LA18_: ;
					{
						tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
						ident = considerQuotedIdent__lookups_29(c, key, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T23_;
							T23_ = NIM_NIL;
							T23_ = strTableGet__astalgo_3383((*c).userPragmas, ident);
							if (!!((T23_ == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA24_;
						}
						goto LA21_;
						LA24_: ;
						{
							NIM_BOOL amb;
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
							amb = NIM_FALSE;
							sym = searchInScopes__lookups_603(c, ident, (&amb));
							{
								NIM_BOOL T29_;
								T29_ = (NIM_BOOL)0;
								T29_ = !((sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
								if (!(T29_)) goto LA30_;
								T29_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 10))&63U)))!=0);
								LA30_: ;
								if (!T29_) goto LA31_;
							}
							goto LA27_;
							LA31_: ;
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T44_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* r;
								x = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*key).info);
								add__ast_4798(x, key);
								{
									NIM_BOOL T36_;
									NI T38_;
									T36_ = (NIM_BOOL)0;
									T36_ = ((*p).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34) || (*p).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*p).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28));
									if (!(T36_)) goto LA37_;
									T38_ = (NI)0;
									T38_ = len__ast_3155(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_3155(p);
										i_4 = ((NI) 1);
										{
											while (1) {
												if (!(i_4 < colontmp__2)) goto LA43;
												i_3 = i_4;
												add__ast_4798(x, (*p)._kind_6.sons->data[i_3]);
												i_4 += ((NI) 1);
											} LA43: ;
										}
									}
								}
								LA39_: ;
								T44_ = NIM_NIL;
								T44_ = copyTreeWithoutNode__ast_4460(operand, p);
								add__ast_4798(x, T44_);
								r = semOverloadedCall__sem_2551(c, x, x, 393216, 262144);
								{
									tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m;
									if (!!((r == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA47_;
									{
										if (!!(((*(*r)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA51_;
										failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_593));
									}
									LA51_: ;
									m = (*(*r)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
									switch ((*m).kind) {
									case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
									{
										result = semMacroExpr__sem_530(c, r, r, m, 8192, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
										goto BeforeRet_;
									}
									break;
									case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
									{
										result = semTemplateExpr__sem_524(c, r, m, 8192, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
										goto BeforeRet_;
									}
									break;
									default:
									{
										{
											if (!NIM_TRUE) goto LA58_;
											failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_594));
										}
										LA58_: ;
									}
									break;
									}
								}
								LA47_: ;
							}
							LA27_: ;
						}
						LA21_: ;
					}
					LA13_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semProcTypeWithScope__sem_6128)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T12_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T13_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T14_;
{	result = NIM_NIL;
	checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
	{
		NIM_BOOL T3_;
		NI T5_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* macroEval;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = len__ast_3155((*n)._kind_6.sons->data[((NI) 1)]);
		T3_ = (((NI) 0) < T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		macroEval = applyTypeSectionPragmas__sem_6039(c, (*n)._kind_6.sons->data[((NI) 1)], n);
		{
			if (!!((macroEval == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA10_;
			result = semTypeNode__sem_83(c, macroEval, prev);
			goto BeforeRet_;
		}
		LA10_: ;
	}
	LA6_: ;
	T12_ = NIM_NIL;
	T12_ = openScope__lookups_76(c);
	result = semProcTypeNode__sem_5334(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), prev, kind, NIM_TRUE);
	(*result).callConv = ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9);
	T13_ = NIM_NIL;
	T13_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_481));
	T14_ = NIM_NIL;
	T14_ = newIdentNode__ast_3700(T13_, (*n).info);
	s = newSymS__sem_457(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__clSgDh22o9au33BrVH9bDQZw) 1)));
		if (!(T17_)) goto LA18_;
		T19_ = (NI)0;
		T19_ = len__ast_3155((*n)._kind_6.sons->data[((NI) 1)]);
		T17_ = (((NI) 0) < T19_);
		LA18_: ;
		if (!T17_) goto LA20_;
		pragma__pragmas_125(c, s, (*n)._kind_6.sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_595, NIM_FALSE);
		setEffectsForProcType__sempass50_4560((*c).graph, result, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
	}
	goto LA15_;
	LA20_: ;
	{
		NIM_BOOL T23_;
		NI T24_;
		tyArray__231bfDX9cqvu0YNXBMavMGQ 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__WCvlY9b2UxZ4Fz8D59cE3YSg) 47))&63U)))!=0));
		LA25_: ;
		if (!T23_) goto LA26_;
		nimZeroMem((void*)T28_, sizeof(tyArray__231bfDX9cqvu0YNXBMavMGQ));
		T28_[0] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*n).info);
		T28_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*n).info);
		T28_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*n).info);
		T28_[3] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*n).info);
		T28_[4] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*n).info);
		asgnRef((void**) (&(*s).ast), newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79), T28_, 5));
		implicitPragmas__pragmas_2481(c, s, (*n).info, TM__DKP9c7KM5AbqYVP6Gd9blNUw_596);
		setEffectsForProcType__sempass50_4560((*c).graph, result, (*(*s).ast)._kind_6.sons->data[((NI) 4)], ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
	}
	goto LA15_;
	LA26_: ;
	LA15_: ;
	closeScope__lookups_108(c);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, addInterfaceDecl__lookups_1551)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym) {
	addInterfaceDeclAt__lookups_1547(c, (*c).currentScope, sym);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semEnum__sem_3002)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	NI64 counter;
	NI64 x;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* e;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** identToReplace;
	NIM_BOOL isPure;
	NIM_BOOL T20_;
	tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw symbols;
	NIM_BOOL hasNull;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T183_;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = newConstraint__sem_2994(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14));
		goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		NI T7_;
		T7_ = (NI)0;
		T7_ = len__ast_3155(n);
		if (!(T7_ == ((NI) 1))) goto LA8_;
		result = errorType__semdata_1032(c);
		goto BeforeRet_;
	}
	goto LA1_;
	LA8_: ;
	LA1_: ;
	counter = (NI64)0;
	x = (NI64)0;
	e = NIM_NIL;
	base = NIM_NIL;
	identToReplace = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
	counter = IL64(0);
	base = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
	result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14), prev, c);
	asgnRef((void**) (&(*result).n), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 150), (*n).info));
	checkMinSonsLen__semdata_1114(n, ((NI) 1), (*(*c).graph).config);
	{
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T18_;
		NI64 T19_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA12_;
		base = semTypeNode__sem_83(c, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		{
			if (!!(((*base).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14)))) goto LA16_;
			liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_597), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_598, NIM_FALSE);
		}
		LA16_: ;
		T18_ = lastOrd__types_1532((*(*c).graph).config, base);
		T19_ = (NI64)0;
		T19_ = toInt64__int495056_88(T18_);
		counter = (NI64)(T19_ + IL64(1));
	}
	LA12_: ;
	rawAddSon__ast_4276(result, base, NIM_TRUE);
	T20_ = (NIM_BOOL)0;
	T20_ = !(((*result).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
	if (!(T20_)) goto LA21_;
	T20_ = (((*(*result).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 11))&63U)))!=0);
	LA21_: ;
	isPure = T20_;
	nimZeroMem((void*)(&symbols), sizeof(tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw));
	{
		if (!isPure) goto LA24_;
		initStrTable__ast_4076((&symbols));
	}
	LA24_: ;
	hasNull = NIM_FALSE;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA28;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* symNode;
					{
						if (!((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA32_;
						goto LA29;
					}
					LA32_: ;
					switch ((*(*n)._kind_6.sons->data[i]).kind) {
					case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 151):
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* v;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* strVal;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T40_;
						{
							if (!((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43))) goto LA37_;
							e = newSymS__sem_457(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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_125(c, e, (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_599, NIM_FALSE);
						}
						goto LA35_;
						LA37_: ;
						{
							e = newSymS__sem_457(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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_619(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
						strVal = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
						T40_ = NIM_NIL;
						T40_ = skipTypes__ast_3723((*v).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_6);
						switch ((*T40_).kind) {
						case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18):
						{
							{
								NI T44_;
								T44_ = (NI)0;
								T44_ = len__ast_3155(v);
								if (!(T44_ == ((NI) 2))) goto LA45_;
								strVal = (*v)._kind_6.sons->data[((NI) 1)];
								{
									tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T49_;
									tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T59_;
									tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T60_;
									T49_ = NIM_NIL;
									T49_ = skipTypes__ast_3723((*strVal).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
									if (!((*T49_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28) || (*T49_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__lx9aDnWjKktcSUo0yfjOvMg) 1));
										T57_ = rawNewString((T58_ ? T58_->Sup.len : 0) + 30);
appendString(T57_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_600));
appendString(T57_, T58_);
										liMessage__msgs_1128((*(*c).graph).config, (*(*v)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T57_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_601, 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_284, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
									asgnRef((void**) (&(*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]), newIntTypeNode__ast_3771(x, T60_));
								}
								goto LA47_;
								LA50_: ;
								{
									liMessage__msgs_1128((*(*c).graph).config, (*strVal).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_359), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_602, NIM_FALSE);
								}
								LA47_: ;
							}
							goto LA42_;
							LA45_: ;
							{
								liMessage__msgs_1128((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_603), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_604, NIM_FALSE);
							}
							LA42_: ;
						}
						break;
						case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28):
						case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29):
						{
							strVal = v;
							x = counter;
						}
						break;
						default:
						{
							tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T72_;
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* 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__lx9aDnWjKktcSUo0yfjOvMg) 1));
								T70_ = rawNewString((T71_ ? T71_->Sup.len : 0) + 30);
appendString(T70_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_600));
appendString(T70_, T71_);
								liMessage__msgs_1128((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T70_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_605, 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_284, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
							asgnRef((void**) (&(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]), newIntTypeNode__ast_3771(x, T73_));
						}
						break;
						}
						{
							if (!!((i == ((NI) 1)))) goto LA76_;
							{
								if (!!((x == counter))) goto LA80_;
								(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 5)) & 63);
							}
							LA80_: ;
							{
								NimStringDesc* T86_;
								if (!(x < counter)) goto LA84_;
								T86_ = NIM_NIL;
								T86_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_606), (*(*e).name).s);
								liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T86_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_607, NIM_FALSE);
								x = counter;
							}
							LA84_: ;
						}
						LA76_: ;
						asgnRef((void**) (&(*e).ast), strVal);
						counter = x;
					}
					break;
					case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
					{
						e = (*(*n)._kind_6.sons->data[i])._kind_4.sym;
					}
					break;
					case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
					case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
					{
						e = newSymS__sem_457(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 20), (*n)._kind_6.sons->data[i], c);
						identToReplace = &(*n)._kind_6.sons->data[i];
					}
					break;
					case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43):
					{
						e = newSymS__sem_457(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 20), (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], c);
						pragma__pragmas_125(c, e, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_599, NIM_FALSE);
						identToReplace = &(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)];
					}
					break;
					default:
					{
						illFormedAst__semdata_1101((*n)._kind_6.sons->data[i], (*(*c).graph).config);
					}
					break;
					}
					asgnRef((void**) (&(*e).typ), result);
					(*e).position = ((NI) (counter));
					symNode = newSymNode__ast_3704(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__WCvlY9b2UxZ4Fz8D59cE3YSg) 47))&63U)))!=0));
						if (!(T94_)) goto LA95_;
						T94_ = !((identToReplace == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**) 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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
						if (!(T105_)) goto LA106_;
						T105_ = (((*(*result).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 1))&63U)))!=0);
						LA106_: ;
						if (!T105_) goto LA107_;
						(*e).flags = ((*e).flags | 3);
					}
					LA107_: ;
					add__ast_4798((*result).n, symNode);
					{
						NIM_BOOL T111_;
						NIM_BOOL T112_;
						NIM_BOOL T113_;
						NIM_BOOL T114_;
						NIM_BOOL T115_;
						NIM_BOOL T116_;
						NIM_BOOL T117_;
						NIM_BOOL T118_;
						NIM_BOOL T119_;
						NIM_BOOL T120_;
						NIM_BOOL T121_;
						NIM_BOOL T131_;
						T111_ = (NIM_BOOL)0;
						T112_ = (NIM_BOOL)0;
						T113_ = (NIM_BOOL)0;
						T114_ = (NIM_BOOL)0;
						T115_ = (NIM_BOOL)0;
						T116_ = (NIM_BOOL)0;
						T117_ = (NIM_BOOL)0;
						T118_ = (NIM_BOOL)0;
						T119_ = (NIM_BOOL)0;
						T120_ = (NIM_BOOL)0;
						T121_ = (NIM_BOOL)0;
						T121_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
						if (!(T121_)) goto LA122_;
						T121_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
						LA122_: ;
						T120_ = T121_;
						if (!(T120_)) goto LA123_;
						T120_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
						LA123_: ;
						T119_ = T120_;
						if (!(T119_)) goto LA124_;
						T119_ = belongsToProjectPackage__packages_50((*(*c).graph).config, e);
						LA124_: ;
						T118_ = T119_;
						if (!(T118_)) goto LA125_;
						T118_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
						LA125_: ;
						T117_ = T118_;
						if (!(T117_)) goto LA126_;
						T117_ = !(((*e).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
						LA126_: ;
						T116_ = T117_;
						if (!(T116_)) goto LA127_;
						T116_ = !(((*e).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
						LA127_: ;
						T115_ = T116_;
						if (!(T115_)) goto LA128_;
						T115_ = ((Letters__linter_12[(NU)(((NU8)((*(*e).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*e).name).s->data[((NI) 0)])))&7U)))!=0);
						LA128_: ;
						T114_ = T115_;
						if (!(T114_)) goto LA129_;
						T114_ = !(((144 &((NU32)1<<((NU)((*e).kind)&31U)))!=0));
						LA129_: ;
						T113_ = T114_;
						if (!(T113_)) goto LA130_;
						T131_ = (NIM_BOOL)0;
						T131_ = ((*e).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
						if (T131_) goto LA132_;
						T131_ = !(((*(*e).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
						LA132_: ;
						T113_ = T131_;
						LA130_: ;
						T112_ = T113_;
						if (!(T112_)) goto LA133_;
						T112_ = ((192 & (*e).flags) == 0);
						LA133_: ;
						T111_ = T112_;
						if (!(T111_)) goto LA134_;
						T111_ = !((((*e).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
						LA134_: ;
						if (!T111_) goto LA135_;
						nep1CheckDefImpl__linter_112((*(*c).graph).config, (*e).info, e, (*e).kind);
					}
					LA135_: ;
					{
						if (!!((((*e).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0))) goto LA139_;
						{
							if (!!(isPure)) goto LA143_;
							{
								if (!(((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 15))&31U)))!=0)) goto LA147_;
								addInterfaceOverloadableSymAt__lookups_1571(c, (*c).currentScope, e);
							}
							goto LA145_;
							LA147_: ;
							{
								addInterfaceDecl__lookups_1551(c, e);
							}
							LA145_: ;
						}
						goto LA141_;
						LA143_: ;
						{
							declarePureEnumField__importer_61(c, e);
						}
						LA141_: ;
					}
					LA139_: ;
					{
						NIM_BOOL T153_;
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* conflict;
						T153_ = (NIM_BOOL)0;
						T153_ = isPure;
						if (!(T153_)) goto LA154_;
						conflict = strTableInclReportConflict__astalgo_3335((&symbols), e, NIM_FALSE);
						T153_ = !((conflict == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
						LA154_: ;
						if (!T153_) goto LA155_;
						wrongRedefinition__lookups_985(c, (*e).info, (*(*e).name).s, (*conflict).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15));
					}
					LA155_: ;
					{
						if (!(counter == IL64(9223372036854775807))) goto LA159_;
						{
							NIM_BOOL T163_;
							tyArray__Re75IspeoxXy2oCZHwcRrA T167_;
							NimStringDesc* T168_;
							T163_ = (NIM_BOOL)0;
							T163_ = (((NI) 1) < i);
							if (!(T163_)) goto LA164_;
							T163_ = ((*(*(*(*result).n)._kind_6.sons->data[(NI)(i - ((NI) 2))])._kind_4.sym).position == ((NI) IL64(9223372036854775807)));
							LA164_: ;
							if (!T163_) goto LA165_;
							nimZeroMem((void*)T167_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
							T167_[0] = copyString((*(*e).name).s);
							T167_[1] = dollar___systemZdollars_6(IL64(9223372036854775807));
							T168_ = NIM_NIL;
							T168_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_608), T167_, 2);
							liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T168_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_609, NIM_FALSE);
						}
						LA165_: ;
					}
					goto LA157_;
					LA159_: ;
					{
						counter += ((NI) 1);
					}
					LA157_: ;
				} LA29: ;
				i_2 += ((NI) 1);
			} LA28: ;
		}
	}
	{
		NIM_BOOL T172_;
		tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg T176_;
		T172_ = (NIM_BOOL)0;
		T172_ = isPure;
		if (!(T172_)) goto LA173_;
		T172_ = (((*(*result).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 1))&63U)))!=0);
		LA173_: ;
		if (!T172_) goto LA174_;
		nimZeroMem((void*)(&T176_), sizeof(tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg));
		nimZeroMem((void*)(&T176_), sizeof(tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg));
		T176_.sym = (*result).sym;
		addPureEnum__semdata_704(c, T176_);
	}
	LA174_: ;
	{
		NIM_BOOL T179_;
		T179_ = (NIM_BOOL)0;
		T179_ = (((*(*e).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 17))&63U)))!=0);
		if (!(T179_)) goto LA180_;
		T179_ = !(hasNull);
		LA180_: ;
		if (!T179_) goto LA181_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 18)) & 63);
	}
	LA181_: ;
	T183_ = NIM_NIL;
	T183_ = genEnumToStrProc__enumtostr_6(result, (*n).info, (*c).graph, (*c).Sup.idgen);
	setToStringProc__modulegraphs_6073((*c).graph, result, T183_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semStmtListType__sem_5699)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	checkMinSonsLen__semdata_1114(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_3155(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_87(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_3155(n);
		if (!(((NI) 0) < T7_)) goto LA8_;
		T10_ = (NI)0;
		T10_ = len__ast_3155(n);
		result = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[(NI)(T10_ - ((NI) 1))], prev);
		asgnRef((void**) (&(*n).typ), result);
		T11_ = (NI)0;
		T11_ = len__ast_3155(n);
		asgnRef((void**) (&(*(*n)._kind_6.sons->data[(NI)(T11_ - ((NI) 1))]).typ), result);
	}
	goto LA5_;
	LA8_: ;
	{
		result = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semBlockType__sem_5727)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	result = NIM_NIL;
	(*(*c).p).nestedBlockCounter += ((NI) 1);
	checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T6_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = newSymS__sem_457(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 22), (*n)._kind_6.sons->data[((NI) 0)], c);
		addDecl__lookups_1517(c, T6_);
	}
	LA4_: ;
	result = semStmtListType__sem_5699(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_108(c);
	(*(*c).p).nestedBlockCounter -= ((NI) 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, semTypeNode__sem_83)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* prev) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	result = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
	(*c).inTypeContext += ((NI) 1);
	{
		if (!((*(*(*c).graph).config).cmd == ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 11))) goto LA3_;
		suggestExpr__sigmatch_6331(c, n);
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
	{
		result = (*n).typ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 132):
	{
		checkSonsLen__semdata_1107(n, ((NI) 1), (*(*c).graph).config);
		result = semTypeOf__sem_6197(c, (*n)._kind_6.sons->data[((NI) 0)], prev);
		{
			if (!((*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8))) goto LA9_;
			(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 29)) & 63);
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37):
	{
		{
			NI T14_;
			T14_ = (NI)0;
			T14_ = len__ast_3155(n);
			if (!(T14_ == ((NI) 1))) goto LA15_;
			result = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 0)], prev);
		}
		goto LA12_;
		LA15_: ;
		{
			result = semAnonTuple__sem_3746(c, n, prev);
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160):
	{
		result = semAnonTuple__sem_3746(c, n, prev);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
		x = (*n)._kind_6.sons->data[((NI) 0)];
		switch ((*x).kind) {
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
		{
			ident = (*x)._kind_5.ident;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
		{
			ident = (*(*x)._kind_4.sym).name;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57):
		{
			ident = (*(*(*x)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name;
		}
		break;
		default:
		{
			ident = ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) NIM_NIL);
		}
		break;
		}
		{
			NIM_BOOL T26_;
			NIM_BOOL T27_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
			T26_ = (NIM_BOOL)0;
			T27_ = (NIM_BOOL)0;
			T27_ = eqeq___idents_229(ident, ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) NIM_NIL));
			T26_ = !(T27_);
			if (!(T26_)) goto LA28_;
			T26_ = eqStrings((*ident).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_33));
			LA28_: ;
			if (!T26_) goto LA29_;
			b = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), (*n).info);
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3155(n);
				i_2 = ((NI) 1);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA33;
						i = i_2;
						add__ast_4798(b, (*n)._kind_6.sons->data[i]);
						i_2 += ((NI) 1);
					} LA33: ;
				}
			}
			result = semTypeNode__sem_83(c, b, prev);
		}
		goto LA24_;
		LA29_: ;
		{
			NIM_BOOL T35_;
			NIM_BOOL T36_;
			T35_ = (NIM_BOOL)0;
			T36_ = (NIM_BOOL)0;
			T36_ = eqeq___idents_229(ident, ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) NIM_NIL));
			T35_ = !(T36_);
			if (!(T35_)) goto LA37_;
			T35_ = ((*ident).id == ((NI) 71));
			LA37_: ;
			if (!T35_) goto LA38_;
			result = semRangeAux__sem_3379(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__clSgDh22o9au33BrVH9bDQZw) 23));
			if (!(T41_)) goto LA42_;
			T43_ = (NI)0;
			T43_ = len__ast_3155(n);
			T41_ = (T43_ == ((NI) 2));
			LA42_: ;
			if (!T41_) goto LA44_;
			result = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T48_;
				T48_ = NIM_NIL;
				T48_ = skipTypes__ast_3723(result, TM__DKP9c7KM5AbqYVP6Gd9blNUw_45);
				if (!((*T48_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9) && (*T48_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10) || (*T48_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12) || (*T48_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21) && (*T48_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22) || (*T48_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25) && (*T48_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 26) || (*T48_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29) || (*T48_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50))) goto LA49_;
				{
					if (!(((*result).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 17))&63U)))!=0)) goto LA53_;
					result = freshType__sem_5944(c, result, prev);
					(*result).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 17)) & 63));
				}
				LA53_: ;
			}
			goto LA46_;
			LA49_: ;
			{
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_46), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_47, NIM_FALSE);
			}
			LA46_: ;
		}
		goto LA24_;
		LA44_: ;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56)))) goto LA57_;
			result = semTypeExpr__sem_5918(c, n, prev);
		}
		goto LA24_;
		LA57_: ;
		{
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* op;
			op = considerQuotedIdent__lookups_29(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
			{
				NIM_BOOL T62_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t1;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t2;
				T62_ = (NIM_BOOL)0;
				T62_ = ((*op).id == ((NI) 2) || (*op).id == ((NI) 47));
				if (T62_) goto LA63_;
				T62_ = eqStrings((*op).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_50));
				LA63_: ;
				if (!T62_) goto LA64_;
				checkSonsLen__semdata_1107(n, ((NI) 3), (*(*c).graph).config);
				t1 = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
				t2 = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 2)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
				{
					if (!(t1 == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA68_;
					liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_51, NIM_FALSE);
					result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50), prev, c);
				}
				goto LA66_;
				LA68_: ;
				{
					if (!(t2 == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA71_;
					liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 2)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_52, NIM_FALSE);
					result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50), prev, c);
				}
				goto LA66_;
				LA71_: ;
				{
					{
						if (!((*op).id == ((NI) 2))) goto LA76_;
						result = makeAndType__semdata_885(c, t1, t2);
					}
					goto LA74_;
					LA76_: ;
					{
						result = makeOrType__semdata_920(c, t1, t2);
					}
					LA74_: ;
				}
				LA66_: ;
			}
			goto LA60_;
			LA64_: ;
			{
				NI T82_;
				if (!((*op).id == ((NI) 43))) goto LA80_;
				T82_ = (NI)0;
				T82_ = len__ast_3155(n);
				switch (T82_) {
				case ((NI) 3):
				{
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* resolvedType;
					result = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
					{
						NIM_BOOL T86_;
						T86_ = (NIM_BOOL)0;
						T86_ = ((*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
						if (!(T86_)) goto LA87_;
						T86_ = !((((*result).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 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__clSgDh22o9au33BrVH9bDQZw) 23)))) goto LA92_;
						liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_53), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_54, NIM_FALSE);
					}
					LA92_: ;
					{
						NIM_BOOL T96_;
						T96_ = (NIM_BOOL)0;
						T96_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 5))&31U)))!=0));
						if (!(T96_)) goto LA97_;
						T96_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 14))&31U)))!=0));
						LA97_: ;
						if (!T96_) goto LA98_;
						liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_55), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_56, NIM_FALSE);
					}
					LA98_: ;
					resolvedType = skipTypes__ast_3723(result, TM__DKP9c7KM5AbqYVP6Gd9blNUw_45);
					switch ((*resolvedType).kind) {
					case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12):
					case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8):
					case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 61):
					{
						tyArray__iegsN9bf6GqRiWprrJjTAoA T101_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T102_;
						nimZeroMem((void*)T101_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
						T101_[0] = copyTree__ast_4432(n);
						T102_ = NIM_NIL;
						T102_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 128), T101_, 1);
						result = makeTypeFromExpr__semdata_834(c, T102_);
					}
					break;
					case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9):
					case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22):
					case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 26):
					case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 30):
					case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50):
					{
						result = freshType__sem_5944(c, result, prev);
						(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 17)) & 63);
					}
					break;
					default:
					{
						liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_46), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_57, NIM_FALSE);
					}
					break;
					}
				}
				break;
				case ((NI) 2):
				{
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* negated;
					negated = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
					result = makeNotType__semdata_975(c, negated);
				}
				break;
				default:
				{
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_46), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_58, NIM_FALSE);
				}
				break;
				}
			}
			goto LA60_;
			LA80_: ;
			{
				if (!((*op).id == ((NI) 50))) goto LA108_;
				result = semAnyRef__sem_4835(c, n, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21), prev);
			}
			goto LA60_;
			LA108_: ;
			{
				if (!((*op).id == ((NI) 52))) goto LA111_;
				result = semAnyRef__sem_4835(c, n, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22), prev);
			}
			goto LA60_;
			LA111_: ;
			{
				if (!((*op).id == ((NI) 60))) goto LA114_;
				checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
				result = semTypeOf__sem_6197(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__DKP9c7KM5AbqYVP6Gd9blNUw_516));
				if (!(T118_)) goto LA119_;
				T118_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
				LA119_: ;
				T117_ = T118_;
				if (!(T117_)) goto LA120_;
				T117_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 18));
				LA120_: ;
				if (!T117_) goto LA121_;
				result = semTypeOf2__sem_6203(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__DKP9c7KM5AbqYVP6Gd9blNUw_518));
				if (!(T125_)) goto LA126_;
				T125_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 42))&63U)))!=0));
				LA126_: ;
				T124_ = T125_;
				if (!(T124_)) goto LA127_;
				T128_ = (NI)0;
				T128_ = len__ast_3155(n);
				T124_ = (T128_ == ((NI) 2));
				LA127_: ;
				if (!T124_) goto LA129_;
				result = semTypeExpr__sem_5918(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
			}
			goto LA60_;
			LA129_: ;
			{
				{
					NIM_BOOL T134_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T138_;
					T134_ = (NIM_BOOL)0;
					T134_ = (((NI) 0) < (*c).inGenericContext);
					if (!(T134_)) goto LA135_;
					T134_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27));
					LA135_: ;
					if (!T134_) goto LA136_;
					T138_ = NIM_NIL;
					T138_ = copyTree__ast_4432(n);
					result = makeTypeFromExpr__semdata_834(c, T138_);
				}
				goto LA132_;
				LA136_: ;
				{
					result = semTypeExpr__sem_5918(c, n, prev);
				}
				LA132_: ;
			}
			LA60_: ;
		}
		LA24_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 93):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* whenResult;
		whenResult = semWhen__sem_520(c, n, NIM_FALSE);
		{
			if (!((*whenResult).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115))) goto LA143_;
			transitionSonsKind__ast_4347(whenResult, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 128));
		}
		LA143_: ;
		result = semTypeNode__sem_83(c, whenResult, prev);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* head;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		checkMinSonsLen__semdata_1114(n, ((NI) 2), (*(*c).graph).config);
		head = (*n)._kind_6.sons->data[((NI) 0)];
		{
			if (!!(((*head).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*head).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*head).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*head).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*head).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*head).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*head).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32)))) goto LA148_;
			s = semTypeIdent__sem_3651(c, head);
		}
		goto LA146_;
		LA148_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T151_;
			T151_ = NIM_NIL;
			T151_ = semExpr__sem_52(c, head, 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			s = symFromExpectedTypeNode__sem_6179(c, T151_);
		}
		LA146_: ;
		switch ((*s).magic) {
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 160):
		{
			result = semArray__sem_3596(c, n, prev);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 161):
		{
			result = semContainer__sem_3283(c, n, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_539), prev);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 272):
		{
			result = semContainer__sem_3283(c, n, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 49), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_540), prev);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 162):
		{
			result = semRange__sem_3467(c, n, prev);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 163):
		{
			result = semSet__sem_3243(c, n, prev);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 172):
		{
			result = semOrdinal__sem_3636(c, n, prev);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 173):
		{
			result = semIterableType__sem_3626(c, n, prev);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 164):
		{
			result = semContainer__sem_3283(c, n, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_557), prev);
			{
				if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 40))&63U)))!=0)) goto LA162_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 31)) & 63);
			}
			LA162_: ;
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 165):
		{
			result = semVarargs__sem_3290(c, n, prev);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 196):
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 17):
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 18):
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T166_;
			T166_ = NIM_NIL;
			T166_ = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			result = makeTypeDesc__concepts_49(c, T166_);
			(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 29)) & 63);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 24):
		{
			result = semStaticType__sem_132(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 194):
		{
			result = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* old;
				tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T173_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T174_;
				if (!!((result == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA171_;
				old = result;
				T173_ = nextTypeId__ast_3122((*c).Sup.idgen);
				T174_ = NIM_NIL;
				T174_ = getCurrOwner__semdata_327(c);
				result = copyType__ast_4034(result, T173_, T174_);
				copyTypeProps__modulegraphs_8910((*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_3155(n);
					i_4 = ((NI) 1);
					{
						while (1) {
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T178_;
							if (!(i_4 < colontmp__2)) goto LA177;
							i_3 = i_4;
							T178_ = NIM_NIL;
							T178_ = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[i_3], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
							rawAddSon__ast_4276(result, T178_, NIM_TRUE);
							i_4 += ((NI) 1);
						} LA177: ;
					}
				}
			}
			LA171_: ;
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 169):
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T180_;
			result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13), prev, c);
			T180_ = NIM_NIL;
			T180_ = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			addSonSkipIntLit__magicsys_136(result, T180_, (*c).Sup.idgen);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 168):
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* base;
			result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23), prev, c);
			base = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			{
				if (!((*base).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*base).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47))) goto LA184_;
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_560), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_561, NIM_FALSE);
				base = (*base).sons->data[((NI) 0)];
			}
			LA184_: ;
			addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 166):
		{
			result = semAnyRef__sem_4835(c, n, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22), prev);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 167):
		{
			result = semAnyRef__sem_4835(c, n, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21), prev);
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 171):
		{
			result = semTuple__sem_3756(c, n, prev);
		}
		break;
		default:
		{
			result = semGeneric__sem_5778(c, n, s, prev);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* typeExpr;
		typeExpr = semExpr__sem_52(c, n, 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		{
			if (!((*typeExpr).typ == 0)) goto LA193_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_581), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_582, NIM_FALSE);
			result = errorType__semdata_1032(c);
		}
		goto LA191_;
		LA193_: ;
		{
			if (!((*(*typeExpr).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 61))) goto LA196_;
			result = (*typeExpr).typ;
		}
		goto LA191_;
		LA196_: ;
		{
			if (!!(((*(*typeExpr).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)))) goto LA199_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_583, NIM_FALSE);
			result = errorType__semdata_1032(c);
		}
		goto LA191_;
		LA199_: ;
		{
			result = base__types_63((*typeExpr).typ);
			{
				NIM_BOOL T204_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* preprocessed;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T208_;
				T204_ = (NIM_BOOL)0;
				T204_ = isMetaType__ast_3474(result);
				if (!(T204_)) goto LA205_;
				T204_ = !(((*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52)));
				LA205_: ;
				if (!T204_) goto LA206_;
				preprocessed = semGenericStmt__sem_2949(c, n);
				T208_ = NIM_NIL;
				T208_ = copyTree__ast_4432(preprocessed);
				result = makeTypeFromExpr__semdata_834(c, T208_);
			}
			goto LA202_;
			LA206_: ;
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* alias;
				alias = maybeAliasType__sem_5896(c, result, prev);
				{
					if (!!((alias == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA212_;
					result = alias;
				}
				LA212_: ;
			}
			LA202_: ;
		}
		LA191_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s_2;
		s_2 = semTypeIdent__sem_3651(c, n);
		{
			if (!((*s_2).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA217_;
			{
				if (!!(((*s_2).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 0)))) goto LA221_;
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_584, NIM_FALSE);
			}
			LA221_: ;
			result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50), prev, c);
		}
		goto LA215_;
		LA217_: ;
		{
			NIM_BOOL T224_;
			T224_ = (NIM_BOOL)0;
			T224_ = ((*s_2).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3));
			if (!(T224_)) goto LA225_;
			T224_ = ((*(*s_2).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
			LA225_: ;
			if (!T224_) goto LA226_;
			{
				NIM_BOOL T230_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T231_;
				NimStringDesc* argX60gensym1563_;
				T230_ = (NIM_BOOL)0;
				T231_ = NIM_NIL;
				T231_ = base__types_63((*s_2).typ);
				T230_ = !(((*T231_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0)));
				if (!(T230_)) goto LA232_;
				T230_ = (prev == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
				LA232_: ;
				if (!!(T230_)) goto LA233_;
				argX60gensym1563_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_585);
				internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym1563_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_585);
			}
			LA233_: ;
			result = base__types_63((*s_2).typ);
		}
		goto LA215_;
		LA226_: ;
		{
			if (!(prev == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA236_;
			result = (*s_2).typ;
		}
		goto LA215_;
		LA236_: ;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* alias_2;
			alias_2 = maybeAliasType__sem_5896(c, (*s_2).typ, prev);
			{
				if (!!((alias_2 == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA241_;
				result = alias_2;
			}
			goto LA239_;
			LA241_: ;
			{
				assignType__ast_3964(prev, (*s_2).typ);
				{
					if (!!(((*(*s_2).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1) || (*(*s_2).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2) || (*(*s_2).typ).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*(*s_2).typ).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35) || (*(*s_2).typ).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) && (*(*s_2).typ).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39) || (*(*s_2).typ).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) && (*(*s_2).typ).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44)))) goto LA246_;
					(*prev).Sup.itemId = (*(*s_2).typ).Sup.itemId;
				}
				LA246_: ;
				result = prev;
			}
			LA239_: ;
		}
		LA215_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s_3;
		s_3 = getGenSym__semdata_420(c, (*n)._kind_4.sym);
		{
			NIM_BOOL T251_;
			NIM_BOOL T253_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* alias_3;
			T251_ = (NIM_BOOL)0;
			T251_ = !(((*s_3).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T251_)) goto LA252_;
			T253_ = (NIM_BOOL)0;
			T253_ = ((*s_3).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7));
			if (T253_) goto LA254_;
			T253_ = ((*(*s_3).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
			LA254_: ;
			T251_ = T253_;
			LA252_: ;
			if (!T251_) goto LA255_;
			{
				if (!((*s_3).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7))) goto LA259_;
				t = (*s_3).typ;
			}
			goto LA257_;
			LA259_: ;
			{
				{
					NIM_BOOL T264_;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T265_;
					NimStringDesc* argX60gensym1570_;
					T264_ = (NIM_BOOL)0;
					T265_ = NIM_NIL;
					T265_ = base__types_63((*s_3).typ);
					T264_ = !(((*T265_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0)));
					if (!(T264_)) goto LA266_;
					T264_ = (prev == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					LA266_: ;
					if (!!(T264_)) goto LA267_;
					argX60gensym1570_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_586);
					internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym1570_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_586);
				}
				LA267_: ;
				t = base__types_63((*s_3).typ);
			}
			LA257_: ;
			alias_3 = maybeAliasType__sem_5896(c, t, prev);
			{
				if (!!((alias_3 == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA271_;
				result = alias_3;
			}
			goto LA269_;
			LA271_: ;
			{
				if (!(prev == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA274_;
				result = t;
			}
			goto LA269_;
			LA274_: ;
			{
				assignType__ast_3964(prev, t);
				result = prev;
			}
			LA269_: ;
			markUsed__sigmatch_85(c, (*n).info, (*n)._kind_4.sym);
		}
		goto LA249_;
		LA255_: ;
		{
			{
				if (!!(((*s_3).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 0)))) goto LA280_;
				{
					tyArray__nHXaesL0DJZHyVS07ARPRA T286_;
					NimStringDesc* T287_;
					if (!((*s_3).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA284_;
					nimZeroMem((void*)T286_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
					T286_[0] = copyString((*(*s_3).name).s);
					T287_ = NIM_NIL;
					T287_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_587), T286_, 1);
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T287_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_588, 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_5170((*s_3).kind);
					T290_ = NIM_NIL;
					T290_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_589), T289_, 2);
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T290_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_590, NIM_FALSE);
				}
				LA282_: ;
			}
			LA280_: ;
			result = newOrPrevType__sem_2981(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50), prev, c);
		}
		LA249_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 133):
	{
		result = semObjectNode__sem_4731(c, n, prev, 0);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 134):
	{
		result = semTuple__sem_3756(c, n, prev);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 135):
	{
		result = newConstraint__sem_2994(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 136):
	{
		result = semTypeClass__sem_5954(c, n, prev);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 141):
	{
		result = semAnyRef__sem_4835(c, n, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22), prev);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 142):
	{
		result = semAnyRef__sem_4835(c, n, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21), prev);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 143):
	{
		result = semVarOutType__sem_3308(c, n, prev, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 146):
	{
		result = semDistinct__sem_3365(c, n, prev);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 137):
	{
		result = semStaticType__sem_132(c, (*n)._kind_6.sons->data[((NI) 0)], prev);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 148):
	{
		{
			NI T303_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* child;
			T303_ = (NI)0;
			T303_ = len__ast_3155(n);
			if (!(T303_ == ((NI) 0))) goto LA304_;
			result = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 51), c);
			child = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25), c);
			(*child).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 15)) & 63);
			addSonSkipIntLit__magicsys_136(result, child, (*c).Sup.idgen);
		}
		goto LA301_;
		LA304_: ;
		{
			result = semProcTypeWithScope__sem_6128(c, n, prev, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15));
			{
				if (!((*result).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25))) goto LA309_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 15)) & 63);
				{
					NIM_BOOL T313_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T314_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T316_;
					T313_ = (NIM_BOOL)0;
					T314_ = NIM_NIL;
					T314_ = lastSon__ast_4833(n);
					T313_ = ((*T314_).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 90));
					if (!(T313_)) goto LA315_;
					T316_ = NIM_NIL;
					T316_ = lastSon__ast_4833(n);
					T313_ = hasPragma__pragmas_2585(T316_, ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 147));
					LA315_: ;
					if (!T313_) goto LA317_;
					(*result).callConv = ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 5);
				}
				goto LA311_;
				LA317_: ;
				{
					(*result).callConv = ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9);
				}
				LA311_: ;
			}
			LA309_: ;
		}
		LA301_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 147):
	{
		{
			NI T323_;
			T323_ = (NI)0;
			T323_ = len__ast_3155(n);
			if (!(T323_ == ((NI) 0))) goto LA324_;
			result = newConstraint__sem_2994(c, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
		}
		goto LA321_;
		LA324_: ;
		{
			result = semProcTypeWithScope__sem_6128(c, n, prev, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12));
		}
		LA321_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 150):
	{
		result = semEnum__sem_3002(c, n, prev);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4):
	{
		result = (*n).typ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 128):
	{
		result = semStmtListType__sem_5699(c, n, prev);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 129):
	{
		result = semBlockType__sem_5727(c, n, prev);
	}
	break;
	default:
	{
		result = semTypeExpr__sem_5918(c, n, prev);
	}
	break;
	}
	asgnRef((void**) (&(*n).typ), result);
	(*c).inTypeContext -= ((NI) 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semAfterMacroCall__sem_2845)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* call, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* macroResult, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T5_;
	NI T6_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T58_;
	result = NIM_NIL;
	(*(*(*c).graph).config).evalTemplateCounter += ((NI) 1);
	{
		if (!(((NI) 1000) < (*(*(*c).graph).config).evalTemplateCounter)) goto LA3_;
		liMessage__msgs_1128((*(*c).graph).config, (*s).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_15), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__DKP9c7KM5AbqYVP6Gd9blNUw_16, NIM_FALSE);
	}
	LA3_: ;
	T5_ = NIM_NIL;
	T5_ = getModule__astalgo_216((*s).owner);
	asgnRef((void**) (&(*c).friendModules), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) incrSeqV3((TGenericSeq*)((*c).friendModules), (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_)));
	T6_ = (*c).friendModules->Sup.len++;
	asgnRef((void**) (&(*c).friendModules->data[T6_]), T5_);
	result = macroResult;
	resetSemFlag__sem_2829(result);
	{
		if (!((*(*s).typ).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA9_;
		result = semStmt__sem_87(c, result, flags);
	}
	goto LA7_;
	LA9_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* 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__b28l2MkhJpnFhatVrsrXpg) 8));
			if (!(T15_)) goto LA16_;
			T15_ = (((*retType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9))&63U)))!=0);
			LA16_: ;
			T14_ = T15_;
			if (!(T14_)) goto LA17_;
			T18_ = (NI)0;
			T18_ = len__ast_3990(retType);
			T14_ = (T18_ == ((NI) 1));
			LA17_: ;
			if (!T14_) goto LA19_;
			retType = (*retType).sons->data[((NI) 0)];
		}
		LA19_: ;
		switch ((*retType).kind) {
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 59):
		{
			result = semExpr__sem_52(c, result, flags, expectedType);
		}
		break;
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7):
		{
			result = semExprWithType__sem_57(c, result, flags, expectedType);
		}
		break;
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8):
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
			{
				if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115))) goto LA26_;
				transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 128));
			}
			LA26_: ;
			typ = semTypeNode__sem_83(c, result, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			{
				NimStringDesc* T32_;
				NimStringDesc* T33_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T34_;
				if (!(typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) 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__DKP9c7KM5AbqYVP6Gd9blNUw_18));
appendString(T32_, T33_);
				liMessage__msgs_1128((*(*c).graph).config, (*result).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T32_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_610, NIM_FALSE);
				T34_ = NIM_NIL;
				T34_ = errorSym__lookups_686(c, result);
				result = newSymNode__ast_3704(T34_);
			}
			goto LA28_;
			LA30_: ;
			{
				asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, typ));
			}
			LA28_: ;
		}
		break;
		default:
		{
			{
				NIM_BOOL T39_;
				tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ paramTypes;
				T39_ = (NIM_BOOL)0;
				T39_ = !(((*(*s).ast)._kind_6.sons->data[((NI) 2)] == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
				if (!(T39_)) goto LA40_;
				T39_ = isMetaType__ast_3474(retType);
				LA40_: ;
				if (!T39_) goto LA41_;
				nimZeroMem((void*)(&paramTypes), sizeof(tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ));
				newIdTable__ast_4090((&paramTypes));
				{
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* param;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* value;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3155(gp);
						i_2 = ((NI) 0);
						{
							while (1) {
								tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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_3990((*s).typ);
								posInCall = (NI)(T47_ + i);
								{
									NI T50_;
									T50_ = (NI)0;
									T50_ = len__ast_3155(call);
									if (!(posInCall < T50_)) goto LA51_;
									param = genericParam;
									value = (*call)._kind_6.sons->data[posInCall];
									idTablePut__astalgo_70((&paramTypes), (*((tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA**) (&((*param).typ)))), (*((RootObj**) (&((*value).typ)))));
								}
								LA51_: ;
								i_2 += ((NI) 1);
							} LA46: ;
						}
					}
				}
				retType = generateTypeInstance__semtypinst_1086(c, paramTypes, (*macroResult).info, retType);
			}
			LA41_: ;
			{
				if (!((*retType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63))) goto LA55_;
				result = semStmt__sem_87(c, result, flags);
			}
			goto LA53_;
			LA55_: ;
			{
				result = semExpr__sem_52(c, result, flags, expectedType);
				result = fitNode__sem_73(c, retType, result, (*result).info);
			}
			LA53_: ;
		}
		break;
		}
	}
	LA7_: ;
	(*(*(*c).graph).config).evalTemplateCounter -= ((NI) 1);
	T58_ = NIM_NIL;
	T58_ = pop__icZic_2462((&(*c).friendModules));
	(void)(T58_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semMacroExpr__sem_530)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
	NI genericParams;
	NI suppliedParams;
	NI T6_;
	result = NIM_NIL;
	rememberExpansion__semdata_3686(c, (*nOrig).info, sym);
	pushInfoContext__msgs_500((*(*c).graph).config, (*nOrig).info, (*(*sym).name).s);
	info = getCallLineInfo__sem_2443(n);
	markUsed__sigmatch_85(c, info, sym);
	{
		NimStringDesc* T5_;
		if (!(sym == (*(*c).p).owner)) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_11), (*(*sym).name).s);
		liMessage__msgs_1128((*(*c).graph).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T5_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__DKP9c7KM5AbqYVP6Gd9blNUw_12, NIM_FALSE);
	}
	LA3_: ;
	genericParams = len__ast_3155((*(*sym).ast)._kind_6.sons->data[((NI) 2)]);
	T6_ = (NI)0;
	T6_ = safeLen__ast_3148(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__DKP9c7KM5AbqYVP6Gd9blNUw_13), T11_);
		liMessage__msgs_1128((*(*c).graph).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T12_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__DKP9c7KM5AbqYVP6Gd9blNUw_14, NIM_FALSE);
	}
	LA9_: ;
	result = evalMacroCall__vm_14210((*c).module, (*c).Sup.idgen, (*c).graph, (*c).templInstCounter, n, nOrig, sym);
	{
		if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 13))&31U)))!=0))) goto LA15_;
		result = semAfterMacroCall__sem_2845(c, n, result, sym, flags, expectedType);
	}
	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_1128((*(*c).graph).config, (*nOrig).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 101), T22_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_611, NIM_FALSE);
	}
	LA20_: ;
	result = wrapInComesFrom__evaltempl_260((*nOrig).info, sym, result);
	popInfoContext__msgs_517((*(*c).graph).config);
	return result;
}
static N_INLINE(NIM_BOOL, hasWarn__options_570)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA note) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((*conf).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 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__uh9cWvEa5Ty85PXOtuP5emw*, semSym__sem_18211)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
{	result = NIM_NIL;
	s = getGenSym__semdata_420(c, sym);
	switch ((*s).kind) {
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
		{
			if (!!(((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45)))) goto LA4_;
			markUsed__sigmatch_85(c, (*n).info, s);
		}
		LA4_: ;
		typ = skipTypes__ast_3723((*s).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_6);
		switch ((*typ).kind) {
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44):
		{
			{
				if (!((*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0))) goto LA9_;
				result = inlineConst__sem_15114(c, n, s);
			}
			goto LA7_;
			LA9_: ;
			{
				result = newSymNode__ast_3707(s, (*n).info);
			}
			LA7_: ;
		}
		break;
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24):
		{
			{
				NI T15_;
				T15_ = (NI)0;
				T15_ = safeLen__ast_3148((*s).ast);
				if (!(T15_ == ((NI) 0))) goto LA16_;
				result = inlineConst__sem_15114(c, n, s);
			}
			goto LA13_;
			LA16_: ;
			{
				result = newSymNode__ast_3707(s, (*n).info);
			}
			LA13_: ;
		}
		break;
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60):
		{
			{
				if (!!(((*typ).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA22_;
				result = (*typ).n;
				asgnRef((void**) (&(*result).typ), base__types_63(typ));
			}
			goto LA20_;
			LA22_: ;
			{
				result = newSymNode__ast_3707(s, (*n).info);
			}
			LA20_: ;
		}
		break;
		default:
		{
			result = newSymNode__ast_3707(s, (*n).info);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__r6ni9cszPdxrSgot9bYmbKjw) 14))&31U)))!=0);
			if (!(T30_)) goto LA31_;
			T32_ = (NI)0;
			T32_ = len__ast_3155((*(*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__clSgDh22o9au33BrVH9bDQZw) 27) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32)));
			if (!(T34_)) goto LA35_;
			T36_ = (NI)0;
			T36_ = requiredParams__ast_4715(s);
			T34_ = (((NI) 0) < T36_);
			LA35_: ;
			T29_ = T34_;
			LA33_: ;
			if (!T29_) goto LA37_;
			markUsed__sigmatch_85(c, (*n).info, s);
			result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0), NIM_FALSE);
		}
		goto LA27_;
		LA37_: ;
		{
			result = semMacroExpr__sem_530(c, n, n, s, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		LA27_: ;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
	{
		{
			NIM_BOOL T43_;
			NIM_BOOL T44_;
			NIM_BOOL T45_;
			NI T47_;
			NIM_BOOL T49_;
			NI T51_;
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
			T43_ = (NIM_BOOL)0;
			T44_ = (NIM_BOOL)0;
			T45_ = (NIM_BOOL)0;
			T45_ = ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 14))&31U)))!=0);
			if (!(T45_)) goto LA46_;
			T47_ = (NI)0;
			T47_ = len__ast_3155((*(*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__clSgDh22o9au33BrVH9bDQZw) 27) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32)));
			if (!(T49_)) goto LA50_;
			T51_ = (NI)0;
			T51_ = requiredParams__ast_4715(s);
			T49_ = (((NI) 0) < T51_);
			LA50_: ;
			T44_ = T49_;
			LA48_: ;
			T43_ = T44_;
			if (T43_) goto LA52_;
			T43_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 10))&63U)))!=0);
			LA52_: ;
			if (!T43_) goto LA53_;
			info = getCallLineInfo__sem_2443(n);
			markUsed__sigmatch_85(c, info, s);
			result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0), NIM_FALSE);
		}
		goto LA41_;
		LA53_: ;
		{
			result = semTemplateExpr__sem_524(c, n, s, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		LA41_: ;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T60_)) goto LA61_;
			T60_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60));
			LA61_: ;
			T59_ = T60_;
			if (!(T59_)) goto LA62_;
			T59_ = !(((*(*s).typ).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
			LA62_: ;
			if (!T59_) goto LA63_;
			result = (*(*s).typ).n;
			goto BeforeRet_;
		}
		goto LA57_;
		LA63_: ;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0)) goto LA66_;
			{
				NimStringDesc* argX60gensym4774_;
				if (!!(!(((*s).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))))) goto LA70_;
				argX60gensym4774_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_612);
				internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym4774_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_612);
			}
			LA70_: ;
		}
		goto LA57_;
		LA66_: ;
		LA57_: ;
		result = newSymNode__ast_3707(s, (*n).info);
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 8):
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9):
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11):
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21):
	{
		{
			if (!((*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 264))) goto LA75_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_613), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_614, NIM_FALSE);
		}
		LA75_: ;
		{
			if (!!(((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45)))) goto LA79_;
			markUsed__sigmatch_85(c, (*n).info, s);
		}
		LA79_: ;
		result = newSymNode__ast_3707(s, (*n).info);
		{
			NIM_BOOL T83_;
			T83_ = (NIM_BOOL)0;
			T83_ = hasWarn__options_570((*(*c).graph).config, ((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 60));
			if (!T83_) goto LA84_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 60), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_615, NIM_FALSE);
		}
		LA84_: ;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 4):
	{
		{
			if (!((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60))) goto LA89_;
			result = newSymNode__ast_3707(s, (*n).info);
			asgnRef((void**) (&(*result).typ), (*s).typ);
		}
		goto LA87_;
		LA89_: ;
		{
			if (!!(((*s).ast == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA92_;
			result = semExpr__sem_52(c, (*s).ast, 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		goto LA87_;
		LA92_: ;
		{
			asgnRef((void**) (&(*n).typ), (*s).typ);
			result = n;
			goto BeforeRet_;
		}
		LA87_: ;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7):
	{
		{
			if (!!(((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45)))) goto LA98_;
			markUsed__sigmatch_85(c, (*n).info, s);
		}
		LA98_: ;
		{
			NIM_BOOL T102_;
			NIM_BOOL T103_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T105_;
			T102_ = (NIM_BOOL)0;
			T103_ = (NIM_BOOL)0;
			T103_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60));
			if (!(T103_)) goto LA104_;
			T105_ = NIM_NIL;
			T105_ = base__types_63((*s).typ);
			T103_ = !(((*T105_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0)));
			LA104_: ;
			T102_ = T103_;
			if (!(T102_)) goto LA106_;
			T102_ = !(((*(*s).typ).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
			LA106_: ;
			if (!T102_) goto LA107_;
			result = (*(*s).typ).n;
			goto BeforeRet_;
		}
		LA107_: ;
		result = newSymNode__ast_3707(s, (*n).info);
		asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, (*s).typ));
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 19):
	{
		tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA* p;
		p = (*c).p;
		{
			while (1) {
				NIM_BOOL T112_;
				T112_ = (NIM_BOOL)0;
				T112_ = !((p == ((tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA*) NIM_NIL)));
				if (!(T112_)) goto LA113_;
				T112_ = ((*p).selfSym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
				LA113_: ;
				if (!T112_) goto LA111;
				p = (*p).next;
			} LA111: ;
		}
		{
			NIM_BOOL T116_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* ty;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* check;
			T116_ = (NIM_BOOL)0;
			T116_ = !((p == ((tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA*) NIM_NIL)));
			if (!(T116_)) goto LA117_;
			T116_ = !(((*p).selfSym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
			LA117_: ;
			if (!T116_) goto LA118_;
			ty = skipTypes__ast_3723((*(*p).selfSym).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_616);
			{
				while (1) {
					if (!(((*ty).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 32))&63U)))!=0)) goto LA121;
					ty = skipTypes__ast_3723(ty, TM__DKP9c7KM5AbqYVP6Gd9blNUw_112);
				} LA121: ;
			}
			check = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
			{
				if (!((*ty).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17))) goto LA124_;
				{
					while (1) {
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* f;
						check = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
						f = lookupInRecordAndBuildCheck__sem_18013(c, n, (*ty).n, (*s).name, &check);
						{
							NIM_BOOL T130_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T138_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T139_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T140_;
							T130_ = (NIM_BOOL)0;
							T130_ = !((f == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
							if (!(T130_)) goto LA131_;
							T130_ = fieldVisible__sigmatch_4973(c, f);
							LA131_: ;
							if (!T130_) goto LA132_;
							{
								if (!!((f == s))) goto LA136_;
								failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_617));
							}
							LA136_: ;
							markUsed__sigmatch_85(c, (*n).info, f);
							result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45), (*n).info, (*f).typ);
							T138_ = NIM_NIL;
							T138_ = newSymNode__ast_3704((*p).selfSym);
							T139_ = NIM_NIL;
							T139_ = makeDeref__sem_10575(T138_);
							add__ast_4798(result, T139_);
							T140_ = NIM_NIL;
							T140_ = newSymNode__ast_3704(f);
							add__ast_4798(result, T140_);
							{
								if (!!((check == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA147_;
							goto LA126;
						}
						LA147_: ;
						ty = skipTypes__ast_3723((*ty).sons->data[((NI) 0)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_59);
					}
				} LA126: ;
			}
			LA124_: ;
		}
		LA118_: ;
		markUsed__sigmatch_85(c, (*n).info, s);
		result = newSymNode__ast_3707(s, (*n).info);
	}
	break;
	default:
	{
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info_2;
		info_2 = getCallLineInfo__sem_2443(n);
		markUsed__sigmatch_85(c, info_2, s);
		result = newSymNode__ast_3707(s, info_2);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, getNilType__sem_21674)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	result = NIM_NIL;
	result = (*c).nilTypeCache;
	{
		if (!(result == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA3_;
		result = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__uh9cWvEa5Ty85PXOtuP5emw*, semFieldAccess__sem_15003)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = builtinFieldAccess__sem_18435(c, n, flags);
	{
		if (!(result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA3_;
		result = dotTransformation__sem_18563(c, n);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semStaticExpr__sem_128)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
{	result = NIM_NIL;
	(*c).inStaticContext += ((NI) 1);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	a = semExprWithType__sem_57(c, n, 0, expectedType);
	closeScope__lookups_108(c);
	(*c).inStaticContext -= ((NI) 1);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T4_;
		T4_ = NIM_NIL;
		T4_ = findUnresolvedStatic__ast_4957(a);
		if (!!((T4_ == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA5_;
		result = a;
		goto BeforeRet_;
	}
	LA5_: ;
	result = evalStaticExpr__vm_14105((*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__DKP9c7KM5AbqYVP6Gd9blNUw_391), T11_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T12_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_624, NIM_FALSE);
		result = (*(*c).graph).emptyNode;
	}
	goto LA7_;
	LA9_: ;
	{
		result = fixupTypeAfterEval__sem_577(c, result, a);
	}
	LA7_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, maybeLiftType__sem_15485)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA** t, tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* lifted;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	T2_ = NIM_NIL;
	T2_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 152), info);
	lifted = liftParamType__sem_5056(c, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7), T2_, (*t), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_627), info, NIM_FALSE);
	closeScope__lookups_108(c);
	{
		if (!!((lifted == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA5_;
		unsureAsgnRef((void**) (&(*t)), lifted);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedSym__sem_15494)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	s = qualifiedLookUp__lookups_2598(c, n, 0);
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
	if (!(T2_)) goto LA3_;
	T2_ = (((*(*s).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = eqStrings((*(*s).name).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_518));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, inferWithMetatype__sem_235)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg, NIM_BOOL coerceDistincts) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw m;
	result = NIM_NIL;
	nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw));
	newCandidate__sigmatch_195(c, formal, (&m));
	m.coerceDistincts = coerceDistincts;
	result = paramTypesMatch__sigmatch_3620((&m), formal, (*arg).typ, arg, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = m.genericConverter;
		if (!(T3_)) goto LA4_;
		T3_ = !((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
		LA4_: ;
		if (!T3_) goto LA5_;
		instGenericConvertersArg__sem_2345(c, result, (&m));
	}
	LA5_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T11_;
		if (!!((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA9_;
		T11_ = NIM_NIL;
		T11_ = skipTypes__ast_3723(formal, TM__DKP9c7KM5AbqYVP6Gd9blNUw_630);
		asgnRef((void**) (&(*result).typ), generateTypeInstance__semtypinst_1086(c, m.bindings, (*arg).info, T11_));
	}
	goto LA7_;
	LA9_: ;
	{
		typeMismatch__types_3934((*(*c).graph).config, (*arg).info, formal, (*arg).typ, arg);
		result = copyTree__ast_4432(arg);
		asgnRef((void**) (&(*result).typ), formal);
	}
	LA7_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw, checkConversionBetweenObjects__sem_15130)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* castDest, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* src, NI pointers) {
	tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw result;
	NI diff;
{	result = (tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw)0;
	diff = inheritanceDiff__types_2737(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__9cIcjwcIFKBD02yfxCkLuSw) 2);
	}
	goto LA1_;
	LA7_: ;
	{
		result = ((tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw) 0);
	}
	LA1_: ;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__sem_15289)(tyObject_HSlice__4SMQaBRcH5MId3jnPEJfIw s, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw 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__4SMQaBRcH5MId3jnPEJfIw, dotdot___sem_15268)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw a, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw b) {
	tyObject_HSlice__4SMQaBRcH5MId3jnPEJfIw result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__4SMQaBRcH5MId3jnPEJfIw));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__4SMQaBRcH5MId3jnPEJfIw));
	result.a = a;
	result.b = b;
	return result;
}
static N_INLINE(NIM_BOOL, contains__semfold_120)(tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA* s, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = lteq___int495056_421((*s).a, value);
	if (!(T1_)) goto LA2_;
	T1_ = lteq___int495056_421(value, (*s).b);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(void, dotdot___semfold_99)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ b, tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA* Result) {
	nimZeroMem((void*)Result, sizeof(tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA));
	(*Result).a = a;
	(*Result).b = b;
}
static N_INLINE(NIM_BOOL, contains__sem_15342)(tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA* s, NI64 value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = lteq___int495056_938((*s).a, value);
	if (!(T1_)) goto LA2_;
	T1_ = lteq___int495056_945(value, (*s).b);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, contains__semfold_973)(tyObject_HSlice__5MokM0MxT5ZF4tSog3uzVQ s, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg 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__5MokM0MxT5ZF4tSog3uzVQ, dotdot___semfold_951)(tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg a, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg b) {
	tyObject_HSlice__5MokM0MxT5ZF4tSog3uzVQ result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__5MokM0MxT5ZF4tSog3uzVQ));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__5MokM0MxT5ZF4tSog3uzVQ));
	result.a = a;
	result.b = b;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw, checkConvertible__sem_15150)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* targetTyp, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src) {
	tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* srcTyp;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* d;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* s;
	NI pointers;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* targetBaseTyp;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* srcBaseTyp;
{	result = (tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw)0;
	srcTyp = skipTypes__ast_3723((*src).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_36);
	result = ((tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw) 0);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameType__types_1886(targetTyp, srcTyp, 0);
		if (!(T3_)) goto LA4_;
		T3_ = ((*targetTyp).sym == (*srcTyp).sym);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (!!(((*targetTyp).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1) && (*targetTyp).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2) || (*targetTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*targetTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 20) || (*targetTyp).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*targetTyp).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44)))) goto LA9_;
			result = ((tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw) 1);
		}
		LA9_: ;
		goto BeforeRet_;
	}
	LA5_: ;
	d = skipTypes__ast_3723(targetTyp, TM__DKP9c7KM5AbqYVP6Gd9blNUw_235);
	s = srcTyp;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = ((*s).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52) || (*s).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 53));
		if (!(T13_)) goto LA14_;
		T13_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 10))&63U)))!=0);
		LA14_: ;
		if (!T13_) goto LA15_;
		s = lastSon__ast_3731(s);
	}
	LA15_: ;
	s = skipTypes__ast_3723(s, TM__DKP9c7KM5AbqYVP6Gd9blNUw_631);
	{
		NIM_BOOL T19_;
		T19_ = (NIM_BOOL)0;
		T19_ = ((*s).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45));
		if (!(T19_)) goto LA20_;
		T19_ = !(((*d).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45)));
		LA20_: ;
		if (!T19_) goto LA21_;
		s = lastSon__ast_3731(s);
	}
	LA21_: ;
	pointers = ((NI) 0);
	{
		while (1) {
			NIM_BOOL T25_;
			T25_ = (NIM_BOOL)0;
			T25_ = !((d == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T25_)) goto LA26_;
			T25_ = ((*d).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21) || (*d).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22) || (*d).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45));
			LA26_: ;
			if (!T25_) goto LA24;
			{
				NIM_BOOL T29_;
				T29_ = (NIM_BOOL)0;
				T29_ = ((*s).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45));
				if (!(T29_)) goto LA30_;
				T29_ = !(((*d).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45)));
				LA30_: ;
				if (!T29_) goto LA31_;
				s = lastSon__ast_3731(s);
			}
			goto LA27_;
			LA31_: ;
			{
				if (!!(((*d).kind == (*s).kind))) goto LA34_;
				goto LA23;
			}
			goto LA27_;
			LA34_: ;
			{
				d = lastSon__ast_3731(d);
				s = lastSon__ast_3731(s);
			}
			LA27_: ;
			pointers += ((NI) 1);
		} LA24: ;
	} LA23: ;
	targetBaseTyp = skipTypes__ast_3723(targetTyp, TM__DKP9c7KM5AbqYVP6Gd9blNUw_632);
	srcBaseTyp = skipTypes__ast_3723(srcTyp, TM__DKP9c7KM5AbqYVP6Gd9blNUw_466);
	{
		if (!(d == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA39_;
		result = ((tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw) 2);
	}
	goto LA37_;
	LA39_: ;
	{
		NIM_BOOL T42_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T43_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T45_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T48_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T49_;
		T42_ = (NIM_BOOL)0;
		T43_ = NIM_NIL;
		T43_ = skipTypes__ast_3723(d, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
		T42_ = ((*T43_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17));
		if (!(T42_)) goto LA44_;
		T45_ = NIM_NIL;
		T45_ = skipTypes__ast_3723(s, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
		T42_ = ((*T45_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17));
		LA44_: ;
		if (!T42_) goto LA46_;
		T48_ = NIM_NIL;
		T48_ = skipTypes__ast_3723(d, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
		T49_ = NIM_NIL;
		T49_ = skipTypes__ast_3723(s, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
		result = checkConversionBetweenObjects__sem_15130(T48_, T49_, pointers);
	}
	goto LA37_;
	LA46_: ;
	{
		NIM_BOOL T51_;
		T51_ = (NIM_BOOL)0;
		T51_ = ((*targetBaseTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1) || (*targetBaseTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*targetBaseTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2) || (*targetBaseTyp).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*targetBaseTyp).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44));
		if (!(T51_)) goto LA52_;
		T51_ = ((*srcBaseTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1) || (*srcBaseTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*srcBaseTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2) || (*srcBaseTyp).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*srcBaseTyp).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44));
		LA52_: ;
		if (!T51_) goto LA53_;
		{
			NIM_BOOL T57_;
			T57_ = (NIM_BOOL)0;
			T57_ = ((*targetTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14));
			if (!(T57_)) goto LA58_;
			T57_ = ((*srcBaseTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14));
			LA58_: ;
			if (!T57_) goto LA59_;
			liMessage__msgs_1128((*(*c).graph).config, (*src).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 63), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_633), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_634, NIM_FALSE);
		}
		LA59_: ;
		{
			if (!((*targetTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__4SMQaBRcH5MId3jnPEJfIw T72_;
				tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T74_;
				tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T75_;
				tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA T76_;
				tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T77_;
				NIM_BOOL T78_;
				T71_ = (NIM_BOOL)0;
				T72_ = dotdot___sem_15268(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5), ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15));
				T71_ = contains__sem_15289(T72_, (*src).kind);
				if (!(T71_)) goto LA73_;
				T74_ = firstOrd__types_1406((*(*c).graph).config, targetTyp);
				T75_ = lastOrd__types_1532((*(*c).graph).config, targetTyp);
				nimZeroMem((void*)(&T76_), sizeof(tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA));
				dotdot___semfold_99(T74_, T75_, (&T76_));
				T77_ = getInt__ast_4593(src);
				T78_ = (NIM_BOOL)0;
				T78_ = contains__semfold_120((&T76_), T77_);
				T71_ = !(T78_);
				LA73_: ;
				if (!T71_) goto LA79_;
				result = ((tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw) 3);
			}
			goto LA69_;
			LA79_: ;
			{
				NIM_BOOL T82_;
				tyObject_HSlice__4SMQaBRcH5MId3jnPEJfIw T83_;
				NIM_BOOL T85_;
				tyEnum_FloatClass__sXQOxr9c3EE79allMY12fv9cg T86_;
				tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T88_;
				tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T89_;
				tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA T90_;
				NIM_BOOL T91_;
				T82_ = (NIM_BOOL)0;
				T83_ = dotdot___sem_15268(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 16), ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 18));
				T82_ = contains__sem_15289(T83_, (*src).kind);
				if (!(T82_)) goto LA84_;
				T85_ = (NIM_BOOL)0;
				T86_ = (tyEnum_FloatClass__sXQOxr9c3EE79allMY12fv9cg)0;
				T86_ = classify__pureZmath_147((*src)._kind_2.floatVal);
				T85_ = ((112 &((NU8)1<<((NU)(T86_)&7U)))!=0);
				if (T85_) goto LA87_;
				T88_ = firstOrd__types_1406((*(*c).graph).config, targetTyp);
				T89_ = lastOrd__types_1532((*(*c).graph).config, targetTyp);
				nimZeroMem((void*)(&T90_), sizeof(tyObject_HSlice__uuLFB9bRXg4euv7O8yFk6pA));
				dotdot___semfold_99(T88_, T89_, (&T90_));
				T91_ = (NIM_BOOL)0;
				T91_ = contains__sem_15342((&T90_), ((NI64) ((*src)._kind_2.floatVal)));
				T85_ = !(T91_);
				LA87_: ;
				T82_ = T85_;
				LA84_: ;
				if (!T82_) goto LA92_;
				result = ((tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw) 3);
			}
			goto LA69_;
			LA92_: ;
			LA69_: ;
		}
		goto LA61_;
		LA67_: ;
		{
			tyObject_HSlice__5MokM0MxT5ZF4tSog3uzVQ T95_;
			NIM_BOOL T96_;
			T95_ = dotdot___semfold_951(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36), ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 38));
			T96_ = (NIM_BOOL)0;
			T96_ = contains__semfold_973(T95_, (*targetBaseTyp).kind);
			if (!T96_) goto LA97_;
			{
				NIM_BOOL T101_;
				tyObject_HSlice__4SMQaBRcH5MId3jnPEJfIw T102_;
				NIM_BOOL T104_;
				T101_ = (NIM_BOOL)0;
				T102_ = dotdot___sem_15268(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 16), ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 18));
				T101_ = contains__sem_15289(T102_, (*src).kind);
				if (!(T101_)) goto LA103_;
				T104_ = (NIM_BOOL)0;
				T104_ = floatRangeCheck__types_1675((*src)._kind_2.floatVal, targetTyp);
				T101_ = !(T104_);
				LA103_: ;
				if (!T101_) goto LA105_;
				result = ((tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw) 3);
			}
			goto LA99_;
			LA105_: ;
			{
				NIM_BOOL T108_;
				tyObject_HSlice__4SMQaBRcH5MId3jnPEJfIw T109_;
				NIM_BOOL T111_;
				T108_ = (NIM_BOOL)0;
				T109_ = dotdot___sem_15268(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5), ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15));
				T108_ = contains__sem_15289(T109_, (*src).kind);
				if (!(T108_)) goto LA110_;
				T111_ = (NIM_BOOL)0;
				T111_ = floatRangeCheck__types_1675(((NF) ((*src)._kind_1.intVal)), targetTyp);
				T108_ = !(T111_);
				LA110_: ;
				if (!T108_) goto LA112_;
				result = ((tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw) 3);
			}
			goto LA99_;
			LA112_: ;
			LA99_: ;
		}
		goto LA61_;
		LA97_: ;
		LA61_: ;
	}
	goto LA37_;
	LA53_: ;
	{
		tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA T115_;
		T115_ = (tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA)0;
		T115_ = cmpTypes__sigmatch_3075(c, d, s);
		switch (T115_) {
		case ((tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA) 0):
		case ((tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA) 8):
		{
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T119_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T120_;
				NIM_BOOL T121_;
				T119_ = NIM_NIL;
				T119_ = skipTypes__ast_3723(targetTyp, TM__DKP9c7KM5AbqYVP6Gd9blNUw_235);
				T120_ = NIM_NIL;
				T120_ = skipTypes__ast_3723(srcTyp, TM__DKP9c7KM5AbqYVP6Gd9blNUw_635);
				T121_ = (NIM_BOOL)0;
				T121_ = compareTypes__types_2720(T119_, T120_, ((tyEnum_TDistinctCompare__UuPcvyG2RecjPyQDW4WlFw) 1), 0);
				if (!!(T121_)) goto LA122_;
				result = ((tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw) 2);
			}
			LA122_: ;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	LA37_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConv__sem_15507)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* targetType;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T6_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T47_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* op;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_620), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_621, NIM_FALSE);
		result = n;
		goto BeforeRet_;
	}
	LA4_: ;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 60), (*n).info);
	targetType = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	T6_ = NIM_NIL;
	T6_ = skipTypes__ast_3723(targetType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_622);
	switch ((*T6_).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8):
	{
		{
			NI T10_;
			NimStringDesc* argX60gensym4027_;
			T10_ = (NI)0;
			T10_ = len__ast_3990(targetType);
			if (!!((((NI) 0) < T10_))) goto LA11_;
			argX60gensym4027_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_623);
			internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym4027_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_623);
		}
		LA11_: ;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T15_;
			T15_ = NIM_NIL;
			T15_ = base__types_63(targetType);
			if (!((*T15_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0))) goto LA16_;
			result = semTypeOf__sem_136(c, n);
			goto BeforeRet_;
		}
		goto LA13_;
		LA16_: ;
		{
			targetType = base__types_63(targetType);
		}
		LA13_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* evaluated;
		evaluated = semStaticExpr__sem_128(c, (*n)._kind_6.sons->data[((NI) 1)], expectedType);
		{
			NIM_BOOL T22_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T26_;
			T22_ = (NIM_BOOL)0;
			T22_ = ((*evaluated).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4));
			if (T22_) goto LA23_;
			T22_ = ((*(*evaluated).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
			LA23_: ;
			if (!T22_) goto LA24_;
			result = n;
			T26_ = NIM_NIL;
			T26_ = semStaticType__sem_132(c, evaluated, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, T26_));
			goto BeforeRet_;
		}
		goto LA20_;
		LA24_: ;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T28_;
			T28_ = NIM_NIL;
			T28_ = base__types_63(targetType);
			if (!((*T28_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0))) goto LA29_;
			result = evaluated;
			goto BeforeRet_;
		}
		goto LA20_;
		LA29_: ;
		{
			targetType = base__types_63(targetType);
		}
		LA20_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 59):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7):
	{
		NimStringDesc* T33_;
		NimStringDesc* T34_;
		T33_ = NIM_NIL;
		T33_ = typeToString__types_50(targetType, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
		T34_ = NIM_NIL;
		T34_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_625), T33_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T34_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_626, NIM_FALSE);
	}
	break;
	default:
	{
	}
	break;
	}
	maybeLiftType__sem_15485(&targetType, c, (*(*n)._kind_6.sons->data[((NI) 0)]).info);
	{
		NIM_BOOL T38_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* baseType;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T42_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
		T38_ = (NIM_BOOL)0;
		T38_ = ((*targetType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46) || (*targetType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47));
		if (T38_) goto LA39_;
		T38_ = isOwnedSym__sem_15494(c, (*n)._kind_6.sons->data[((NI) 0)]);
		LA39_: ;
		if (!T38_) goto LA40_;
		T42_ = NIM_NIL;
		T42_ = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		baseType = skipTypes__ast_3723(T42_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128);
		t = newTypeS__semdata_763((*targetType).kind, c);
		{
			if (!((*targetType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45))) goto LA45_;
			(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 4)) & 63);
		}
		LA45_: ;
		rawAddSonNoPropagationOfTypeFlags__ast_4287(t, baseType);
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4), (*n).info);
		asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, t));
		goto BeforeRet_;
	}
	LA40_: ;
	T47_ = NIM_NIL;
	T47_ = copyTree__ast_4432((*n)._kind_6.sons->data[((NI) 0)]);
	add__ast_4798(result, T47_);
	{
		NIM_BOOL T50_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T52_;
		T50_ = (NIM_BOOL)0;
		T50_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 33));
		if (!(T50_)) goto LA51_;
		T52_ = NIM_NIL;
		T52_ = skipTypes__ast_3723(targetType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_102);
		T50_ = ((*T52_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17));
		LA51_: ;
		if (!T50_) goto LA53_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_628), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_629, NIM_FALSE);
	}
	LA53_: ;
	op = semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 1)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	{
		NIM_BOOL T57_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* final;
		T57_ = (NIM_BOOL)0;
		T57_ = !(((*targetType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12)));
		if (!(T57_)) goto LA58_;
		T57_ = isMetaType__ast_3474(targetType);
		LA58_: ;
		if (!T57_) goto LA59_;
		final = inferWithMetatype__sem_235(c, targetType, op, NIM_TRUE);
		add__ast_4798(result, final);
		asgnRef((void**) (&(*result).typ), (*final).typ);
		goto BeforeRet_;
	}
	LA59_: ;
	asgnRef((void**) (&(*result).typ), targetType);
	add__ast_4798(result, op);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T65_;
		if (!((*targetType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12))) goto LA63_;
		T65_ = NIM_NIL;
		T65_ = copyTree__ast_4432(result);
		asgnRef((void**) (&(*result).typ), makeTypeFromExpr__semdata_834(c, T65_));
		goto BeforeRet_;
	}
	LA63_: ;
	{
		NIM_BOOL T68_;
		tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw status;
		T68_ = (NIM_BOOL)0;
		T68_ = isSymChoice__sem_15478(op);
		if (!!(T68_)) goto LA69_;
		status = checkConvertible__sem_15150(c, (*result).typ, op);
		switch (status) {
		case ((tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw) 0):
		{
			{
				NIM_BOOL T74_;
				T74_ = (NIM_BOOL)0;
				T74_ = ((*op).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
				if (!(T74_)) goto LA75_;
				T74_ = isGenericRoutine__ast_4647((*op)._kind_4.sym);
				LA75_: ;
				if (!T74_) goto LA76_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), fitNode__sem_73(c, (*result).typ, (*result)._kind_6.sons->data[((NI) 1)], (*result).info));
			}
			goto LA72_;
			LA76_: ;
			{
				NIM_BOOL T79_;
				T79_ = (NIM_BOOL)0;
				T79_ = ((*op).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37) || (*op).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160));
				if (!(T79_)) goto LA80_;
				T79_ = ((*targetType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18));
				LA80_: ;
				if (!T79_) goto LA81_;
				op = fitNode__sem_73(c, targetType, op, (*result).info);
			}
			goto LA72_;
			LA81_: ;
			LA72_: ;
		}
		break;
		case ((tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw) 1):
		{
			NimStringDesc* T84_;
			T84_ = NIM_NIL;
			T84_ = typeToString__types_50((*result).typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 80), T84_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_636, NIM_FALSE);
		}
		break;
		case ((tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw) 2):
		{
			result = fitNode__sem_73(c, (*result).typ, (*result)._kind_6.sons->data[((NI) 1)], (*result).info);
			{
				tyArray__Re75IspeoxXy2oCZHwcRrA T90_;
				NimStringDesc* T91_;
				if (!(result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA88_;
				nimZeroMem((void*)T90_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
				T90_[0] = typeToString__types_50((*op).typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
				T90_[1] = typeToString__types_50((*result).typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
				T91_ = NIM_NIL;
				T91_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_637), T90_, 2);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T91_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_638, NIM_FALSE);
			}
			LA88_: ;
		}
		break;
		case ((tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw) 3):
		{
			NimStringDesc* value;
			NimStringDesc* T100_;
			NimStringDesc* T101_;
			{
				tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T97_;
				if (!((*op).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*op).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15))) goto LA95_;
				T97_ = getInt__ast_4593(op);
				value = dollar___int495056_53(T97_);
			}
			goto LA93_;
			LA95_: ;
			{
				NF T99_;
				T99_ = (NF)0;
				T99_ = getFloat__ast_4608(op);
				value = dollar___system_3126(T99_);
			}
			LA93_: ;
			T100_ = NIM_NIL;
			T101_ = NIM_NIL;
			T101_ = typeToString__types_50((*result).typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T100_ = rawNewString((value ? value->Sup.len : 0) + (T101_ ? T101_->Sup.len : 0) + 23);
appendString(T100_, value);
appendString(T100_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_639));
appendString(T100_, T101_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T100_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_640, NIM_FALSE);
		}
		break;
		}
	}
	goto LA66_;
	LA69_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(op);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
					tyEnum_TConvStatus__9cIcjwcIFKBD02yfxCkLuSw status_2;
					if (!(i_2 < colontmp_)) goto LA105;
					i = i_2;
					it = (*op)._kind_6.sons->data[i];
					status_2 = checkConvertible__sem_15150(c, (*result).typ, it);
					{
						if (!((3 &((NU8)1<<((NU)(status_2)&7U)))!=0)) goto LA108_;
						markUsed__sigmatch_85(c, (*n).info, (*it)._kind_4.sym);
						markIndirect__semdata_1090(c, (*it)._kind_4.sym);
						result = it;
						goto BeforeRet_;
					}
					LA108_: ;
					i_2 += ((NI) 1);
				} LA105: ;
			}
		}
		errorUseQualifier__lookups_2516(c, (*n).info, (*(*op)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
	}
	LA66_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semObjConstr__sem_17703)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ constrCtx;
	tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ initResult;
	NIM_BOOL hasError;
{	result = NIM_NIL;
	t = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38), (*n).info, t);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* child;
		child = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(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_4798(result, child);
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n2X60gensym5603_;
		if (!(t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA7_;
		n2X60gensym5603_ = result;
		liMessage__msgs_1128((*(*c).graph).config, (*n2X60gensym5603_).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_641), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_642, NIM_FALSE);
		result = errorNode__semdata_1039(c, n2X60gensym5603_);
		goto BeforeRet_;
	}
	LA7_: ;
	{
		NIM_BOOL T11_;
		NIM_BOOL T12_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T13_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T16_;
		T11_ = (NIM_BOOL)0;
		T12_ = (NIM_BOOL)0;
		T13_ = NIM_NIL;
		T13_ = skipTypes__ast_3723(t, TM__DKP9c7KM5AbqYVP6Gd9blNUw_643);
		T12_ = !(((*T13_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17)));
		if (!(T12_)) goto LA14_;
		T12_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA14_: ;
		T11_ = T12_;
		if (!(T11_)) goto LA15_;
		T16_ = NIM_NIL;
		T16_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_643);
		T11_ = ((*T16_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17));
		LA15_: ;
		if (!T11_) goto LA17_;
		t = expectedType;
	}
	LA17_: ;
	t = skipTypes__ast_3723(t, TM__DKP9c7KM5AbqYVP6Gd9blNUw_45);
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22))) goto LA21_;
		t = skipTypes__ast_3723((*t).sons->data[((NI) 0)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_45);
		{
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 42))&63U)))!=0)) goto LA25_;
			asgnRef((void**) (&(*result).typ), makeVarType__semdata_796(c, (*result).typ, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45)));
			(*(*result).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 4)) & 63);
		}
		LA25_: ;
	}
	LA21_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n2X60gensym5614_;
		NimStringDesc* T31_;
		if (!!(((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17)))) goto LA29_;
		n2X60gensym5614_ = result;
		T31_ = NIM_NIL;
		{
			NimStringDesc* dupResult;
			if (!!(((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10)))) goto LA34_;
			dupResult = copyString(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_641));
			addDeclaredLoc__astmsgs_33((&dupResult), (*(*c).graph).config, t);
			T31_ = copyString(dupResult);
		}
		goto LA32_;
		LA34_: ;
		{
			NimStringDesc* T37_;
			NimStringDesc* T38_;
			T37_ = NIM_NIL;
			T38_ = NIM_NIL;
			T38_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 1));
			T37_ = rawNewString((T38_ ? T38_->Sup.len : 0) + 103);
appendString(T37_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_264));
appendString(T37_, T38_);
appendString(T37_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_644));
			T31_ = T37_;
		}
		LA32_: ;
		liMessage__msgs_1128((*(*c).graph).config, (*n2X60gensym5614_).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T31_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_645, NIM_FALSE);
		result = errorNode__semdata_1039(c, n2X60gensym5614_);
		goto BeforeRet_;
	}
	LA29_: ;
	nimZeroMem((void*)(&constrCtx), sizeof(tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ));
	initConstrContext__sem_21075(t, result, (&constrCtx));
	initResult = semConstructTypeAux__sem_21050(c, (&constrCtx), flags);
	hasError = NIM_FALSE;
	{
		NI T41_;
		tyArray__Re75IspeoxXy2oCZHwcRrA T44_;
		NimStringDesc* T45_;
		T41_ = (constrCtx.missingFields ? constrCtx.missingFields->Sup.len : 0);
		if (!(((NI) 0) < T41_)) goto LA42_;
		hasError = NIM_TRUE;
		nimZeroMem((void*)T44_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T44_[0] = copyString((*(*(*t).sym).name).s);
		T44_[1] = listSymbolNames__astalgo_4303((constrCtx.missingFields) ? (constrCtx.missingFields->data) : NIM_NIL, (constrCtx.missingFields ? constrCtx.missingFields->Sup.len : 0));
		T45_ = NIM_NIL;
		T45_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_646), T44_, 2);
		liMessage__msgs_1128((*(*c).graph).config, (*result).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T45_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_647, NIM_FALSE);
	}
	LA42_: ;
	{
		NI i_3;
		NI colontmp__2;
		NI i_4;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__ast_3155(result);
		i_4 = ((NI) 1);
		{
			while (1) {
				if (!(i_4 < colontmp__2)) goto LA48;
				i_3 = i_4;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* field;
					field = (*result)._kind_6.sons->data[i_3];
					{
						tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* id;
						NimStringDesc* msg;
						NimStringDesc* T66_;
						NimStringDesc* T67_;
						NimStringDesc* T68_;
						if (!!((((*field).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 7))&31U)))!=0))) goto LA52_;
						{
							if (!!(((*field).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34)))) goto LA56_;
							invalidObjConstr__sem_20519(c, field);
							hasError = NIM_TRUE;
							goto LA49;
						}
						LA56_: ;
						id = considerQuotedIdent__lookups_29(c, (*field)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
						{
							NI j;
							NI i_5;
							j = (NI)0;
							i_5 = ((NI) 1);
							{
								while (1) {
									tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* prevId;
									if (!(i_5 < i_3)) goto LA60;
									j = i_5;
									prevId = considerQuotedIdent__lookups_29(c, (*(*result)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
									{
										NimStringDesc* T65_;
										if (!((*prevId).id == (*id).id)) goto LA63_;
										T65_ = NIM_NIL;
										T65_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_648), (*id).s);
										liMessage__msgs_1128((*(*c).graph).config, (*field).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T65_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_649, NIM_FALSE);
										hasError = NIM_TRUE;
										goto LA58;
									}
									LA63_: ;
									i_5 += ((NI) 1);
								} LA60: ;
							}
						} LA58: ;
						T66_ = NIM_NIL;
						T67_ = NIM_NIL;
						T67_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_276), (*id).s);
						T68_ = NIM_NIL;
						T68_ = getProcHeader__types_222((*(*c).graph).config, (*t).sym, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0), NIM_TRUE);
						T66_ = rawNewString((T67_ ? T67_->Sup.len : 0) + (T68_ ? T68_->Sup.len : 0) + 10);
appendString(T66_, T67_);
appendString(T66_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_275));
appendString(T66_, T68_);
						msg = T66_;
						liMessage__msgs_1128((*(*c).graph).config, (*field).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), msg, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_650, NIM_FALSE);
						hasError = NIM_TRUE;
						goto LA46;
					}
					LA52_: ;
				} LA49: ;
				i_4 += ((NI) 1);
			} LA48: ;
		}
	} LA46: ;
	{
		if (!(initResult == ((tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ) 1))) goto LA71_;
		(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 1)) & 31);
	}
	LA71_: ;
	{
		if (!hasError) goto LA75_;
		result = errorNode__semdata_1039(c, result);
	}
	LA75_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semDefined__sem_19375)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T1_;
	NIM_BOOL T2_;
	result = NIM_NIL;
	checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
	result = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(0));
	T1_ = NIM_NIL;
	T1_ = considerQuotedIdent__lookups_29(c, (*n)._kind_6.sons->data[((NI) 1)], n);
	T2_ = (NIM_BOOL)0;
	T2_ = isDefined__options_2292((*(*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__b28l2MkhJpnFhatVrsrXpg) 1)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, setMs__sem_19810)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(s));
	(*(*n)._kind_6.sons->data[((NI) 0)]).info = (*n).info;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, lookUpForDeclared__sem_19383)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL onlyCurrentScope) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
{	result = NIM_NIL;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
	{
		NIM_BOOL amb;
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
		amb = NIM_FALSE;
		ident = considerQuotedIdent__lookups_29(c, n, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		{
			if (!onlyCurrentScope) goto LA4_;
			result = localSearchInScope__lookups_149(c, ident);
		}
		goto LA2_;
		LA4_: ;
		{
			result = searchInScopes__lookups_603(c, ident, (&amb));
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m;
		result = ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL);
		{
			if (!onlyCurrentScope) goto LA10_;
			goto BeforeRet_;
		}
		LA10_: ;
		checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
		m = lookUpForDeclared__sem_19383(c, (*n)._kind_6.sons->data[((NI) 0)], onlyCurrentScope);
		{
			NIM_BOOL T14_;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident_2;
			T14_ = (NIM_BOOL)0;
			T14_ = !((m == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
			if (!(T14_)) goto LA15_;
			T14_ = ((*m).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6));
			LA15_: ;
			if (!T14_) goto LA16_;
			ident_2 = considerQuotedIdent__lookups_29(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_2849((*c).graph, m, ident_2);
			}
			LA18_: ;
		}
		LA16_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		result = (*n)._kind_4.sym;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__DKP9c7KM5AbqYVP6Gd9blNUw_651));
appendString(T26_, T27_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T26_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_652, NIM_FALSE);
		result = ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semDeclared__sem_19407)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL onlyCurrentScope) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T1_;
	result = NIM_NIL;
	checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
	result = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(0));
	T1_ = NIM_NIL;
	T1_ = lookUpForDeclared__sem_19383(c, (*n)._kind_6.sons->data[((NI) 1)], onlyCurrentScope);
	(*result)._kind_1.intVal = ((NI64) (!((T1_ == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))));
	(*result).info = (*n).info;
	asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tryExpr__sem_107)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* volatile result;
	NI oldErrorCount;
	NI oldErrorMax;
	NI oldCompilesId;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* oldScope;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T5_;
	NI oldOwnerLen;
	NI T6_;
	tySequence__yH9bx9bpa6jqsU89cxjyTAlPQ* oldGenerics;
	tySet_tyEnum_TErrorOutput__AR9blT7YaZzdImck9a5cntbQ oldErrorOutputs;
	NI oldContextLen;
	NI oldInGenericContext;
	NI oldInUnrolledContext;
	NI oldInGenericInst;
	NI oldInStaticContext;
	tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA* oldProcCon;
	NimStringDesc* err;
	TSafePoint TM__DKP9c7KM5AbqYVP6Gd9blNUw_653;
	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_76(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__r6ni9cszPdxrSgot9bYmbKjw) 10))&31U)))!=0))) goto LA9_;
		(*(*(*c).graph).config).m.errorOutputs = 0;
	}
	LA9_: ;
	oldContextLen = getInfoContextLen__msgs_486((*(*c).graph).config);
	oldInGenericContext = (*c).inGenericContext;
	oldInUnrolledContext = (*c).inUnrolledContext;
	oldInGenericInst = (*c).inGenericInst;
	oldInStaticContext = (*c).inStaticContext;
	oldProcCon = (*c).p;
	if ((*c).generics) { nimGCunrefNoCycle((*c).generics); (*c).generics = NIM_NIL; }
	err = NIM_NIL;
	pushSafePoint(&TM__DKP9c7KM5AbqYVP6Gd9blNUw_653);
	TM__DKP9c7KM5AbqYVP6Gd9blNUw_653.status = setjmp(TM__DKP9c7KM5AbqYVP6Gd9blNUw_653.context);
	if (TM__DKP9c7KM5AbqYVP6Gd9blNUw_653.status == 0) {
	result = semExpr__sem_52(c, n, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = !((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
		if (!(T13_)) goto LA14_;
		T13_ = !(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 17))&31U)))!=0));
		LA14_: ;
		if (!T13_) goto LA15_;
		trackStmt__sempass50_4945(c, (*c).module, result, NIM_FALSE);
	}
	LA15_: ;
	{
		if (!!(((*(*(*c).graph).config).errorCounter == oldErrorCount))) goto LA19_;
		result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
	}
	LA19_: ;
	popSafePoint();
	}
	else {
		popSafePoint();
		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIerecoverableerror__aRVEU9aWMU9b9a9baYZqUd3t9cA_))) {
			TM__DKP9c7KM5AbqYVP6Gd9blNUw_653.status = 0;
			popCurrentException();
		}
	}
	if (TM__DKP9c7KM5AbqYVP6Gd9blNUw_653.status != 0) reraiseException();
	(*c).compilesContextId = oldCompilesId;
	genericSeqAssign((&(*c).generics), oldGenerics, (&NTIseqLtinstantiationpairT__yH9bx9bpa6jqsU89cxjyTAlPQ_));
	(*c).inGenericContext = oldInGenericContext;
	(*c).inUnrolledContext = oldInUnrolledContext;
	(*c).inGenericInst = oldInGenericInst;
	(*c).inStaticContext = oldInStaticContext;
	asgnRef((void**) (&(*c).p), oldProcCon);
	setInfoContextLen__msgs_493((*(*c).graph).config, oldContextLen);
	asgnRef((void**) (&(*(*c).graph).owners), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) setLengthSeqV2(((*(*c).graph).owners)?&((*(*c).graph).owners)->Sup:NIM_NIL, (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_), ((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__uh9cWvEa5Ty85PXOtuP5emw*, semCompiles__sem_19747)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		result = semDirectOp__sem_515(c, n, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = NIM_NIL;
	T6_ = tryExpr__sem_107(c, (*n)._kind_6.sons->data[((NI) 1)], flags);
	result = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), ((NI64) (!((T6_ == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))))));
	(*result).info = (*n).info;
	asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1)));
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fixupStaticType__sem_15714)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T5_;
		tySequence__vKogasEnJSPhbQmA8r4Y9aA* T6_;
		if (!!(((*(*n).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60)))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = getCurrOwner__semdata_327(c);
		T6_ = NIM_NIL;
		T6_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 1);
		asgnRef((void**) (&T6_->data[0]), (*n).typ);
		asgnRef((void**) (&(*n).typ), newTypeWithSons__semdata_845(T5_, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60), T6_, (*c).Sup.idgen));
		asgnRef((void**) (&(*(*n).typ).n), n);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, isOpImpl__sem_15725)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NIM_BOOL res;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t1;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t2;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T5_;
		NimStringDesc* argX60gensym4101_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NI)0;
		T5_ = len__ast_3155(n);
		T4_ = (T5_ == ((NI) 3));
		if (!(T4_)) goto LA6_;
		T4_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA6_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20) && (*(*n)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22) || (*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4));
		LA7_: ;
		if (!!(T3_)) goto LA8_;
		argX60gensym4101_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_656);
		internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym4101_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_656);
	}
	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__b28l2MkhJpnFhatVrsrXpg) 8));
		if (!(T12_)) goto LA13_;
		T12_ = !(((*t2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__clSgDh22o9au33BrVH9bDQZw) 20) && (*(*n)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22))) goto LA18_;
		T20_ = NIM_NIL;
		T20_ = nsuNormalize((*(*n)._kind_6.sons->data[((NI) 2)])._kind_3.strVal);
		if (eqStrings(T20_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_657))) goto LA21_;
		if (eqStrings(T20_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_658))) goto LA22_;
		goto LA23_;
		LA21_: ;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
			NIM_BOOL T26_;
			t = skipTypes__ast_3723(t1, TM__DKP9c7KM5AbqYVP6Gd9blNUw_468);
			T26_ = (NIM_BOOL)0;
			T26_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
			if (!(T26_)) goto LA27_;
			T26_ = ((*t).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9));
			LA27_: ;
			res = T26_;
		}
		goto LA24_;
		LA22_: ;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_2;
			NIM_BOOL T29_;
			NIM_BOOL T30_;
			t_2 = skipTypes__ast_3723(t1, TM__DKP9c7KM5AbqYVP6Gd9blNUw_468);
			T29_ = (NIM_BOOL)0;
			T30_ = (NIM_BOOL)0;
			T30_ = ((*t_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
			if (!(T30_)) goto LA31_;
			T30_ = ((*t_2).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9));
			LA31_: ;
			T29_ = T30_;
			if (!(T29_)) goto LA32_;
			T29_ = (((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 15))&63U)))!=0);
			LA32_: ;
			res = T29_;
		}
		goto LA24_;
		LA23_: ;
		{
			res = NIM_FALSE;
		}
		LA24_: ;
	}
	goto LA16_;
	LA18_: ;
	{
		tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw m;
		tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA T45_;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T37_;
			T37_ = NIM_NIL;
			T37_ = skipTypes__ast_3723(t1, TM__DKP9c7KM5AbqYVP6Gd9blNUw_90);
			if (!!(((*T37_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10)))) goto LA38_;
			maybeLiftType__sem_15485(&t2, c, (*n).info);
		}
		goto LA35_;
		LA38_: ;
		{
		}
		LA35_: ;
		nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw));
		newCandidate__sigmatch_195(c, t2, (&m));
		{
			if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 10))&31U)))!=0)) goto LA43_;
			m.diagnostics = NIM_NIL;
			m.diagnosticsEnabled = NIM_TRUE;
		}
		LA43_: ;
		T45_ = (tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA)0;
		T45_ = typeRel__sigmatch_202((&m), t2, t1, 0);
		res = (((tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA) 3) <= T45_);
	}
	LA16_: ;
	result = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), ((NI64) (res)));
	asgnRef((void**) (&(*result).typ), (*n).typ);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semIs__sem_15808)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* boolType;
	NIM_BOOL liftLhs;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* lhsType;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!!((T3_ == ((NI) 3)))) goto LA4_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_654), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_655, NIM_FALSE);
	}
	LA4_: ;
	boolType = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
	result = n;
	asgnRef((void**) (&(*n).typ), boolType);
	liftLhs = NIM_TRUE;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 1)], 514, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t2;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20) && (*(*n)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22)))) goto LA8_;
		t2 = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 2)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4), (*(*n)._kind_6.sons->data[((NI) 2)]).info, t2));
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* evaluated;
			if (!((*t2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60))) goto LA12_;
			evaluated = tryConstExpr__sem_589(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			{
				if (!!((evaluated == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA16_;
				fixupStaticType__sem_15714(c, evaluated);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), evaluated);
			}
			goto LA14_;
			LA16_: ;
			{
				result = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(0));
				asgnRef((void**) (&(*result).typ), boolType);
				goto BeforeRet_;
			}
			LA14_: ;
		}
		goto LA10_;
		LA12_: ;
		{
			NIM_BOOL T20_;
			NIM_BOOL T22_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T23_;
			T20_ = (NIM_BOOL)0;
			T20_ = ((*t2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
			if (!(T20_)) goto LA21_;
			T22_ = (NIM_BOOL)0;
			T23_ = NIM_NIL;
			T23_ = base__types_63(t2);
			T22_ = ((*T23_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0));
			if (T22_) goto LA24_;
			T22_ = (((*t2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 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, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
	}
	LA6_: ;
	lhsType = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	{
		if (!!(((*lhsType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)))) goto LA30_;
		{
			if (!liftLhs) goto LA34_;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), makeTypeSymNode__semdata_815(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__kQDDJGUiaUAtO9c9b6LjZYjA* T40_;
			NIM_BOOL T42_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T44_;
			T39_ = (NIM_BOOL)0;
			T40_ = NIM_NIL;
			T40_ = base__types_63(lhsType);
			T39_ = ((*T40_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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_3412(T44_);
			LA43_: ;
			T39_ = T42_;
			LA41_: ;
			if (!T39_) goto LA45_;
			goto BeforeRet_;
		}
		LA45_: ;
	}
	LA28_: ;
	result = isOpImpl__sem_15725(c, n, flags);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExpandToAst__sem_19451)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* macroCall;
	result = NIM_NIL;
	macroCall = (*n)._kind_6.sons->data[((NI) 1)];
	{
		NIM_BOOL T3_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* headSymbol;
		NI cands;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* cand;
		tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg o;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* symx;
		T3_ = (NIM_BOOL)0;
		T3_ = isCallExpr__ast_3133(macroCall);
		if (!T3_) goto LA4_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(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_57(c, (*macroCall)._kind_6.sons->data[i], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
		headSymbol = (*macroCall)._kind_6.sons->data[((NI) 0)];
		cands = ((NI) 0);
		cand = ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL);
		nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg));
		symx = initOverloadIter__lookups_3120((&o), c, headSymbol);
		{
			while (1) {
				if (!!((symx == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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_3990((*symx).typ);
					T16_ = (NI)0;
					T16_ = len__ast_3155(macroCall);
					T13_ = (T15_ == T16_);
					LA14_: ;
					if (!T13_) goto LA17_;
					cand = symx;
					cands += ((NI) 1);
				}
				LA17_: ;
				symx = nextOverloadIter__lookups_3274((&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_3155(macroCall);
			T25_ = NIM_NIL;
			T25_ = dollar___systemZdollars_3((NI)(T24_ - ((NI) 1)));
			T23_ = rawNewString((T25_ ? T25_->Sup.len : 0) + 41);
appendString(T23_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_659));
appendString(T23_, T25_);
appendString(T23_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_660));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T23_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_661, NIM_FALSE);
		}
		goto LA19_;
		LA21_: ;
		{
			NimStringDesc* T29_;
			NimStringDesc* T30_;
			if (!(((NI) 2) <= cands)) goto LA27_;
			T29_ = NIM_NIL;
			T30_ = NIM_NIL;
			T30_ = dollar___renderer_2116(macroCall);
			T29_ = rawNewString((T30_ ? T30_->Sup.len : 0) + 38);
appendString(T29_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_662));
appendString(T29_, T30_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T29_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_663, NIM_FALSE);
		}
		goto LA19_;
		LA27_: ;
		{
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
			info = (*(*macroCall)._kind_6.sons->data[((NI) 0)]).info;
			asgnRef((void**) (&(*macroCall)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3707(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__DKP9c7KM5AbqYVP6Gd9blNUw_664));
appendString(T33_, T34_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T33_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_665, NIM_FALSE);
	}
	LA1_: ;
	{
		NimStringDesc* argX60gensym5162_;
		if (!!(((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 27)))) goto LA37_;
		argX60gensym5162_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_666);
		internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym5162_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_666);
	}
	LA37_: ;
	{
		NIM_BOOL T41_;
		NI T43_;
		T41_ = (NIM_BOOL)0;
		T41_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115));
		if (!(T41_)) goto LA42_;
		T43_ = (NI)0;
		T43_ = len__ast_3155(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__DKP9c7KM5AbqYVP6Gd9blNUw_104)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExpandToAst__sem_19514)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* magicSym, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3707(magicSym, (*n).info));
		result = semExpandToAst__sem_19451(c, n);
	}
	goto LA1_;
	LA4_: ;
	{
		result = semDirectOp__sem_515(c, n, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, expectString__sem_19437)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NimStringDesc* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
{	result = NIM_NIL;
	n_2 = semConstExpr__sem_619(c, n, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	{
		if (!((*n_2).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20) && (*n_2).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22))) goto LA3_;
		result = copyString((*n_2)._kind_3.strVal);
		goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		liMessage__msgs_1128((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_359), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_669, NIM_FALSE);
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newAnonSym__sem_19446)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T1_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T2_;
	result = NIM_NIL;
	T1_ = nextSymId__ast_3103((*c).Sup.idgen);
	T2_ = NIM_NIL;
	T2_ = getCurrOwner__semdata_327(c);
	result = newSym__ast_3409(kind, (*(*c).cache).idAnon, T1_, T2_, info, 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, processQuotations__sem_19524)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** n, NimStringDesc* op, tySequence__IeU9azYSNIK3V9b36Ir6NZcw** quotes, tySequence__IeU9azYSNIK3V9b36Ir6NZcw** ids) {
{	{
		if (!((*(*n)).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30))) goto LA3_;
		checkSonsLen__semdata_1107((*n), ((NI) 2), (*(*c).graph).config);
		{
			NimStringDesc* examinedOpX60gensym5167_;
			if (!((*(*(*n))._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2))) goto LA7_;
			examinedOpX60gensym5167_ = (*(*(*(*n))._kind_6.sons->data[((NI) 0)])._kind_5.ident).s;
			{
				NI T13_;
				NI T14_;
				NimStringDesc* T15_;
				tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T16_;
				NI T17_;
				if (!eqStrings(examinedOpX60gensym5167_, op)) goto LA11_;
				unsureAsgnRef((void**) (&(*quotes)), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*quotes)), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
				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_152((*c).cache, T15_);
				unsureAsgnRef((void**) (&(*n)), newIdentNode__ast_3700(T16_, (*(*n)).info));
				unsureAsgnRef((void**) (&(*ids)), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*ids)), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
				T17_ = (*ids)->Sup.len++;
				asgnRef((void**) (&(*ids)->data[T17_]), (*n));
				goto BeforeRet_;
			}
			goto LA9_;
			LA11_: ;
			{
				NIM_BOOL T19_;
				NimStringDesc* T22_;
				tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T23_;
				T19_ = (NIM_BOOL)0;
				T19_ = nsuStartsWith(examinedOpX60gensym5167_, op);
				if (!T19_) goto LA20_;
				T22_ = NIM_NIL;
				T22_ = substr__system_7757(examinedOpX60gensym5167_, (op ? op->Sup.len : 0));
				T23_ = NIM_NIL;
				T23_ = getIdent__idents_152((*c).cache, T22_);
				asgnRef((void**) (&(*(*n))._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3700(T23_, (*(*n)).info));
			}
			goto LA9_;
			LA20_: ;
			LA9_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((*(*n)).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53))) goto LA25_;
		{
			NI T31_;
			NI T32_;
			NimStringDesc* T33_;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T34_;
			NI T35_;
			if (!eqStrings(op, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_670))) goto LA29_;
			unsureAsgnRef((void**) (&(*quotes)), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*quotes)), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
			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_152((*c).cache, T33_);
			unsureAsgnRef((void**) (&(*n)), newIdentNode__ast_3700(T34_, (*(*n)).info));
			unsureAsgnRef((void**) (&(*ids)), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*ids)), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
			T35_ = (*ids)->Sup.len++;
			asgnRef((void**) (&(*ids)->data[T35_]), (*n));
			goto BeforeRet_;
		}
		goto LA27_;
		LA29_: ;
		{
			{
				NIM_BOOL T39_;
				NI T40_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tempNode;
				tyArray__DkuVegaMCU6g1mpIOSQPIw T44_;
				T39_ = (NIM_BOOL)0;
				T40_ = (NI)0;
				T40_ = len__ast_3155((*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__DkuVegaMCU6g1mpIOSQPIw));
				tempNode = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30), T44_, 0);
				newSons__semtypinst_416(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* examinedOpX60gensym5180_;
					if (!((*(*tempNode)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2))) goto LA47_;
					examinedOpX60gensym5180_ = (*(*(*tempNode)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s;
					{
						NI T53_;
						NI T54_;
						NimStringDesc* T55_;
						tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T56_;
						NI T57_;
						if (!eqStrings(examinedOpX60gensym5180_, op)) goto LA51_;
						unsureAsgnRef((void**) (&(*quotes)), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*quotes)), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
						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_152((*c).cache, T55_);
						unsureAsgnRef((void**) (&(*n)), newIdentNode__ast_3700(T56_, (*(*n)).info));
						unsureAsgnRef((void**) (&(*ids)), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*ids)), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
						T57_ = (*ids)->Sup.len++;
						asgnRef((void**) (&(*ids)->data[T57_]), (*n));
						goto BeforeRet_;
					}
					goto LA49_;
					LA51_: ;
					{
						NIM_BOOL T59_;
						NimStringDesc* T62_;
						tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T63_;
						T59_ = (NIM_BOOL)0;
						T59_ = nsuStartsWith(examinedOpX60gensym5180_, op);
						if (!T59_) goto LA60_;
						T62_ = NIM_NIL;
						T62_ = substr__system_7757(examinedOpX60gensym5180_, (op ? op->Sup.len : 0));
						T63_ = NIM_NIL;
						T63_ = getIdent__idents_152((*c).cache, T62_);
						asgnRef((void**) (&(*tempNode)._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3700(T63_, (*tempNode).info));
					}
					goto LA49_;
					LA60_: ;
					LA49_: ;
				}
				LA47_: ;
			}
			LA42_: ;
		}
		LA27_: ;
	}
	goto LA1_;
	LA25_: ;
	{
		if (!((*(*n)).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2))) goto LA65_;
		{
			if (!eqStrings((*(*(*n))._kind_5.ident).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_107))) 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_3148((*n));
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA73;
				i = i_2;
				processQuotations__sem_19524(c, &(*(*n))._kind_6.sons->data[i], op, quotes, ids);
				i_2 += ((NI) 1);
			} LA73: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplBodyDirty__sem_8056)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		s = qualifiedLookUp__lookups_2598((*c).c, n, 0);
		{
			if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__sjiB9b9aO1FRPetW6gPYZbfw) 3));
				LA9_: ;
				if (!T8_) goto LA10_;
				result = newSymNode__ast_3707(s, (*n).info);
			}
			goto LA6_;
			LA10_: ;
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym1962_;
				NIM_BOOL T13_;
				xX60gensym1962_ = s;
				T13_ = (NIM_BOOL)0;
				T13_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym1962_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1962_).Sup.itemId.item))));
				if (!T13_) goto LA14_;
				result = symChoice__sem_6911((*c).c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0), NIM_FALSE);
			}
			goto LA6_;
			LA14_: ;
			LA6_: ;
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 55):
	{
		result = semTemplBodyDirty__sem_8056(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122):
	{
		result = semBindStmt__sem_6972((*c).c, n, (&(*c).toBind));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 24):
	{
	}
	break;
	default:
	{
		{
			NIM_BOOL T22_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s_2;
			T22_ = (NIM_BOOL)0;
			T22_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45));
			if (T22_) goto LA23_;
			T22_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53));
			LA23_: ;
			if (!T22_) goto LA24_;
			s_2 = qualifiedLookUp__lookups_2598((*c).c, n, 0);
			{
				NIM_BOOL T28_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym1965_;
				T28_ = (NIM_BOOL)0;
				T28_ = !((s_2 == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
				if (!(T28_)) goto LA29_;
				xX60gensym1965_ = s_2;
				T28_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym1965_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1965_).Sup.itemId.item))));
				LA29_: ;
				if (!T28_) goto LA30_;
				result = symChoice__sem_6911((*c).c, n, s_2, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 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_3155(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_8056(c, (*n)._kind_6.sons->data[i]));
					i_2 += ((NI) 1);
				} LA34: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplSymbol__sem_7304)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, NIM_BOOL isField) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
	markOwnerModuleAsUsed__sigmatch_89(c, s);
	switch ((*s).kind) {
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 0):
	{
		result = n;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6):
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12) ... ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 16):
	{
		result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 1), isField);
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
	{
		result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 1), isField);
		{
			if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA6_;
			asgnRef((void**) (&(*result).typ), ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 4):
	{
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = isField;
			if (!(T11_)) goto LA12_;
			T11_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0);
			LA12_: ;
			if (!T11_) goto LA13_;
			result = n;
		}
		goto LA9_;
		LA13_: ;
		{
			result = newSymNodeTypeDesc__semfold_870(s, (*c).Sup.idgen, (*n).info);
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3):
	{
		result = n;
	}
	break;
	case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7):
	{
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = isField;
			if (!(T20_)) goto LA21_;
			T20_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0);
			LA21_: ;
			if (!T20_) goto LA22_;
			result = n;
		}
		goto LA18_;
		LA22_: ;
		{
			result = newSymNodeTypeDesc__semfold_870(s, (*c).Sup.idgen, (*n).info);
		}
		LA18_: ;
	}
	break;
	default:
	{
		{
			NIM_BOOL T28_;
			T28_ = (NIM_BOOL)0;
			T28_ = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 20));
			if (!(T28_)) goto LA29_;
			T28_ = (((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 15))&31U)))!=0);
			LA29_: ;
			if (!T28_) goto LA30_;
			result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 1), isField);
		}
		goto LA26_;
		LA30_: ;
		{
			NIM_BOOL T33_;
			T33_ = (NIM_BOOL)0;
			T33_ = isField;
			if (!(T33_)) goto LA34_;
			T33_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0);
			LA34_: ;
			if (!T33_) goto LA35_;
			result = n;
		}
		goto LA26_;
		LA35_: ;
		{
			result = newSymNode__ast_3707(s, (*n).info);
		}
		LA26_: ;
		{
			if (!!(isField)) goto LA40_;
			{
				NIM_BOOL T44_;
				NIM_BOOL T45_;
				NIM_BOOL T46_;
				NIM_BOOL T47_;
				NIM_BOOL T48_;
				T44_ = (NIM_BOOL)0;
				T45_ = (NIM_BOOL)0;
				T46_ = (NIM_BOOL)0;
				T47_ = (NIM_BOOL)0;
				T48_ = (NIM_BOOL)0;
				T48_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
				if (!(T48_)) goto LA49_;
				T48_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
				LA49_: ;
				T47_ = T48_;
				if (!(T47_)) goto LA50_;
				T47_ = belongsToProjectPackage__packages_50((*(*c).graph).config, s);
				LA50_: ;
				T46_ = T47_;
				if (!(T46_)) goto LA51_;
				T46_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
				LA51_: ;
				T45_ = T46_;
				if (!(T45_)) goto LA52_;
				T45_ = ((Letters__linter_12[(NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))&7U)))!=0);
				LA52_: ;
				T44_ = T45_;
				if (!(T44_)) goto LA53_;
				T44_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
				LA53_: ;
				if (!T44_) goto LA54_;
				styleCheckUseImpl__linter_158((*(*c).graph).config, (*n).info, s);
			}
			LA54_: ;
		}
		LA40_: ;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplBodySons__sem_7570)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(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_7113(c, (*n)._kind_6.sons->data[i]));
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, openScope__sem_7116)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c) {
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76((*c).c);
}
N_LIB_PRIVATE N_NIMCALL(void, closeScope__sem_7118)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c) {
	closeScope__lookups_108((*c).c);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplBodyScope__sem_7120)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	openScope__sem_7116(c);
	result = semTemplBody__sem_7113(c, n);
	closeScope__sem_7118(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSymBinding__UEP0BDo49bDX0KSLV6GB0eA, symBinding__sem_6872)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyEnum_TSymBinding__UEP0BDo49bDX0KSLV6GB0eA result;
{	result = (tyEnum_TSymBinding__UEP0BDo49bDX0KSLV6GB0eA)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* key;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					if (!((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34))) goto LA6_;
					key = (*it)._kind_6.sons->data[((NI) 0)];
				}
				goto LA4_;
				LA6_: ;
				{
					key = it;
				}
				LA4_: ;
				{
					tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw T13_;
					if (!((*key).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2))) goto LA11_;
					T13_ = (tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw)0;
					T13_ = whichKeyword__idents_223((*key)._kind_5.ident);
					switch (T13_) {
					case ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 210):
					{
						result = ((tyEnum_TSymBinding__UEP0BDo49bDX0KSLV6GB0eA) 1);
						goto BeforeRet_;
					}
					break;
					case ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 211):
					{
						result = ((tyEnum_TSymBinding__UEP0BDo49bDX0KSLV6GB0eA) 2);
						goto BeforeRet_;
					}
					break;
					default:
					{
					}
					break;
					}
				}
				LA11_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, onlyReplaceParams__sem_7124)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2))) goto LA3_;
		s = qualifiedLookUp__lookups_2598((*c).c, n, 0);
		{
			if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__sjiB9b9aO1FRPetW6gPYZbfw) 3));
				LA12_: ;
				if (!T11_) goto LA13_;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
				result = newSymNode__ast_3707(s, (*n).info);
			}
			LA13_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(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_7124(c, (*n)._kind_6.sons->data[i]));
					i_2 += ((NI) 1);
				} LA18: ;
			}
		}
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getIdentNode__sem_7074)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31):
	{
		result = getIdentNode__sem_7074(c, (*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43):
	{
		result = getIdentNode__sem_7074(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		result = n;
		s = qualifiedLookUp__lookups_2598((*c).c, n, 0);
		{
			if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__sjiB9b9aO1FRPetW6gPYZbfw) 3));
				LA11_: ;
				if (!T10_) goto LA12_;
				result = newSymNode__ast_3707(s, (*n).info);
			}
			LA12_: ;
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		result = n;
	}
	break;
	default:
	{
		illFormedAst__semdata_1101(n, (*(*(*c).c).graph).config);
		result = n;
	}
	break;
	}
	return result;
}
static N_INLINE(NIM_BOOL, isTemplParam__sem_7093)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__clSgDh22o9au33BrVH9bDQZw) 3));
	if (!(T3_)) goto LA4_;
	T3_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__9be9c6fEXk5NwyPvxxb6toPA) 40))&63U)))!=0);
	LA6_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, replaceIdentBySym__sem_7058)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s) {
	switch ((*(*n)).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31):
	{
		replaceIdentBySym__sem_7058(c, &(*(*n))._kind_6.sons->data[((NI) 1)], s);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43):
	{
		replaceIdentBySym__sem_7058(c, &(*(*n))._kind_6.sons->data[((NI) 0)], s);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		unsureAsgnRef((void**) (&(*n)), s);
	}
	break;
	default:
	{
		illFormedAst__semdata_1101((*n), (*(*c).graph).config);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newGenSym__sem_7156)(tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T1_;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T2_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = considerQuotedIdent__lookups_29((*c).c, n, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
	T2_ = nextSymId__ast_3103((*(*c).c).Sup.idgen);
	result = newSym__ast_3409(kind, T1_, T2_, (*c).owner, (*n).info, 0);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37)) & 63);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 25)) & 63);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addLocalDecl__sem_7169)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw k) {
{	{
		NIM_BOOL T3_;
		tyEnum_TSymBinding__UEP0BDo49bDX0KSLV6GB0eA T5_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ident;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*n)).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43));
		if (!(T3_)) goto LA4_;
		T5_ = (tyEnum_TSymBinding__UEP0BDo49bDX0KSLV6GB0eA)0;
		T5_ = symBinding__sem_6872((*(*n))._kind_6.sons->data[((NI) 1)]);
		T3_ = (T5_ == ((tyEnum_TSymBinding__UEP0BDo49bDX0KSLV6GB0eA) 2));
		LA4_: ;
		if (!T3_) goto LA6_;
		x = (*(*n))._kind_6.sons->data[((NI) 0)];
		{
			while (1) {
				switch ((*x).kind) {
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31):
				{
					x = (*x)._kind_6.sons->data[((NI) 1)];
				}
				break;
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43):
				{
					x = (*x)._kind_6.sons->data[((NI) 0)];
				}
				break;
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
				{
					goto LA8;
				}
				break;
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
				{
					unsureAsgnRef((void**) (&(*n)), onlyReplaceParams__sem_7124(c, (*n)));
					goto BeforeRet_;
				}
				break;
				default:
				{
					illFormedAst__semdata_1101(x, (*(*(*c).c).graph).config);
				}
				break;
				}
			}
		} LA8: ;
		ident = getIdentNode__sem_7074(c, x);
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = isTemplParam__sem_7093((&(*c)), ident);
			if (!!(T17_)) goto LA18_;
			incl__pureZcollectionsZintsets_55((&(*c).toInject), (*(*x)._kind_5.ident).id);
		}
		goto LA15_;
		LA18_: ;
		{
			replaceIdentBySym__sem_7058((*c).c, n, ident);
		}
		LA15_: ;
	}
	goto LA1_;
	LA6_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ident_2;
		{
			NIM_BOOL T24_;
			NIM_BOOL T25_;
			NI T27_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pragmaNode;
			T24_ = (NIM_BOOL)0;
			T25_ = (NIM_BOOL)0;
			T25_ = ((*(*n)).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43));
			if (!(T25_)) goto LA26_;
			T27_ = (NI)0;
			T27_ = len__ast_3155((*n));
			T25_ = (((NI) 2) <= T27_);
			LA26_: ;
			T24_ = T25_;
			if (!(T24_)) goto LA28_;
			T24_ = ((*(*(*n))._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_3155(pragmaNode);
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__clSgDh22o9au33BrVH9bDQZw) 2))) goto LA36_;
							{
								tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw a;
								NI i_3;
								a = (tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw)0;
								i_3 = ((NI) 0);
								{
									while (1) {
										if (!(i_3 <= ((NI) 294))) goto LA40;
										{
											if (!((TM__DKP9c7KM5AbqYVP6Gd9blNUw_683[(NU)(((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) (i_3)))>>3] &(1U<<((NU)(((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) (i_3)))&7U)))!=0)) goto LA43_;
											a = ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) (i_3));
											{
												tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T47_;
												NIM_BOOL T48_;
												T47_ = NIM_NIL;
												T47_ = getIdent__idents_152((*(*c).c).cache, reprEnum((NI)a, (&NTItspecialword__N2XsqTpO5IzOf2KmXwk4Dw_)));
												T48_ = (NIM_BOOL)0;
												T48_ = eqeq___idents_229((*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_7116(c);
							asgnRef((void**) (&(*pragmaNode)._kind_6.sons->data[i]), semTemplBody__sem_7113(c, (*pragmaNode)._kind_6.sons->data[i]));
							closeScope__sem_7118(c);
						}
						LA53_: ;
						i_2 += ((NI) 1);
					} LA33: ;
				}
			}
		}
		LA29_: ;
		ident_2 = getIdentNode__sem_7074(c, (*n));
		{
			NIM_BOOL T57_;
			T57_ = (NIM_BOOL)0;
			T57_ = isTemplParam__sem_7093((&(*c)), ident_2);
			if (!!(T57_)) goto LA58_;
			{
				NIM_BOOL T62_;
				NIM_BOOL T64_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* local;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T96_;
				T62_ = (NIM_BOOL)0;
				T62_ = !(((*(*n)).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)));
				if (!(T62_)) goto LA63_;
				T64_ = (NIM_BOOL)0;
				T64_ = ((*(*n)).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2));
				if (!(T64_)) goto LA65_;
				T64_ = eqStrings((*(*(*n))._kind_5.ident).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_684));
				LA65_: ;
				T62_ = !(T64_);
				LA63_: ;
				if (!T62_) goto LA66_;
				local = newGenSym__sem_7156(k, ident_2, c);
				addPrelimDecl__lookups_1520((*c).c, local);
				{
					NIM_BOOL T70_;
					NIM_BOOL T71_;
					NIM_BOOL T72_;
					NIM_BOOL T73_;
					NIM_BOOL T74_;
					NIM_BOOL T75_;
					NIM_BOOL T76_;
					NIM_BOOL T77_;
					NIM_BOOL T78_;
					NIM_BOOL T79_;
					NIM_BOOL T80_;
					NIM_BOOL T90_;
					T70_ = (NIM_BOOL)0;
					T71_ = (NIM_BOOL)0;
					T72_ = (NIM_BOOL)0;
					T73_ = (NIM_BOOL)0;
					T74_ = (NIM_BOOL)0;
					T75_ = (NIM_BOOL)0;
					T76_ = (NIM_BOOL)0;
					T77_ = (NIM_BOOL)0;
					T78_ = (NIM_BOOL)0;
					T79_ = (NIM_BOOL)0;
					T80_ = (NIM_BOOL)0;
					T80_ = (((*(*(*(*c).c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
					if (!(T80_)) goto LA81_;
					T80_ = !(((49152 & (*(*(*(*c).c).graph).config).globalOptions) == 0));
					LA81_: ;
					T79_ = T80_;
					if (!(T79_)) goto LA82_;
					T79_ = (((*(*(*(*c).c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
					LA82_: ;
					T78_ = T79_;
					if (!(T78_)) goto LA83_;
					T78_ = belongsToProjectPackage__packages_50((*(*(*c).c).graph).config, local);
					LA83_: ;
					T77_ = T78_;
					if (!(T77_)) goto LA84_;
					T77_ = !((((*(*(*(*c).c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
					LA84_: ;
					T76_ = T77_;
					if (!(T76_)) goto LA85_;
					T76_ = !(((*local).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
					LA85_: ;
					T75_ = T76_;
					if (!(T75_)) goto LA86_;
					T75_ = !(((*local).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
					LA86_: ;
					T74_ = T75_;
					if (!(T74_)) goto LA87_;
					T74_ = ((Letters__linter_12[(NU)(((NU8)((*(*local).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*local).name).s->data[((NI) 0)])))&7U)))!=0);
					LA87_: ;
					T73_ = T74_;
					if (!(T73_)) goto LA88_;
					T73_ = !(((144 &((NU32)1<<((NU)((*local).kind)&31U)))!=0));
					LA88_: ;
					T72_ = T73_;
					if (!(T72_)) goto LA89_;
					T90_ = (NIM_BOOL)0;
					T90_ = ((*local).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					if (T90_) goto LA91_;
					T90_ = !(((*(*local).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
					LA91_: ;
					T72_ = T90_;
					LA89_: ;
					T71_ = T72_;
					if (!(T71_)) goto LA92_;
					T71_ = ((192 & (*local).flags) == 0);
					LA92_: ;
					T70_ = T71_;
					if (!(T70_)) goto LA93_;
					T70_ = !((((*local).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
					LA93_: ;
					if (!T70_) goto LA94_;
					nep1CheckDefImpl__linter_112((*(*(*c).c).graph).config, (*(*n)).info, local, (*local).kind);
				}
				LA94_: ;
				T96_ = NIM_NIL;
				T96_ = newSymNode__ast_3707(local, (*(*n)).info);
				replaceIdentBySym__sem_7058((*c).c, n, T96_);
				{
					NIM_BOOL T99_;
					T99_ = (NIM_BOOL)0;
					T99_ = (k == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3));
					if (!(T99_)) goto LA100_;
					T99_ = (((NI) 0) < (*c).inTemplateHeader);
					LA100_: ;
					if (!T99_) goto LA101_;
					(*local).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 40)) & 63);
				}
				LA101_: ;
			}
			LA66_: ;
		}
		goto LA55_;
		LA58_: ;
		{
			replaceIdentBySym__sem_7058((*c).c, n, ident_2);
		}
		LA55_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, semTemplSomeDecl__sem_7522)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw symKind, NI start) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = start;
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
					a = (*n)._kind_6.sons->data[i];
					switch ((*a).kind) {
					case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
					{
						goto LA4;
					}
					break;
					case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35):
					case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36):
					case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 102):
					{
						NI T7_;
						NI T8_;
						NI T9_;
						NI T10_;
						checkMinSonsLen__semdata_1114(a, ((NI) 3), (*(*(*c).c).graph).config);
						T7_ = (NI)0;
						T7_ = len__ast_3155(a);
						T8_ = (NI)0;
						T8_ = len__ast_3155(a);
						asgnRef((void**) (&(*a)._kind_6.sons->data[(NI)(T7_ - ((NI) 2))]), semTemplBody__sem_7113(c, (*a)._kind_6.sons->data[(NI)(T8_ - ((NI) 2))]));
						T9_ = (NI)0;
						T9_ = len__ast_3155(a);
						T10_ = (NI)0;
						T10_ = len__ast_3155(a);
						asgnRef((void**) (&(*a)._kind_6.sons->data[(NI)(T9_ - ((NI) 1))]), semTemplBody__sem_7113(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_3155(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_7169(c, &(*a)._kind_6.sons->data[j], symKind);
									i_3 += ((NI) 1);
								} LA14: ;
							}
						}
					}
					break;
					default:
					{
						illFormedAst__semdata_1101(a, (*(*(*c).c).graph).config);
					}
					break;
					}
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semRoutineInTemplName__sem_7366)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2))) goto LA3_;
		s = qualifiedLookUp__lookups_2598((*c).c, n, 0);
		{
			if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__sjiB9b9aO1FRPetW6gPYZbfw) 3));
				if (T13_) goto LA14_;
				T13_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0);
				LA14_: ;
				T11_ = T13_;
				LA12_: ;
				if (!T11_) goto LA15_;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
				result = newSymNode__ast_3707(s, (*n).info);
			}
			LA15_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(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_7366(c, (*n)._kind_6.sons->data[i]));
					i_2 += ((NI) 1);
				} LA20: ;
			}
		}
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semRoutineInTemplBody__sem_7402)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw k) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1107(n, ((NI) 7), (*(*(*c).c).graph).config);
	{
		NIM_BOOL T3_;
		tyEnum_TSymBinding__UEP0BDo49bDX0KSLV6GB0eA T5_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ident;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52)));
		if (!(T3_)) goto LA4_;
		T5_ = (tyEnum_TSymBinding__UEP0BDo49bDX0KSLV6GB0eA)0;
		T5_ = symBinding__sem_6872((*n)._kind_6.sons->data[((NI) 4)]);
		T3_ = (T5_ == ((tyEnum_TSymBinding__UEP0BDo49bDX0KSLV6GB0eA) 1));
		LA4_: ;
		if (!T3_) goto LA6_;
		ident = getIdentNode__sem_7074(c, (*n)._kind_6.sons->data[((NI) 0)]);
		{
			NIM_BOOL T10_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
			T10_ = (NIM_BOOL)0;
			T10_ = isTemplParam__sem_7093((&(*c)), ident);
			if (!!(T10_)) goto LA11_;
			s = newGenSym__sem_7156(k, ident, c);
			asgnRef((void**) (&(*s).ast), n);
			addPrelimDecl__lookups_1520((*c).c, s);
			{
				NIM_BOOL T15_;
				NIM_BOOL T16_;
				NIM_BOOL T17_;
				NIM_BOOL T18_;
				NIM_BOOL T19_;
				NIM_BOOL T20_;
				NIM_BOOL T21_;
				NIM_BOOL T22_;
				NIM_BOOL T23_;
				NIM_BOOL T24_;
				NIM_BOOL T25_;
				NIM_BOOL T35_;
				T15_ = (NIM_BOOL)0;
				T16_ = (NIM_BOOL)0;
				T17_ = (NIM_BOOL)0;
				T18_ = (NIM_BOOL)0;
				T19_ = (NIM_BOOL)0;
				T20_ = (NIM_BOOL)0;
				T21_ = (NIM_BOOL)0;
				T22_ = (NIM_BOOL)0;
				T23_ = (NIM_BOOL)0;
				T24_ = (NIM_BOOL)0;
				T25_ = (NIM_BOOL)0;
				T25_ = (((*(*(*(*c).c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
				if (!(T25_)) goto LA26_;
				T25_ = !(((49152 & (*(*(*(*c).c).graph).config).globalOptions) == 0));
				LA26_: ;
				T24_ = T25_;
				if (!(T24_)) goto LA27_;
				T24_ = (((*(*(*(*c).c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
				LA27_: ;
				T23_ = T24_;
				if (!(T23_)) goto LA28_;
				T23_ = belongsToProjectPackage__packages_50((*(*(*c).c).graph).config, s);
				LA28_: ;
				T22_ = T23_;
				if (!(T22_)) goto LA29_;
				T22_ = !((((*(*(*(*c).c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
				LA29_: ;
				T21_ = T22_;
				if (!(T21_)) goto LA30_;
				T21_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
				LA30_: ;
				T20_ = T21_;
				if (!(T20_)) goto LA31_;
				T20_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
				LA31_: ;
				T19_ = T20_;
				if (!(T19_)) goto LA32_;
				T19_ = ((Letters__linter_12[(NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))&7U)))!=0);
				LA32_: ;
				T18_ = T19_;
				if (!(T18_)) goto LA33_;
				T18_ = !(((144 &((NU32)1<<((NU)((*s).kind)&31U)))!=0));
				LA33_: ;
				T17_ = T18_;
				if (!(T17_)) goto LA34_;
				T35_ = (NIM_BOOL)0;
				T35_ = ((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
				if (T35_) goto LA36_;
				T35_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
				LA36_: ;
				T17_ = T35_;
				LA34_: ;
				T16_ = T17_;
				if (!(T16_)) goto LA37_;
				T16_ = ((192 & (*s).flags) == 0);
				LA37_: ;
				T15_ = T16_;
				if (!(T15_)) goto LA38_;
				T15_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
				LA38_: ;
				if (!T15_) goto LA39_;
				nep1CheckDefImpl__linter_112((*(*(*c).c).graph).config, (*n).info, s, (*s).kind);
			}
			LA39_: ;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3707(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_7366(c, (*n)._kind_6.sons->data[((NI) 0)]));
	}
	LA1_: ;
	openScope__sem_7116(c);
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= ((NI) 2))) goto LA45;
				i = res;
				asgnRef((void**) (&(*n)._kind_6.sons->data[i]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[i]));
				res += ((NI) 1);
			} LA45: ;
		}
	}
	{
		if (!(k == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18))) goto LA48_;
		(*c).inTemplateHeader += ((NI) 1);
	}
	LA48_: ;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 3)]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[((NI) 3)]));
	{
		if (!(k == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18))) goto LA52_;
		(*c).inTemplateHeader -= ((NI) 1);
	}
	LA52_: ;
	{
		NI i_2;
		NI res_2;
		i_2 = (NI)0;
		res_2 = ((NI) 4);
		{
			while (1) {
				if (!(res_2 <= ((NI) 5))) goto LA56;
				i_2 = res_2;
				asgnRef((void**) (&(*n)._kind_6.sons->data[i_2]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[i_2]));
				res_2 += ((NI) 1);
			} LA56: ;
		}
	}
	(*c).scopeN += ((NI) 1);
	openScope__sem_7116(c);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[((NI) 6)]));
	closeScope__sem_7118(c);
	(*c).scopeN -= ((NI) 1);
	closeScope__sem_7118(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplBody__sem_7113)(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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_2598((*c).c, n, 0);
		{
			if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__sjiB9b9aO1FRPetW6gPYZbfw) 3));
				LA15_: ;
				T13_ = T14_;
				if (!(T13_)) goto LA16_;
				T13_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 40))&63U)))!=0);
				LA16_: ;
				if (!T13_) goto LA17_;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
				result = newSymNode__ast_3707(s, (*n).info);
			}
			goto LA11_;
			LA17_: ;
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym1831_;
				NIM_BOOL T20_;
				xX60gensym1831_ = s;
				T20_ = (NIM_BOOL)0;
				T20_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym1831_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1831_).Sup.itemId.item))));
				if (!T20_) goto LA21_;
				result = symChoice__sem_6911((*c).c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 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_6911((*c).c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 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__9be9c6fEXk5NwyPvxxb6toPA) 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__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
				result = newSymNode__ast_3707(s, (*n).info);
			}
			goto LA11_;
			LA32_: ;
			{
				{
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T39_;
					if (!((1920 &((NU32)1<<((NU)((*s).kind)&31U)))!=0)) goto LA37_;
					T39_ = NIM_NIL;
					T39_ = qualifiedLookUp__lookups_2598((*c).c, n, 5);
					(void)(T39_);
				}
				LA37_: ;
				result = semTemplSymbol__sem_7304((*c).c, n, s, (((NI) 0) < (*c).noGenSym));
			}
			LA11_: ;
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 55):
	{
		result = semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122):
	{
		result = semBindStmt__sem_6972((*c).c, n, (&(*c).toBind));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	{
		{
			if (!(((NI) 0) < (*c).scopeN)) goto LA45_;
			result = semTemplBodySons__sem_7570(c, n);
		}
		goto LA43_;
		LA45_: ;
		{
			result = semMixinStmt__sem_7026((*c).c, n, (&(*c).toMixin));
		}
		LA43_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 24):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
					if (!(i_2 < colontmp_)) goto LA52;
					i = i_2;
					it = (*n)._kind_6.sons->data[i];
					{
						NI T55_;
						T55_ = (NI)0;
						T55_ = len__ast_3155(it);
						if (!(T55_ == ((NI) 2))) goto LA56_;
						openScope__sem_7116(c);
						asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 0)]), semTemplBody__sem_7113(c, (*it)._kind_6.sons->data[((NI) 0)]));
						asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_7113(c, (*it)._kind_6.sons->data[((NI) 1)]));
						closeScope__sem_7118(c);
					}
					goto LA53_;
					LA56_: ;
					{
						asgnRef((void**) (&(*n)._kind_6.sons->data[i]), semTemplBodyScope__sem_7120(c, it));
					}
					LA53_: ;
					i_2 += ((NI) 1);
				} LA52: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96):
	{
		openScope__sem_7116(c);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3155(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA62;
					i_3 = i_4;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_3]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[i_3]));
					i_4 += ((NI) 1);
				} LA62: ;
			}
		}
		closeScope__sem_7118(c);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 97):
	{
		openScope__sem_7116(c);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semTemplBody__sem_7113(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_3155(n);
			i_6 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
					NI T71_;
					NI T72_;
					if (!(i_6 < colontmp__3)) goto LA66;
					i_5 = i_6;
					a = (*n)._kind_6.sons->data[i_5];
					checkMinSonsLen__semdata_1114(a, ((NI) 1), (*(*(*c).c).graph).config);
					{
						NI j;
						NI colontmp__4;
						NI T68_;
						NI i_7;
						j = (NI)0;
						colontmp__4 = (NI)0;
						T68_ = (NI)0;
						T68_ = len__ast_3155(a);
						colontmp__4 = (NI)(T68_ - ((NI) 1));
						i_7 = ((NI) 0);
						{
							while (1) {
								if (!(i_7 < colontmp__4)) goto LA70;
								j = i_7;
								asgnRef((void**) (&(*a)._kind_6.sons->data[j]), semTemplBody__sem_7113(c, (*a)._kind_6.sons->data[j]));
								i_7 += ((NI) 1);
							} LA70: ;
						}
					}
					T71_ = (NI)0;
					T71_ = len__ast_3155(a);
					T72_ = (NI)0;
					T72_ = len__ast_3155(a);
					asgnRef((void**) (&(*a)._kind_6.sons->data[(NI)(T71_ - ((NI) 1))]), semTemplBodyScope__sem_7120(c, (*a)._kind_6.sons->data[(NI)(T72_ - ((NI) 1))]));
					i_6 += ((NI) 1);
				} LA66: ;
			}
		}
		closeScope__sem_7118(c);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 94):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 95):
	{
		NI T74_;
		NI T75_;
		NI T89_;
		NI T90_;
		openScope__sem_7116(c);
		T74_ = (NI)0;
		T74_ = len__ast_3155(n);
		T75_ = (NI)0;
		T75_ = len__ast_3155(n);
		asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T74_ - ((NI) 2))]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[(NI)(T75_ - ((NI) 2))]));
		{
			NI i_8;
			NI colontmp__5;
			NI T77_;
			NI i_9;
			i_8 = (NI)0;
			colontmp__5 = (NI)0;
			T77_ = (NI)0;
			T77_ = len__ast_3155(n);
			colontmp__5 = (NI)(T77_ - ((NI) 2));
			i_9 = ((NI) 0);
			{
				while (1) {
					if (!(i_9 < colontmp__5)) goto LA79;
					i_8 = i_9;
					{
						if (!((*(*n)._kind_6.sons->data[i_8]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36))) goto LA82_;
						{
							NI j_2;
							NI colontmp__6;
							NI T85_;
							NI i_10;
							j_2 = (NI)0;
							colontmp__6 = (NI)0;
							T85_ = (NI)0;
							T85_ = len__ast_3155((*n)._kind_6.sons->data[i_8]);
							colontmp__6 = (NI)(T85_ - ((NI) 1));
							i_10 = ((NI) 0);
							{
								while (1) {
									if (!(i_10 < colontmp__6)) goto LA87;
									j_2 = i_10;
									addLocalDecl__sem_7169(c, &(*(*n)._kind_6.sons->data[i_8])._kind_6.sons->data[j_2], ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21));
									i_10 += ((NI) 1);
								} LA87: ;
							}
						}
					}
					goto LA80_;
					LA82_: ;
					{
						addLocalDecl__sem_7169(c, &(*n)._kind_6.sons->data[i_8], ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21));
					}
					LA80_: ;
					i_9 += ((NI) 1);
				} LA79: ;
			}
		}
		openScope__sem_7116(c);
		T89_ = (NI)0;
		T89_ = len__ast_3155(n);
		T90_ = (NI)0;
		T90_ = len__ast_3155(n);
		asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T89_ - ((NI) 1))]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[(NI)(T90_ - ((NI) 1))]));
		closeScope__sem_7118(c);
		closeScope__sem_7118(c);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 127):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 129):
	{
		checkSonsLen__semdata_1107(n, ((NI) 2), (*(*(*c).c).graph).config);
		openScope__sem_7116(c);
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA94_;
			addLocalDecl__sem_7169(c, &(*n)._kind_6.sons->data[((NI) 0)], ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 22));
		}
		LA94_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[((NI) 1)]));
		closeScope__sem_7118(c);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 154):
	{
		checkMinSonsLen__semdata_1114(n, ((NI) 2), (*(*(*c).c).graph).config);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semTemplBodyScope__sem_7120(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_3155(n);
			i_12 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_2;
					NI T110_;
					NI T111_;
					if (!(i_12 < colontmp__7)) goto LA99;
					i_11 = i_12;
					a_2 = (*n)._kind_6.sons->data[i_11];
					checkMinSonsLen__semdata_1114(a_2, ((NI) 1), (*(*(*c).c).graph).config);
					openScope__sem_7116(c);
					{
						NI j_3;
						NI colontmp__8;
						NI T101_;
						NI i_13;
						j_3 = (NI)0;
						colontmp__8 = (NI)0;
						T101_ = (NI)0;
						T101_ = len__ast_3155(a_2);
						colontmp__8 = (NI)(T101_ - ((NI) 1));
						i_13 = ((NI) 0);
						{
							while (1) {
								if (!(i_13 < colontmp__8)) goto LA103;
								j_3 = i_13;
								{
									NIM_BOOL T106_;
									T106_ = (NIM_BOOL)0;
									T106_ = isInfixAs__ast_4936((*a_2)._kind_6.sons->data[j_3]);
									if (!T106_) goto LA107_;
									addLocalDecl__sem_7169(c, &(*(*a_2)._kind_6.sons->data[j_3])._kind_6.sons->data[((NI) 2)], ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9));
									asgnRef((void**) (&(*(*a_2)._kind_6.sons->data[j_3])._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_7113(c, (*(*a_2)._kind_6.sons->data[j_3])._kind_6.sons->data[((NI) 1)]));
								}
								goto LA104_;
								LA107_: ;
								{
									asgnRef((void**) (&(*a_2)._kind_6.sons->data[j_3]), semTemplBody__sem_7113(c, (*a_2)._kind_6.sons->data[j_3]));
								}
								LA104_: ;
								i_13 += ((NI) 1);
							} LA103: ;
						}
					}
					T110_ = (NI)0;
					T110_ = len__ast_3155(a_2);
					T111_ = (NI)0;
					T111_ = len__ast_3155(a_2);
					asgnRef((void**) (&(*a_2)._kind_6.sons->data[(NI)(T110_ - ((NI) 1))]), semTemplBodyScope__sem_7120(c, (*a_2)._kind_6.sons->data[(NI)(T111_ - ((NI) 1))]));
					closeScope__sem_7118(c);
					i_12 += ((NI) 1);
				} LA99: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99):
	{
		semTemplSomeDecl__sem_7522(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 8), ((NI) 0));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 100):
	{
		semTemplSomeDecl__sem_7522(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9), ((NI) 0));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 76):
	{
		checkMinSonsLen__semdata_1114(n, ((NI) 1), (*(*(*c).c).graph).config);
		semTemplSomeDecl__sem_7522(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3), ((NI) 1));
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[((NI) 0)]));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 101):
	{
		semTemplSomeDecl__sem_7522(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10), ((NI) 0));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	{
		{
			NI i_14;
			NI colontmp__9;
			NI i_15;
			i_14 = (NI)0;
			colontmp__9 = (NI)0;
			colontmp__9 = len__ast_3155(n);
			i_15 = ((NI) 0);
			{
				while (1) {
					if (!(i_15 < colontmp__9)) goto LA119;
					i_14 = i_15;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_3;
						a_3 = (*n)._kind_6.sons->data[i_14];
						{
							if (!((*a_3).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125))) goto LA123_;
							goto LA120;
						}
						LA123_: ;
						{
							if (!!(((*a_3).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 103)))) goto LA127_;
							illFormedAst__semdata_1101(a_3, (*(*(*c).c).graph).config);
						}
						LA127_: ;
						checkSonsLen__semdata_1107(a_3, ((NI) 3), (*(*(*c).c).graph).config);
						addLocalDecl__sem_7169(c, &(*a_3)._kind_6.sons->data[((NI) 0)], ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7));
					} LA120: ;
					i_15 += ((NI) 1);
				} LA119: ;
			}
		}
		{
			NI i_16;
			NI colontmp__10;
			NI i_17;
			i_16 = (NI)0;
			colontmp__10 = (NI)0;
			colontmp__10 = len__ast_3155(n);
			i_17 = ((NI) 0);
			{
				while (1) {
					if (!(i_17 < colontmp__10)) goto LA131;
					i_16 = i_17;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_4;
						a_4 = (*n)._kind_6.sons->data[i_16];
						{
							if (!((*a_4).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125))) goto LA135_;
							goto LA132;
						}
						LA135_: ;
						{
							if (!!(((*a_4).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 103)))) goto LA139_;
							illFormedAst__semdata_1101(a_4, (*(*(*c).c).graph).config);
						}
						LA139_: ;
						checkSonsLen__semdata_1107(a_4, ((NI) 3), (*(*(*c).c).graph).config);
						{
							if (!!(((*(*a_4)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA143_;
							openScope__sem_7116(c);
							asgnRef((void**) (&(*a_4)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_7113(c, (*a_4)._kind_6.sons->data[((NI) 1)]));
							asgnRef((void**) (&(*a_4)._kind_6.sons->data[((NI) 2)]), semTemplBody__sem_7113(c, (*a_4)._kind_6.sons->data[((NI) 2)]));
							closeScope__sem_7118(c);
						}
						goto LA141_;
						LA143_: ;
						{
							asgnRef((void**) (&(*a_4)._kind_6.sons->data[((NI) 2)]), semTemplBody__sem_7113(c, (*a_4)._kind_6.sons->data[((NI) 2)]));
						}
						LA141_: ;
					} LA132: ;
					i_17 += ((NI) 1);
				} LA131: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	{
		result = semRoutineInTemplBody__sem_7402(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
		result = semRoutineInTemplBody__sem_7402(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 13));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 80):
	{
		result = semRoutineInTemplBody__sem_7402(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	{
		result = semRoutineInTemplBody__sem_7402(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83):
	{
		result = semRoutineInTemplBody__sem_7402(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 82):
	{
		result = semRoutineInTemplBody__sem_7402(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	{
		result = semRoutineInTemplBody__sem_7402(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 16));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43):
	{
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[((NI) 0)]));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31):
	{
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[((NI) 1)]));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 90):
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(n);
				i_19 = ((NI) 0);
				{
					while (1) {
						if (!(i_19 < colontmp__11)) goto LA159;
						i_18 = i_19;
						x = (*n)._kind_6.sons->data[i_18];
						{
							if (!((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34))) goto LA162_;
							asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_7113(c, (*x)._kind_6.sons->data[((NI) 1)]));
						}
						LA162_: ;
						i_19 += ((NI) 1);
					} LA159: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T165_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T166_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
		T165_ = NIM_NIL;
		T165_ = getIdent__idents_152((*(*c).c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_33));
		T166_ = NIM_NIL;
		T166_ = newIdentNode__ast_3700(T165_, (*n).info);
		add__ast_4798(result, T166_);
		{
			NI i_20;
			NI colontmp__12;
			NI i_21;
			i_20 = (NI)0;
			colontmp__12 = (NI)0;
			colontmp__12 = len__ast_3155(n);
			i_21 = ((NI) 0);
			{
				while (1) {
					if (!(i_21 < colontmp__12)) goto LA169;
					i_20 = i_21;
					add__ast_4798(result, (*n)._kind_6.sons->data[i_20]);
					i_21 += ((NI) 1);
				} LA169: ;
			}
		}
		result = semTemplBodySons__sem_7570(c, result);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 40):
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T171_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T172_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
		T171_ = NIM_NIL;
		T171_ = getIdent__idents_152((*(*c).c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_132));
		T172_ = NIM_NIL;
		T172_ = newIdentNode__ast_3700(T171_, (*n).info);
		add__ast_4798(result, T172_);
		{
			NI i_22;
			NI colontmp__13;
			NI i_23;
			i_22 = (NI)0;
			colontmp__13 = (NI)0;
			colontmp__13 = len__ast_3155(n);
			i_23 = ((NI) 0);
			{
				while (1) {
					if (!(i_23 < colontmp__13)) goto LA175;
					i_22 = i_23;
					add__ast_4798(result, (*n)._kind_6.sons->data[i_22]);
					i_23 += ((NI) 1);
				} LA175: ;
			}
		}
		result = semTemplBodySons__sem_7570(c, result);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_5;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
		tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw k;
		checkSonsLen__semdata_1107(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__clSgDh22o9au33BrVH9bDQZw) 42):
		{
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T178_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T179_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a0;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
			T178_ = NIM_NIL;
			T178_ = getIdent__idents_152((*(*c).c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_136));
			T179_ = NIM_NIL;
			T179_ = newIdentNode__ast_3700(T178_, (*n).info);
			add__ast_4798(result, T179_);
			{
				NI i_24;
				NI colontmp__14;
				NI i_25;
				i_24 = (NI)0;
				colontmp__14 = (NI)0;
				colontmp__14 = len__ast_3155(a_5);
				i_25 = ((NI) 0);
				{
					while (1) {
						if (!(i_25 < colontmp__14)) goto LA182;
						i_24 = i_25;
						add__ast_4798(result, (*a_5)._kind_6.sons->data[i_24]);
						i_25 += ((NI) 1);
					} LA182: ;
				}
			}
			add__ast_4798(result, b);
			a0 = semTemplBody__sem_7113(c, (*a_5)._kind_6.sons->data[((NI) 0)]);
			result = semTemplBodySons__sem_7570(c, result);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 40):
		{
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T184_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T185_;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
			T184_ = NIM_NIL;
			T184_ = getIdent__idents_152((*(*c).c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_135));
			T185_ = NIM_NIL;
			T185_ = newIdentNode__ast_3700(T184_, (*n).info);
			add__ast_4798(result, T185_);
			{
				NI i_26;
				NI colontmp__15;
				NI i_27;
				i_26 = (NI)0;
				colontmp__15 = (NI)0;
				colontmp__15 = len__ast_3155(a_5);
				i_27 = ((NI) 0);
				{
					while (1) {
						if (!(i_27 < colontmp__15)) goto LA188;
						i_26 = i_27;
						add__ast_4798(result, (*a_5)._kind_6.sons->data[i_26]);
						i_27 += ((NI) 1);
					} LA188: ;
				}
			}
			add__ast_4798(result, b);
			result = semTemplBodySons__sem_7570(c, result);
		}
		break;
		default:
		{
			result = semTemplBodySons__sem_7570(c, n);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32):
	{
		{
			NIM_BOOL T193_;
			T193_ = (NIM_BOOL)0;
			T193_ = isRunnableExamples__ast_4699((*n)._kind_6.sons->data[((NI) 0)]);
			if (!!(T193_)) goto LA194_;
			result = semTemplBodySons__sem_7570(c, n);
		}
		LA194_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s_2;
		s_2 = qualifiedLookUp__lookups_2598((*c).c, n, 0);
		{
			if (!!((s_2 == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA199_;
			{
				NIM_BOOL T203_;
				NIM_BOOL T204_;
				NIM_BOOL T205_;
				NI T209_;
				T203_ = (NIM_BOOL)0;
				T204_ = (NIM_BOOL)0;
				T205_ = (NIM_BOOL)0;
				T205_ = ((*s_2).owner == (*c).owner);
				if (!(T205_)) goto LA206_;
				T205_ = ((*s_2).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3));
				LA206_: ;
				T204_ = T205_;
				if (!(T204_)) goto LA207_;
				T204_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53));
				LA207_: ;
				T203_ = T204_;
				if (!(T203_)) goto LA208_;
				T209_ = (NI)0;
				T209_ = len__ast_3155(n);
				T203_ = (T209_ == ((NI) 1));
				LA208_: ;
				if (!T203_) goto LA210_;
				(*s_2).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
				result = newSymNode__ast_3707(s_2, (*n).info);
				goto BeforeRet_;
			}
			goto LA201_;
			LA210_: ;
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym1940_;
				NIM_BOOL T213_;
				xX60gensym1940_ = s_2;
				T213_ = (NIM_BOOL)0;
				T213_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym1940_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1940_).Sup.itemId.item))));
				if (!T213_) goto LA214_;
				result = symChoice__sem_6911((*c).c, n, s_2, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0), (((NI) 0) < (*c).noGenSym));
				goto BeforeRet_;
			}
			goto LA201_;
			LA214_: ;
			{
				NIM_BOOL T217_;
				T217_ = (NIM_BOOL)0;
				T217_ = contains__astalgo_3489((&(*c).toMixin), (*(*s_2).name).id);
				if (!T217_) goto LA218_;
				result = symChoice__sem_6911((*c).c, n, s_2, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 2), (((NI) 0) < (*c).noGenSym));
				goto BeforeRet_;
			}
			goto LA201_;
			LA218_: ;
			{
				result = symChoice__sem_6911((*c).c, n, s_2, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 1), (((NI) 0) < (*c).noGenSym));
				goto BeforeRet_;
			}
			LA201_: ;
		}
		LA199_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45))) goto LA223_;
			result = n;
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[((NI) 0)]));
			(*c).noGenSym += ((NI) 1);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[((NI) 1)]));
			(*c).noGenSym -= ((NI) 1);
			{
				NIM_BOOL T227_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* choice;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T231_;
				T227_ = (NIM_BOOL)0;
				T227_ = ((*(*result)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
				if (!(T227_)) goto LA228_;
				T227_ = ((520192 &((NU32)1<<((NU)((*(*(*result)._kind_6.sons->data[((NI) 1)])._kind_4.sym).kind)&31U)))!=0);
				LA228_: ;
				if (!T227_) goto LA229_;
				T231_ = NIM_NIL;
				T231_ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0), (*c).c);
				choice = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57), (*(*n)._kind_6.sons->data[((NI) 1)]).info, T231_);
				add__ast_4798(choice, (*result)._kind_6.sons->data[((NI) 1)]);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), choice);
			}
			LA229_: ;
		}
		goto LA221_;
		LA223_: ;
		{
			result = semTemplBodySons__sem_7570(c, n);
		}
		LA221_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 33):
	{
		{
			NI T236_;
			T236_ = (NI)0;
			T236_ = len__ast_3155(n);
			if (!(T236_ == ((NI) 2))) goto LA237_;
			(*c).noGenSym += ((NI) 1);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[((NI) 0)]));
			(*c).noGenSym -= ((NI) 1);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_7113(c, (*n)._kind_6.sons->data[((NI) 1)]));
		}
		goto LA234_;
		LA237_: ;
		{
			result = semTemplBodySons__sem_7570(c, n);
		}
		LA234_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 54):
	{
		{
			NI i_28;
			NI colontmp__16;
			NI i_29;
			i_28 = (NI)0;
			colontmp__16 = (NI)0;
			colontmp__16 = len__ast_3155(n);
			i_29 = ((NI) 0);
			{
				while (1) {
					if (!(i_29 < colontmp__16)) goto LA243;
					i_28 = i_29;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i_28]), semTemplBodySons__sem_7570(c, (*n)._kind_6.sons->data[i_28]));
					i_29 += ((NI) 1);
				} LA243: ;
			}
		}
	}
	break;
	default:
	{
		result = semTemplBodySons__sem_7570(c, n);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTemplateDef__sem_8125)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T49_;
	NIM_BOOL allUntyped;
	tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q ctx;
	tyTuple__U9cBGRemMbZc6MWph6pfkAg T95_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* proto;
	NIM_BOOL comesFromShadowscope;
	result = NIM_NIL;
	result = n;
	s = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__semdata_1121(c);
		if (!T3_) goto LA4_;
		s = semIdentVis__sem_475(c, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18), (*n)._kind_6.sons->data[((NI) 0)], 2);
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3)) & 63);
	}
	goto LA1_;
	LA4_: ;
	{
		s = semIdentVis__sem_475(c, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18), (*n)._kind_6.sons->data[((NI) 0)], 0);
	}
	LA1_: ;
	{
		if (!!(((*s).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__9be9c6fEXk5NwyPvxxb6toPA) 15))&63U)))!=0);
			if (!(T14_)) goto LA15_;
			T14_ = contains__stdZenumutils_44(names__sem_8147, 8, (*(*s).name).s);
			LA15_: ;
			T13_ = T14_;
			if (T13_) goto LA16_;
			T17_ = (NIM_BOOL)0;
			T17_ = eqStrings((*(*(*s).owner).name).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_681));
			if (!(T17_)) goto LA18_;
			T17_ = eqStrings((*(*s).name).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_682));
			LA18_: ;
			T13_ = T17_;
			LA16_: ;
			if (!T13_) goto LA19_;
			(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 36)) & 63);
		}
		LA19_: ;
	}
	LA9_: ;
	{
		NIM_BOOL T23_;
		NIM_BOOL T24_;
		NIM_BOOL T25_;
		NIM_BOOL T26_;
		NIM_BOOL T27_;
		NIM_BOOL T28_;
		NIM_BOOL T29_;
		NIM_BOOL T30_;
		NIM_BOOL T31_;
		NIM_BOOL T32_;
		NIM_BOOL T33_;
		NIM_BOOL T43_;
		T23_ = (NIM_BOOL)0;
		T24_ = (NIM_BOOL)0;
		T25_ = (NIM_BOOL)0;
		T26_ = (NIM_BOOL)0;
		T27_ = (NIM_BOOL)0;
		T28_ = (NIM_BOOL)0;
		T29_ = (NIM_BOOL)0;
		T30_ = (NIM_BOOL)0;
		T31_ = (NIM_BOOL)0;
		T32_ = (NIM_BOOL)0;
		T33_ = (NIM_BOOL)0;
		T33_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
		if (!(T33_)) goto LA34_;
		T33_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
		LA34_: ;
		T32_ = T33_;
		if (!(T32_)) goto LA35_;
		T32_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
		LA35_: ;
		T31_ = T32_;
		if (!(T31_)) goto LA36_;
		T31_ = belongsToProjectPackage__packages_50((*(*c).graph).config, s);
		LA36_: ;
		T30_ = T31_;
		if (!(T30_)) goto LA37_;
		T30_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
		LA37_: ;
		T29_ = T30_;
		if (!(T29_)) goto LA38_;
		T29_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
		LA38_: ;
		T28_ = T29_;
		if (!(T28_)) goto LA39_;
		T28_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
		LA39_: ;
		T27_ = T28_;
		if (!(T27_)) goto LA40_;
		T27_ = ((Letters__linter_12[(NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))&7U)))!=0);
		LA40_: ;
		T26_ = T27_;
		if (!(T26_)) goto LA41_;
		T26_ = !(((144 &((NU32)1<<((NU)((*s).kind)&31U)))!=0));
		LA41_: ;
		T25_ = T26_;
		if (!(T25_)) goto LA42_;
		T43_ = (NIM_BOOL)0;
		T43_ = ((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		if (T43_) goto LA44_;
		T43_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
		LA44_: ;
		T25_ = T43_;
		LA42_: ;
		T24_ = T25_;
		if (!(T24_)) goto LA45_;
		T24_ = ((192 & (*s).flags) == 0);
		LA45_: ;
		T23_ = T24_;
		if (!(T23_)) goto LA46_;
		T23_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
		LA46_: ;
		if (!T23_) goto LA47_;
		nep1CheckDefImpl__linter_112((*(*c).graph).config, (*s).info, s, (*s).kind);
	}
	LA47_: ;
	pushOwner__semdata_334(c, s);
	T49_ = NIM_NIL;
	T49_ = openScope__lookups_76(c);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(s));
	pragmaCallable__pragmas_2639(c, s, n, TM__DKP9c7KM5AbqYVP6Gd9blNUw_683, NIM_FALSE);
	implicitPragmas__pragmas_2481(c, s, (*n).info, TM__DKP9c7KM5AbqYVP6Gd9blNUw_683);
	setGenericParamsMisc__sem_6835(c, n);
	allUntyped = NIM_TRUE;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 3)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA52_;
		semParamList__sem_94(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_3155((*(*s).typ).n);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* param;
					if (!(i_2 < colontmp_)) goto LA56;
					i = i_2;
					param = (*(*(*(*s).typ).n)._kind_6.sons->data[i])._kind_4.sym;
					(*param).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 40)) & 63);
					(*param).flags &= ~(((NU64)1) << ((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37)) & 63));
					{
						if (!!(((*(*param).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6)))) goto LA59_;
						allUntyped = NIM_FALSE;
					}
					LA59_: ;
					i_2 += ((NI) 1);
				} LA56: ;
			}
		}
	}
	goto LA50_;
	LA52_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T62_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T63_;
		asgnRef((void**) (&(*s).typ), newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25), c));
		asgnRef((void**) (&(*(*s).typ).n), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 76), (*n).info));
		T62_ = NIM_NIL;
		T62_ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7), c);
		rawAddSon__ast_4276((*s).typ, T62_, NIM_TRUE);
		T63_ = NIM_NIL;
		T63_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4), (*n).info, (*(*s).typ).sons->data[((NI) 0)]);
		add__ast_4798((*(*s).typ).n, T63_);
	}
	LA50_: ;
	{
		NI T66_;
		T66_ = (NI)0;
		T66_ = safeLen__ast_3148((*n)._kind_6.sons->data[((NI) 2)]);
		if (!(T66_ == ((NI) 0))) goto LA67_;
		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);
	}
	LA67_: ;
	{
		if (!allUntyped) goto LA71_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 9)) & 63);
	}
	LA71_: ;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA75_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semPattern__sem_7566(c, (*n)._kind_6.sons->data[((NI) 1)], s));
	}
	LA75_: ;
	nimZeroMem((void*)(&ctx), sizeof(tyObject_TemplCtx__1uqbFuvIhPDcy3uFeRKL3Q));
	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__9be9c6fEXk5NwyPvxxb6toPA) 11))&63U)))!=0)) goto LA79_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), semTemplBodyDirty__sem_8056((&ctx), (*n)._kind_6.sons->data[((NI) 6)]));
	}
	goto LA77_;
	LA79_: ;
	{
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), semTemplBody__sem_7113((&ctx), (*n)._kind_6.sons->data[((NI) 6)]));
	}
	LA77_: ;
	closeScope__lookups_108(c);
	popOwner__semdata_341(c);
	asgnRef((void**) (&(*s).ast), n);
	{
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 10))&63U)))!=0)) goto LA84_;
		{
			NimStringDesc* T90_;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA88_;
			T90_ = NIM_NIL;
			T90_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_223), (*(*s).name).s);
			liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 6)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T90_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_685, NIM_FALSE);
		}
		LA88_: ;
	}
	goto LA82_;
	LA84_: ;
	{
		NimStringDesc* T94_;
		if (!((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA92_;
		T94_ = NIM_NIL;
		T94_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_403), (*(*s).name).s);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T94_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_686, NIM_FALSE);
	}
	goto LA82_;
	LA92_: ;
	LA82_: ;
	nimZeroMem((void*)(&T95_), sizeof(tyTuple__U9cBGRemMbZc6MWph6pfkAg));
	searchForProc__procfind_73(c, (*c).currentScope, s, (&T95_));
	proto = NIM_NIL;
	proto = T95_.Field0;
	comesFromShadowscope = (NIM_BOOL)0;
	comesFromShadowscope = T95_.Field1;
	{
		if (!(proto == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA98_;
		addInterfaceOverloadableSymAt__lookups_1571(c, (*c).currentScope, s);
	}
	goto LA96_;
	LA98_: ;
	{
		if (!!(comesFromShadowscope)) goto LA101_;
		symTabReplace__astalgo_3295((&(*(*c).currentScope).symbols), proto, s);
	}
	goto LA96_;
	LA101_: ;
	LA96_: ;
	{
		NI T107_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA105_;
		asgnRef((void**) (&(*c).patterns), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) incrSeqV3((TGenericSeq*)((*c).patterns), (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_)));
		T107_ = (*c).patterns->Sup.len++;
		asgnRef((void**) (&(*c).patterns->data[T107_]), s);
	}
	LA105_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semQuoteAst__sem_114)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* quotedBlock;
	NI T9_;
	NimStringDesc* op;
	tySequence__IeU9azYSNIK3V9b36Ir6NZcw* quotes;
	tySequence__IeU9azYSNIK3V9b36Ir6NZcw* ids;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T20_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dummyTemplate;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T21_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T22_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpl;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* identNodeSym;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* identNode;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T41_;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T42_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T43_;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NI T4_;
		NI T6_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_3155(n);
		T3_ = !((T4_ == ((NI) 2)));
		if (!(T3_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__ast_3155(n);
		T3_ = !((T6_ == ((NI) 3)));
		LA5_: ;
		if (!T3_) goto LA7_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_667), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_668, NIM_FALSE);
		result = n;
		goto BeforeRet_;
	}
	LA7_: ;
	T9_ = (NI)0;
	T9_ = len__ast_3155(n);
	quotedBlock = (*n)._kind_6.sons->data[(NI)(T9_ - ((NI) 1))];
	{
		NI T12_;
		T12_ = (NI)0;
		T12_ = len__ast_3155(n);
		if (!(T12_ == ((NI) 3))) goto LA13_;
		op = expectString__sem_19437(c, (*n)._kind_6.sons->data[((NI) 1)]);
	}
	goto LA10_;
	LA13_: ;
	{
		op = copyString(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_670));
	}
	LA10_: ;
	quotes = newSeq__sem_19645(((NI) 2));
	ids = newSeq__sem_19645(((NI) 1));
	{
		if (!!(((*quotedBlock).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115)))) goto LA18_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 5), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_671), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_672, NIM_FALSE);
	}
	LA18_: ;
	T20_ = NIM_NIL;
	T20_ = newAnonSym__sem_19446(c, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3), (*n).info);
	asgnRef((void**) (&ids->data[((NI) 0)]), newSymNode__ast_3704(T20_));
	processQuotations__sem_19524(c, &quotedBlock, op, (&quotes), (&ids));
	T21_ = NIM_NIL;
	T21_ = newAnonSym__sem_19446(c, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18), (*n).info);
	T22_ = NIM_NIL;
	T22_ = newSymNode__ast_3704(T21_);
	dummyTemplate = newProcNode__ast_3809(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83), (*quotedBlock).info, quotedBlock, (*(*c).graph).emptyNode, T22_, (*(*c).graph).emptyNode, (*(*c).graph).emptyNode, (*(*c).graph).emptyNode, (*(*c).graph).emptyNode);
	{
		NI T25_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T28_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T29_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T30_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T31_;
		NI T32_;
		NI T33_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T34_;
		T25_ = (ids ? ids->Sup.len : 0);
		if (!(((NI) 0) < T25_)) goto LA26_;
		asgnRef((void**) (&(*dummyTemplate)._kind_6.sons->data[((NI) 3)]), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 76), (*n).info));
		T28_ = NIM_NIL;
		T28_ = getSysSym__magicsys_16((*c).graph, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_673));
		T29_ = NIM_NIL;
		T29_ = newSymNode__ast_3704(T28_);
		add__ast_4798((*dummyTemplate)._kind_6.sons->data[((NI) 3)], T29_);
		T30_ = NIM_NIL;
		T30_ = getSysSym__magicsys_16((*c).graph, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_673));
		T31_ = NIM_NIL;
		T31_ = newSymNode__ast_3704(T30_);
		ids = (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)(ids), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_));
		T32_ = ids->Sup.len++;
		asgnRef((void**) (&ids->data[T32_]), T31_);
		ids = (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)(ids), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_));
		T33_ = ids->Sup.len++;
		asgnRef((void**) (&ids->data[T33_]), (*(*c).graph).emptyNode);
		T34_ = NIM_NIL;
		T34_ = newTreeI__ast_3384(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), (*n).info, (ids) ? (ids->data) : NIM_NIL, (ids ? ids->Sup.len : 0));
		add__ast_4798((*dummyTemplate)._kind_6.sons->data[((NI) 3)], T34_);
	}
	LA26_: ;
	tmpl = semTemplateDef__sem_8125(c, dummyTemplate);
	asgnRef((void**) (&quotes->data[((NI) 0)]), (*tmpl)._kind_6.sons->data[((NI) 0)]);
	identNodeSym = getCompilerProc__magicsys_145((*c).graph, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_687));
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T39_;
		if (!(identNodeSym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA37_;
		T39_ = NIM_NIL;
		T39_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_687));
		identNode = newIdentNode__ast_3700(T39_, (*n).info);
	}
	goto LA35_;
	LA37_: ;
	{
		identNode = newSymNode__ast_3704(identNodeSym);
	}
	LA35_: ;
	nimZeroMem((void*)T41_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T41_[0] = identNode;
	T41_[1] = newStrNode__ast_3801(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_107));
	asgnRef((void**) (&quotes->data[((NI) 1)]), newTreeI__ast_3384(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, T41_, 2));
	nimZeroMem((void*)T42_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T43_ = NIM_NIL;
	T43_ = createMagic__modulegraphs_9046((*c).graph, (*c).Sup.idgen, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_688), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 27));
	T42_[0] = newSymNode__ast_3704(T43_);
	T42_[1] = newTreeI__ast_3384(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, (quotes) ? (quotes->data) : NIM_NIL, (quotes ? quotes->Sup.len : 0));
	result = newTreeI__ast_3384(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, T42_, 2);
	result = semExpandToAst__sem_19451(c, result);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, createFlowVar__sem_19781)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T1_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T2_;
	result = NIM_NIL;
	T1_ = nextTypeId__ast_3122((*c).Sup.idgen);
	result = newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9), T1_, (*c).module);
	T2_ = NIM_NIL;
	T2_ = getCompilerProc__magicsys_145((*c).graph, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_693));
	addSonSkipIntLit__magicsys_136(result, (*T2_).typ, (*c).Sup.idgen);
	addSonSkipIntLit__magicsys_136(result, t, (*c).Sup.idgen);
	result = instGenericContainer__sem_1149(c, info, result, NIM_FALSE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, instantiateCreateFlowVarCall__sem_19786)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
	tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ bindings;
	result = NIM_NIL;
	sym = getCompilerProc__magicsys_145((*c).graph, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_694));
	{
		if (!(sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA3_;
		liMessage__msgs_1128((*(*c).graph).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_695), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_696, NIM_FALSE);
	}
	LA3_: ;
	nimZeroMem((void*)(&bindings), sizeof(tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ));
	initIdTable__ast_4084((&bindings));
	idTablePut__astalgo_70((&bindings), (*((tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA**) (&((*(*(*(*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__DKP9c7KM5AbqYVP6Gd9blNUw_697)((*c).semGenerateInstance.ClP_0))(c, sym, bindings, info);
	{
		if (!(((*result).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 18))&63U)))!=0)) goto LA7_;
		(*result).flags = ((*result).flags & ~ 262336);
		asgnRef((void**) (&(*result).loc.r), ((tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ*) NIM_NIL));
	}
	LA7_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semSizeof__sem_19816)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* configX60gensym5241_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nodeX60gensym5241_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typX60gensym5241_;
	NI64 sizeX60gensym5241_;
	result = NIM_NIL;
	{
		NI T3_;
		NimStringDesc* T6_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_352), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_698));
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T6_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_699, NIM_FALSE);
	}
	goto LA1_;
	LA4_: ;
	{
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 1)], 512, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
	}
	LA1_: ;
	asgnRef((void**) (&(*n).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31)));
	configX60gensym5241_ = (*(*c).graph).config;
	nodeX60gensym5241_ = n;
	typX60gensym5241_ = (*(*nodeX60gensym5241_)._kind_6.sons->data[((NI) 1)]).typ;
	computeSizeAlign__types_2976(configX60gensym5241_, typX60gensym5241_);
	sizeX60gensym5241_ = (*typX60gensym5241_).size;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resX60gensym5241_;
		if (!(IL64(0) <= sizeX60gensym5241_)) goto LA10_;
		resX60gensym5241_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), sizeX60gensym5241_);
		(*resX60gensym5241_).info = (*nodeX60gensym5241_).info;
		asgnRef((void**) (&(*resX60gensym5241_).typ), (*nodeX60gensym5241_).typ);
		result = resX60gensym5241_;
	}
	goto LA8_;
	LA10_: ;
	{
		result = n;
	}
	LA8_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semMagic__sem_19836)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	result = n;
	switch ((*s).magic) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 16):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3707(s, (*(*n)._kind_6.sons->data[((NI) 0)]).info));
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semAddrArg__sem_16419(c, (*n)._kind_6.sons->data[((NI) 1)], eqStrings((*(*s).name).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_250))));
		asgnRef((void**) (&(*result).typ), makePtrType__semdata_772(c, (*(*result)._kind_6.sons->data[((NI) 1)]).typ));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 18):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		result = semTypeOf__sem_136(c, n);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 1):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T4_;
		markUsed__sigmatch_85(c, (*n).info, s);
		T4_ = NIM_NIL;
		T4_ = setMs__sem_19810(n, s);
		result = semDefined__sem_19375(c, T4_);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 2):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		markUsed__sigmatch_85(c, (*n).info, s);
		T6_ = NIM_NIL;
		T6_ = setMs__sem_19810(n, s);
		result = semDeclared__sem_19407(c, T6_, NIM_FALSE);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 3):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T8_;
		markUsed__sigmatch_85(c, (*n).info, s);
		T8_ = NIM_NIL;
		T8_ = setMs__sem_19810(n, s);
		result = semDeclared__sem_19407(c, T8_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 4):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T10_;
		markUsed__sigmatch_85(c, (*n).info, s);
		T10_ = NIM_NIL;
		T10_ = setMs__sem_19810(n, s);
		result = semCompiles__sem_19747(c, T10_, flags);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 14):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T12_;
		markUsed__sigmatch_85(c, (*n).info, s);
		T12_ = NIM_NIL;
		T12_ = setMs__sem_19810(n, s);
		result = semIs__sem_15808(c, T12_, flags);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 21):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		result = semShallowCopy__sem_16918(c, n, flags);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 27):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		result = semExpandToAst__sem_19514(c, n, s, flags);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 28):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		result = semQuoteAst__sem_114(c, n);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 140):
	{
		NimStringDesc* T17_;
		markUsed__sigmatch_85(c, (*n).info, s);
		checkSonsLen__semdata_1107(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__b28l2MkhJpnFhatVrsrXpg) 28)));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 141):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		markUsed__sigmatch_85(c, (*n).info, s);
		{
			if (!!((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 3))&31U)))!=0))) goto LA21_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_689), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_690, NIM_FALSE);
		}
		LA21_: ;
		result = setMs__sem_19810(n, s);
		x = lastSon__ast_4833(n);
		{
			if (!((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_87(c, x, 0));
		(*c).inParallelStmt -= ((NI) 1);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 199):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
		NI T40_;
		markUsed__sigmatch_85(c, (*n).info, s);
		result = setMs__sem_19810(n, s);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(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, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
					i_2 += ((NI) 1);
				} LA30: ;
			}
		}
		{
			NIM_BOOL T33_;
			NI T34_;
			NimStringDesc* T38_;
			NimStringDesc* T39_;
			T33_ = (NIM_BOOL)0;
			T34_ = (NI)0;
			T34_ = len__ast_3155(n);
			T33_ = (((NI) 1) < T34_);
			if (!(T33_)) goto LA35_;
			T33_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32)));
			LA35_: ;
			if (!T33_) goto LA36_;
			T38_ = NIM_NIL;
			T39_ = NIM_NIL;
			T39_ = dollar___renderer_2116((*n)._kind_6.sons->data[((NI) 1)]);
			T38_ = rawNewString((T39_ ? T39_->Sup.len : 0) + 38);
appendString(T38_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_691));
appendString(T38_, T39_);
			liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T38_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_692, NIM_FALSE);
			result = errorNode__semdata_1039(c, n);
			goto BeforeRet_;
		}
		LA36_: ;
		T40_ = (NI)0;
		T40_ = len__ast_3155(result);
		typ = (*(*result)._kind_6.sons->data[(NI)(T40_ - ((NI) 1))]).typ;
		{
			NIM_BOOL T43_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T52_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T53_;
			T43_ = (NIM_BOOL)0;
			T43_ = isEmptyType__ast_4780(typ);
			if (!!(T43_)) goto LA44_;
			{
				tyEnum_TSpawnResult__EdP9a1q3b9blEXGzohsyvYgA T48_;
				T48_ = (tyEnum_TSpawnResult__EdP9a1q3b9blEXGzohsyvYgA)0;
				T48_ = spawnResult__spawn_34(typ, (((NI) 0) < (*c).inParallelStmt));
				if (!(T48_ == ((tyEnum_TSpawnResult__EdP9a1q3b9blEXGzohsyvYgA) 1))) goto LA49_;
				asgnRef((void**) (&(*result).typ), createFlowVar__sem_19781(c, typ, (*n).info));
			}
			goto LA46_;
			LA49_: ;
			{
				asgnRef((void**) (&(*result).typ), typ);
			}
			LA46_: ;
			T52_ = NIM_NIL;
			T52_ = instantiateCreateFlowVarCall__sem_19786(c, typ, (*n).info);
			T53_ = NIM_NIL;
			T53_ = newSymNode__ast_3704(T52_);
			add__ast_4798(result, T53_);
		}
		goto LA41_;
		LA44_: ;
		{
			add__ast_4798(result, (*(*c).graph).emptyNode);
		}
		LA41_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 204):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		result = setMs__sem_19810(n, s);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 1)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		asgnRef((void**) (&(*result).typ), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 19):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig;
		markUsed__sigmatch_85(c, (*n).info, s);
		nOrig = copyTree__ast_4432(n);
		result = semOverloadedCallAnalyseEffects__sem_17652(c, n, nOrig, flags);
		{
			if (!(result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA59_;
			result = errorNode__semdata_1039(c, n);
		}
		goto LA57_;
		LA59_: ;
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* callee;
			callee = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			{
				if (!((*callee).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0))) goto LA64_;
				semFinishOperands__sigmatch_4203(c, result);
			}
			LA64_: ;
			activate__sem_111(c, result);
			fixAbstractType__sem_16115(c, result);
			analyseIfAddressTakenInCall__sem_16299(c, result);
			{
				if (!!(((*callee).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0)))) goto LA68_;
				result = magicsAfterOverloadResolution__sem_17235(c, result, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			}
			LA68_: ;
		}
		LA57_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 268):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		{
			NIM_BOOL T73_;
			NIM_BOOL T74_;
			NI T76_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3155(n);
			T74_ = (((NI) 2) <= T76_);
			LA75_: ;
			T73_ = T74_;
			if (!(T73_)) goto LA77_;
			T78_ = NIM_NIL;
			T78_ = lastSon__ast_4833(n);
			T73_ = ((*T78_).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115));
			LA77_: ;
			if (!T73_) goto LA79_;
			result = setMs__sem_19810(n, s);
		}
		goto LA71_;
		LA79_: ;
		{
			result = (*(*c).graph).emptyNode;
		}
		LA71_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 10):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T83_;
		markUsed__sigmatch_85(c, (*n).info, s);
		T83_ = NIM_NIL;
		T83_ = setMs__sem_19810(n, s);
		result = semSizeof__sem_19816(c, T83_);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 144):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 145):
	{
		{
			NIM_BOOL T87_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expected;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* arrayType;
			tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T91_;
			T87_ = (NIM_BOOL)0;
			T87_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T87_)) goto LA88_;
			expected = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
			T87_ = ((*expected).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24) || (*expected).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27));
			LA88_: ;
			if (!T87_) goto LA89_;
			T91_ = nextTypeId__ast_3122((*c).Sup.idgen);
			arrayType = newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27), T91_, (*expected).owner);
			rawAddSon__ast_4276(arrayType, (*expected).sons->data[((NI) 0)], NIM_TRUE);
			{
				NIM_BOOL T94_;
				T94_ = (NIM_BOOL)0;
				T94_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
				if (!(T94_)) goto LA95_;
				T94_ = (((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 2))&63U)))!=0);
				LA95_: ;
				if (!T94_) goto LA96_;
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3707((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).owner, (*(*n)._kind_6.sons->data[((NI) 0)]).info));
			}
			LA96_: ;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 1)], flags, arrayType));
		}
		LA89_: ;
		result = semDirectOp__sem_515(c, n, flags, expectedType);
	}
	break;
	default:
	{
		result = semDirectOp__sem_515(c, n, flags, expectedType);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newDeref__lowerings_11)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65), (*n).info, (*(*n).typ).sons->data[((NI) 0)]);
	add__ast_4798(result, n);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, bracketedMacro__sem_17724)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NI T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_3155(n);
		T3_ = (((NI) 1) <= T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL);
		}
		LA10_: ;
	}
	LA6_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setGenericParams__sem_17740)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(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_83(c, (*n)._kind_6.sons->data[i], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, resolveIndirectCall__sem_17708)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw* 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_4222(c, n, nOrig, Result);
	{
		if (!!(((*Result).state == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 1)))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = (((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 0))&31U)))!=0);
			if (!(T7_)) goto LA8_;
			T7_ = canDeref__sem_2527(n);
			LA8_: ;
			if (!T7_) goto LA9_;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), tryDeref__sem_2543((*n)._kind_6.sons->data[((NI) 1)]));
			initCandidate__sigmatch_116(c, Result, t);
			matches__sigmatch_4222(c, n, nOrig, Result);
		}
		LA9_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, overloadedCallOpr__sem_15896)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* par;
	NIM_BOOL amb;
	result = NIM_NIL;
	par = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_220));
	amb = NIM_FALSE;
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T3_;
		T3_ = NIM_NIL;
		T3_ = searchInScopes__lookups_603(c, par, (&amb));
		if (!(T3_ == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA4_;
		result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T7_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
		T7_ = NIM_NIL;
		T7_ = newIdentNode__ast_3700(par, (*n).info);
		add__ast_4798(result, T7_);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					add__ast_4798(result, (*n)._kind_6.sons->data[i]);
					i_2 += ((NI) 1);
				} LA10: ;
			}
		}
		result = semExpr__sem_52(c, result, 262144, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semIndirectOp__sem_17782)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* prc;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_2;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nOrig;
{	result = NIM_NIL;
	result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
	checkMinSonsLen__semdata_1114(n, ((NI) 1), (*(*c).graph).config);
	prc = (*n)._kind_6.sons->data[((NI) 0)];
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n0;
		if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45))) goto LA3_;
		checkSonsLen__semdata_1107((*n)._kind_6.sons->data[((NI) 0)], ((NI) 2), (*(*c).graph).config);
		n0 = semFieldAccess__sem_15003(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		{
			if (!((*n0).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 25))) goto LA7_;
			result = n0;
			transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 27));
			(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 11)) & 31);
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3155(n);
				i_2 = ((NI) 1);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA11;
						i = i_2;
						add__ast_4798(result, (*n)._kind_6.sons->data[i]);
						i_2 += ((NI) 1);
					} LA11: ;
				}
			}
			result = semExpr__sem_52(c, result, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			goto BeforeRet_;
		}
		goto LA5_;
		LA7_: ;
		{
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), n0);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], 32768, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		t = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
		{
			NIM_BOOL T16_;
			T16_ = (NIM_BOOL)0;
			T16_ = !((t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T16_)) goto LA17_;
			T16_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__3r34mwqcVmg5JFNmiaVncw* s;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42))) goto LA21_;
			s = bracketedMacro__sem_17724((*n)._kind_6.sons->data[((NI) 0)]);
			{
				if (!!((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA25_;
				setGenericParams__sem_17740(c, (*n)._kind_6.sons->data[((NI) 0)]);
				result = semDirectOp__sem_515(c, n, flags, expectedType);
				goto BeforeRet_;
			}
			LA25_: ;
		}
		goto LA14_;
		LA21_: ;
		{
			NIM_BOOL T28_;
			T28_ = (NIM_BOOL)0;
			T28_ = isSymChoice__sem_15478((*n)._kind_6.sons->data[((NI) 0)]);
			if (!(T28_)) goto LA29_;
			T28_ = !((((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 9))&31U)))!=0));
			LA29_: ;
			if (!T28_) goto LA30_;
			result = semDirectOp__sem_515(c, n, flags, expectedType);
			goto BeforeRet_;
		}
		goto LA14_;
		LA30_: ;
		LA14_: ;
	}
	LA1_: ;
	t_2 = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA34_;
		t_2 = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_700);
	}
	LA34_: ;
	{
		NIM_BOOL T38_;
		T38_ = (NIM_BOOL)0;
		T38_ = !((t_2 == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T38_)) goto LA39_;
		T38_ = ((*t_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
		LA39_: ;
		if (!T38_) goto LA40_;
		{
			NI T44_;
			T44_ = (NI)0;
			T44_ = len__ast_3155(n);
			if (!(T44_ == ((NI) 1))) goto LA45_;
			result = semObjConstr__sem_17703(c, n, flags, expectedType);
			goto BeforeRet_;
		}
		LA45_: ;
		result = semConv__sem_15507(c, n, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		goto BeforeRet_;
	}
	LA40_: ;
	nOrig = copyTree__ast_4432(n);
	semOpAux__sem_91(c, n);
	{
		NIM_BOOL T49_;
		tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw m;
		T49_ = (NIM_BOOL)0;
		T49_ = !((t_2 == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T49_)) goto LA50_;
		T49_ = ((*t_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
		LA50_: ;
		if (!T49_) goto LA51_;
		nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw));
		resolveIndirectCall__sem_17708(c, n, nOrig, t_2, (&m));
		{
			if (!!((m.state == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 1)))) goto LA55_;
			{
				if (!((*(*(*c).graph).config).m.errorOutputs == 0)) goto LA59_;
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_273), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__DKP9c7KM5AbqYVP6Gd9blNUw_701, NIM_FALSE);
				result = (*(*c).graph).emptyNode;
				goto BeforeRet_;
			}
			goto LA57_;
			LA59_: ;
			{
				NIM_BOOL hasErrorType;
				NimStringDesc* msg;
				hasErrorType = NIM_FALSE;
				msg = copyString(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_309));
				{
					NI i_3;
					NI colontmp__2;
					NI i_4;
					i_3 = (NI)0;
					colontmp__2 = (NI)0;
					colontmp__2 = len__ast_3155(n);
					i_4 = ((NI) 1);
					{
						while (1) {
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* nt;
							NimStringDesc* T69_;
							if (!(i_4 < colontmp__2)) goto LA64;
							i_3 = i_4;
							{
								if (!(((NI) 1) < i_3)) goto LA67_;
								msg = resizeString(msg, 2);
appendString(msg, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_77));
							}
							LA67_: ;
							nt = (*(*n)._kind_6.sons->data[i_3]).typ;
							T69_ = NIM_NIL;
							T69_ = typeToString__types_50(nt, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
							msg = resizeString(msg, (T69_ ? T69_->Sup.len : 0) + 0);
appendString(msg, T69_);
							{
								if (!((*nt).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50))) goto LA72_;
								hasErrorType = NIM_TRUE;
								goto LA62;
							}
							LA72_: ;
							i_4 += ((NI) 1);
						} LA64: ;
					}
				} LA62: ;
				{
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
					NimStringDesc* T78_;
					NimStringDesc* T79_;
					if (!!(hasErrorType)) goto LA76_;
					typ = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
					T78_ = NIM_NIL;
					T79_ = NIM_NIL;
					T79_ = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
					T78_ = rawNewString((T79_ ? T79_->Sup.len : 0) + 23);
appendString(T78_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_702));
appendString(T78_, T79_);
					msg = resizeString(msg, (T78_ ? T78_->Sup.len : 0) + 0);
appendString(msg, T78_);
					{
						NIM_BOOL T82_;
						NIM_BOOL T83_;
						NimStringDesc* T88_;
						NimStringDesc* T89_;
						T82_ = (NIM_BOOL)0;
						T83_ = (NIM_BOOL)0;
						T83_ = !(((*typ).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
						if (!(T83_)) goto LA84_;
						T83_ = !((((*(*typ).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
						LA84_: ;
						T82_ = T83_;
						if (!(T82_)) goto LA85_;
						T82_ = ((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
						LA85_: ;
						if (!T82_) goto LA86_;
						T88_ = NIM_NIL;
						T89_ = NIM_NIL;
						T89_ = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 1));
						T88_ = rawNewString((T89_ ? T89_->Sup.len : 0) + 3);
appendString(T88_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_703));
appendString(T88_, T89_);
						msg = resizeString(msg, (T88_ ? T88_->Sup.len : 0) + 0);
appendString(msg, T88_);
					}
					LA86_: ;
					addDeclaredLocMaybe__astmsgs_51((&msg), (*(*c).graph).config, typ);
					liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), msg, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_704, NIM_FALSE);
				}
				LA76_: ;
				result = errorNode__semdata_1039(c, n);
				goto BeforeRet_;
			}
			LA57_: ;
			result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
		}
		goto LA53_;
		LA55_: ;
		{
			result = m.call;
			instGenericConvertersSons__sem_2369(c, result, (&m));
		}
		LA53_: ;
	}
	goto LA47_;
	LA51_: ;
	{
		result = overloadedCallOpr__sem_15896(c, n);
		{
			NIM_BOOL T94_;
			T94_ = (NIM_BOOL)0;
			T94_ = (result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
			if (T94_) goto LA95_;
			T94_ = ((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
			LA95_: ;
			if (!T94_) goto LA96_;
			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__0RUKWdbLPY3l0smKVGDLMg) 12)) & 31);
			result = semOverloadedCallAnalyseEffects__sem_17652(c, n, nOrig, flags);
			{
				if (!(result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA100_;
				result = errorNode__semdata_1039(c, n);
				goto BeforeRet_;
			}
			LA100_: ;
		}
		goto LA92_;
		LA96_: ;
		{
			if (!!(((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32)))) goto LA103_;
			goto BeforeRet_;
		}
		goto LA92_;
		LA103_: ;
		LA92_: ;
	}
	LA47_: ;
	{
		if (!((*(*result)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA107_;
		result = afterCallActions__sem_17753(c, result, nOrig, flags, expectedType);
	}
	goto LA105_;
	LA107_: ;
	{
		fixAbstractType__sem_16115(c, result);
		analyseIfAddressTakenInCall__sem_16299(c, result);
	}
	LA105_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldBeBracketExpr__sem_21515)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
{	result = (NIM_BOOL)0;
	a = (*n)._kind_6.sons->data[((NI) 0)];
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
		if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32))) goto LA3_;
		b = (*a)._kind_6.sons->data[((NI) 0)];
		{
			if (!((*b).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56) || (*b).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57))) goto LA7_;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3155(b);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA11;
						i = i_2;
						{
							NIM_BOOL T14_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* be;
							T14_ = (NIM_BOOL)0;
							T14_ = ((*(*b)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
							if (!(T14_)) goto LA15_;
							T14_ = ((*(*(*b)._kind_6.sons->data[i])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 5));
							LA15_: ;
							if (!T14_) goto LA16_;
							be = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), (*n).info);
							{
								NI i_3;
								NI colontmp__2;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__2 = len__ast_3155(a);
								i_4 = ((NI) 1);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA20;
										i_3 = i_4;
										add__ast_4798(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_21574)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		NIM_BOOL T5_;
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53))) goto LA3_;
		s = qualifiedLookUp__lookups_2598(c, n, 0);
		T5_ = (NIM_BOOL)0;
		T5_ = !((s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
		if (!(T5_)) goto LA6_;
		T5_ = isGenericRoutineStrict__ast_4640(s);
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, asBracketExpr__sem_21570)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NI T4_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_3155(n);
		T3_ = (((NI) 1) < T4_);
		if (!(T3_)) goto LA5_;
		T3_ = isGeneric__sem_21574(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__clSgDh22o9au33BrVH9bDQZw) 56) || (*b).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57))) goto LA10_;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3155(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__clSgDh22o9au33BrVH9bDQZw) 3));
							if (!(T17_)) goto LA18_;
							T17_ = ((*(*(*b)._kind_6.sons->data[i])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 5));
							LA18_: ;
							if (!T17_) goto LA19_;
							result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), (*n).info);
							{
								NI i_3;
								NI colontmp__2;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__2 = len__ast_3155(n);
								i_4 = ((NI) 1);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA23;
										i_3 = i_4;
										add__ast_4798(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__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, hoistParamsUsedInDefault__sem_21635)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** call, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** letSection, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** defExpr) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI paramPos;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*(*defExpr)).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
		if (!(T4_)) goto LA5_;
		T4_ = ((*(*(*defExpr))._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__3r34mwqcVmg5JFNmiaVncw* hoistedVarSym;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T13_;
			tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T14_;
			tyArray__id9c0PBojP5C2oM2bRQSViA T15_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T16_;
			if (!!(((*(*(*call))._kind_6.sons->data[paramPos]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA11_;
			T13_ = NIM_NIL;
			T13_ = getIdent__idents_152((*(*c).graph).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_705));
			T14_ = nextSymId__ast_3103((*c).Sup.idgen);
			hoistedVarSym = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__id9c0PBojP5C2oM2bRQSViA));
			T15_[0] = newSymNode__ast_3704(hoistedVarSym);
			T15_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*letSection)).info);
			T15_[2] = (*(*call))._kind_6.sons->data[paramPos];
			T16_ = NIM_NIL;
			T16_ = newTreeI__ast_3384(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), (*(*letSection)).info, T15_, 3);
			add__ast_4798((*letSection), T16_);
			asgnRef((void**) (&(*(*call))._kind_6.sons->data[paramPos]), newSymNode__ast_3704(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_3148((*defExpr));
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA20;
					i = i_2;
					hoistParamsUsedInDefault__sem_21635(c, call, letSection, &(*(*defExpr))._kind_6.sons->data[i]);
					i_2 += ((NI) 1);
				} LA20: ;
			}
		}
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semArrayAccess__sem_18789)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = semSubscript__sem_16468(c, n, flags);
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T5_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		if (!(result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_33));
		T6_ = NIM_NIL;
		T6_ = buildOverloadedSubscripts__sem_18603(n, T5_);
		result = semExpr__sem_52(c, T6_, flags, expectedType);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA, checkPar__sem_20278)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA result;
{	result = (tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA) 3);
	}
	goto LA1_;
	LA4_: ;
	{
		NI T7_;
		T7_ = (NI)0;
		T7_ = len__ast_3155(n);
		if (!(T7_ == ((NI) 1))) goto LA8_;
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34))) goto LA12_;
			result = ((tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA) 2);
		}
		goto LA10_;
		LA12_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160))) goto LA15_;
			result = ((tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA) 3);
		}
		goto LA10_;
		LA15_: ;
		{
			result = ((tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA) 1);
		}
		LA10_: ;
	}
	goto LA1_;
	LA8_: ;
	{
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34))) goto LA21_;
			result = ((tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA) 2);
		}
		goto LA19_;
		LA21_: ;
		{
			result = ((tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA) 3);
		}
		LA19_: ;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA26;
					i = i_2;
					{
						if (!(result == ((tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA) 2))) goto LA29_;
						{
							NIM_BOOL T33_;
							T33_ = (NIM_BOOL)0;
							T33_ = !(((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34)));
							if (T33_) goto LA34_;
							T33_ = !(((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3) || (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2) || (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53)));
							LA34_: ;
							if (!T33_) goto LA35_;
							liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_706), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_707, NIM_FALSE);
							result = ((tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA) 0);
							goto BeforeRet_;
						}
						LA35_: ;
					}
					goto LA27_;
					LA29_: ;
					{
						{
							if (!((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34))) goto LA40_;
							liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_708), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_709, NIM_FALSE);
							result = ((tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA) 0);
							goto BeforeRet_;
						}
						LA40_: ;
					}
					LA27_: ;
					i_2 += ((NI) 1);
				} LA26: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTuplePositionsConstr__sem_20427)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expected;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
	result = NIM_NIL;
	result = n;
	transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 160));
	expected = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
	{
		if (!!((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA3_;
		expected = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
		{
			NIM_BOOL T7_;
			NI T9_;
			NI T10_;
			T7_ = (NIM_BOOL)0;
			T7_ = ((*expected).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18));
			if (!(T7_)) goto LA8_;
			T9_ = (NI)0;
			T9_ = len__ast_3990(expected);
			T10_ = (NI)0;
			T10_ = len__ast_3155(n);
			T7_ = (T9_ == T10_);
			LA8_: ;
			if (!!(T7_)) goto LA11_;
			expected = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
		}
		LA11_: ;
	}
	LA3_: ;
	typ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18), c);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedElemType;
				if (!(i_2 < colontmp_)) goto LA15;
				i = i_2;
				{
					if (!!((expected == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA18_;
					expectedElemType = (*expected).sons->data[i];
				}
				goto LA16_;
				LA18_: ;
				{
					expectedElemType = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
				}
				LA16_: ;
				asgnRef((void**) (&(*n)._kind_6.sons->data[i]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[i], 0, expectedElemType));
				addSonSkipIntLit__magicsys_136(typ, (*(*n)._kind_6.sons->data[i]).typ, (*c).Sup.idgen);
				i_2 += ((NI) 1);
			} LA15: ;
		}
	}
	asgnRef((void**) (&(*result).typ), typ);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTupleConstr__sem_21484)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tupexp;
	NIM_BOOL isTupleType;
{	result = NIM_NIL;
	tupexp = semTuplePositionsConstr__sem_20427(c, n, flags, expectedType);
	isTupleType = (NIM_BOOL)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(tupexp);
		if (!(((NI) 0) < T3_)) goto LA4_;
		isTupleType = ((*(*(*tupexp)._kind_6.sons->data[((NI) 0)]).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(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__b28l2MkhJpnFhatVrsrXpg) 8))))) goto LA11_;
						liMessage__msgs_1128((*(*c).graph).config, (*(*tupexp)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_710), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_711, NIM_FALSE);
						result = errorNode__semdata_1039(c, n);
						goto BeforeRet_;
					}
					LA11_: ;
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
	}
	LA4_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T17_;
		if (!isTupleType) goto LA15_;
		result = n;
		T17_ = NIM_NIL;
		T17_ = semTypeNode__sem_83(c, n, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		typ = skipTypes__ast_3723(T17_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128);
		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__uh9cWvEa5Ty85PXOtuP5emw*, semTupleFieldsConstr__sem_20342)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expected;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw ids;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160), (*n).info);
	expected = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
	{
		if (!!((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA3_;
		expected = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
		{
			NIM_BOOL T7_;
			NI T9_;
			NI T10_;
			T7_ = (NIM_BOOL)0;
			T7_ = ((*expected).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18));
			if (!(T7_)) goto LA8_;
			T9_ = (NI)0;
			T9_ = len__ast_3990(expected);
			T10_ = (NI)0;
			T10_ = len__ast_3155(n);
			T7_ = (T9_ == T10_);
			LA8_: ;
			if (!!(T7_)) goto LA11_;
			expected = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
		}
		LA11_: ;
	}
	LA3_: ;
	typ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18), c);
	asgnRef((void**) (&(*typ).n), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138), (*n).info));
	nimZeroMem((void*)(&ids), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	initIntSet__pureZcollectionsZintsets_238((&ids));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* id;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedElemType;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* f;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T35_;
				if (!(i_2 < colontmp_)) goto LA15;
				i = i_2;
				{
					if (!!(((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34)))) goto LA18_;
					illFormedAst__semdata_1101((*n)._kind_6.sons->data[i], (*(*c).graph).config);
				}
				LA18_: ;
				id = considerQuotedIdent__lookups_29(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
				{
					NIM_BOOL T22_;
					NimStringDesc* T25_;
					T22_ = (NIM_BOOL)0;
					T22_ = containsOrIncl__astalgo_402((&ids), (*id).id);
					if (!T22_) goto LA23_;
					T25_ = NIM_NIL;
					T25_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_648), (*id).s);
					liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T25_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_712, NIM_FALSE);
				}
				LA23_: ;
				{
					if (!!((expected == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA28_;
					expectedElemType = (*expected).sons->data[i];
				}
				goto LA26_;
				LA28_: ;
				{
					expectedElemType = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
				}
				LA26_: ;
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]), semExprWithType__sem_57(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], 0, expectedElemType));
				{
					if (!((*(*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8))) goto LA33_;
					liMessage__msgs_1128((*(*c).graph).config, (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_713), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_714, NIM_FALSE);
					asgnRef((void**) (&(*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).typ), errorType__semdata_1032(c));
				}
				LA33_: ;
				f = newSymS__sem_457(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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_4276(typ, (*f).typ, NIM_TRUE);
				T35_ = NIM_NIL;
				T35_ = newSymNode__ast_3704(f);
				add__ast_4798((*typ).n, T35_);
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(f));
				add__ast_4798(result, (*n)._kind_6.sons->data[i]);
				i_2 += ((NI) 1);
			} LA15: ;
		}
	}
	asgnRef((void**) (&(*result).typ), typ);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semSetConstr__sem_20081)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedElementType;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39), (*n).info);
	asgnRef((void**) (&(*result).typ), newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19), c));
	(*(*result).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 43)) & 63);
	expectedElementType = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
	{
		NIM_BOOL T3_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expected;
		T3_ = (NIM_BOOL)0;
		T3_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		expected = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
		T3_ = ((*expected).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19));
		LA4_: ;
		if (!T3_) goto LA5_;
		expectedElementType = (*expected).sons->data[((NI) 0)];
	}
	LA5_: ;
	{
		NI T9_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T12_;
		T9_ = (NI)0;
		T9_ = len__ast_3155(n);
		if (!(T9_ == ((NI) 0))) goto LA10_;
		T12_ = NIM_NIL;
		{
			NIM_BOOL T15_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T17_;
			T15_ = (NIM_BOOL)0;
			T15_ = !((expectedElementType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T15_)) goto LA16_;
			T17_ = NIM_NIL;
			T17_ = typeAllowed__typeallowed_487(expectedElementType, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9), c, 0);
			T15_ = (T17_ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			LA16_: ;
			if (!T15_) goto LA18_;
			T12_ = expectedElementType;
		}
		goto LA13_;
		LA18_: ;
		{
			T12_ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 3), c);
		}
		LA13_: ;
		rawAddSon__ast_4276((*result).typ, T12_, NIM_TRUE);
	}
	goto LA7_;
	LA10_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
		typ = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA24;
					i = i_2;
					{
						NIM_BOOL T27_;
						T27_ = (NIM_BOOL)0;
						T27_ = isRange__trees_213((*n)._kind_6.sons->data[i]);
						if (!T27_) goto LA28_;
						checkSonsLen__semdata_1107((*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_57(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], 0, expectedElementType));
						asgnRef((void**) (&(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 2)]), semExprWithType__sem_57(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 2)], 0, expectedElementType));
						{
							if (!(typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA32_;
							typ = skipTypes__ast_3723((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_715);
							{
								if (!(expectedElementType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA36_;
								expectedElementType = typ;
							}
							LA36_: ;
						}
						LA32_: ;
						asgnRef((void**) (&(*(*n)._kind_6.sons->data[i]).typ), (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 2)]).typ);
					}
					goto LA25_;
					LA28_: ;
					{
						if (!((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 44))) goto LA39_;
						{
							if (!(typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA43_;
							typ = skipTypes__ast_3723((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_715);
							{
								if (!(expectedElementType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA47_;
								expectedElementType = typ;
							}
							LA47_: ;
						}
						LA43_: ;
					}
					goto LA25_;
					LA39_: ;
					{
						asgnRef((void**) (&(*n)._kind_6.sons->data[i]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[i], 0, expectedElementType));
						{
							if (!(typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA52_;
							typ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[i]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_715);
							{
								if (!(expectedElementType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA56_;
								expectedElementType = typ;
							}
							LA56_: ;
						}
						LA52_: ;
					}
					LA25_: ;
					i_2 += ((NI) 1);
				} LA24: ;
			}
		}
		{
			NIM_BOOL T60_;
			T60_ = (NIM_BOOL)0;
			T60_ = isOrdinalType__types_299(typ, NIM_TRUE);
			if (!!(T60_)) goto LA61_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_340), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_716, NIM_FALSE);
			typ = makeRangeType__semdata_1069(c, IL64(0), IL64(65535), (*n).info, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		goto LA58_;
		LA61_: ;
		{
			tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T64_;
			NIM_BOOL T65_;
			T64_ = lengthOrd__types_1723((*(*c).graph).config, typ);
			T65_ = (NIM_BOOL)0;
			T65_ = lt___int495056_931(IL64(65536), T64_);
			if (!T65_) goto LA66_;
			typ = makeRangeType__semdata_1069(c, IL64(0), IL64(65535), (*n).info, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		goto LA58_;
		LA66_: ;
		LA58_: ;
		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_3155(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* m;
					tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
					if (!(i_4 < colontmp__2)) goto LA70;
					i_3 = i_4;
					m = NIM_NIL;
					info = (*(*n)._kind_6.sons->data[i_3]).info;
					{
						NIM_BOOL T73_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T76_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T77_;
						T73_ = (NIM_BOOL)0;
						T73_ = isRange__trees_213((*n)._kind_6.sons->data[i_3]);
						if (!T73_) goto LA74_;
						m = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 44), info);
						T76_ = NIM_NIL;
						T76_ = fitNode__sem_73(c, typ, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 1)], info);
						add__ast_4798(m, T76_);
						T77_ = NIM_NIL;
						T77_ = fitNode__sem_73(c, typ, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 2)], info);
						add__ast_4798(m, T77_);
					}
					goto LA71_;
					LA74_: ;
					{
						if (!((*(*n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 44))) goto LA79_;
						m = (*n)._kind_6.sons->data[i_3];
					}
					goto LA71_;
					LA79_: ;
					{
						m = fitNode__sem_73(c, typ, (*n)._kind_6.sons->data[i_3], info);
					}
					LA71_: ;
					add__ast_4798(result, m);
					i_4 += ((NI) 1);
				} LA70: ;
			}
		}
	}
	LA7_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semArrayConstr__sem_16015)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedElementType;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedIndexType;
	tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ firstIndex;
	tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ lastIndex;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* indexType;
	tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ lastValidIndex;
	NI64 T74_;
	NI64 T75_;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41), (*n).info);
	asgnRef((void**) (&(*result).typ), newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16), c));
	expectedElementType = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
	expectedIndexType = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expected;
		if (!!((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA3_;
		expected = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
		switch ((*expected).kind) {
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16):
		{
			expectedIndexType = (*expected).sons->data[((NI) 0)];
			expectedElementType = (*expected).sons->data[((NI) 1)];
		}
		break;
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27):
		{
			expectedElementType = (*expected).sons->data[((NI) 0)];
		}
		break;
		default:
		{
		}
		break;
		}
	}
	LA3_: ;
	rawAddSon__ast_4276((*result).typ, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL), NIM_TRUE);
	nimZeroMem((void*)(&firstIndex), sizeof(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ));
	nimZeroMem((void*)(&lastIndex), sizeof(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ));
	indexType = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
	lastValidIndex = lastOrd__types_1532((*(*c).graph).config, indexType);
	{
		NI T10_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T13_;
		T10_ = (NI)0;
		T10_ = len__ast_3155(n);
		if (!(T10_ == ((NI) 0))) goto LA11_;
		T13_ = NIM_NIL;
		{
			NIM_BOOL T16_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T18_;
			T16_ = (NIM_BOOL)0;
			T16_ = !((expectedElementType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T16_)) goto LA17_;
			T18_ = NIM_NIL;
			T18_ = typeAllowed__typeallowed_487(expectedElementType, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9), c, 0);
			T16_ = (T18_ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			LA17_: ;
			if (!T16_) goto LA19_;
			T13_ = expectedElementType;
		}
		goto LA14_;
		LA19_: ;
		{
			T13_ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 3), c);
		}
		LA14_: ;
		rawAddSon__ast_4276((*result).typ, T13_, NIM_TRUE);
		lastIndex = toInt128__types_1431(((NI) -1));
	}
	goto LA8_;
	LA11_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* yy;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
		x = (*n)._kind_6.sons->data[((NI) 0)];
		{
			NIM_BOOL T25_;
			NI T27_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* idx;
			T25_ = (NIM_BOOL)0;
			T25_ = ((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34));
			if (!(T25_)) goto LA26_;
			T27_ = (NI)0;
			T27_ = len__ast_3155(x);
			T25_ = (T27_ == ((NI) 2));
			LA26_: ;
			if (!T25_) goto LA28_;
			idx = semConstExpr__sem_619(c, (*x)._kind_6.sons->data[((NI) 0)], expectedIndexType);
			{
				NIM_BOOL T32_;
				NimStringDesc* T35_;
				NimStringDesc* T36_;
				NimStringDesc* T37_;
				T32_ = (NIM_BOOL)0;
				T32_ = isOrdinalType__types_299((*idx).typ, NIM_FALSE);
				if (!!(T32_)) goto LA33_;
				T35_ = NIM_NIL;
				T36_ = NIM_NIL;
				T36_ = renderTree__renderer_46(idx, 0);
				T37_ = NIM_NIL;
				T37_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_718), T36_);
				T35_ = rawNewString((T37_ ? T37_->Sup.len : 0) + 33);
appendString(T35_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_717));
appendString(T35_, T37_);
				liMessage__msgs_1128((*(*c).graph).config, (*idx).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T35_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_719, NIM_FALSE);
			}
			goto LA30_;
			LA33_: ;
			{
				firstIndex = getOrdValue__types_161(idx, Max__int495056_27);
				lastIndex = firstIndex;
				indexType = (*idx).typ;
				lastValidIndex = lastOrd__types_1532((*(*c).graph).config, indexType);
				x = (*x)._kind_6.sons->data[((NI) 1)];
			}
			LA30_: ;
		}
		LA28_: ;
		yy = semExprWithType__sem_57(c, x, 0, expectedElementType);
		typ = (*yy).typ;
		{
			if (!(expectedElementType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA41_;
			expectedElementType = typ;
		}
		LA41_: ;
		add__ast_4798(result, yy);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* xx;
					if (!(i_2 < colontmp_)) goto LA45;
					i = i_2;
					{
						NIM_BOOL T48_;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* validIndex;
						NI64 T51_;
						NI64 T52_;
						NimStringDesc* T53_;
						tyArray__Re75IspeoxXy2oCZHwcRrA T54_;
						NI T55_;
						NimStringDesc* T56_;
						T48_ = (NIM_BOOL)0;
						T48_ = eqeq___int495056_425(lastIndex, lastValidIndex);
						if (!T48_) goto LA49_;
						T51_ = (NI64)0;
						T51_ = toInt64__int495056_88(firstIndex);
						T52_ = (NI64)0;
						T52_ = toInt64__int495056_88(lastValidIndex);
						validIndex = makeRangeType__semdata_1069(c, T51_, T52_, (*n).info, indexType);
						T53_ = NIM_NIL;
						nimZeroMem((void*)T54_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
						T54_[0] = typeToString__types_50(validIndex, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
						T55_ = (NI)0;
						T55_ = len__ast_3155(n);
						T54_[1] = dollar___systemZdollars_3((NI)(T55_ - i));
						T56_ = NIM_NIL;
						T56_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_721), T54_, 2);
						T53_ = rawNewString((T56_ ? T56_->Sup.len : 0) + 37);
appendString(T53_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_720));
appendString(T53_, T56_);
						liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T53_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_722, NIM_FALSE);
					}
					LA49_: ;
					x = (*n)._kind_6.sons->data[i];
					{
						NIM_BOOL T59_;
						NI T61_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* idx_2;
						T59_ = (NIM_BOOL)0;
						T59_ = ((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34));
						if (!(T59_)) goto LA60_;
						T61_ = (NI)0;
						T61_ = len__ast_3155(x);
						T59_ = (T61_ == ((NI) 2));
						LA60_: ;
						if (!T59_) goto LA62_;
						idx_2 = semConstExpr__sem_619(c, (*x)._kind_6.sons->data[((NI) 0)], indexType);
						idx_2 = fitNode__sem_73(c, indexType, idx_2, (*x).info);
						{
							tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T66_;
							tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T67_;
							NIM_BOOL T68_;
							T66_ = plus___int495056_987(lastIndex, IL64(1));
							T67_ = getOrdValue__types_161(idx_2, Max__int495056_27);
							T68_ = (NIM_BOOL)0;
							T68_ = eqeq___int495056_425(T66_, T67_);
							if (!!(T68_)) goto LA69_;
							liMessage__msgs_1128((*(*c).graph).config, (*x).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_723), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_724, NIM_FALSE);
						}
						LA69_: ;
						x = (*x)._kind_6.sons->data[((NI) 1)];
					}
					LA62_: ;
					xx = semExprWithType__sem_57(c, x, 0, expectedElementType);
					add__ast_4798(result, xx);
					typ = commonType__sem_241(c, typ, (*xx).typ);
					inc__int495056_354((&lastIndex), ((NU32) 1));
					i_2 += ((NI) 1);
				} LA45: ;
			}
		}
		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_3155(result);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA73;
					i_3 = i_4;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i_3]), fitNode__sem_73(c, typ, (*result)._kind_6.sons->data[i_3], (*(*result)._kind_6.sons->data[i_3]).info));
					i_4 += ((NI) 1);
				} LA73: ;
			}
		}
	}
	LA8_: ;
	T74_ = (NI64)0;
	T74_ = toInt64__int495056_88(firstIndex);
	T75_ = (NI64)0;
	T75_ = toInt64__int495056_88(lastIndex);
	asgnRef((void**) (&(*(*result).typ).sons->data[((NI) 0)]), makeRangeType__semdata_1069(c, T74_, T75_, (*n).info, indexType));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCastable__sem_15388)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* dst, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* src, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	NIM_BOOL result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* src_2;
	tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf;
	NI64 dstSize;
	NI64 srcSize;
{	result = (NIM_BOOL)0;
	src_2 = skipTypes__ast_3723(src, TM__DKP9c7KM5AbqYVP6Gd9blNUw_730);
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T3_;
		T3_ = NIM_NIL;
		T3_ = skipTypes__ast_3723(dst, TM__DKP9c7KM5AbqYVP6Gd9blNUw_731);
		if (!((*T3_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27))) goto LA4_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T8_;
		T8_ = NIM_NIL;
		T8_ = skipTypes__ast_3723(src_2, TM__DKP9c7KM5AbqYVP6Gd9blNUw_6);
		if (!((*T8_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8))) goto LA9_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA9_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T13_;
		T13_ = NIM_NIL;
		T13_ = skipTypes__ast_3723(dst, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
		if (!((*T13_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 51))) goto LA14_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA14_: ;
	conf = (*(*c).graph).config;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* d;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* s;
		if (!((48 &((NU16)1<<((NU)((*conf).selectedGC)&15U)))!=0)) goto LA18_;
		d = skipTypes__ast_3723(dst, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
		s = skipTypes__ast_3723(src_2, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
		{
			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__b28l2MkhJpnFhatVrsrXpg) 22));
			if (!(T23_)) goto LA24_;
			T23_ = ((*s).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22));
			LA24_: ;
			T22_ = T23_;
			if (!(T22_)) goto LA25_;
			T26_ = (NIM_BOOL)0;
			T26_ = isFinal__types_808((*s).sons->data[((NI) 0)]);
			T27_ = (NIM_BOOL)0;
			T27_ = isFinal__types_808((*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__b28l2MkhJpnFhatVrsrXpg) 1) || (*d).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*d).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2) || (*d).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*d).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44));
			if (!(T31_)) goto LA32_;
			T31_ = ((*s).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28) || (*s).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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_3369(conf, dst);
	srcSize = computeSize__types_3369(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 BeforeRet_;
	}
	goto LA41_;
	LA43_: ;
	{
		if (!(srcSize < IL64(0))) goto LA46_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	goto LA41_;
	LA46_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T49_;
		T49_ = NIM_NIL;
		T49_ = typeAllowed__typeallowed_487(dst, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3), c, 128);
		if (!!((T49_ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA50_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	goto LA41_;
	LA50_: ;
	{
		NIM_BOOL T53_;
		NIM_BOOL T57_;
		T53_ = (NIM_BOOL)0;
		T53_ = ((*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
		if (!(T53_)) goto LA54_;
		T53_ = ((*dst).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9));
		LA54_: ;
		if (!T53_) goto LA55_;
		T57_ = (NIM_BOOL)0;
		T57_ = ((*src_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
		if (!(T57_)) goto LA58_;
		T57_ = ((*src_2).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9));
		LA58_: ;
		result = T57_;
		goto BeforeRet_;
	}
	goto LA41_;
	LA55_: ;
	{
		NIM_BOOL T60_;
		NIM_BOOL T61_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T63_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T65_;
		T60_ = (NIM_BOOL)0;
		T61_ = (NIM_BOOL)0;
		T61_ = (srcSize <= dstSize);
		if (T61_) goto LA62_;
		T63_ = NIM_NIL;
		T63_ = skipTypes__ast_3723(dst, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
		T61_ = ((*T63_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1) || (*T63_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*T63_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2) || (*T63_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*T63_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44));
		LA62_: ;
		T60_ = T61_;
		if (T60_) goto LA64_;
		T65_ = NIM_NIL;
		T65_ = skipTypes__ast_3723(src_2, TM__DKP9c7KM5AbqYVP6Gd9blNUw_6);
		T60_ = ((*T65_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1) || (*T65_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*T65_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2) || (*T65_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*T65_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44));
		LA64_: ;
		result = T60_;
		{
			NIM_BOOL T68_;
			T68_ = (NIM_BOOL)0;
			T68_ = result;
			if (!(T68_)) goto LA69_;
			T68_ = (srcSize < dstSize);
			LA69_: ;
			if (!T68_) goto LA70_;
			liMessage__msgs_1128(conf, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 70), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_732), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_733, NIM_FALSE);
		}
		LA70_: ;
	}
	LA41_: ;
	{
		NIM_BOOL T74_;
		T74_ = (NIM_BOOL)0;
		T74_ = result;
		if (!(T74_)) goto LA75_;
		T74_ = ((*src_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5));
		LA75_: ;
		if (!T74_) goto LA76_;
		result = ((*dst).size <= ((NI64) ((*conf).target.ptrSize)));
		goto BeforeRet_;
	}
	LA76_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semCast__sem_15637)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* targetType;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* castedExpr;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T27_;
	result = NIM_NIL;
	checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
	targetType = semTypeNode__sem_83(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	castedExpr = semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 1)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	{
		if (!((*castedExpr).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56))) goto LA3_;
		errorUseQualifier__lookups_2536(c, (*(*n)._kind_6.sons->data[((NI) 1)]).info, castedExpr);
	}
	LA3_: ;
	{
		if (!(targetType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA7_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_726), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_727, NIM_FALSE);
	}
	LA7_: ;
	{
		NimStringDesc* T13_;
		NimStringDesc* T14_;
		if (!(((*targetType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 21))&63U)))!=0)) goto LA11_;
		T13_ = NIM_NIL;
		T13_ = typeToString__types_50(targetType, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
		T14_ = NIM_NIL;
		T14_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_728), T13_);
		liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T14_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_729, NIM_FALSE);
	}
	LA11_: ;
	{
		NIM_BOOL T17_;
		NimStringDesc* tar;
		NimStringDesc* alt;
		NimStringDesc* msg;
		NimStringDesc* T26_;
		T17_ = (NIM_BOOL)0;
		T17_ = isCastable__sem_15388(c, targetType, (*castedExpr).typ, (*n).info);
		if (!!(T17_)) goto LA18_;
		tar = typeToString__types_50(targetType, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
		alt = typeToString__types_50(targetType, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 1));
		{
			NimStringDesc* T24_;
			if (!!(eqStrings(tar, alt))) goto LA22_;
			T24_ = NIM_NIL;
			T24_ = rawNewString((tar ? tar->Sup.len : 0) + (alt ? alt->Sup.len : 0) + 1);
appendString(T24_, tar);
appendString(T24_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_182));
appendString(T24_, alt);
			msg = T24_;
		}
		goto LA20_;
		LA22_: ;
		{
			msg = tar;
		}
		LA20_: ;
		T26_ = NIM_NIL;
		T26_ = rawNewString((msg ? msg->Sup.len : 0) + 29);
appendString(T26_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_734));
appendString(T26_, msg);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T26_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_735, NIM_FALSE);
	}
	LA18_: ;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 61), (*n).info);
	asgnRef((void**) (&(*result).typ), targetType);
	T27_ = NIM_NIL;
	T27_ = copyTree__ast_4432((*n)._kind_6.sons->data[((NI) 0)]);
	add__ast_4798(result, T27_);
	add__ast_4798(result, castedExpr);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExprBranch__sem_9919)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = semExpr__sem_52(c, n, flags, expectedType);
	{
		if (!!(((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA3_;
		{
			if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47))) goto LA7_;
			result = newDeref__lowerings_11(result);
		}
		LA7_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, endsInNoReturn__sem_420)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__clSgDh22o9au33BrVH9bDQZw) 115) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126));
			if (!(T3_)) goto LA4_;
			T5_ = (NI)0;
			T5_ = len__ast_3155(it);
			T3_ = (((NI) 0) < T5_);
			LA4_: ;
			if (!T3_) goto LA2;
			it = lastSon__ast_4833(it);
		} LA2: ;
	}
	T6_ = (NIM_BOOL)0;
	T6_ = ((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 108) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 109) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 110) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 111));
	if (T6_) goto LA7_;
	T8_ = (NIM_BOOL)0;
	T9_ = (NIM_BOOL)0;
	T9_ = ((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32));
	if (!(T9_)) goto LA10_;
	T9_ = ((*(*it)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__9be9c6fEXk5NwyPvxxb6toPA) 16))&63U)))!=0);
	LA11_: ;
	T6_ = T8_;
	LA7_: ;
	result = T6_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, commonType__sem_452)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* y) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = endsInNoReturn__sem_420(y);
		if (!T3_) goto LA4_;
		result = x;
		goto BeforeRet_;
	}
	LA4_: ;
	result = commonType__sem_241(c, x, (*y).typ);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExprBranchScope__sem_9933)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	result = semExprBranch__sem_9919(c, n, 0, expectedType);
	closeScope__lookups_108(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semIf__sem_10032)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType_2;
	NIM_BOOL hasElse;
	result = NIM_NIL;
	result = n;
	T1_ = NIM_NIL;
	T1_ = (tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) newObj((&NTIptype__q1v0zzhoMWrhMLs6UEp1IA_), sizeof(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA));
	(*T1_).Sup.Sup.m_type = (&NTIttype__kQDDJGUiaUAtO9c9b6LjZYjA_);
	(*T1_).kind = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6);
	typ = T1_;
	expectedType_2 = expectedType;
	hasElse = NIM_FALSE;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NI T7_;
					tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T10_;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T11_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T12_;
					T7_ = (NI)0;
					T7_ = len__ast_3155(it);
					if (!(T7_ == ((NI) 2))) goto LA8_;
					T10_ = NIM_NIL;
					T10_ = openScope__lookups_76(c);
					T11_ = NIM_NIL;
					T11_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
					T12_ = NIM_NIL;
					T12_ = semExprWithType__sem_57(c, (*it)._kind_6.sons->data[((NI) 0)], 0, T11_);
					asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 0)]), forceBool__sem_2933(c, T12_));
					asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 1)]), semExprBranch__sem_9919(c, (*it)._kind_6.sons->data[((NI) 1)], flags, expectedType_2));
					typ = commonType__sem_452(c, typ, (*it)._kind_6.sons->data[((NI) 1)]);
					expectedType_2 = typ;
					closeScope__lookups_108(c);
				}
				goto LA5_;
				LA8_: ;
				{
					NI T14_;
					T14_ = (NI)0;
					T14_ = len__ast_3155(it);
					if (!(T14_ == ((NI) 1))) goto LA15_;
					hasElse = NIM_TRUE;
					asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 0)]), semExprBranchScope__sem_9933(c, (*it)._kind_6.sons->data[((NI) 0)], expectedType_2));
					typ = commonType__sem_452(c, typ, (*it)._kind_6.sons->data[((NI) 0)]);
					expectedType_2 = typ;
				}
				goto LA5_;
				LA15_: ;
				{
					illFormedAst__semdata_1101(it, (*(*c).graph).config);
				}
				LA5_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NIM_BOOL T20_;
		NIM_BOOL T21_;
		NIM_BOOL T24_;
		T20_ = (NIM_BOOL)0;
		T21_ = (NIM_BOOL)0;
		T21_ = isEmptyType__ast_4780(typ);
		if (T21_) goto LA22_;
		T21_ = ((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5) || (*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6));
		LA22_: ;
		T20_ = T21_;
		if (T20_) goto LA23_;
		T24_ = (NIM_BOOL)0;
		T24_ = !(hasElse);
		if (!(T24_)) goto LA25_;
		T24_ = !(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 3))&31U)))!=0));
		LA25_: ;
		T20_ = T24_;
		LA23_: ;
		if (!T20_) goto LA26_;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(n);
				i_4 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T32_;
						if (!(i_4 < colontmp__2)) goto LA31;
						i_3 = i_4;
						it_2 = (*n)._kind_6.sons->data[i_3];
						T32_ = NIM_NIL;
						T32_ = lastSon__ast_4833(it_2);
						discardCheck__sem_9980(c, T32_, flags);
						i_4 += ((NI) 1);
					} LA31: ;
				}
			}
		}
		transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 92));
		{
			if (!(typ == (*c).enforceVoidContext)) goto LA35_;
			asgnRef((void**) (&(*result).typ), (*c).enforceVoidContext);
		}
		LA35_: ;
	}
	goto LA18_;
	LA26_: ;
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(n);
				i_6 = ((NI) 0);
				{
					while (1) {
						NI j;
						NI T42_;
						if (!(i_6 < colontmp__3)) goto LA41;
						i_5 = i_6;
						it_3 = (*n)._kind_6.sons->data[i_5];
						T42_ = (NI)0;
						T42_ = len__ast_3155(it_3);
						j = (NI)(T42_ - ((NI) 1));
						{
							NIM_BOOL T45_;
							T45_ = (NIM_BOOL)0;
							T45_ = endsInNoReturn__sem_420((*it_3)._kind_6.sons->data[j]);
							if (!!(T45_)) goto LA46_;
							asgnRef((void**) (&(*it_3)._kind_6.sons->data[j]), fitNode__sem_73(c, typ, (*it_3)._kind_6.sons->data[j], (*(*it_3)._kind_6.sons->data[j]).info));
						}
						LA46_: ;
						i_6 += ((NI) 1);
					} LA41: ;
				}
			}
		}
		transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 48));
		asgnRef((void**) (&(*result).typ), typ);
	}
	LA18_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTableConstr__sem_20209)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI lastKey;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41), (*n).info);
	lastKey = ((NI) 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				x = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T6_;
					NI T8_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pair_2;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34));
					if (!(T6_)) goto LA7_;
					T8_ = (NI)0;
					T8_ = len__ast_3155(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__uh9cWvEa5Ty85PXOtuP5emw* pair;
								if (!(i_3 < i)) goto LA13;
								j = i_3;
								pair = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160), (*x).info);
								add__ast_4798(pair, (*n)._kind_6.sons->data[j]);
								add__ast_4798(pair, (*x)._kind_6.sons->data[((NI) 1)]);
								add__ast_4798(result, pair);
								i_3 += ((NI) 1);
							} LA13: ;
						}
					}
					pair_2 = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160), (*x).info);
					add__ast_4798(pair_2, (*x)._kind_6.sons->data[((NI) 0)]);
					add__ast_4798(pair_2, (*x)._kind_6.sons->data[((NI) 1)]);
					add__ast_4798(result, pair_2);
					lastKey = (NI)(i + ((NI) 1));
				}
				LA9_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI T16_;
		T16_ = (NI)0;
		T16_ = len__ast_3155(n);
		if (!!((lastKey == T16_))) goto LA17_;
		illFormedAst__semdata_1101(n, (*(*c).graph).config);
	}
	LA17_: ;
	result = semExpr__sem_52(c, result, 0, expectedType);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semBlock__sem_21242)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	result = NIM_NIL;
	result = n;
	(*(*c).p).nestedBlockCounter += ((NI) 1);
	checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* labl;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA4_;
		labl = newSymG__sem_462(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 22), (*n)._kind_6.sons->data[((NI) 0)], c);
		{
			if (!!((((*labl).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0))) goto LA8_;
			addDecl__lookups_1517(c, labl);
		}
		goto LA6_;
		LA8_: ;
		{
			if (!((*labl).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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_3707(labl, (*(*n)._kind_6.sons->data[((NI) 0)]).info));
		suggestSym__sigmatch_5404((*c).graph, (*(*n)._kind_6.sons->data[((NI) 0)]).info, labl, &(*(*c).graph).usageSym, NIM_TRUE);
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			NIM_BOOL T17_;
			NIM_BOOL T18_;
			NIM_BOOL T19_;
			NIM_BOOL T20_;
			NIM_BOOL T21_;
			NIM_BOOL T22_;
			NIM_BOOL T23_;
			NIM_BOOL T24_;
			NIM_BOOL T25_;
			NIM_BOOL T35_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T17_ = (NIM_BOOL)0;
			T18_ = (NIM_BOOL)0;
			T19_ = (NIM_BOOL)0;
			T20_ = (NIM_BOOL)0;
			T21_ = (NIM_BOOL)0;
			T22_ = (NIM_BOOL)0;
			T23_ = (NIM_BOOL)0;
			T24_ = (NIM_BOOL)0;
			T25_ = (NIM_BOOL)0;
			T25_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
			if (!(T25_)) goto LA26_;
			T25_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
			LA26_: ;
			T24_ = T25_;
			if (!(T24_)) goto LA27_;
			T24_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
			LA27_: ;
			T23_ = T24_;
			if (!(T23_)) goto LA28_;
			T23_ = belongsToProjectPackage__packages_50((*(*c).graph).config, labl);
			LA28_: ;
			T22_ = T23_;
			if (!(T22_)) goto LA29_;
			T22_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
			LA29_: ;
			T21_ = T22_;
			if (!(T21_)) goto LA30_;
			T21_ = !(((*labl).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
			LA30_: ;
			T20_ = T21_;
			if (!(T20_)) goto LA31_;
			T20_ = !(((*labl).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
			LA31_: ;
			T19_ = T20_;
			if (!(T19_)) goto LA32_;
			T19_ = ((Letters__linter_12[(NU)(((NU8)((*(*labl).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*labl).name).s->data[((NI) 0)])))&7U)))!=0);
			LA32_: ;
			T18_ = T19_;
			if (!(T18_)) goto LA33_;
			T18_ = !(((144 &((NU32)1<<((NU)((*labl).kind)&31U)))!=0));
			LA33_: ;
			T17_ = T18_;
			if (!(T17_)) goto LA34_;
			T35_ = (NIM_BOOL)0;
			T35_ = ((*labl).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			if (T35_) goto LA36_;
			T35_ = !(((*(*labl).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
			LA36_: ;
			T17_ = T35_;
			LA34_: ;
			T16_ = T17_;
			if (!(T16_)) goto LA37_;
			T16_ = ((192 & (*labl).flags) == 0);
			LA37_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA38_;
			T15_ = !((((*labl).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
			LA38_: ;
			if (!T15_) goto LA39_;
			nep1CheckDefImpl__linter_112((*(*c).graph).config, (*labl).info, labl, (*labl).kind);
		}
		LA39_: ;
	}
	LA4_: ;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 1)], flags, expectedType));
	asgnRef((void**) (&(*n).typ), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	{
		NIM_BOOL T43_;
		T43_ = (NIM_BOOL)0;
		T43_ = isEmptyType__ast_4780((*n).typ);
		if (!T43_) goto LA44_;
		transitionSonsKind__ast_4347(n, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 112));
	}
	goto LA41_;
	LA44_: ;
	{
		transitionSonsKind__ast_4347(n, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 127));
	}
	LA41_: ;
	closeScope__lookups_108(c);
	(*(*c).p).nestedBlockCounter -= ((NI) 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, inferConceptStaticParam__sem_14821)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* inferred, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* res;
	typ = (*inferred).typ;
	res = semConstExpr__sem_619(c, n, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T3_;
		NIM_BOOL T4_;
		NimStringDesc* T7_;
		tyArray__24KAM9afIUgUaqBaEBB6r9bg T8_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T9_;
		NimStringDesc* T10_;
		T3_ = NIM_NIL;
		T3_ = base__types_63(typ);
		T4_ = (NIM_BOOL)0;
		T4_ = sameType__types_1886((*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__lx9aDnWjKktcSUo0yfjOvMg) 0));
		T9_ = NIM_NIL;
		T9_ = base__types_63(typ);
		T8_[2] = typeToString__types_50(T9_, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
		T10_ = NIM_NIL;
		T10_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_738), T8_, 3);
		T7_ = rawNewString((T10_ ? T10_->Sup.len : 0) + 65);
appendString(T7_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_737));
appendString(T7_, T10_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T7_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_739, NIM_FALSE);
	}
	LA5_: ;
	asgnRef((void**) (&(*typ).n), res);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semStmtList__sem_14827)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NIM_BOOL voidContext;
	NI last;
	NI T1_;
	result = NIM_NIL;
	result = n;
	transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 115));
	voidContext = NIM_FALSE;
	T1_ = (NI)0;
	T1_ = len__ast_3155(n);
	last = (NI)(T1_ - ((NI) 1));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T6_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* m;
					T6_ = NIM_NIL;
					{
						NI T9_;
						T9_ = (NI)0;
						T9_ = len__ast_3155(n);
						if (!(i == (NI)(T9_ - ((NI) 1)))) goto LA10_;
						T6_ = expectedType;
					}
					goto LA7_;
					LA10_: ;
					{
						T6_ = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
					}
					LA7_: ;
					x = semExpr__sem_52(c, (*n)._kind_6.sons->data[i], flags, T6_);
					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), x);
					{
						NIM_BOOL T15_;
						NIM_BOOL T16_;
						NIM_BOOL T19_;
						T15_ = (NIM_BOOL)0;
						T16_ = (NIM_BOOL)0;
						T16_ = !(((*c).matchedConcept == ((tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw*) NIM_NIL)));
						if (!(T16_)) goto LA17_;
						T16_ = !(((*x).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
						LA17_: ;
						T15_ = T16_;
						if (!(T15_)) goto LA18_;
						T19_ = (NIM_BOOL)0;
						T19_ = !((((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 17))&31U)))!=0));
						if (T19_) goto LA20_;
						T19_ = !((i == last));
						LA20_: ;
						T15_ = T19_;
						LA18_: ;
						if (!T15_) goto LA21_;
						switch ((*(*x).typ).kind) {
						case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1):
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* verdict;
							{
								NIM_BOOL T26_;
								NIM_BOOL T27_;
								T26_ = (NIM_BOOL)0;
								T27_ = (NIM_BOOL)0;
								T27_ = ((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29));
								if (!(T27_)) goto LA28_;
								T27_ = ((*(*x)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
								LA28_: ;
								T26_ = T27_;
								if (!(T26_)) goto LA29_;
								T26_ = eqStrings((*(*(*(*x)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_736));
								LA29_: ;
								if (!T26_) goto LA30_;
								{
									NIM_BOOL T34_;
									T34_ = (NIM_BOOL)0;
									T34_ = isUnresolvedStatic__ast_3496((*(*x)._kind_6.sons->data[((NI) 1)]).typ);
									if (!T34_) goto LA35_;
									inferConceptStaticParam__sem_14821(c, (*x)._kind_6.sons->data[((NI) 1)], (*x)._kind_6.sons->data[((NI) 2)]);
									goto LA5;
								}
								goto LA32_;
								LA35_: ;
								{
									NIM_BOOL T38_;
									T38_ = (NIM_BOOL)0;
									T38_ = isUnresolvedStatic__ast_3496((*(*x)._kind_6.sons->data[((NI) 2)]).typ);
									if (!T38_) goto LA39_;
									inferConceptStaticParam__sem_14821(c, (*x)._kind_6.sons->data[((NI) 2)], (*x)._kind_6.sons->data[((NI) 1)]);
									goto LA5;
								}
								goto LA32_;
								LA39_: ;
								LA32_: ;
							}
							LA30_: ;
							verdict = semConstExpr__sem_619(c, (*n)._kind_6.sons->data[i], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
							{
								NIM_BOOL T43_;
								NIM_BOOL T44_;
								T43_ = (NIM_BOOL)0;
								T44_ = (NIM_BOOL)0;
								T44_ = (verdict == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
								if (T44_) goto LA45_;
								T44_ = !(((*verdict).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6)));
								LA45_: ;
								T43_ = T44_;
								if (T43_) goto LA46_;
								T43_ = ((*verdict)._kind_1.intVal == IL64(0));
								LA46_: ;
								if (!T43_) goto LA47_;
								liMessage__msgs_1128((*(*c).graph).config, (*result).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_740), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_741, NIM_FALSE);
							}
							LA47_: ;
						}
						break;
						case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 61):
						{
							goto LA5;
						}
						break;
						default:
						{
						}
						break;
						}
					}
					LA21_: ;
					{
						if (!((*(*n)._kind_6.sons->data[i]).typ == (*c).enforceVoidContext)) goto LA53_;
						voidContext = NIM_TRUE;
						asgnRef((void**) (&(*n).typ), (*c).enforceVoidContext);
					}
					LA53_: ;
					{
						NIM_BOOL T57_;
						NIM_BOOL T59_;
						NI T60_;
						T57_ = (NIM_BOOL)0;
						T57_ = (i == last);
						if (!(T57_)) goto LA58_;
						T59_ = (NIM_BOOL)0;
						T60_ = (NI)0;
						T60_ = len__ast_3155(n);
						T59_ = (T60_ == ((NI) 1));
						if (T59_) goto LA61_;
						T59_ = !(((2056 & flags) == 0));
						LA61_: ;
						T57_ = T59_;
						LA58_: ;
						if (!T57_) goto LA62_;
						asgnRef((void**) (&(*n).typ), (*(*n)._kind_6.sons->data[i]).typ);
						{
							NIM_BOOL T66_;
							T66_ = (NIM_BOOL)0;
							T66_ = isEmptyType__ast_4780((*n).typ);
							if (!!(T66_)) goto LA67_;
							transitionSonsKind__ast_4347(n, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 126));
						}
						LA67_: ;
					}
					goto LA55_;
					LA62_: ;
					{
						NIM_BOOL T70_;
						T70_ = (NIM_BOOL)0;
						T70_ = !((i == last));
						if (T70_) goto LA71_;
						T70_ = voidContext;
						LA71_: ;
						if (!T70_) goto LA72_;
						discardCheck__sem_9980(c, (*n)._kind_6.sons->data[i], flags);
					}
					goto LA55_;
					LA72_: ;
					{
						asgnRef((void**) (&(*n).typ), (*(*n)._kind_6.sons->data[i]).typ);
						{
							NIM_BOOL T77_;
							T77_ = (NIM_BOOL)0;
							T77_ = isEmptyType__ast_4780((*n).typ);
							if (!!(T77_)) goto LA78_;
							transitionSonsKind__ast_4347(n, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 126));
						}
						LA78_: ;
					}
					LA55_: ;
					m = (*n)._kind_6.sons->data[i];
					{
						while (1) {
							NIM_BOOL T82_;
							NI T84_;
							T82_ = (NIM_BOOL)0;
							T82_ = ((*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126) || (*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115));
							if (!(T82_)) goto LA83_;
							T84_ = (NI)0;
							T84_ = len__ast_3155(m);
							T82_ = (((NI) 0) < T84_);
							LA83_: ;
							if (!T82_) goto LA81;
							m = lastSon__ast_4833(m);
						} LA81: ;
					}
					{
						NIM_BOOL T87_;
						NIM_BOOL T89_;
						NIM_BOOL T90_;
						T87_ = (NIM_BOOL)0;
						T87_ = ((*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 108) || (*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 109) || (*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 110) || (*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 111));
						if (T87_) goto LA88_;
						T89_ = (NIM_BOOL)0;
						T90_ = (NIM_BOOL)0;
						T90_ = ((*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32));
						if (!(T90_)) goto LA91_;
						T90_ = ((*(*m)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
						LA91_: ;
						T89_ = T90_;
						if (!(T89_)) goto LA92_;
						T89_ = (((*(*(*m)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 16))&63U)))!=0);
						LA92_: ;
						T87_ = T89_;
						LA88_: ;
						if (!T87_) goto LA93_;
						{
							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_3155(n);
							i_3 = colontmp__2;
							{
								while (1) {
									if (!(i_3 < colontmp__3)) goto LA97;
									j = i_3;
									switch ((*(*n)._kind_6.sons->data[j]).kind) {
									case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 90):
									case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
									case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
									case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
									case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 157):
									{
									}
									break;
									default:
									{
										liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 46), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_742, NIM_FALSE);
									}
									break;
									}
									i_3 += ((NI) 1);
								} LA97: ;
							}
						}
					}
					goto LA85_;
					LA93_: ;
					{
					}
					LA85_: ;
				} LA5: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NIM_BOOL T103_;
		NIM_BOOL T104_;
		NIM_BOOL T105_;
		NI T106_;
		T103_ = (NIM_BOOL)0;
		T104_ = (NIM_BOOL)0;
		T105_ = (NIM_BOOL)0;
		T106_ = (NI)0;
		T106_ = len__ast_3155(result);
		T105_ = (T106_ == ((NI) 1));
		if (!(T105_)) goto LA107_;
		T105_ = ((*c).matchedConcept == ((tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw*) NIM_NIL));
		LA107_: ;
		T104_ = T105_;
		if (!(T104_)) goto LA108_;
		T104_ = !((((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 16))&31U)))!=0));
		LA108_: ;
		T103_ = T104_;
		if (!(T103_)) goto LA109_;
		T103_ = !(((*(*result)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 105)));
		LA109_: ;
		if (!T103_) goto LA110_;
		result = (*result)._kind_6.sons->data[((NI) 0)];
	}
	LA110_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semRaise__sem_12505)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1107(n, ((NI) 1), (*(*c).graph).config);
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA3_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 0)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		typ = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = isImportedException__ast_4905(typ, (*(*c).graph).config);
			if (!!(T7_)) goto LA8_;
			typ = skipTypes__ast_3723(typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_743);
			{
				if (!!(((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22)))) goto LA12_;
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_744), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_745, NIM_FALSE);
			}
			LA12_: ;
			{
				NIM_BOOL T16_;
				NI T17_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T19_;
				NIM_BOOL T20_;
				NimStringDesc* T23_;
				NimStringDesc* T24_;
				T16_ = (NIM_BOOL)0;
				T17_ = (NI)0;
				T17_ = len__ast_3990(typ);
				T16_ = (((NI) 0) < T17_);
				if (!(T16_)) goto LA18_;
				T19_ = NIM_NIL;
				T19_ = lastSon__ast_3731(typ);
				T20_ = (NIM_BOOL)0;
				T20_ = isException__types_4064(T19_);
				T16_ = !(T20_);
				LA18_: ;
				if (!T16_) goto LA21_;
				T23_ = NIM_NIL;
				T23_ = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
				T24_ = NIM_NIL;
				T24_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_746), T23_);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T24_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_747, NIM_FALSE);
			}
			LA21_: ;
		}
		LA8_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semLowerLetVarCustomPragma__sem_10652)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
{	result = NIM_NIL;
	b = (*a)._kind_6.sons->data[((NI) 0)];
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nodePragma;
		NIM_BOOL amb;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* lhs;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* clash;
		tyArray__DkuVegaMCU6g1mpIOSQPIw T41_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ret;
		if (!((*b).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43))) goto LA3_;
		{
			NI T7_;
			T7_ = (NI)0;
			T7_ = len__ast_3155((*b)._kind_6.sons->data[((NI) 1)]);
			if (!!((T7_ == ((NI) 1)))) goto LA8_;
			result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL);
		switch ((*nodePragma).kind) {
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
		{
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* userPragma;
			tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw w;
			ident = considerQuotedIdent__lookups_29(c, nodePragma, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
			userPragma = strTableGet__astalgo_3383((*c).userPragmas, ident);
			{
				if (!!((userPragma == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA13_;
				result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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__clSgDh22o9au33BrVH9bDQZw) 99));
				if (!(T19_)) goto LA20_;
				T19_ = ((TM__DKP9c7KM5AbqYVP6Gd9blNUw_125[(NU)(w)>>3] &(1U<<((NU)(w)&7U)))!=0);
				LA20_: ;
				T18_ = T19_;
				if (T18_) goto LA21_;
				T22_ = (NIM_BOOL)0;
				T22_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 100));
				if (!(T22_)) goto LA23_;
				T22_ = ((TM__DKP9c7KM5AbqYVP6Gd9blNUw_125[(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__clSgDh22o9au33BrVH9bDQZw) 101));
				if (!(T25_)) goto LA26_;
				T25_ = ((TM__DKP9c7KM5AbqYVP6Gd9blNUw_126[(NU)(w)>>3] &(1U<<((NU)(w)&7U)))!=0);
				LA26_: ;
				T17_ = T25_;
				LA24_: ;
				if (!T17_) goto LA27_;
				result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
				goto BeforeRet_;
			}
			LA27_: ;
			sym = searchInScopes__lookups_603(c, ident, (&amb));
			{
				NIM_BOOL T31_;
				T31_ = (NIM_BOOL)0;
				T31_ = (sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
				if (T31_) goto LA32_;
				T31_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 10))&63U)))!=0);
				LA32_: ;
				if (!T31_) goto LA33_;
				result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
				goto BeforeRet_;
			}
			LA33_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
		{
			sym = (*nodePragma)._kind_4.sym;
		}
		break;
		default:
		{
			result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA39_;
			wrongRedefinition__lookups_985(c, (*lhs).info, (*(*lhs)._kind_5.ident).s, (*clash).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15));
		}
		LA39_: ;
		nimZeroMem((void*)T41_, sizeof(tyArray__DkuVegaMCU6g1mpIOSQPIw));
		result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), T41_, 0);
		add__ast_4798(result, nodePragma);
		add__ast_4798(result, lhs);
		{
			if (!!(((*(*a)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA44_;
			add__ast_4798(result, (*a)._kind_6.sons->data[((NI) 1)]);
		}
		goto LA42_;
		LA44_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T47_;
			T47_ = NIM_NIL;
			T47_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23), (*a).info, (*(*c).graph).sysTypes[(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5))- 0]);
			add__ast_4798(result, T47_);
		}
		LA42_: ;
		add__ast_4798(result, (*a)._kind_6.sons->data[((NI) 2)]);
		(*result).info = (*a).info;
		ret = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*a).info);
		add__ast_4798(ret, result);
		result = semExprNoType__sem_62(c, ret);
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, errorSymChoiceUseQualifier__sem_10750)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NimStringDesc* err;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	NI i;
	T1_ = NIM_NIL;
	T2_ = NIM_NIL;
	T2_ = dollar___renderer_2116((*n)._kind_6.sons->data[((NI) 0)]);
	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 24);
appendString(T1_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_748));
appendString(T1_, T2_);
appendString(T1_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_31));
	err = T1_;
	i = ((NI) 0);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* child;
		child = NIM_NIL;
		{
			NI i_2;
			NI colontmp_;
			NI i_3;
			i_2 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(n);
			i_3 = ((NI) 0);
			{
				while (1) {
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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__DKP9c7KM5AbqYVP6Gd9blNUw_749));
					}
					goto LA7_;
					LA9_: ;
					{
						err = resizeString(err, 1);
appendString(err, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_282));
					}
					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__DKP9c7KM5AbqYVP6Gd9blNUw_750));
appendString(T12_, (*(*(*candidate).owner).name).s);
appendString(T12_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_214));
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_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), err, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_751, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasEmpty__sem_9784)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T5_;
		if (!((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24) || (*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16) || (*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = lastSon__ast_3731(typ);
		result = ((*T5_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 3));
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18))) goto LA7_;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA** s;
			NI i;
			NI L;
			NI T10_;
			s = (tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA**)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_9784((*s));
					LA14_: ;
					result = T13_;
					i += ((NI) 1);
				} LA12: ;
			}
		}
	}
	goto LA1_;
	LA7_: ;
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addToVarSection__sem_10414)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* identDefs) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* value;
	NI T1_;
	T1_ = (NI)0;
	T1_ = len__ast_3155(identDefs);
	value = (*identDefs)._kind_6.sons->data[(NI)(T1_ - ((NI) 1))];
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* o;
		if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115))) goto LA4_;
		o = copyNode__ast_4324(orig);
		add__ast_4798(o, identDefs);
		add__ast_4798(result, o);
	}
	goto LA2_;
	LA4_: ;
	{
		add__ast_4798(result, identDefs);
	}
	LA2_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, fillPartialObject__sem_10613)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ) {
	{
		NI T3_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* y;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* obj;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		x = semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 0)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		y = considerQuotedIdent__lookups_29(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		obj = skipTypes__ast_3723((*x).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_102);
		{
			NIM_BOOL T8_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* field;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T12_;
			tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T13_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T14_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((*obj).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17));
			if (!(T8_)) goto LA9_;
			T8_ = (((*obj).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 16))&63U)))!=0);
			LA9_: ;
			if (!T8_) goto LA10_;
			T12_ = NIM_NIL;
			T12_ = getIdent__idents_152((*c).cache, (*y).s);
			T13_ = nextSymId__ast_3103((*c).Sup.idgen);
			field = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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_3155((*obj).n);
			T14_ = NIM_NIL;
			T14_ = newSymNode__ast_3704(field);
			add__ast_4798((*obj).n, T14_);
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), makeDeref__sem_10575(x));
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), newSymNode__ast_3704(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__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T16_ = rawNewString((T17_ ? T17_->Sup.len : 0) + 71);
appendString(T16_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_761));
appendString(T16_, T17_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T16_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_762, NIM_FALSE);
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_763), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_764, NIM_FALSE);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDiscardUnderscore__sem_10442)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!eqStrings((*(*v).name).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_684))) goto LA3_;
		(*v).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37)) & 63);
		result = NIM_TRUE;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, findShadowedVar__sem_10331)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
{	result = NIM_NIL;
	{
		tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* scope;
		scope = NIM_NIL;
		{
			tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* s;
			tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* current;
			s = NIM_NIL;
			current = (*(*c).currentScope).parent;
			{
				while (1) {
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* shadowed;
					if (!!((current == ((tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ*) 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__3r34mwqcVmg5JFNmiaVncw*) 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_10644)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NimStringDesc* T8_;
		NimStringDesc* T9_;
		NimStringDesc* T10_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*v).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = sameTypeOrNil__types_1910((*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__lx9aDnWjKktcSUo0yfjOvMg) 1));
		T10_ = NIM_NIL;
		T10_ = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 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__DKP9c7KM5AbqYVP6Gd9blNUw_768));
appendString(T8_, (*(*v).name).s);
appendString(T8_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_769));
appendString(T8_, T9_);
appendString(T8_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_770));
appendString(T8_, T10_);
		liMessage__msgs_1128((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T8_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_771, NIM_FALSE);
	}
	LA6_: ;
	asgnRef((void**) (&(*v).typ), typ);
}
N_LIB_PRIVATE N_NIMCALL(void, defaultConstructionError__sem_142)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* objType;
	objType = t;
	{
		while (1) {
			if (!!(((*objType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17) || (*objType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13)))) goto LA2;
			objType = lastSon__ast_3731(objType);
		} LA2: ;
	}
	{
		tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ constrCtx;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T7_;
		tyEnum_InitStatus__ge4sTzsHQ4LIYUWpl3QrVQ initResult;
		if (!((*objType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17))) goto LA5_;
		nimZeroMem((void*)(&constrCtx), sizeof(tyObject_ObjConstrContext__0GmjX9aplAYKmv421vFLjOQ));
		T7_ = NIM_NIL;
		T7_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38), info);
		initConstrContext__sem_21075(objType, T7_, (&constrCtx));
		initResult = semConstructTypeAux__sem_21050(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__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T13_[1] = listSymbolNames__astalgo_4303((constrCtx.missingFields) ? (constrCtx.missingFields->data) : NIM_NIL, (constrCtx.missingFields ? constrCtx.missingFields->Sup.len : 0));
			T14_ = NIM_NIL;
			T14_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_773), T13_, 2);
			liMessage__msgs_1128((*(*c).graph).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T14_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_774, NIM_FALSE);
		}
		LA11_: ;
	}
	goto LA3_;
	LA5_: ;
	{
		NimStringDesc* T18_;
		NimStringDesc* T19_;
		if (!((*objType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13))) goto LA16_;
		T18_ = NIM_NIL;
		T18_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
		T19_ = NIM_NIL;
		T19_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_775), T18_);
		liMessage__msgs_1128((*(*c).graph).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T19_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_776, NIM_FALSE);
	}
	goto LA3_;
	LA16_: ;
	{
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, checkNilable__sem_10389)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((72 & (*v).flags) == 8);
		if (!(T3_)) goto LA4_;
		T3_ = requiresInit__typeallowed_593((*v).typ);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T9_;
			T9_ = NIM_NIL;
			T9_ = astdef__ast_3462(v);
			if (!(T9_ == 0)) goto LA10_;
			liMessage__msgs_1128((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 42), (*(*v).name).s, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_777, NIM_FALSE);
		}
		goto LA7_;
		LA10_: ;
		{
			NIM_BOOL T13_;
			NIM_BOOL T14_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T16_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
			T13_ = (NIM_BOOL)0;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*(*v).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 17))&63U)))!=0);
			if (!(T14_)) goto LA15_;
			T16_ = NIM_NIL;
			T16_ = astdef__ast_3462(v);
			T14_ = !(((*T16_).typ == 0));
			LA15_: ;
			T13_ = T14_;
			if (!(T13_)) goto LA17_;
			T18_ = NIM_NIL;
			T18_ = astdef__ast_3462(v);
			T13_ = !((((*(*T18_).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 17))&63U)))!=0));
			LA17_: ;
			if (!T13_) goto LA19_;
			liMessage__msgs_1128((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 42), (*(*v).name).s, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_778, NIM_FALSE);
		}
		goto LA7_;
		LA19_: ;
		LA7_: ;
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, usesLocalVar__sem_10771)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NI z;
		NI colontmp_;
		NI i;
		z = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i = ((NI) 1);
		{
			while (1) {
				if (!(i < colontmp_)) goto LA3;
				z = i;
				{
					NIM_BOOL T6_;
					NIM_BOOL T7_;
					NIM_BOOL T10_;
					T6_ = (NIM_BOOL)0;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*(*n)._kind_6.sons->data[z]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
					if (!(T7_)) goto LA8_;
					T7_ = ((768 &((NU32)1<<((NU)((*(*(*n)._kind_6.sons->data[z])._kind_4.sym).kind)&31U)))!=0);
					LA8_: ;
					T6_ = T7_;
					if (!(T6_)) goto LA9_;
					T10_ = (NIM_BOOL)0;
					T10_ = !(((2056 & (*(*(*n)._kind_6.sons->data[z])._kind_4.sym).flags) == 0));
					if (T10_) goto LA11_;
					T10_ = (((*(*(*n)._kind_6.sons->data[z])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 28))&63U)))!=0);
					LA11_: ;
					T6_ = !(T10_);
					LA9_: ;
					if (!T6_) goto LA12_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				goto LA4_;
				LA12_: ;
				{
					if (!((*(*n)._kind_6.sons->data[z]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*(*n)._kind_6.sons->data[z]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*(*n)._kind_6.sons->data[z]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*(*n)._kind_6.sons->data[z]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*(*n)._kind_6.sons->data[z]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*(*n)._kind_6.sons->data[z]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*(*n)._kind_6.sons->data[z]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32))) goto LA15_;
					{
						NIM_BOOL T19_;
						T19_ = (NIM_BOOL)0;
						T19_ = usesLocalVar__sem_10771((*n)._kind_6.sons->data[z]);
						if (!T19_) goto LA20_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA20_: ;
				}
				goto LA4_;
				LA15_: ;
				LA4_: ;
				i += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, globalVarInitCheck__sem_10809)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NIM_BOOL T8_;
		NIM_BOOL T11_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
		if (!(T5_)) goto LA6_;
		T5_ = ((768 &((NU32)1<<((NU)((*(*n)._kind_4.sym).kind)&31U)))!=0);
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA7_;
		T8_ = (NIM_BOOL)0;
		T8_ = !(((2056 & (*(*n)._kind_4.sym).flags) == 0));
		if (T8_) goto LA9_;
		T8_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 28))&63U)))!=0);
		LA9_: ;
		T4_ = !(T8_);
		LA7_: ;
		T3_ = T4_;
		if (T3_) goto LA10_;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32));
		if (!(T11_)) goto LA12_;
		T11_ = usesLocalVar__sem_10771(n);
		LA12_: ;
		T3_ = T11_;
		LA10_: ;
		if (!T3_) goto LA13_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_784), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_785, NIM_FALSE);
	}
	LA13_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semVarOrLet__sem_10836)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw symkind) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 1))) goto LA4_;
		result = semLowerLetVarCustomPragma__sem_10652(c, (*n)._kind_6.sons->data[((NI) 0)], n);
		{
			if (!!((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA8_;
			goto BeforeRet_;
		}
		LA8_: ;
	}
	LA4_: ;
	b = NIM_NIL;
	result = copyNode__ast_4324(n);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA12;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
					tySet_tyEnum_TTypeAllowedFlag__Onpom0WAnwwvAeCSboHTQA typFlags;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* def;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tup;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*(*(*c).graph).config).cmd == ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 11))) goto LA16_;
						suggestStmt__sigmatch_6347(c, a);
					}
					LA16_: ;
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125))) goto LA20_;
						goto LA13;
					}
					LA20_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36)))) goto LA24_;
						illFormedAst__semdata_1101(a, (*(*c).graph).config);
					}
					LA24_: ;
					checkMinSonsLen__semdata_1114(a, ((NI) 3), (*(*c).graph).config);
					typ = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
					{
						NI T28_;
						NI T31_;
						T28_ = (NI)0;
						T28_ = len__ast_3155(a);
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T28_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA29_;
						T31_ = (NI)0;
						T31_ = len__ast_3155(a);
						typ = semTypeNode__sem_83(c, (*a)._kind_6.sons->data[(NI)(T31_ - ((NI) 2))], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					}
					LA29_: ;
					nimZeroMem((void*)(&typFlags), sizeof(tySet_tyEnum_TTypeAllowedFlag__Onpom0WAnwwvAeCSboHTQA));
					def = (*(*c).graph).emptyNode;
					{
						NI T34_;
						NI T37_;
						T34_ = (NI)0;
						T34_ = len__ast_3155(a);
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T34_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA35_;
						T37_ = (NI)0;
						T37_ = len__ast_3155(a);
						def = semExprWithType__sem_57(c, (*a)._kind_6.sons->data[(NI)(T37_ - ((NI) 1))], 0, typ);
						{
							NIM_BOOL T40_;
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T42_;
							T40_ = (NIM_BOOL)0;
							T40_ = ((*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56) || (*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57));
							if (!(T40_)) goto LA41_;
							T42_ = NIM_NIL;
							T42_ = skipTypes__ast_3723((*(*def)._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
							T40_ = ((*T42_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14));
							LA41_: ;
							if (!T40_) goto LA43_;
							errorSymChoiceUseQualifier__sem_10750(c, def);
						}
						goto LA38_;
						LA43_: ;
						{
							NIM_BOOL T46_;
							T46_ = (NIM_BOOL)0;
							T46_ = ((*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__Onpom0WAnwwvAeCSboHTQA) 5)) & 7);
						}
						goto LA38_;
						LA48_: ;
						{
							NIM_BOOL T51_;
							T51_ = (NIM_BOOL)0;
							T51_ = ((*(*def).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
							if (!(T51_)) goto LA52_;
							T51_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17)));
							LA52_: ;
							if (!T51_) goto LA53_;
							typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__Onpom0WAnwwvAeCSboHTQA) 6)) & 7);
						}
						goto LA38_;
						LA53_: ;
						LA38_: ;
						{
							if (!!((typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA57_;
							{
								NIM_BOOL T61_;
								T61_ = (NIM_BOOL)0;
								T61_ = isMetaType__ast_3474(typ);
								if (!T61_) goto LA62_;
								def = inferWithMetatype__sem_235(c, typ, def, NIM_FALSE);
								typ = (*def).typ;
							}
							goto LA59_;
							LA62_: ;
							{
								def = fitNodeConsiderViewType__sem_216(c, typ, def, (*def).info);
							}
							LA59_: ;
						}
						goto LA55_;
						LA57_: ;
						{
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T66_;
							T66_ = NIM_NIL;
							T66_ = skipTypes__ast_3723((*def).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_752);
							typ = skipIntLit__magicsys_124(T66_, (*c).Sup.idgen);
							{
								NIM_BOOL T69_;
								T69_ = (NIM_BOOL)0;
								T69_ = ((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52) || (*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 53));
								if (!(T69_)) goto LA70_;
								T69_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 10))&63U)))!=0);
								LA70_: ;
								if (!T69_) goto LA71_;
								typ = lastSon__ast_3731(typ);
							}
							LA71_: ;
							{
								NIM_BOOL T75_;
								NimStringDesc* T78_;
								NimStringDesc* T79_;
								T75_ = (NIM_BOOL)0;
								T75_ = hasEmpty__sem_9784(typ);
								if (!T75_) goto LA76_;
								T78_ = NIM_NIL;
								T78_ = toHumanStr__ast_5200((*typ).kind);
								T79_ = NIM_NIL;
								T79_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_753), T78_);
								liMessage__msgs_1128((*(*c).graph).config, (*def).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T79_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_754, 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__b28l2MkhJpnFhatVrsrXpg) 25));
								if (!(T82_)) goto LA83_;
								T82_ = ((*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
								LA83_: ;
								T81_ = T82_;
								if (!(T81_)) goto LA84_;
								T81_ = isGenericRoutine__ast_4628((*(*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__DKP9c7KM5AbqYVP6Gd9blNUw_755), T87_);
								liMessage__msgs_1128((*(*c).graph).config, (*def).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T88_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_756, NIM_FALSE);
							}
							goto LA73_;
							LA85_: ;
							LA73_: ;
						}
						LA55_: ;
					}
					LA35_: ;
					{
						if (!(typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA91_;
						goto LA13;
					}
					LA91_: ;
					{
						if (!!(((*c).matchedConcept == ((tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw*) NIM_NIL)))) goto LA95_;
						typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__Onpom0WAnwwvAeCSboHTQA) 2)) & 7);
					}
					LA95_: ;
					typeAllowedCheck__sem_485(c, (*a).info, typ, symkind, typFlags);
					tup = skipTypes__ast_3723(typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_141);
					{
						NI T110_;
						NI T111_;
						NI T112_;
						NI T113_;
						if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36))) goto LA99_;
						{
							if (!!(((*tup).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18)))) goto LA103_;
							liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 5), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_757), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_758, NIM_FALSE);
						}
						goto LA101_;
						LA103_: ;
						{
							NI T106_;
							NI T107_;
							T106_ = (NI)0;
							T106_ = len__ast_3155(a);
							T107_ = (NI)0;
							T107_ = len__ast_3990(tup);
							if (!!(((NI)(T106_ - ((NI) 2)) == T107_))) goto LA108_;
							liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_603), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_759, NIM_FALSE);
						}
						goto LA101_;
						LA108_: ;
						LA101_: ;
						b = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36), (*a).info);
						T110_ = (NI)0;
						T110_ = len__ast_3155(a);
						newSons__semtypinst_416(b, T110_);
						T111_ = (NI)0;
						T111_ = len__ast_3155(b);
						T112_ = (NI)0;
						T112_ = len__ast_3155(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_3155(b);
						asgnRef((void**) (&(*b)._kind_6.sons->data[(NI)(T113_ - ((NI) 1))]), def);
						addToVarSection__sem_10414(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__b28l2MkhJpnFhatVrsrXpg) 18));
						if (!(T117_)) goto LA118_;
						T117_ = ((*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37) || (*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160));
						LA118_: ;
						T116_ = T117_;
						if (!(T116_)) goto LA119_;
						T116_ = ((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35));
						LA119_: ;
						T115_ = T116_;
						if (!(T115_)) goto LA120_;
						T121_ = (NI)0;
						T121_ = len__ast_3155(a);
						T115_ = (((NI) 3) < T121_);
						LA120_: ;
						if (!T115_) goto LA122_;
						liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 39), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_760, 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_3155(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__3r34mwqcVmg5JFNmiaVncw* v;
									{
										tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T133_;
										if (!((*(*a)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45))) goto LA131_;
										T133_ = NIM_NIL;
										{
											if (!!(((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36)))) goto LA136_;
											T133_ = typ;
										}
										goto LA134_;
										LA136_: ;
										{
											T133_ = (*tup).sons->data[j];
										}
										LA134_: ;
										fillPartialObject__sem_10613(c, (*a)._kind_6.sons->data[j], T133_);
										addToVarSection__sem_10414(c, result, n, a);
										goto LA128;
									}
									LA131_: ;
									v = semIdentDef__sem_10359(c, (*a)._kind_6.sons->data[j], symkind, NIM_FALSE);
									{
										NIM_BOOL T141_;
										NIM_BOOL T142_;
										NIM_BOOL T143_;
										NIM_BOOL T144_;
										NIM_BOOL T145_;
										NIM_BOOL T146_;
										NIM_BOOL T147_;
										NIM_BOOL T148_;
										NIM_BOOL T149_;
										NIM_BOOL T150_;
										NIM_BOOL T151_;
										NIM_BOOL T161_;
										T141_ = (NIM_BOOL)0;
										T142_ = (NIM_BOOL)0;
										T143_ = (NIM_BOOL)0;
										T144_ = (NIM_BOOL)0;
										T145_ = (NIM_BOOL)0;
										T146_ = (NIM_BOOL)0;
										T147_ = (NIM_BOOL)0;
										T148_ = (NIM_BOOL)0;
										T149_ = (NIM_BOOL)0;
										T150_ = (NIM_BOOL)0;
										T151_ = (NIM_BOOL)0;
										T151_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
										if (!(T151_)) goto LA152_;
										T151_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
										LA152_: ;
										T150_ = T151_;
										if (!(T150_)) goto LA153_;
										T150_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
										LA153_: ;
										T149_ = T150_;
										if (!(T149_)) goto LA154_;
										T149_ = belongsToProjectPackage__packages_50((*(*c).graph).config, v);
										LA154_: ;
										T148_ = T149_;
										if (!(T148_)) goto LA155_;
										T148_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
										LA155_: ;
										T147_ = T148_;
										if (!(T147_)) goto LA156_;
										T147_ = !(((*v).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
										LA156_: ;
										T146_ = T147_;
										if (!(T146_)) goto LA157_;
										T146_ = !(((*v).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
										LA157_: ;
										T145_ = T146_;
										if (!(T145_)) goto LA158_;
										T145_ = ((Letters__linter_12[(NU)(((NU8)((*(*v).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*v).name).s->data[((NI) 0)])))&7U)))!=0);
										LA158_: ;
										T144_ = T145_;
										if (!(T144_)) goto LA159_;
										T144_ = !(((144 &((NU32)1<<((NU)((*v).kind)&31U)))!=0));
										LA159_: ;
										T143_ = T144_;
										if (!(T143_)) goto LA160_;
										T161_ = (NIM_BOOL)0;
										T161_ = ((*v).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
										if (T161_) goto LA162_;
										T161_ = !(((*(*v).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
										LA162_: ;
										T143_ = T161_;
										LA160_: ;
										T142_ = T143_;
										if (!(T142_)) goto LA163_;
										T142_ = ((192 & (*v).flags) == 0);
										LA163_: ;
										T141_ = T142_;
										if (!(T141_)) goto LA164_;
										T141_ = !((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
										LA164_: ;
										if (!T141_) goto LA165_;
										nep1CheckDefImpl__linter_112((*(*c).graph).config, (*v).info, v, (*v).kind);
									}
									LA165_: ;
									{
										if (!!((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0))) goto LA169_;
										{
											NIM_BOOL T173_;
											T173_ = (NIM_BOOL)0;
											T173_ = isDiscardUnderscore__sem_10442(v);
											if (!!(T173_)) goto LA174_;
											addInterfaceDecl__lookups_1551(c, v);
										}
										LA174_: ;
									}
									goto LA167_;
									LA169_: ;
									{
										{
											if (!((*v).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA179_;
											asgnRef((void**) (&(*v).owner), (*(*c).p).owner);
										}
										LA179_: ;
									}
									LA167_: ;
									{
										if (!(((NI) 0) < (*c).inUnrolledContext)) goto LA183_;
										(*v).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 25)) & 63);
									}
									goto LA181_;
									LA183_: ;
									{
										tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* shadowed;
										shadowed = findShadowedVar__sem_10331(c, v);
										{
											if (!!((shadowed == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA188_;
											(*shadowed).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 25)) & 63);
											{
												NIM_BOOL T192_;
												T192_ = (NIM_BOOL)0;
												T192_ = ((*shadowed).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11));
												if (!(T192_)) goto LA193_;
												T192_ = !((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0));
												LA193_: ;
												if (!T192_) goto LA194_;
												liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 54), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_765, NIM_FALSE);
											}
											LA194_: ;
										}
										LA188_: ;
									}
									LA181_: ;
									{
										tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T214_;
										NI T215_;
										tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T216_;
										tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ast;
										NI T225_;
										tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T226_;
										if (!!(((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36)))) goto LA198_;
										{
											if (!!(((*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA202_;
											{
												if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 26))&63U)))!=0)) goto LA206_;
												liMessage__msgs_1128((*(*c).graph).config, (*def).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_766), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_767, NIM_FALSE);
											}
											LA206_: ;
										}
										LA202_: ;
										setVarType__sem_10644(c, v, typ);
										b = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), (*a).info);
										{
											NIM_BOOL T210_;
											NimStringDesc* T213_;
											T210_ = (NIM_BOOL)0;
											T210_ = importantComments__options_4020((*(*c).graph).config);
											if (!T210_) goto LA211_;
											T213_ = NIM_NIL;
											T213_ = comment__ast_997(a);
											commenteq___ast_1365(b, T213_);
										}
										LA211_: ;
										T214_ = NIM_NIL;
										T214_ = newSymNode__ast_3704(v);
										add__ast_4798(b, T214_);
										T215_ = (NI)0;
										T215_ = len__ast_3155(a);
										add__ast_4798(b, (*a)._kind_6.sons->data[(NI)(T215_ - ((NI) 2))]);
										T216_ = NIM_NIL;
										T216_ = copyTree__ast_4432(def);
										add__ast_4798(b, T216_);
										addToVarSection__sem_10414(c, result, n, b);
										ast = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), (*a).info);
										{
											tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* p;
											tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T221_;
											tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T222_;
											if (!((*(*a)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43))) goto LA219_;
											p = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43), (*a).info);
											T221_ = NIM_NIL;
											T221_ = newSymNode__ast_3704(v);
											add__ast_4798(p, T221_);
											T222_ = NIM_NIL;
											T222_ = copyTree__ast_4432((*(*a)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)]);
											add__ast_4798(p, T222_);
											add__ast_4798(ast, p);
										}
										goto LA217_;
										LA219_: ;
										{
											tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T224_;
											T224_ = NIM_NIL;
											T224_ = newSymNode__ast_3704(v);
											add__ast_4798(ast, T224_);
										}
										LA217_: ;
										T225_ = (NI)0;
										T225_ = len__ast_3155(a);
										T226_ = NIM_NIL;
										T226_ = copyTree__ast_4432((*a)._kind_6.sons->data[(NI)(T225_ - ((NI) 2))]);
										add__ast_4798(ast, T226_);
										add__ast_4798(ast, def);
										asgnRef((void**) (&(*v).ast), ast);
									}
									goto LA196_;
									LA198_: ;
									{
										{
											if (!((*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37) || (*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160))) goto LA230_;
											asgnRef((void**) (&(*v).ast), (*def)._kind_6.sons->data[j]);
										}
										LA230_: ;
										{
											if (!((*tup).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18))) goto LA234_;
											setVarType__sem_10644(c, v, (*tup).sons->data[j]);
										}
										goto LA232_;
										LA234_: ;
										{
											asgnRef((void**) (&(*v).typ), tup);
										}
										LA232_: ;
										asgnRef((void**) (&(*b)._kind_6.sons->data[j]), newSymNode__ast_3704(v));
									}
									LA196_: ;
									{
										tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* actualType;
										if (!((*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA239_;
										actualType = skipTypes__ast_3723((*v).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_772);
										{
											NIM_BOOL T243_;
											T243_ = (NIM_BOOL)0;
											T243_ = ((*actualType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17) || (*actualType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13));
											if (!(T243_)) goto LA244_;
											T243_ = requiresInit__typeallowed_593(actualType);
											LA244_: ;
											if (!T243_) goto LA245_;
											defaultConstructionError__sem_142(c, (*v).typ, (*v).info);
										}
										goto LA241_;
										LA245_: ;
										{
											checkNilable__sem_10389(c, v);
										}
										LA241_: ;
										{
											NIM_BOOL T250_;
											T250_ = (NIM_BOOL)0;
											T250_ = ((*v).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9));
											if (!(T250_)) goto LA251_;
											T250_ = !((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 6))&63U)))!=0));
											LA251_: ;
											if (!T250_) goto LA252_;
											liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_779), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_780, NIM_FALSE);
										}
										LA252_: ;
									}
									LA239_: ;
									{
										if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 28))&63U)))!=0)) goto LA256_;
										{
											tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
											if (!!(((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36)))) goto LA260_;
											x = newNodeI__ast_3320((*result).kind, (*v).info);
											add__ast_4798(x, (*result)._kind_6.sons->data[i]);
											setupCompileTimeVar__vm_14118((*c).module, (*c).Sup.idgen, (*c).graph, x);
										}
										goto LA258_;
										LA260_: ;
										{
											liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_781), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_782, NIM_FALSE);
										}
										LA258_: ;
									}
									LA256_: ;
									{
										if (!(((*v).flags & 67108872) == 8)) goto LA265_;
										liMessage__msgs_1128((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 100), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_783, NIM_FALSE);
									}
									LA265_: ;
									{
										if (!((2056 & ~ (*v).flags)==0)) goto LA269_;
										globalVarInitCheck__sem_10809(c, def);
									}
									LA269_: ;
									suggestSym__sigmatch_5404((*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__uh9cWvEa5Ty85PXOtuP5emw*, fitRemoveHiddenConv__sem_10309)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = fitNode__sem_73(c, typ, n, (*n).info);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* r1;
		if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58) || (*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59))) goto LA3_;
		r1 = (*result)._kind_6.sons->data[((NI) 1)];
		{
			NIM_BOOL T7_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T9_;
			T7_ = (NIM_BOOL)0;
			T7_ = ((*r1).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*r1).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15));
			if (!(T7_)) goto LA8_;
			T9_ = NIM_NIL;
			T9_ = skipTypes__ast_3723(typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_468);
			T7_ = ((*T9_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) && (*T9_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39));
			LA8_: ;
			if (!T7_) goto LA10_;
			result = newFloatNode__ast_3797(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_1675((*result)._kind_2.floatVal, typ);
				if (!!(T14_)) goto LA15_;
				nimZeroMem((void*)T17_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
				T17_[0] = dollar___system_3126((*result)._kind_2.floatVal);
				T17_[1] = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
				T18_ = NIM_NIL;
				T18_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_100), T17_, 2);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T18_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_786, NIM_FALSE);
			}
			LA15_: ;
		}
		goto LA5_;
		LA10_: ;
		{
			changeType__sem_78(c, r1, typ, NIM_TRUE);
			result = r1;
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T21_;
		T21_ = (NIM_BOOL)0;
		T21_ = sameType__types_1886((*result).typ, typ, 0);
		if (!!(T21_)) goto LA22_;
		changeType__sem_78(c, result, typ, NIM_FALSE);
	}
	goto LA1_;
	LA22_: ;
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConst__sem_11251)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = copyNode__ast_4324(n);
	(*c).inStaticContext += ((NI) 1);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
					tySet_tyEnum_TTypeAllowedFlag__Onpom0WAnwwvAeCSboHTQA typFlags;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* def;
					NI T23_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*(*(*c).graph).config).cmd == ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 11))) goto LA7_;
						suggestStmt__sigmatch_6347(c, a);
					}
					LA7_: ;
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125))) goto LA11_;
						goto LA4;
					}
					LA11_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 102) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36)))) goto LA15_;
						illFormedAst__semdata_1101(a, (*(*c).graph).config);
					}
					LA15_: ;
					checkMinSonsLen__semdata_1114(a, ((NI) 3), (*(*c).graph).config);
					typ = ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL);
					{
						NI T19_;
						NI T22_;
						T19_ = (NI)0;
						T19_ = len__ast_3155(a);
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T19_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA20_;
						T22_ = (NI)0;
						T22_ = len__ast_3155(a);
						typ = semTypeNode__sem_83(c, (*a)._kind_6.sons->data[(NI)(T22_ - ((NI) 2))], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					}
					LA20_: ;
					nimZeroMem((void*)(&typFlags), sizeof(tySet_tyEnum_TTypeAllowedFlag__Onpom0WAnwwvAeCSboHTQA));
					T23_ = (NI)0;
					T23_ = len__ast_3155(a);
					def = semExprWithType__sem_57(c, (*a)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))], 0, typ);
					{
						NIM_BOOL T26_;
						T26_ = (NIM_BOOL)0;
						T26_ = ((*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__Onpom0WAnwwvAeCSboHTQA) 5)) & 7);
					}
					goto LA24_;
					LA28_: ;
					{
						NIM_BOOL T31_;
						T31_ = (NIM_BOOL)0;
						T31_ = ((*(*def).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
						if (!(T31_)) goto LA32_;
						T31_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17)));
						LA32_: ;
						if (!T31_) goto LA33_;
						typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__Onpom0WAnwwvAeCSboHTQA) 6)) & 7);
					}
					goto LA24_;
					LA33_: ;
					LA24_: ;
					{
						if (!!((typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA37_;
						{
							NIM_BOOL T41_;
							T41_ = (NIM_BOOL)0;
							T41_ = isMetaType__ast_3474(typ);
							if (!T41_) goto LA42_;
							def = inferWithMetatype__sem_235(c, typ, def, NIM_FALSE);
							typ = (*def).typ;
						}
						goto LA39_;
						LA42_: ;
						{
							def = fitRemoveHiddenConv__sem_10309(c, typ, def);
						}
						LA39_: ;
					}
					goto LA35_;
					LA37_: ;
					{
						typ = (*def).typ;
					}
					LA35_: ;
					def = semConstExpr__sem_619(c, def, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
					{
						NI T50_;
						if (!(def == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA48_;
						T50_ = (NI)0;
						T50_ = len__ast_3155(a);
						liMessage__msgs_1128((*(*c).graph).config, (*(*a)._kind_6.sons->data[(NI)(T50_ - ((NI) 1))]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_361), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_787, NIM_FALSE);
						goto LA4;
					}
					LA48_: ;
					{
						if (!!(((*def).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23)))) goto LA53_;
						{
							if (!!(((*c).matchedConcept == ((tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw*) NIM_NIL)))) goto LA57_;
							typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__Onpom0WAnwwvAeCSboHTQA) 2)) & 7);
						}
						LA57_: ;
						typeAllowedCheck__sem_485(c, (*a).info, typ, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10), typFlags);
					}
					LA53_: ;
					b = NIM_NIL;
					{
						NI T72_;
						NI T73_;
						NI T74_;
						NI T75_;
						if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36))) goto LA61_;
						{
							if (!!(((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18)))) goto LA65_;
							liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 5), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_757), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_788, NIM_FALSE);
						}
						goto LA63_;
						LA65_: ;
						{
							NI T68_;
							NI T69_;
							T68_ = (NI)0;
							T68_ = len__ast_3155(a);
							T69_ = (NI)0;
							T69_ = len__ast_3990(typ);
							if (!!(((NI)(T68_ - ((NI) 2)) == T69_))) goto LA70_;
							liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_603), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_789, NIM_FALSE);
						}
						goto LA63_;
						LA70_: ;
						LA63_: ;
						b = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36), (*a).info);
						T72_ = (NI)0;
						T72_ = len__ast_3155(a);
						newSons__semtypinst_416(b, T72_);
						T73_ = (NI)0;
						T73_ = len__ast_3155(b);
						T74_ = (NI)0;
						T74_ = len__ast_3155(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_3155(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_3155(a);
						colontmp__2 = (NI)(T77_ - ((NI) 2));
						i_3 = ((NI) 0);
						{
							while (1) {
								tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v;
								if (!(i_3 < colontmp__2)) goto LA79;
								j = i_3;
								v = semIdentDef__sem_10359(c, (*a)._kind_6.sons->data[j], ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10), NIM_TRUE);
								{
									if (!!((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0))) goto LA82_;
									addInterfaceDecl__lookups_1551(c, v);
								}
								goto LA80_;
								LA82_: ;
								{
									if (!((*v).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA85_;
									asgnRef((void**) (&(*v).owner), getCurrOwner__semdata_327(c));
								}
								goto LA80_;
								LA85_: ;
								LA80_: ;
								{
									NIM_BOOL T89_;
									NIM_BOOL T90_;
									NIM_BOOL T91_;
									NIM_BOOL T92_;
									NIM_BOOL T93_;
									NIM_BOOL T94_;
									NIM_BOOL T95_;
									NIM_BOOL T96_;
									NIM_BOOL T97_;
									NIM_BOOL T98_;
									NIM_BOOL T99_;
									NIM_BOOL T109_;
									T89_ = (NIM_BOOL)0;
									T90_ = (NIM_BOOL)0;
									T91_ = (NIM_BOOL)0;
									T92_ = (NIM_BOOL)0;
									T93_ = (NIM_BOOL)0;
									T94_ = (NIM_BOOL)0;
									T95_ = (NIM_BOOL)0;
									T96_ = (NIM_BOOL)0;
									T97_ = (NIM_BOOL)0;
									T98_ = (NIM_BOOL)0;
									T99_ = (NIM_BOOL)0;
									T99_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
									if (!(T99_)) goto LA100_;
									T99_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
									LA100_: ;
									T98_ = T99_;
									if (!(T98_)) goto LA101_;
									T98_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
									LA101_: ;
									T97_ = T98_;
									if (!(T97_)) goto LA102_;
									T97_ = belongsToProjectPackage__packages_50((*(*c).graph).config, v);
									LA102_: ;
									T96_ = T97_;
									if (!(T96_)) goto LA103_;
									T96_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
									LA103_: ;
									T95_ = T96_;
									if (!(T95_)) goto LA104_;
									T95_ = !(((*v).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
									LA104_: ;
									T94_ = T95_;
									if (!(T94_)) goto LA105_;
									T94_ = !(((*v).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
									LA105_: ;
									T93_ = T94_;
									if (!(T93_)) goto LA106_;
									T93_ = ((Letters__linter_12[(NU)(((NU8)((*(*v).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*v).name).s->data[((NI) 0)])))&7U)))!=0);
									LA106_: ;
									T92_ = T93_;
									if (!(T92_)) goto LA107_;
									T92_ = !(((144 &((NU32)1<<((NU)((*v).kind)&31U)))!=0));
									LA107_: ;
									T91_ = T92_;
									if (!(T91_)) goto LA108_;
									T109_ = (NIM_BOOL)0;
									T109_ = ((*v).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
									if (T109_) goto LA110_;
									T109_ = !(((*(*v).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
									LA110_: ;
									T91_ = T109_;
									LA108_: ;
									T90_ = T91_;
									if (!(T90_)) goto LA111_;
									T90_ = ((192 & (*v).flags) == 0);
									LA111_: ;
									T89_ = T90_;
									if (!(T89_)) goto LA112_;
									T89_ = !((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
									LA112_: ;
									if (!T89_) goto LA113_;
									nep1CheckDefImpl__linter_112((*(*c).graph).config, (*v).info, v, (*v).kind);
								}
								LA113_: ;
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T125_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T126_;
									if (!!(((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36)))) goto LA117_;
									setVarType__sem_10644(c, v, typ);
									asgnRef((void**) (&(*v).ast), def);
									b = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 102), (*a).info);
									{
										NIM_BOOL T121_;
										NimStringDesc* T124_;
										T121_ = (NIM_BOOL)0;
										T121_ = importantComments__options_4020((*(*c).graph).config);
										if (!T121_) goto LA122_;
										T124_ = NIM_NIL;
										T124_ = comment__ast_997(a);
										commenteq___ast_1365(b, T124_);
									}
									LA122_: ;
									T125_ = NIM_NIL;
									T125_ = newSymNode__ast_3704(v);
									add__ast_4798(b, T125_);
									add__ast_4798(b, (*a)._kind_6.sons->data[((NI) 1)]);
									T126_ = NIM_NIL;
									T126_ = copyTree__ast_4432(def);
									add__ast_4798(b, T126_);
								}
								goto LA115_;
								LA117_: ;
								{
									setVarType__sem_10644(c, v, (*typ).sons->data[j]);
									{
										if (!!(((*(*def)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34)))) goto LA130_;
										asgnRef((void**) (&(*v).ast), (*def)._kind_6.sons->data[j]);
									}
									goto LA128_;
									LA130_: ;
									{
										asgnRef((void**) (&(*v).ast), (*(*def)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)]);
									}
									LA128_: ;
									asgnRef((void**) (&(*b)._kind_6.sons->data[j]), newSymNode__ast_3704(v));
								}
								LA115_: ;
								i_3 += ((NI) 1);
							} LA79: ;
						}
					}
					add__ast_4798(result, b);
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	(*c).inStaticContext -= ((NI) 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, typeDefLeftSidePass__sem_12565)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* typeSection, NI i) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* typeDef_1;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* name;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
{	typeDef_1 = (*typeSection)._kind_6.sons->data[i];
	checkSonsLen__semdata_1107(typeDef_1, ((NI) 3), (*(*c).graph).config);
	name = (*typeDef_1)._kind_6.sons->data[((NI) 0)];
	s = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* pkgName;
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* typName;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* pkg;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*name).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45));
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*typeDef_1)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 133));
		LA4_: ;
		if (!T3_) goto LA5_;
		pkgName = considerQuotedIdent__lookups_29(c, (*name)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		typName = considerQuotedIdent__lookups_29(c, (*name)._kind_6.sons->data[((NI) 1)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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__sjiB9b9aO1FRPetW6gPYZbfw) 24)));
			LA10_: ;
			if (!T9_) goto LA11_;
			T13_ = NIM_NIL;
			T13_ = rawNewString(((*pkgName).s ? (*pkgName).s->Sup.len : 0) + 22);
appendString(T13_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_790));
appendString(T13_, (*pkgName).s);
			liMessage__msgs_1128((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T13_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_791, NIM_FALSE);
		}
		goto LA7_;
		LA11_: ;
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* typsym;
			typsym = strTableGet__astalgo_3383((*(*c).graph).packageTypes, typName);
			{
				if (!(typsym == 0)) goto LA17_;
				s = semIdentDef__sem_10359(c, (*name)._kind_6.sons->data[((NI) 1)], ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7), NIM_TRUE);
				asgnRef((void**) (&(*s).typ), newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17), c));
				asgnRef((void**) (&(*(*s).typ).sym), s);
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 4)) & 63);
				strTableAdd__astalgo_3325((&(*(*c).graph).packageTypes), s);
				addInterfaceDecl__lookups_1551(c, s);
			}
			goto LA15_;
			LA17_: ;
			{
				NIM_BOOL T20_;
				T20_ = (NIM_BOOL)0;
				T20_ = ((*typsym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7));
				if (!(T20_)) goto LA21_;
				T20_ = (((*typsym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 4))&63U)))!=0);
				LA21_: ;
				if (!T20_) goto LA22_;
				s = typsym;
				addInterfaceDecl__lookups_1551(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__DKP9c7KM5AbqYVP6Gd9blNUw_792));
				liMessage__msgs_1128((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T25_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_793, NIM_FALSE);
				s = typsym;
			}
			LA15_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		s = semIdentDef__sem_10359(c, name, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7), NIM_TRUE);
		asgnRef((void**) (&(*s).typ), newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 30), c));
		asgnRef((void**) (&(*(*s).typ).sym), s);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* rewritten;
			if (!((*name).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43))) goto LA29_;
			rewritten = applyTypeSectionPragmas__sem_6039(c, (*name)._kind_6.sons->data[((NI) 1)], typeDef_1);
			{
				if (!!((rewritten == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA33_;
				asgnRef((void**) (&(*typeSection)._kind_6.sons->data[i]), rewritten);
				typeDefLeftSidePass__sem_12565(c, typeSection, i);
				goto BeforeRet_;
			}
			LA33_: ;
			pragma__pragmas_125(c, s, (*name)._kind_6.sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_482, NIM_FALSE);
		}
		LA29_: ;
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* pkg_2;
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 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_1121(c);
				T41_ = !(T42_);
				if (T41_) goto LA43_;
				T41_ = (pkg_2 == 0);
				LA43_: ;
				if (!T41_) goto LA44_;
				liMessage__msgs_1128((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_794), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_795, NIM_FALSE);
			}
			goto LA39_;
			LA44_: ;
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* typsym_2;
				typsym_2 = strTableGet__astalgo_3383((*(*c).graph).packageTypes, (*s).name);
				{
					if (!!((typsym_2 == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA49_;
					{
						NIM_BOOL T53_;
						T53_ = (NIM_BOOL)0;
						T53_ = !((((*typsym_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 4))&63U)))!=0));
						if (T53_) goto LA54_;
						T53_ = !((((*typsym_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 10))&63U)))!=0));
						LA54_: ;
						if (!T53_) goto LA55_;
						(*typsym_2).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 10)) & 63);
						(*typsym_2).info = (*s).info;
					}
					goto LA51_;
					LA55_: ;
					{
						NimStringDesc* T58_;
						NimStringDesc* T59_;
						T58_ = NIM_NIL;
						T59_ = NIM_NIL;
						T59_ = dollar___msgs_634((*(*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__DKP9c7KM5AbqYVP6Gd9blNUw_796));
appendString(T58_, (*(*s).name).s);
appendString(T58_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_797));
appendString(T58_, T59_);
						liMessage__msgs_1128((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T58_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_798, NIM_FALSE);
					}
					LA51_: ;
					s = typsym_2;
				}
				LA49_: ;
			}
			LA39_: ;
		}
		LA37_: ;
		{
			if (!!((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0))) goto LA62_;
			addInterfaceDecl__lookups_1551(c, s);
		}
		goto LA60_;
		LA62_: ;
		{
			if (!((*s).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA65_;
			asgnRef((void**) (&(*s).owner), getCurrOwner__semdata_327(c));
		}
		goto LA60_;
		LA65_: ;
		LA60_: ;
	}
	LA1_: ;
	{
		if (!((*name).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43))) goto LA69_;
		asgnRef((void**) (&(*(*typeDef_1)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(s));
	}
	goto LA67_;
	LA69_: ;
	{
		asgnRef((void**) (&(*typeDef_1)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(s));
	}
	LA67_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, typeSectionLeftSidePass__sem_12665)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125))) goto LA7_;
						goto LA4;
					}
					LA7_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 103)))) goto LA11_;
						illFormedAst__semdata_1101(a, (*(*c).graph).config);
					}
					LA11_: ;
					typeDefLeftSidePass__sem_12565(c, n, i);
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, typeSectionTypeName__sem_12549)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43))) goto LA3_;
		{
			NI T7_;
			T7_ = (NI)0;
			T7_ = len__ast_3155(n);
			if (!(T7_ == ((NI) 0))) goto LA8_;
			illFormedAst__semdata_1101(n, (*(*c).graph).config);
		}
		LA8_: ;
		result = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		result = n;
	}
	LA1_: ;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)))) goto LA13_;
		illFormedAst__semdata_1101(n, (*(*c).graph).config);
	}
	LA13_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setMagicType__sem_6591)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg 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__b28l2MkhJpnFhatVrsrXpg) 38) || kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) || kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) || kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) || kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35) || kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44));
		if (!(T3_)) goto LA4_;
		T3_ = (size == ((NI) 8));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*(*m).typ).align = floatInt64Align__options_4705(conf);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, setMagicIntegral__sem_6600)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, NI size) {
	setMagicType__sem_6591(conf, m, kind, size);
	(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 38)) & 63);
}
N_LIB_PRIVATE N_NIMCALL(void, processMagicType__sem_6609)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m) {
	switch ((*m).magic) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 174):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31), (*(*(*c).graph).config).target.intSize);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 175):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 32), ((NI) 1));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 176):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 33), ((NI) 2));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 177):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 34), ((NI) 4));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 178):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35), ((NI) 8));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 179):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40), (*(*(*c).graph).config).target.intSize);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 180):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 41), ((NI) 1));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 181):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 42), ((NI) 2));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 182):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 43), ((NI) 4));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 183):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44), ((NI) 8));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 184):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36), (*(*(*c).graph).config).target.floatSize);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 185):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 37), ((NI) 4));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 186):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 38), ((NI) 8));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 187):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39), ((NI) 16));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 188):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1), ((NI) 1));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 189):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2), ((NI) 1));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 190):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T18_;
		setMagicType__sem_6591((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28), ((NI) -1));
		T18_ = NIM_NIL;
		T18_ = getSysType__magicsys_60((*c).graph, (*m).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2));
		rawAddSon__ast_4276((*m).typ, T18_, NIM_TRUE);
		{
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 40))&63U)))!=0)) goto LA21_;
			(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 31)) & 63);
		}
		LA21_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 191):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T24_;
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29), (*(*(*c).graph).config).target.ptrSize);
		T24_ = NIM_NIL;
		T24_ = getSysType__magicsys_60((*c).graph, (*m).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2));
		rawAddSon__ast_4276((*m).typ, T24_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 192):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 26), (*(*(*c).graph).config).target.ptrSize);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 193):
	{
		setMagicType__sem_6591((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5), (*(*(*c).graph).config).target.ptrSize);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 194):
	{
		{
			if (!eqStrings((*(*m).name).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_800))) goto LA30_;
			setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 59), ((NI) 0));
		}
		goto LA28_;
		LA30_: ;
		{
			setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6), ((NI) 0));
		}
		LA28_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 195):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7), ((NI) 0));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 196):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 17):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T35_;
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8), ((NI) 0));
		T35_ = NIM_NIL;
		T35_ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0), c);
		rawAddSon__ast_4276((*m).typ, T35_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 24):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T37_;
		setMagicType__sem_6591((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60), ((NI) 0));
		T37_ = NIM_NIL;
		T37_ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0), c);
		rawAddSon__ast_4276((*m).typ, T37_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 197):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63), ((NI) 0));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 160):
	{
		setMagicType__sem_6591((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16), ((NI) -1));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 161):
	{
		setMagicType__sem_6591((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27), ((NI) -1));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 165):
	{
		setMagicType__sem_6591((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 48), ((NI) -1));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 162):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T43_;
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 20), ((NI) -1));
		T43_ = NIM_NIL;
		T43_ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0), c);
		rawAddSon__ast_4276((*m).typ, T43_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 163):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19), ((NI) -1));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 272):
	{
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 49), ((NI) -1));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 164):
	{
		setMagicType__sem_6591((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24), ((NI) -1));
		{
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 40))&63U)))!=0)) goto LA49_;
			(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 31)) & 63);
		}
		LA49_: ;
		{
			NIM_BOOL T53_;
			T53_ = (NIM_BOOL)0;
			T53_ = NIM_FALSE;
			if (T53_) goto LA54_;
			T53_ = ((*(*(*c).graph).config).cmd == ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 8));
			LA54_: ;
			if (!T53_) goto LA55_;
		}
		goto LA51_;
		LA55_: ;
		{
		}
		LA51_: ;
		asgnRef((void**) (&(*(*c).graph).sysTypes[(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24))- 0]), (*m).typ);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 172):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T59_;
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 15), ((NI) -1));
		T59_ = NIM_NIL;
		T59_ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0), c);
		rawAddSon__ast_4276((*m).typ, T59_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 173):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T61_;
		setMagicIntegral__sem_6600((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 64), ((NI) 0));
		T61_ = NIM_NIL;
		T61_ = newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0), c);
		rawAddSon__ast_4276((*m).typ, T61_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 198):
	{
		(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 33)) & 63);
		(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 38)) & 63);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 269):
	{
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 270):
	{
		if (eqStrings((*(*m).name).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_801))) goto LA65_;
		if (eqStrings((*(*m).name).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_802))) goto LA66_;
		if (eqStrings((*(*m).name).s, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_518))) goto LA67_;
		goto LA68_;
		LA65_: ;
		{
			setMagicType__sem_6591((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47), (*(*(*c).graph).config).target.ptrSize);
		}
		goto LA69_;
		LA66_: ;
		{
			setMagicType__sem_6591((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46), ((NI) -1));
		}
		goto LA69_;
		LA67_: ;
		{
			setMagicType__sem_6591((*(*c).graph).config, m, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45), (*(*(*c).graph).config).target.ptrSize);
			(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 4)) & 63);
		}
		goto LA69_;
		LA68_: ;
		{
			liMessage__msgs_1128((*(*c).graph).config, (*m).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_803, NIM_FALSE);
		}
		LA69_: ;
	}
	break;
	default:
	{
		liMessage__msgs_1128((*(*c).graph).config, (*m).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_804, NIM_FALSE);
	}
	break;
	}
}
static N_NIMCALL(void, Marker_tyRef__cj85JDaB589buv4QyqKL4kw)(void* p, NI op) {
	tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ* a;
	a = (tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ*)p;
	nimGCvisit((void*)(*a).genericType1, op);
}
N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, traverseSubTypes__sem_12695)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, void* ClE_0) {
	NIM_BOOL result;
	tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ* colonenvP_;
{	result = (NIM_BOOL)0;
	colonenvP_ = (tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ*) ClE_0;
	result = NIM_FALSE;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12):
	{
		(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 36)) & 63);
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17):
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* field;
			field = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3148((*t).n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NIM_BOOL subX60gensym3279_;
						tyProc__ouVD8pA2gl3ztgOQh4SrQQ 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__ouVD8pA2gl3ztgOQh4SrQQ));
						T7_.ClP_0 = traverseSubTypes__sem_12695; T7_.ClE_0 = colonenvP_;
						subX60gensym3279_ = T7_.ClE_0? T7_.ClP_0(c, (*field).typ, T7_.ClE_0):((TM__DKP9c7KM5AbqYVP6Gd9blNUw_806)(T7_.ClP_0))(c, (*field).typ);
						T8_ = (NIM_BOOL)0;
						T8_ = result;
						if (T8_) goto LA9_;
						T8_ = subX60gensym3279_;
						LA9_: ;
						result = T8_;
						i_2 += ((NI) 1);
					} LA6: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16):
	{
		tyProc__ouVD8pA2gl3ztgOQh4SrQQ T11_;
		nimZeroMem((void*)(&T11_), sizeof(tyProc__ouVD8pA2gl3ztgOQh4SrQQ));
		T11_.ClP_0 = traverseSubTypes__sem_12695; T11_.ClE_0 = colonenvP_;
		result = T11_.ClE_0? T11_.ClP_0(c, (*t).sons->data[((NI) 1)], T11_.ClE_0):((TM__DKP9c7KM5AbqYVP6Gd9blNUw_807)(T11_.ClP_0))(c, (*t).sons->data[((NI) 1)]);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25):
	{
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA** subType;
			NI i_3;
			NI L;
			NI T14_;
			subType = (tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA**)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 subX60gensym3282_;
						tyProc__ouVD8pA2gl3ztgOQh4SrQQ T21_;
						NIM_BOOL T22_;
						if (!!(((*subType) == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA19_;
						nimZeroMem((void*)(&T21_), sizeof(tyProc__ouVD8pA2gl3ztgOQh4SrQQ));
						T21_.ClP_0 = traverseSubTypes__sem_12695; T21_.ClE_0 = colonenvP_;
						subX60gensym3282_ = T21_.ClE_0? T21_.ClP_0(c, (*subType), T21_.ClE_0):((TM__DKP9c7KM5AbqYVP6Gd9blNUw_808)(T21_.ClP_0))(c, (*subType));
						T22_ = (NIM_BOOL)0;
						T22_ = result;
						if (T22_) goto LA23_;
						T22_ = subX60gensym3282_;
						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__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T28_ = rawNewString((T29_ ? T29_->Sup.len : 0) + 46);
appendString(T28_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_809));
appendString(T28_, T29_);
			liMessage__msgs_1128((*(*c).graph).config, (*(*(*colonenvP_).genericType1).sym).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T28_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_810, NIM_FALSE);
		}
		LA26_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24):
	{
		tyProc__ouVD8pA2gl3ztgOQh4SrQQ T31_;
		nimZeroMem((void*)(&T31_), sizeof(tyProc__ouVD8pA2gl3ztgOQh4SrQQ));
		T31_.ClP_0 = traverseSubTypes__sem_12695; T31_.ClE_0 = colonenvP_;
		result = T31_.ClE_0? T31_.ClP_0(c, (*t).sons->data[((NI) 0)], T31_.ClE_0):((TM__DKP9c7KM5AbqYVP6Gd9blNUw_811)(T31_.ClP_0))(c, (*t).sons->data[((NI) 0)]);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* 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_3990(t);
			i_5 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* param;
					if (!(i_5 < colontmp__2)) goto LA35;
					i_4 = i_5;
					param = (*t).sons->data[i_4];
					{
						if (!((*param).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12))) goto LA38_;
						{
							tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw formalFlags;
							if (!(((*param).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 35))&63U)))!=0)) goto LA42_;
							formalFlags = (*(*targetBody).sons->data[(NI)(i_4 - ((NI) 1))]).flags;
							{
								NimStringDesc* T48_;
								if (!!(((formalFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 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__DKP9c7KM5AbqYVP6Gd9blNUw_812));
appendString(T48_, (*(*(*param).sym).name).s);
appendString(T48_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_813));
								liMessage__msgs_1128((*(*c).graph).config, (*(*(*colonenvP_).genericType1).sym).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T48_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_814, NIM_FALSE);
							}
							goto LA44_;
							LA46_: ;
							{
								if (!((formalFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 36))&63U)))!=0)) goto LA50_;
								(*param).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 36)) & 63);
							}
							goto LA44_;
							LA50_: ;
							LA44_: ;
							result = NIM_TRUE;
						}
						goto LA40_;
						LA42_: ;
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* formalParam;
							if (!(((*param).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 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__Vrztsndr9a9bj8bQ3cn49bwWw) 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__DKP9c7KM5AbqYVP6Gd9blNUw_815));
appendString(T59_, (*(*(*param).sym).name).s);
appendString(T59_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_816));
								liMessage__msgs_1128((*(*c).graph).config, (*(*(*colonenvP_).genericType1).sym).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T59_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_817, NIM_FALSE);
							}
							LA57_: ;
							result = NIM_TRUE;
						}
						goto LA40_;
						LA53_: ;
						LA40_: ;
					}
					goto LA36_;
					LA38_: ;
					{
						NIM_BOOL subX60gensym3306_;
						tyProc__ouVD8pA2gl3ztgOQh4SrQQ T61_;
						NIM_BOOL T62_;
						nimZeroMem((void*)(&T61_), sizeof(tyProc__ouVD8pA2gl3ztgOQh4SrQQ));
						T61_.ClP_0 = traverseSubTypes__sem_12695; T61_.ClE_0 = colonenvP_;
						subX60gensym3306_ = T61_.ClE_0? T61_.ClP_0(c, param, T61_.ClE_0):((TM__DKP9c7KM5AbqYVP6Gd9blNUw_818)(T61_.ClP_0))(c, param);
						T62_ = (NIM_BOOL)0;
						T62_ = result;
						if (T62_) goto LA63_;
						T62_ = subX60gensym3306_;
						LA63_: ;
						result = T62_;
					}
					LA36_: ;
					i_5 += ((NI) 1);
				} LA35: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 56):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 57):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 58):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 51):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54):
	{
		NimStringDesc* T65_;
		NimStringDesc* T66_;
		T65_ = NIM_NIL;
		T66_ = NIM_NIL;
		T66_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
		T65_ = rawNewString((T66_ ? T66_->Sup.len : 0) + 63);
appendString(T65_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_819));
appendString(T65_, T66_);
appendString(T65_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_31));
		liMessage__msgs_1128((*(*c).graph).config, (*(*(*colonenvP_).genericType1).sym).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T65_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_820, NIM_FALSE);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 53):
	{
		liMessage__msgs_1128((*(*c).graph).config, (*(*(*colonenvP_).genericType1).sym).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_821), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_822, NIM_FALSE);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18):
	{
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA** fieldType;
			NI i_6;
			NI L_2;
			NI T70_;
			fieldType = (tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA**)0;
			i_6 = ((NI) 0);
			T70_ = ((*t).sons ? (*t).sons->Sup.len : 0);
			L_2 = T70_;
			{
				while (1) {
					NIM_BOOL subX60gensym3316_;
					tyProc__ouVD8pA2gl3ztgOQh4SrQQ T73_;
					NIM_BOOL T74_;
					if (!(i_6 < L_2)) goto LA72;
					fieldType = &(*t).sons->data[i_6];
					nimZeroMem((void*)(&T73_), sizeof(tyProc__ouVD8pA2gl3ztgOQh4SrQQ));
					T73_.ClP_0 = traverseSubTypes__sem_12695; T73_.ClE_0 = colonenvP_;
					subX60gensym3316_ = T73_.ClE_0? T73_.ClP_0(c, (*fieldType), T73_.ClE_0):((TM__DKP9c7KM5AbqYVP6Gd9blNUw_823)(T73_.ClP_0))(c, (*fieldType));
					T74_ = (NIM_BOOL)0;
					T74_ = result;
					if (T74_) goto LA75_;
					T74_ = subX60gensym3316_;
					LA75_: ;
					result = T74_;
					i_6 += ((NI) 1);
				} LA72: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47):
	{
		tyProc__ouVD8pA2gl3ztgOQh4SrQQ T82_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T83_;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T79_;
			T79_ = NIM_NIL;
			T79_ = base__types_63(t);
			if (!((*T79_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12))) goto LA80_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA80_: ;
		nimZeroMem((void*)(&T82_), sizeof(tyProc__ouVD8pA2gl3ztgOQh4SrQQ));
		T82_.ClP_0 = traverseSubTypes__sem_12695; 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__DKP9c7KM5AbqYVP6Gd9blNUw_824)(T82_.ClP_0))(c, T83_);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45):
	{
		tyProc__ouVD8pA2gl3ztgOQh4SrQQ T85_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T86_;
		nimZeroMem((void*)(&T85_), sizeof(tyProc__ouVD8pA2gl3ztgOQh4SrQQ));
		T85_.ClP_0 = traverseSubTypes__sem_12695; T85_.ClE_0 = colonenvP_;
		T86_ = NIM_NIL;
		T86_ = lastSon__ast_3731(t);
		result = T85_.ClE_0? T85_.ClP_0(c, T86_, T85_.ClE_0):((TM__DKP9c7KM5AbqYVP6Gd9blNUw_825)(T85_.ClP_0))(c, T86_);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11):
	{
		{
			NimStringDesc* argX60gensym3318_;
			if (!NIM_TRUE) goto LA90_;
			argX60gensym3318_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_826);
			internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym3318_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_826);
		}
		LA90_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkCovariantParamsUsages__sem_12686)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* genericType) {
	tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ* colonenv_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* body;
	NI T1_;
	tyProc__ouVD8pA2gl3ztgOQh4SrQQ T2_;
	NIM_BOOL T3_;
	colonenv_ = NIM_NIL;
	colonenv_ = (tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ*) newObj((&NTIrefobject__cj85JDaB589buv4QyqKL4kw_), sizeof(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ));
	(*colonenv_).Sup.m_type = (&NTIobject__3G5lZo0SaSXQI9cud9cmU4vQ_);
	asgnRef((void**) (&(*colonenv_).genericType1), genericType);
	T1_ = (NI)0;
	T1_ = len__ast_3990((*colonenv_).genericType1);
	body = (*(*colonenv_).genericType1).sons->data[(NI)(T1_ - ((NI) 1))];
	nimZeroMem((void*)(&T2_), sizeof(tyProc__ouVD8pA2gl3ztgOQh4SrQQ));
	T2_.ClP_0 = traverseSubTypes__sem_12695; T2_.ClE_0 = colonenv_;
	T3_ = (NIM_BOOL)0;
	T3_ = T2_.ClE_0? T2_.ClP_0(c, body, T2_.ClE_0):((TM__DKP9c7KM5AbqYVP6Gd9blNUw_827)(T2_.ClP_0))(c, body);
	(void)(T3_);
}
N_LIB_PRIVATE N_NIMCALL(void, typeSectionRightSidePass__sem_12786)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* name;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
					tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw oldFlags;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* aa;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125))) goto LA7_;
						goto LA4;
					}
					LA7_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 103)))) goto LA11_;
						illFormedAst__semdata_1101(a, (*(*c).graph).config);
					}
					LA11_: ;
					checkSonsLen__semdata_1107(a, ((NI) 3), (*(*c).graph).config);
					name = typeSectionTypeName__sem_12549(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__3qAy6bDUDlF8Fc2RR6pF9ag) 0));
						if (!(T15_)) goto LA16_;
						T15_ = ((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
						LA16_: ;
						if (!T15_) goto LA17_;
						T19_ = NIM_NIL;
						T19_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_403), (*(*s).name).s);
						liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T19_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_799, NIM_FALSE);
					}
					LA17_: ;
					{
						if (!!(((*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0)))) goto LA22_;
						processMagicType__sem_6609(c, s);
					}
					LA22_: ;
					oldFlags = (*(*s).typ).flags;
					{
						tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T28_;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T33_;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* body;
						if (!!(((*(*a)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA26_;
						T28_ = NIM_NIL;
						T28_ = openScope__lookups_76(c);
						pushOwner__semdata_334(c, s);
						{
							if (!((*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0))) goto LA31_;
							(*(*s).typ).kind = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10);
						}
						LA31_: ;
						asgnRef((void**) (&(*(*s).typ).n), semGenericParamList__sem_6659(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_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0), c);
						rawAddSon__ast_4276((*s).typ, T33_, NIM_TRUE);
						asgnRef((void**) (&(*s).ast), a);
						(*c).inGenericContext += ((NI) 1);
						body = semTypeNode__sem_83(c, (*a)._kind_6.sons->data[((NI) 2)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
						(*c).inGenericContext -= ((NI) 1);
						{
							NI T48_;
							if (!!((body == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA36_;
							asgnRef((void**) (&(*body).sym), s);
							(*body).size = IL64(-1);
							{
								if (!((*body).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17))) goto LA40_;
								(*body).flags = ((*body).flags | oldFlags);
								{
									NIM_BOOL T44_;
									T44_ = (NIM_BOOL)0;
									T44_ = ((oldFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 3))&63U)))!=0);
									if (!(T44_)) goto LA45_;
									T44_ = (((*body).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 2))&63U)))!=0);
									LA45_: ;
									if (!T44_) goto LA46_;
									(*body).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 2)) & 63));
								}
								LA46_: ;
							}
							LA40_: ;
							T48_ = (NI)0;
							T48_ = len__ast_3990((*s).typ);
							asgnRef((void**) (&(*(*s).typ).sons->data[(NI)(T48_ - ((NI) 1))]), body);
							{
								if (!(((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 35))&63U)))!=0)) goto LA51_;
								checkCovariantParamsUsages__sem_12686(c, (*s).typ);
								{
									tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* body_2;
									if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 6))&63U)))!=0)) goto LA55_;
									body_2 = lastSon__ast_3731((*s).typ);
									{
										if (!((*body_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17))) goto LA59_;
										if ((*(*body_2).n)._kind_6.sons) { nimGCunrefNoCycle((*(*body_2).n)._kind_6.sons); (*(*body_2).n)._kind_6.sons = NIM_NIL; }
									}
									LA59_: ;
								}
								LA55_: ;
							}
							LA51_: ;
						}
						LA36_: ;
						popOwner__semdata_341(c);
						closeScope__lookups_108(c);
					}
					goto LA24_;
					LA26_: ;
					{
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
						if (!!(((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA62_;
						pushOwner__semdata_334(c, s);
						t = semTypeNode__sem_83(c, (*a)._kind_6.sons->data[((NI) 2)], (*s).typ);
						{
							if (!((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA66_;
							asgnRef((void**) (&(*s).typ), t);
						}
						goto LA64_;
						LA66_: ;
						{
							NIM_BOOL T69_;
							NIM_BOOL T71_;
							T69_ = (NIM_BOOL)0;
							T69_ = !((t == (*s).typ));
							if (!(T69_)) goto LA70_;
							T71_ = (NIM_BOOL)0;
							T71_ = ((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
							if (T71_) goto LA72_;
							T71_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4)));
							LA72_: ;
							T69_ = T71_;
							LA70_: ;
							if (!T69_) goto LA73_;
							assignType__ast_3964((*s).typ, t);
						}
						goto LA64_;
						LA73_: ;
						LA64_: ;
						asgnRef((void**) (&(*s).ast), a);
						popOwner__semdata_341(c);
						{
							if (!((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32))) goto LA77_;
							(*(*a)._kind_6.sons->data[((NI) 2)]).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 7)) & 31);
						}
						LA77_: ;
					}
					goto LA24_;
					LA62_: ;
					LA24_: ;
					{
						NIM_BOOL T81_;
						T81_ = (NIM_BOOL)0;
						T81_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 7))&63U)))!=0);
						if (!(T81_)) goto LA82_;
						T81_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4));
						LA82_: ;
						if (!T81_) goto LA83_;
						liMessage__msgs_1128((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_828), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_829, NIM_FALSE);
					}
					LA83_: ;
					{
						NIM_BOOL T87_;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T89_;
						T87_ = (NIM_BOOL)0;
						T87_ = (((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 32))&63U)))!=0);
						if (!(T87_)) goto LA88_;
						T89_ = NIM_NIL;
						T89_ = skipTypes__ast_3723((*s).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_830);
						T87_ = !(((*T89_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13)));
						LA88_: ;
						if (!T87_) goto LA90_;
						(*(*s).typ).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 32)) & 63));
						liMessage__msgs_1128((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_831), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_832, NIM_FALSE);
					}
					LA90_: ;
					aa = (*a)._kind_6.sons->data[((NI) 2)];
					{
						NIM_BOOL T94_;
						NIM_BOOL T95_;
						NI T97_;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* st;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* objTy;
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* obj;
						NimStringDesc* T120_;
						tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T121_;
						tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T122_;
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T123_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* symNode;
						T94_ = (NIM_BOOL)0;
						T95_ = (NIM_BOOL)0;
						T95_ = ((*aa).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 141) || (*aa).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 142));
						if (!(T95_)) goto LA96_;
						T97_ = (NI)0;
						T97_ = len__ast_3155(aa);
						T95_ = (T97_ == ((NI) 1));
						LA96_: ;
						T94_ = T95_;
						if (!(T94_)) goto LA98_;
						T94_ = ((*(*aa)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 133));
						LA98_: ;
						if (!T94_) goto LA99_;
						st = (*s).typ;
						{
							if (!((*st).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10))) goto LA103_;
							st = lastSon__ast_3731(st);
						}
						LA103_: ;
						{
							NimStringDesc* argX60gensym3366_;
							if (!!(((*st).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21) || (*st).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22)))) goto LA107_;
							argX60gensym3366_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_833);
							internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym3366_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_833);
						}
						LA107_: ;
						{
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T111_;
							NimStringDesc* argX60gensym3369_;
							T111_ = NIM_NIL;
							T111_ = lastSon__ast_3731(st);
							if (!!(((*T111_).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA112_;
							argX60gensym3369_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_834);
							internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym3369_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_834);
						}
						LA112_: ;
						(*st).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 34)) & 63);
						objTy = lastSon__ast_3731(st);
						(*objTy).flags = ((*objTy).flags | oldFlags);
						{
							NIM_BOOL T116_;
							T116_ = (NIM_BOOL)0;
							T116_ = ((oldFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 3))&63U)))!=0);
							if (!(T116_)) goto LA117_;
							T116_ = (((*objTy).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 2))&63U)))!=0);
							LA117_: ;
							if (!T116_) goto LA118_;
							(*objTy).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 2)) & 63));
						}
						LA118_: ;
						T120_ = NIM_NIL;
						T120_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 11);
appendString(T120_, (*(*s).name).s);
appendString(T120_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_835));
						T121_ = NIM_NIL;
						T121_ = getIdent__idents_152((*c).cache, T120_);
						T122_ = nextSymId__ast_3103((*c).Sup.idgen);
						T123_ = NIM_NIL;
						T123_ = getCurrOwner__semdata_327(c);
						obj = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7), T121_, T122_, T123_, (*s).info, 0);
						(*obj).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 48)) & 63);
						symNode = newSymNode__ast_3704(obj);
						asgnRef((void**) (&(*obj).ast), shallowCopy__ast_4414(a));
						switch ((*(*a)._kind_6.sons->data[((NI) 0)]).kind) {
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
						{
							asgnRef((void**) (&(*(*obj).ast)._kind_6.sons->data[((NI) 0)]), symNode);
						}
						break;
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43):
						{
							asgnRef((void**) (&(*(*obj).ast)._kind_6.sons->data[((NI) 0)]), shallowCopy__ast_4414((*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__9be9c6fEXk5NwyPvxxb6toPA) 11))&63U)))!=0)) goto LA129_;
							(*obj).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 11)) & 63);
						}
						LA129_: ;
						asgnRef((void**) (&(*obj).typ), objTy);
						asgnRef((void**) (&(*objTy).sym), obj);
					}
					LA99_: ;
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, checkMeta__sem_13049)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !((t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T4_)) goto LA5_;
		T4_ = isMetaType__ast_3474(t);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = !((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 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__b28l2MkhJpnFhatVrsrXpg) 51));
			if (!(T12_)) goto LA13_;
			T14_ = (NI)0;
			T14_ = len__ast_3990(t);
			T12_ = (T14_ == ((NI) 1));
			LA13_: ;
			T11_ = T12_;
			if (!(T11_)) goto LA15_;
			T11_ = ((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
			LA15_: ;
			if (!T11_) goto LA16_;
			T18_ = NIM_NIL;
			T18_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T19_ = NIM_NIL;
			T19_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_836), T18_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T19_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_837, NIM_FALSE);
		}
		goto LA9_;
		LA16_: ;
		{
			NimStringDesc* T21_;
			NimStringDesc* T22_;
			T21_ = NIM_NIL;
			T21_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
			T22_ = NIM_NIL;
			T22_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_535), T21_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T22_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_838, NIM_FALSE);
		}
		LA9_: ;
	}
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, checkForMetaFields__sem_13046)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
{	{
		if (!(n == 0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 139):
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s;
			s = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3148(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_13046(c, s);
						i_2 += ((NI) 1);
					} LA9: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T11_;
		T11_ = NIM_NIL;
		T11_ = lastSon__ast_4833(n);
		checkForMetaFields__sem_13046(c, T11_);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
		t = (*(*n)._kind_4.sym).typ;
		switch ((*t).kind) {
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45):
		{
			NI start;
			start = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11));
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_3990(t);
				i_4 = start;
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA16;
						i_3 = i_4;
						checkMeta__sem_13049(c, n, (*t).sons->data[i_3]);
						i_4 += ((NI) 1);
					} LA16: ;
				}
			}
		}
		break;
		default:
		{
			checkMeta__sem_13049(c, n, t);
		}
		break;
		}
	}
	break;
	default:
	{
		{
			NimStringDesc* argX60gensym3404_;
			if (!NIM_TRUE) goto LA21_;
			argX60gensym3404_ = toFileLineCol__msgs_625(TM__DKP9c7KM5AbqYVP6Gd9blNUw_839);
			internalErrorImpl__msgs_1441((*(*c).graph).config, unknownLineInfo__lineinfos_284, argX60gensym3404_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_839);
		}
		LA21_: ;
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, typeSectionFinalPass__sem_13102)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* name;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125))) goto LA7_;
						goto LA4;
					}
					LA7_: ;
					name = typeSectionTypeName__sem_12549(c, (*a)._kind_6.sons->data[((NI) 0)]);
					s = (*name)._kind_4.sym;
					{
						NIM_BOOL T11_;
						NIM_BOOL T12_;
						NIM_BOOL T13_;
						NIM_BOOL T14_;
						NIM_BOOL T15_;
						NIM_BOOL T16_;
						NIM_BOOL T17_;
						NIM_BOOL T18_;
						NIM_BOOL T19_;
						NIM_BOOL T20_;
						NIM_BOOL T21_;
						NIM_BOOL T31_;
						T11_ = (NIM_BOOL)0;
						T12_ = (NIM_BOOL)0;
						T13_ = (NIM_BOOL)0;
						T14_ = (NIM_BOOL)0;
						T15_ = (NIM_BOOL)0;
						T16_ = (NIM_BOOL)0;
						T17_ = (NIM_BOOL)0;
						T18_ = (NIM_BOOL)0;
						T19_ = (NIM_BOOL)0;
						T20_ = (NIM_BOOL)0;
						T21_ = (NIM_BOOL)0;
						T21_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
						if (!(T21_)) goto LA22_;
						T21_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
						LA22_: ;
						T20_ = T21_;
						if (!(T20_)) goto LA23_;
						T20_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
						LA23_: ;
						T19_ = T20_;
						if (!(T19_)) goto LA24_;
						T19_ = belongsToProjectPackage__packages_50((*(*c).graph).config, s);
						LA24_: ;
						T18_ = T19_;
						if (!(T18_)) goto LA25_;
						T18_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
						LA25_: ;
						T17_ = T18_;
						if (!(T17_)) goto LA26_;
						T17_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
						LA26_: ;
						T16_ = T17_;
						if (!(T16_)) goto LA27_;
						T16_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
						LA27_: ;
						T15_ = T16_;
						if (!(T15_)) goto LA28_;
						T15_ = ((Letters__linter_12[(NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))&7U)))!=0);
						LA28_: ;
						T14_ = T15_;
						if (!(T14_)) goto LA29_;
						T14_ = !(((144 &((NU32)1<<((NU)((*s).kind)&31U)))!=0));
						LA29_: ;
						T13_ = T14_;
						if (!(T13_)) goto LA30_;
						T31_ = (NIM_BOOL)0;
						T31_ = ((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
						if (T31_) goto LA32_;
						T31_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
						LA32_: ;
						T13_ = T31_;
						LA30_: ;
						T12_ = T13_;
						if (!(T12_)) goto LA33_;
						T12_ = ((192 & (*s).flags) == 0);
						LA33_: ;
						T11_ = T12_;
						if (!(T11_)) goto LA34_;
						T11_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
						LA34_: ;
						if (!T11_) goto LA35_;
						nep1CheckDefImpl__linter_112((*(*c).graph).config, (*s).info, s, (*s).kind);
					}
					LA35_: ;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
						if (!((*(*a)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA39_;
						x = (*a)._kind_6.sons->data[((NI) 2)];
						{
							NIM_BOOL T43_;
							T43_ = (NIM_BOOL)0;
							T43_ = ((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32));
							if (!(T43_)) goto LA44_;
							T43_ = (((*x).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 7))&31U)))!=0);
							LA44_: ;
							if (!T43_) goto LA45_;
						}
						goto LA41_;
						LA45_: ;
						{
							{
								while (1) {
									NIM_BOOL T50_;
									NI T52_;
									T50_ = (NIM_BOOL)0;
									T50_ = ((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126));
									if (!(T50_)) goto LA51_;
									T52_ = (NI)0;
									T52_ = len__ast_3155(x);
									T50_ = (((NI) 0) < T52_);
									LA51_: ;
									if (!T50_) goto LA49;
									x = lastSon__ast_4833(x);
								} LA49: ;
							}
							{
								NIM_BOOL T55_;
								tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T57_;
								tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
								T55_ = (NIM_BOOL)0;
								T55_ = !(((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 133) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 146) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 150) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
								if (!(T55_)) goto LA56_;
								T57_ = NIM_NIL;
								T57_ = safeSkipTypes__types_3616((*s).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_102);
								T55_ = !(((*T57_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17) || (*T57_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14)));
								LA56_: ;
								if (!T55_) goto LA58_;
								t = semTypeNode__sem_83(c, x, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
								{
									NIM_BOOL T62_;
									T62_ = (NIM_BOOL)0;
									T62_ = !(((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
									if (!(T62_)) goto LA63_;
									T62_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4) || (*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46)));
									LA63_: ;
									if (!T62_) goto LA64_;
									{
										NIM_BOOL T68_;
										NIM_BOOL T70_;
										T68_ = (NIM_BOOL)0;
										T68_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11));
										if (!(T68_)) goto LA69_;
										T70_ = (NIM_BOOL)0;
										T70_ = isMetaType__ast_3474(t);
										T68_ = !(T70_);
										LA69_: ;
										if (!T68_) goto LA71_;
										assignType__ast_3964((*s).typ, t);
										(*(*s).typ).Sup.itemId = (*t).Sup.itemId;
									}
									goto LA66_;
									LA71_: ;
									{
										if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13))) goto LA74_;
										assignType__ast_3964((*s).typ, t);
										(*(*s).typ).Sup.itemId = (*t).Sup.itemId;
									}
									goto LA66_;
									LA74_: ;
									LA66_: ;
								}
								LA64_: ;
							}
							LA58_: ;
							checkConstructedType__semtypinst_26((*(*c).graph).config, (*s).info, (*s).typ);
							{
								NIM_BOOL T78_;
								T78_ = (NIM_BOOL)0;
								T78_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17) || (*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18));
								if (!(T78_)) goto LA79_;
								T78_ = !(((*(*s).typ).n == 0));
								LA79_: ;
								if (!T78_) goto LA80_;
								checkForMetaFields__sem_13046(c, (*(*s).typ).n);
							}
							LA80_: ;
							{
								NIM_BOOL T84_;
								NIM_BOOL T86_;
								T84_ = (NIM_BOOL)0;
								T84_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22) || (*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17));
								if (!(T84_)) goto LA85_;
								T86_ = (NIM_BOOL)0;
								T86_ = isTopLevel__semdata_1121(c);
								T84_ = !(T86_);
								LA85_: ;
								if (!T84_) goto LA87_;
								(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37)) & 63);
							}
							LA87_: ;
						}
						LA41_: ;
					}
					LA39_: ;
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTypeSection__sem_13340)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((((*(*c).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 10))&63U)))!=0));
		if (T3_) goto LA4_;
		T3_ = !((((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 7))&31U)))!=0));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*c).inTypeContext += ((NI) 1);
		typeSectionLeftSidePass__sem_12665(c, n);
		typeSectionRightSidePass__sem_12786(c, n);
		typeSectionFinalPass__sem_13102(c, n);
		(*c).inTypeContext -= ((NI) 1);
	}
	LA5_: ;
	result = n;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semDiscard__sem_9806)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1107(n, ((NI) 1), (*(*c).graph).config);
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* sonType;
		tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw sonKind;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA3_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 0)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		sonType = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
		sonKind = (*(*n)._kind_6.sons->data[((NI) 0)]).kind;
		{
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			NIM_BOOL T9_;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T9_ = (NIM_BOOL)0;
			T9_ = isEmptyType__ast_4780(sonType);
			if (T9_) goto LA10_;
			T9_ = hasEmpty__sem_9784(sonType);
			LA10_: ;
			T8_ = T9_;
			if (T8_) goto LA11_;
			T8_ = ((*sonType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0) || (*sonType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8));
			LA11_: ;
			T7_ = T8_;
			if (T7_) goto LA12_;
			T7_ = (sonKind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 132));
			LA12_: ;
			if (!T7_) goto LA13_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_840), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_841, NIM_FALSE);
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			NimStringDesc* T21_;
			NimStringDesc* T22_;
			T17_ = (NIM_BOOL)0;
			T17_ = ((*sonType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
			if (!(T17_)) goto LA18_;
			T17_ = !((sonKind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || sonKind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || sonKind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || sonKind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || sonKind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || sonKind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || sonKind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32)));
			LA18_: ;
			if (!T17_) goto LA19_;
			T21_ = NIM_NIL;
			T22_ = NIM_NIL;
			T22_ = dollar___renderer_2116((*n)._kind_6.sons->data[((NI) 0)]);
			T21_ = rawNewString((T22_ ? T22_->Sup.len : 0) + 38);
appendString(T21_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_842));
appendString(T21_, T22_);
appendString(T21_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_220));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T21_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_843, NIM_FALSE);
		}
		LA19_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semWhile__sem_9887)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	T2_ = NIM_NIL;
	T2_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
	T3_ = NIM_NIL;
	T3_ = semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 0)], 0, T2_);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), forceBool__sem_2933(c, T3_));
	(*(*c).p).nestedLoopCounter += ((NI) 1);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semStmt__sem_87(c, (*n)._kind_6.sons->data[((NI) 1)], flags));
	(*(*c).p).nestedLoopCounter -= ((NI) 1);
	closeScope__lookups_108(c);
	{
		if (!((*(*n)._kind_6.sons->data[((NI) 1)]).typ == (*c).enforceVoidContext)) goto LA6_;
		asgnRef((void**) (&(*result).typ), (*c).enforceVoidContext);
	}
	goto LA4_;
	LA6_: ;
	{
		if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 3))&31U)))!=0)) goto LA9_;
		asgnRef((void**) (&(*result).typ), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	}
	goto LA4_;
	LA9_: ;
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		T12_ = implicitlyDiscardable__sem_9782((*n)._kind_6.sons->data[((NI) 1)]);
		if (!T12_) goto LA13_;
		asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)]).typ), (*c).enforceVoidContext);
	}
	goto LA4_;
	LA13_: ;
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semTry__sem_10090)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw check;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType_2;
	NI last;
	NI T2_;
	NI catchAllExcepts;
	result = NIM_NIL;
	nimZeroMem((void*)(&check), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	initIntSet__pureZcollectionsZintsets_238((&check));
	result = n;
	checkMinSonsLen__semdata_1114(n, ((NI) 2), (*(*c).graph).config);
	T1_ = NIM_NIL;
	T1_ = (tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) newObj((&NTIptype__q1v0zzhoMWrhMLs6UEp1IA_), sizeof(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA));
	(*T1_).Sup.Sup.m_type = (&NTIttype__kQDDJGUiaUAtO9c9b6LjZYjA_);
	(*T1_).kind = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6);
	typ = T1_;
	expectedType_2 = expectedType;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprBranchScope__sem_9933(c, (*n)._kind_6.sons->data[((NI) 0)], expectedType_2));
	typ = commonType__sem_241(c, typ, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
	expectedType_2 = typ;
	T2_ = (NI)0;
	T2_ = len__ast_3155(n);
	last = (NI)(T2_ - ((NI) 1));
	catchAllExcepts = ((NI) 0);
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
				tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T6_;
				if (!(res <= last)) goto LA5;
				i = res;
				a = (*n)._kind_6.sons->data[i];
				checkMinSonsLen__semdata_1114(a, ((NI) 1), (*(*c).graph).config);
				T6_ = NIM_NIL;
				T6_ = openScope__lookups_76(c);
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 87))) goto LA9_;
					{
						NIM_BOOL T13_;
						NI T14_;
						tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw T18_;
						T13_ = (NIM_BOOL)0;
						T14_ = (NI)0;
						T14_ = len__ast_3155(a);
						T13_ = (T14_ == ((NI) 2));
						if (!(T13_)) goto LA15_;
						T13_ = ((*(*a)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41));
						LA15_: ;
						if (!T13_) goto LA16_;
						T18_ = dotdot___pureZunicode_840(((NI) 0), ((NI) 0));
						X5BX5Deq___pragmas_1747((&(*a)._kind_6.sons), T18_, ((*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons) ? ((*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data) : NIM_NIL, ((*(*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__kQDDJGUiaUAtO9c9b6LjZYjA* typX60gensym2516_;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T26_;
						NIM_BOOL isImportedX60gensym2516_;
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* symbol;
						T21_ = (NIM_BOOL)0;
						T22_ = (NI)0;
						T22_ = len__ast_3155(a);
						T21_ = (T22_ == ((NI) 2));
						if (!(T21_)) goto LA23_;
						T21_ = isInfixAs__ast_4936((*a)._kind_6.sons->data[((NI) 0)]);
						LA23_: ;
						if (!T21_) goto LA24_;
						T26_ = NIM_NIL;
						T26_ = semTypeNode__sem_83(c, (*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
						typX60gensym2516_ = toObject__ast_4880(T26_);
						isImportedX60gensym2516_ = NIM_FALSE;
						{
							NIM_BOOL T29_;
							T29_ = (NIM_BOOL)0;
							T29_ = isImportedException__ast_4905(typX60gensym2516_, (*(*c).graph).config);
							if (!T29_) goto LA30_;
							isImportedX60gensym2516_ = NIM_TRUE;
						}
						goto LA27_;
						LA30_: ;
						{
							NIM_BOOL T33_;
							T33_ = (NIM_BOOL)0;
							T33_ = isException__types_4064(typX60gensym2516_);
							if (!!(T33_)) goto LA34_;
							liMessage__msgs_1128((*(*c).graph).config, (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_744), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_844, NIM_FALSE);
						}
						goto LA27_;
						LA34_: ;
						{
							NIM_BOOL T37_;
							T37_ = (NIM_BOOL)0;
							T37_ = isDefectOrCatchableError__types_4119(typX60gensym2516_);
							if (!!(T37_)) goto LA38_;
							liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 69), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_845), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_846, NIM_FALSE);
						}
						goto LA27_;
						LA38_: ;
						LA27_: ;
						{
							tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* xX60gensym2524_;
							NIM_BOOL T42_;
							xX60gensym2524_ = typX60gensym2516_;
							T42_ = (NIM_BOOL)0;
							T42_ = containsOrIncl__astalgo_402((&check), (NI)((NI)((NU64)(((NI) ((*xX60gensym2524_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2524_).Sup.itemId.item))));
							if (!T42_) goto LA43_;
							liMessage__msgs_1128((*(*c).graph).config, (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_847), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_848, NIM_FALSE);
						}
						LA43_: ;
						asgnRef((void**) (&(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]), newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4), (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).info, typX60gensym2516_));
						isImported = isImportedX60gensym2516_;
						symbol = newSymG__sem_462(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9), (*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 2)], c);
						{
							if (!isImported) goto LA47_;
							asgnRef((void**) (&(*symbol).typ), (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).typ);
						}
						goto LA45_;
						LA47_: ;
						{
							asgnRef((void**) (&(*symbol).typ), toRef__ast_4872((*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).typ, (*c).Sup.idgen));
						}
						LA45_: ;
						addDecl__lookups_1517(c, symbol);
						asgnRef((void**) (&(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 2)]), newSymNode__ast_3707(symbol, (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 2)]).info));
					}
					goto LA19_;
					LA24_: ;
					{
						NI T51_;
						T51_ = (NI)0;
						T51_ = len__ast_3155(a);
						if (!(T51_ == ((NI) 1))) goto LA52_;
						catchAllExcepts += ((NI) 1);
						liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 69), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_849), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_850, NIM_FALSE);
					}
					goto LA19_;
					LA52_: ;
					{
						NIM_BOOL isNative;
						NIM_BOOL isImported_2;
						{
							if (!(((NI) 0) < catchAllExcepts)) goto LA57_;
							catchAllExcepts += ((NI) 1);
						}
						LA57_: ;
						isNative = (NIM_BOOL)0;
						isImported_2 = (NIM_BOOL)0;
						{
							NI j;
							NI colontmp_;
							NI T60_;
							NI i_2;
							j = (NI)0;
							colontmp_ = (NI)0;
							T60_ = (NI)0;
							T60_ = len__ast_3155(a);
							colontmp_ = (NI)(T60_ - ((NI) 1));
							i_2 = ((NI) 0);
							{
								while (1) {
									NIM_BOOL tmp;
									tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typX60gensym2543_;
									tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T63_;
									NIM_BOOL isImportedX60gensym2543_;
									if (!(i_2 < colontmp_)) goto LA62;
									j = i_2;
									T63_ = NIM_NIL;
									T63_ = semTypeNode__sem_83(c, (*a)._kind_6.sons->data[j], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
									typX60gensym2543_ = toObject__ast_4880(T63_);
									isImportedX60gensym2543_ = NIM_FALSE;
									{
										NIM_BOOL T66_;
										T66_ = (NIM_BOOL)0;
										T66_ = isImportedException__ast_4905(typX60gensym2543_, (*(*c).graph).config);
										if (!T66_) goto LA67_;
										isImportedX60gensym2543_ = NIM_TRUE;
									}
									goto LA64_;
									LA67_: ;
									{
										NIM_BOOL T70_;
										T70_ = (NIM_BOOL)0;
										T70_ = isException__types_4064(typX60gensym2543_);
										if (!!(T70_)) goto LA71_;
										liMessage__msgs_1128((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_744), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_844, NIM_FALSE);
									}
									goto LA64_;
									LA71_: ;
									{
										NIM_BOOL T74_;
										T74_ = (NIM_BOOL)0;
										T74_ = isDefectOrCatchableError__types_4119(typX60gensym2543_);
										if (!!(T74_)) goto LA75_;
										liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 69), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_845), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_846, NIM_FALSE);
									}
									goto LA64_;
									LA75_: ;
									LA64_: ;
									{
										tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* xX60gensym2551_;
										NIM_BOOL T79_;
										xX60gensym2551_ = typX60gensym2543_;
										T79_ = (NIM_BOOL)0;
										T79_ = containsOrIncl__astalgo_402((&check), (NI)((NI)((NU64)(((NI) ((*xX60gensym2551_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2551_).Sup.itemId.item))));
										if (!T79_) goto LA80_;
										liMessage__msgs_1128((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_847), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_848, NIM_FALSE);
									}
									LA80_: ;
									asgnRef((void**) (&(*a)._kind_6.sons->data[j]), newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4), (*(*a)._kind_6.sons->data[j]).info, typX60gensym2543_));
									tmp = isImportedX60gensym2543_;
									{
										if (!tmp) goto LA84_;
										isImported_2 = NIM_TRUE;
									}
									goto LA82_;
									LA84_: ;
									{
										isNative = NIM_TRUE;
									}
									LA82_: ;
									i_2 += ((NI) 1);
								} LA62: ;
							}
						}
						{
							NIM_BOOL T89_;
							T89_ = (NIM_BOOL)0;
							T89_ = isNative;
							if (!(T89_)) goto LA90_;
							T89_ = isImported_2;
							LA90_: ;
							if (!T89_) goto LA91_;
							liMessage__msgs_1128((*(*c).graph).config, (*(*a)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_851), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_852, NIM_FALSE);
						}
						LA91_: ;
					}
					LA19_: ;
				}
				goto LA7_;
				LA9_: ;
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107))) goto LA94_;
					{
						NI T98_;
						T98_ = (NI)0;
						T98_ = len__ast_3155(n);
						if (!!((i == (NI)(T98_ - ((NI) 1))))) goto LA99_;
						liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_853), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_854, NIM_FALSE);
					}
					LA99_: ;
				}
				goto LA7_;
				LA94_: ;
				{
					illFormedAst__semdata_1101(n, (*(*c).graph).config);
				}
				LA7_: ;
				{
					if (!(((NI) 1) < catchAllExcepts)) goto LA104_;
					liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_855), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_856, NIM_FALSE);
				}
				LA104_: ;
				{
					NI T110_;
					NI T111_;
					NI T112_;
					if (!!(((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107)))) goto LA108_;
					T110_ = (NI)0;
					T110_ = len__ast_3155(a);
					T111_ = (NI)0;
					T111_ = len__ast_3155(a);
					asgnRef((void**) (&(*a)._kind_6.sons->data[(NI)(T110_ - ((NI) 1))]), semExprBranchScope__sem_9933(c, (*a)._kind_6.sons->data[(NI)(T111_ - ((NI) 1))], expectedType_2));
					T112_ = (NI)0;
					T112_ = len__ast_3155(a);
					typ = commonType__sem_452(c, typ, (*a)._kind_6.sons->data[(NI)(T112_ - ((NI) 1))]);
					expectedType_2 = typ;
				}
				goto LA106_;
				LA108_: ;
				{
					NI T114_;
					NI T115_;
					T114_ = (NI)0;
					T114_ = len__ast_3155(a);
					T115_ = (NI)0;
					T115_ = len__ast_3155(a);
					asgnRef((void**) (&(*a)._kind_6.sons->data[(NI)(T114_ - ((NI) 1))]), semExprBranchScope__sem_9933(c, (*a)._kind_6.sons->data[(NI)(T115_ - ((NI) 1))], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
					last -= ((NI) 1);
				}
				LA106_: ;
				closeScope__lookups_108(c);
				res += ((NI) 1);
			} LA5: ;
		}
	}
	{
		NIM_BOOL T118_;
		T118_ = (NIM_BOOL)0;
		T118_ = isEmptyType__ast_4780(typ);
		if (T118_) goto LA119_;
		T118_ = ((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5) || (*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6));
		LA119_: ;
		if (!T118_) goto LA120_;
		discardCheck__sem_9980(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_3155(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T125_;
					if (!(i_4 < colontmp__2)) goto LA124;
					i_3 = i_4;
					T125_ = NIM_NIL;
					T125_ = lastSon__ast_4833((*n)._kind_6.sons->data[i_3]);
					discardCheck__sem_9980(c, T125_, flags);
					i_4 += ((NI) 1);
				} LA124: ;
			}
		}
		{
			if (!(typ == (*c).enforceVoidContext)) goto LA128_;
			asgnRef((void**) (&(*result).typ), (*c).enforceVoidContext);
		}
		LA128_: ;
	}
	goto LA116_;
	LA120_: ;
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T133_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T136_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T137_;
			T133_ = NIM_NIL;
			T133_ = lastSon__ast_4833(n);
			if (!((*T133_).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107))) goto LA134_;
			T136_ = NIM_NIL;
			T136_ = lastSon__ast_4833(n);
			T137_ = NIM_NIL;
			T137_ = lastSon__ast_4833(T136_);
			discardCheck__sem_9980(c, T137_, flags);
		}
		LA134_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), fitNode__sem_73(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__uh9cWvEa5Ty85PXOtuP5emw* it;
					NI j_2;
					NI T141_;
					if (!(res_2 <= last)) goto LA140;
					i_5 = res_2;
					it = (*n)._kind_6.sons->data[i_5];
					T141_ = (NI)0;
					T141_ = len__ast_3155(it);
					j_2 = (NI)(T141_ - ((NI) 1));
					{
						NIM_BOOL T144_;
						T144_ = (NIM_BOOL)0;
						T144_ = endsInNoReturn__sem_420((*it)._kind_6.sons->data[j_2]);
						if (!!(T144_)) goto LA145_;
						asgnRef((void**) (&(*it)._kind_6.sons->data[j_2]), fitNode__sem_73(c, typ, (*it)._kind_6.sons->data[j_2], (*(*it)._kind_6.sons->data[j_2]).info));
					}
					LA145_: ;
					res_2 += ((NI) 1);
				} LA140: ;
			}
		}
		asgnRef((void**) (&(*result).typ), typ);
	}
	LA116_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semBreakOrContinue__sem_9838)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1107(n, ((NI) 1), (*(*c).graph).config);
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA3_;
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
			if (!!(((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 111)))) goto LA7_;
			s = NIM_NIL;
			switch ((*(*n)._kind_6.sons->data[((NI) 0)]).kind) {
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
			{
				s = lookUp__lookups_2576(c, (*n)._kind_6.sons->data[((NI) 0)]);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
			{
				s = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			}
			break;
			default:
			{
				illFormedAst__semdata_1101(n, (*(*c).graph).config);
			}
			break;
			}
			s = getGenSym__semdata_420(c, s);
			{
				NIM_BOOL T14_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym2430_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym2431_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
				T14_ = (NIM_BOOL)0;
				T14_ = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 22));
				if (!(T14_)) goto LA15_;
				xX60gensym2430_ = (*s).owner;
				xX60gensym2431_ = (*(*c).p).owner;
				T14_ = ((NI)((NI)((NU64)(((NI) ((*xX60gensym2430_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2430_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym2431_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2431_).Sup.itemId.item))));
				LA15_: ;
				if (!T14_) goto LA16_;
				x = newSymNode__ast_3704(s);
				(*x).info = (*n).info;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 0)) & 63);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), x);
				suggestSym__sigmatch_5404((*c).graph, (*x).info, s, &(*(*c).graph).usageSym, NIM_TRUE);
			}
			goto LA12_;
			LA16_: ;
			{
				NimStringDesc* T19_;
				T19_ = NIM_NIL;
				T19_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_857), (*(*s).name).s);
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T19_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_858, NIM_FALSE);
			}
			LA12_: ;
		}
		goto LA5_;
		LA7_: ;
		{
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_859), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_860, 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__clSgDh22o9au33BrVH9bDQZw) 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__DKP9c7KM5AbqYVP6Gd9blNUw_857), T28_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T29_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_861, NIM_FALSE);
	}
	goto LA1_;
	LA26_: ;
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, handleStmtMacro__sem_12171)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* selector, NimStringDesc* magicType, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* maType;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* headSymbol;
		tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg o;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* match;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* symx;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* callExpr;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T33_;
		if (!((*selector).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*selector).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*selector).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*selector).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*selector).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*selector).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*selector).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32))) goto LA3_;
		maType = getCompilerProc__magicsys_145((*c).graph, magicType);
		{
			if (!(maType == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA7_;
			goto BeforeRet_;
		}
		LA7_: ;
		headSymbol = (*selector)._kind_6.sons->data[((NI) 0)];
		nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg));
		match = ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL);
		symx = initOverloadIter__lookups_3120((&o), c, headSymbol);
		{
			while (1) {
				if (!!((symx == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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_3990((*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__3r34mwqcVmg5JFNmiaVncw*) 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__lx9aDnWjKktcSUo0yfjOvMg) 0), NIM_TRUE);
							T27_[1] = getProcHeader__types_222((*(*c).graph).config, symx, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0), NIM_TRUE);
							T27_[2] = dollar___renderer_2116(selector);
							T28_ = NIM_NIL;
							T28_ = nsuFormatOpenArray(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_422), T27_, 3);
							liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T28_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_862, NIM_FALSE);
						}
						LA22_: ;
					}
					LA20_: ;
				}
				LA13_: ;
				symx = nextOverloadIter__lookups_3274((&o), c, headSymbol);
			} LA10: ;
		}
		{
			if (!(match == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA31_;
			goto BeforeRet_;
		}
		LA31_: ;
		callExpr = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
		T33_ = NIM_NIL;
		T33_ = newSymNode__ast_3704(match);
		add__ast_4798(callExpr, T33_);
		add__ast_4798(callExpr, n);
		switch ((*match).kind) {
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
		{
			result = semMacroExpr__sem_530(c, callExpr, callExpr, match, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		break;
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
		{
			result = semTemplateExpr__sem_524(c, callExpr, match, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		break;
		default:
		{
			result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
		}
		break;
		}
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, handleForLoopMacro__sem_12225)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI T1_;
	result = NIM_NIL;
	T1_ = (NI)0;
	T1_ = len__ast_3155(n);
	result = handleStmtMacro__sem_12171(c, n, (*n)._kind_6.sons->data[(NI)(T1_ - ((NI) 2))], ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_863), flags);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExprNoDeref__sem_65)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = semExprCheck__sem_15042(c, n, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = renderTree__renderer_46(result, 4);
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_864), T5_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T6_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_865, NIM_FALSE);
		asgnRef((void**) (&(*result).typ), errorType__semdata_1032(c));
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrivalStmtExpr__sem_12155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3155(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__clSgDh22o9au33BrVH9bDQZw) 1) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__3r34mwqcVmg5JFNmiaVncw*, symForVar__sem_11811)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* m;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43))) goto LA3_;
		m = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		m = n;
	}
	LA1_: ;
	result = newSymG__sem_462(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21), m, c);
	{
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		NIM_BOOL T10_;
		NIM_BOOL T11_;
		NIM_BOOL T12_;
		NIM_BOOL T13_;
		NIM_BOOL T14_;
		NIM_BOOL T15_;
		NIM_BOOL T16_;
		NIM_BOOL T17_;
		NIM_BOOL T18_;
		NIM_BOOL T28_;
		T8_ = (NIM_BOOL)0;
		T9_ = (NIM_BOOL)0;
		T10_ = (NIM_BOOL)0;
		T11_ = (NIM_BOOL)0;
		T12_ = (NIM_BOOL)0;
		T13_ = (NIM_BOOL)0;
		T14_ = (NIM_BOOL)0;
		T15_ = (NIM_BOOL)0;
		T16_ = (NIM_BOOL)0;
		T17_ = (NIM_BOOL)0;
		T18_ = (NIM_BOOL)0;
		T18_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
		if (!(T18_)) goto LA19_;
		T18_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
		LA19_: ;
		T17_ = T18_;
		if (!(T17_)) goto LA20_;
		T17_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
		LA20_: ;
		T16_ = T17_;
		if (!(T16_)) goto LA21_;
		T16_ = belongsToProjectPackage__packages_50((*(*c).graph).config, result);
		LA21_: ;
		T15_ = T16_;
		if (!(T15_)) goto LA22_;
		T15_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
		LA22_: ;
		T14_ = T15_;
		if (!(T14_)) goto LA23_;
		T14_ = !(((*result).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
		LA23_: ;
		T13_ = T14_;
		if (!(T13_)) goto LA24_;
		T13_ = !(((*result).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
		LA24_: ;
		T12_ = T13_;
		if (!(T12_)) goto LA25_;
		T12_ = ((Letters__linter_12[(NU)(((NU8)((*(*result).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*result).name).s->data[((NI) 0)])))&7U)))!=0);
		LA25_: ;
		T11_ = T12_;
		if (!(T11_)) goto LA26_;
		T11_ = !(((144 &((NU32)1<<((NU)((*result).kind)&31U)))!=0));
		LA26_: ;
		T10_ = T11_;
		if (!(T10_)) goto LA27_;
		T28_ = (NIM_BOOL)0;
		T28_ = ((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		if (T28_) goto LA29_;
		T28_ = !(((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
		LA29_: ;
		T10_ = T28_;
		LA27_: ;
		T9_ = T10_;
		if (!(T9_)) goto LA30_;
		T9_ = ((192 & (*result).flags) == 0);
		LA30_: ;
		T8_ = T9_;
		if (!(T8_)) goto LA31_;
		T8_ = !((((*result).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
		LA31_: ;
		if (!T8_) goto LA32_;
		nep1CheckDefImpl__linter_112((*(*c).graph).config, (*result).info, result, (*result).kind);
	}
	LA32_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43))) goto LA36_;
		pragma__pragmas_125(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_870, NIM_FALSE);
	}
	LA36_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semForVars__sem_11882)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* iterBase;
	NI T1_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* iter;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* iterAfterVarLent;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T146_;
	NI T147_;
	NI T148_;
{	result = NIM_NIL;
	result = n;
	T1_ = (NI)0;
	T1_ = len__ast_3155(n);
	iterBase = (*(*n)._kind_6.sons->data[(NI)(T1_ - ((NI) 2))]).typ;
	iter = skipTypes__ast_3723(iterBase, TM__DKP9c7KM5AbqYVP6Gd9blNUw_45);
	iterAfterVarLent = skipTypes__ast_3723(iter, TM__DKP9c7KM5AbqYVP6Gd9blNUw_866);
	{
		NI T6_;
		NI T7_;
		NimStringDesc* T8_;
		NimStringDesc* T9_;
		if (!((*iterAfterVarLent).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 3))) goto LA4_;
		T6_ = (NI)0;
		T6_ = len__ast_3155(n);
		T7_ = (NI)0;
		T7_ = len__ast_3155(n);
		T8_ = NIM_NIL;
		T8_ = renderTree__renderer_46((*n)._kind_6.sons->data[(NI)(T7_ - ((NI) 2))], 4);
		T9_ = NIM_NIL;
		T9_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_867), T8_);
		liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[(NI)(T6_ - ((NI) 2))]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T9_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_868, NIM_FALSE);
	}
	LA4_: ;
	{
		NIM_BOOL T12_;
		NI T14_;
		T12_ = (NIM_BOOL)0;
		T12_ = !(((*iterAfterVarLent).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18)));
		if (T12_) goto LA13_;
		T14_ = (NI)0;
		T14_ = len__ast_3155(n);
		T12_ = (T14_ == ((NI) 3));
		LA13_: ;
		if (!T12_) goto LA15_;
		{
			NI T19_;
			T19_ = (NI)0;
			T19_ = len__ast_3155(n);
			if (!(T19_ == ((NI) 3))) goto LA20_;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36))) goto LA24_;
				{
					NI T28_;
					NI T29_;
					T28_ = (NI)0;
					T28_ = len__ast_3155((*n)._kind_6.sons->data[((NI) 0)]);
					T29_ = (NI)0;
					T29_ = len__ast_3990(iterAfterVarLent);
					if (!!(((NI)(T28_ - ((NI) 1)) == T29_))) goto LA30_;
					liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_603), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_869, NIM_FALSE);
					result = errorNode__semdata_1039(c, n);
					goto BeforeRet_;
				}
				LA30_: ;
				{
					NI i;
					NI colontmp_;
					NI T33_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					T33_ = (NI)0;
					T33_ = len__ast_3155((*n)._kind_6.sons->data[((NI) 0)]);
					colontmp_ = (NI)(T33_ - ((NI) 1));
					i_2 = ((NI) 0);
					{
						while (1) {
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v;
							if (!(i_2 < colontmp_)) goto LA35;
							i = i_2;
							v = symForVar__sem_11811(c, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[i]);
							{
								tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T38_;
								T38_ = NIM_NIL;
								T38_ = getCurrOwner__semdata_327(c);
								if (!((*T38_).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6))) goto LA39_;
								(*v).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3)) & 63);
							}
							LA39_: ;
							switch ((*iter).kind) {
							case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23):
							case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47):
							{
								asgnRef((void**) (&(*v).typ), newTypeS__semdata_763((*iter).kind, c));
								add__concepts_23((*v).typ, (*iterAfterVarLent).sons->data[i]);
								{
									if (!(((*iter).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 20))&63U)))!=0)) goto LA44_;
									(*(*v).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 20)) & 63);
								}
								LA44_: ;
							}
							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_3704(v));
							{
								NIM_BOOL T49_;
								NIM_BOOL T51_;
								T49_ = (NIM_BOOL)0;
								T49_ = !((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0));
								if (!(T49_)) goto LA50_;
								T51_ = (NIM_BOOL)0;
								T51_ = isDiscardUnderscore__sem_10442(v);
								T49_ = !(T51_);
								LA50_: ;
								if (!T49_) goto LA52_;
								addDecl__lookups_1517(c, v);
							}
							goto LA47_;
							LA52_: ;
							{
								if (!((*v).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA55_;
								asgnRef((void**) (&(*v).owner), getCurrOwner__semdata_327(c));
							}
							goto LA47_;
							LA55_: ;
							LA47_: ;
							i_2 += ((NI) 1);
						} LA35: ;
					}
				}
			}
			goto LA22_;
			LA24_: ;
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v_2;
				v_2 = symForVar__sem_11811(c, (*n)._kind_6.sons->data[((NI) 0)]);
				{
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T60_;
					T60_ = NIM_NIL;
					T60_ = getCurrOwner__semdata_327(c);
					if (!((*T60_).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6))) goto LA61_;
					(*v_2).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3)) & 63);
				}
				LA61_: ;
				asgnRef((void**) (&(*v_2).typ), iterBase);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(v_2));
				{
					NIM_BOOL T65_;
					NIM_BOOL T67_;
					T65_ = (NIM_BOOL)0;
					T65_ = !((((*v_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0));
					if (!(T65_)) goto LA66_;
					T67_ = (NIM_BOOL)0;
					T67_ = isDiscardUnderscore__sem_10442(v_2);
					T65_ = !(T67_);
					LA66_: ;
					if (!T65_) goto LA68_;
					addDecl__lookups_1517(c, v_2);
				}
				goto LA63_;
				LA68_: ;
				{
					if (!((*v_2).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA71_;
					asgnRef((void**) (&(*v_2).owner), getCurrOwner__semdata_327(c));
				}
				goto LA63_;
				LA71_: ;
				LA63_: ;
			}
			LA22_: ;
		}
		goto LA17_;
		LA20_: ;
		{
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_603), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_871, NIM_FALSE);
		}
		LA17_: ;
	}
	goto LA10_;
	LA15_: ;
	{
		NI T75_;
		NI T76_;
		T75_ = (NI)0;
		T75_ = len__ast_3155(n);
		T76_ = (NI)0;
		T76_ = len__ast_3990(iterAfterVarLent);
		if (!!(((NI)(T75_ - ((NI) 2)) == T76_))) goto LA77_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_603), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_872, NIM_FALSE);
	}
	goto LA10_;
	LA77_: ;
	{
		{
			NI i_3;
			NI colontmp__2;
			NI T81_;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T81_ = (NI)0;
			T81_ = len__ast_3155(n);
			colontmp__2 = (NI)(T81_ - ((NI) 2));
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA83;
					i_3 = i_4;
					{
						NIM_BOOL mutable_1;
						NIM_BOOL isLent;
						if (!((*(*n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36))) goto LA86_;
						mutable_1 = NIM_FALSE;
						isLent = NIM_FALSE;
						switch ((*(*iter).sons->data[i_3]).kind) {
						case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23):
						{
							mutable_1 = NIM_TRUE;
							asgnRef((void**) (&(*iter).sons->data[i_3]), skipTypes__ast_3723((*iter).sons->data[i_3], TM__DKP9c7KM5AbqYVP6Gd9blNUw_186));
						}
						break;
						case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47):
						{
							isLent = NIM_TRUE;
							asgnRef((void**) (&(*iter).sons->data[i_3]), skipTypes__ast_3723((*iter).sons->data[i_3], TM__DKP9c7KM5AbqYVP6Gd9blNUw_873));
						}
						break;
						default:
						{
						}
						break;
						}
						{
							NI T93_;
							NI T94_;
							T93_ = (NI)0;
							T93_ = len__ast_3155((*n)._kind_6.sons->data[i_3]);
							T94_ = (NI)0;
							T94_ = len__ast_3990((*iter).sons->data[i_3]);
							if (!!(((NI)(T93_ - ((NI) 1)) == T94_))) goto LA95_;
							liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[i_3]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_603), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_874, NIM_FALSE);
						}
						LA95_: ;
						{
							NI j;
							NI colontmp__3;
							NI T98_;
							NI i_5;
							j = (NI)0;
							colontmp__3 = (NI)0;
							T98_ = (NI)0;
							T98_ = len__ast_3155((*n)._kind_6.sons->data[i_3]);
							colontmp__3 = (NI)(T98_ - ((NI) 1));
							i_5 = ((NI) 0);
							{
								while (1) {
									tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v_3;
									if (!(i_5 < colontmp__3)) goto LA100;
									j = i_5;
									v_3 = symForVar__sem_11811(c, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[j]);
									{
										tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T103_;
										T103_ = NIM_NIL;
										T103_ = getCurrOwner__semdata_327(c);
										if (!((*T103_).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6))) goto LA104_;
										(*v_3).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3)) & 63);
									}
									LA104_: ;
									{
										if (!mutable_1) goto LA108_;
										asgnRef((void**) (&(*v_3).typ), newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23), c));
										add__concepts_23((*v_3).typ, (*(*iter).sons->data[i_3]).sons->data[j]);
									}
									goto LA106_;
									LA108_: ;
									{
										if (!isLent) goto LA111_;
										asgnRef((void**) (&(*v_3).typ), newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47), c));
										add__concepts_23((*v_3).typ, (*(*iter).sons->data[i_3]).sons->data[j]);
									}
									goto LA106_;
									LA111_: ;
									{
										asgnRef((void**) (&(*v_3).typ), (*(*iter).sons->data[i_3]).sons->data[j]);
									}
									LA106_: ;
									asgnRef((void**) (&(*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[j]), newSymNode__ast_3704(v_3));
									{
										NIM_BOOL T116_;
										T116_ = (NIM_BOOL)0;
										T116_ = isDiscardUnderscore__sem_10442(v_3);
										if (!!(T116_)) goto LA117_;
										addDecl__lookups_1517(c, v_3);
									}
									goto LA114_;
									LA117_: ;
									{
										if (!((*v_3).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA120_;
										asgnRef((void**) (&(*v_3).owner), getCurrOwner__semdata_327(c));
									}
									goto LA114_;
									LA120_: ;
									LA114_: ;
									i_5 += ((NI) 1);
								} LA100: ;
							}
						}
					}
					goto LA84_;
					LA86_: ;
					{
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v_4;
						v_4 = symForVar__sem_11811(c, (*n)._kind_6.sons->data[i_3]);
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T125_;
							T125_ = NIM_NIL;
							T125_ = getCurrOwner__semdata_327(c);
							if (!((*T125_).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6))) goto LA126_;
							(*v_4).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3)) & 63);
						}
						LA126_: ;
						switch ((*iter).kind) {
						case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23):
						case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47):
						{
							asgnRef((void**) (&(*v_4).typ), newTypeS__semdata_763((*iter).kind, c));
							add__concepts_23((*v_4).typ, (*iterAfterVarLent).sons->data[i_3]);
							{
								if (!(((*iter).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 20))&63U)))!=0)) goto LA131_;
								(*(*v_4).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 20)) & 63);
							}
							LA131_: ;
						}
						break;
						default:
						{
							asgnRef((void**) (&(*v_4).typ), (*iter).sons->data[i_3]);
						}
						break;
						}
						asgnRef((void**) (&(*n)._kind_6.sons->data[i_3]), newSymNode__ast_3704(v_4));
						{
							if (!!((((*v_4).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0))) goto LA136_;
							{
								NIM_BOOL T140_;
								T140_ = (NIM_BOOL)0;
								T140_ = isDiscardUnderscore__sem_10442(v_4);
								if (!!(T140_)) goto LA141_;
								addDecl__lookups_1517(c, v_4);
							}
							LA141_: ;
						}
						goto LA134_;
						LA136_: ;
						{
							if (!((*v_4).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA144_;
							asgnRef((void**) (&(*v_4).owner), getCurrOwner__semdata_327(c));
						}
						goto LA134_;
						LA144_: ;
						LA134_: ;
					}
					LA84_: ;
					i_4 += ((NI) 1);
				} LA83: ;
			}
		}
	}
	LA10_: ;
	(*(*c).p).nestedLoopCounter += ((NI) 1);
	T146_ = NIM_NIL;
	T146_ = openScope__lookups_76(c);
	T147_ = (NI)0;
	T147_ = len__ast_3155(n);
	T148_ = (NI)0;
	T148_ = len__ast_3155(n);
	asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T147_ - ((NI) 1))]), semExprBranch__sem_9919(c, (*n)._kind_6.sons->data[(NI)(T148_ - ((NI) 1))], flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
	{
		NI T153_;
		if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 3))&31U)))!=0))) goto LA151_;
		T153_ = (NI)0;
		T153_ = len__ast_3155(n);
		discardCheck__sem_9980(c, (*n)._kind_6.sons->data[(NI)(T153_ - ((NI) 1))], flags);
	}
	LA151_: ;
	closeScope__lookups_108(c);
	(*(*c).p).nestedLoopCounter -= ((NI) 1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, instFieldLoopBody__sem_11505)(tyObject_TFieldInstCtx__gggY1l2lKKFHg0YR3GdTXg* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* forLoop) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*c).field == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = isEmptyType__ast_4780((*(*c).field).typ);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = newNode__ast_3289(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
		goto BeforeRet_;
	}
	LA5_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	{
		result = copyNode__ast_4324(n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
		result = n;
		ident = considerQuotedIdent__lookups_29((*c).c, n, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		{
			if (!(*c).replaceByFieldName) goto LA11_;
			{
				tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T15_;
				NimStringDesc* fieldName;
				T15_ = NIM_NIL;
				T15_ = considerQuotedIdent__lookups_29((*c).c, (*forLoop)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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__DKP9c7KM5AbqYVP6Gd9blNUw_883));
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_3801(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_3155(forLoop);
			colontmp__2 = (NI)(T29_ - ((NI) 2));
			i_2 = colontmp_;
			{
				while (1) {
					if (!(i_2 < colontmp__2)) goto LA31;
					i = i_2;
					{
						tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T34_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* call;
						NI T37_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tupl;
						T34_ = NIM_NIL;
						T34_ = considerQuotedIdent__lookups_29((*c).c, (*forLoop)._kind_6.sons->data[i], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
						if (!((*ident).id == (*T34_).id)) goto LA35_;
						T37_ = (NI)0;
						T37_ = len__ast_3155(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__uh9cWvEa5Ty85PXOtuP5emw* T42_;
							if (!((*c).field == 0)) goto LA40_;
							result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), (*n).info);
							add__ast_4798(result, tupl);
							T42_ = NIM_NIL;
							T42_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), ((NI64) ((*c).tupleIndex)));
							add__ast_4798(result, T42_);
						}
						goto LA38_;
						LA40_: ;
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T44_;
							result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45), (*n).info);
							add__ast_4798(result, tupl);
							T44_ = NIM_NIL;
							T44_ = newSymNode__ast_3707((*c).field, (*n).info);
							add__ast_4798(result, T44_);
						}
						LA38_: ;
						goto LA28;
					}
					LA35_: ;
					i_2 += ((NI) 1);
				} LA31: ;
			}
		} LA28: ;
	}
	break;
	default:
	{
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 111))) goto LA48_;
			liMessage__msgs_1128((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_884), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_885, NIM_FALSE);
		}
		LA48_: ;
		result = shallowCopy__ast_4414(n);
		{
			NI i_3;
			NI colontmp__3;
			NI i_4;
			i_3 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__ast_3155(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_11505(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_11591)(tyObject_TFieldsCtx__qXVR2KI9aIfwG9bg4IHg9cw7w c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* typ, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* forLoop, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father) {
{	switch ((*typ).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		tyObject_TFieldInstCtx__gggY1l2lKKFHg0YR3GdTXg fc;
		tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T2_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T4_;
		nimZeroMem((void*)(&fc), sizeof(tyObject_TFieldInstCtx__gggY1l2lKKFHg0YR3GdTXg));
		fc.c = c.c;
		fc.field = (*typ)._kind_4.sym;
		fc.replaceByFieldName = (c.m == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 129));
		T2_ = NIM_NIL;
		T2_ = openScope__lookups_76(c.c);
		(*c.c).inUnrolledContext += ((NI) 1);
		T3_ = NIM_NIL;
		T3_ = lastSon__ast_4833(forLoop);
		body = instFieldLoopBody__sem_11505((&fc), T3_, forLoop);
		T4_ = NIM_NIL;
		T4_ = semStmt__sem_87(c.c, body, 0);
		add__ast_4798(father, T4_);
		(*c.c).inUnrolledContext -= ((NI) 1);
		closeScope__lookups_108(c.c);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 139):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* call;
		NI T7_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* caseStmt;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* access;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T13_;
		T7_ = (NI)0;
		T7_ = len__ast_3155(forLoop);
		call = (*forLoop)._kind_6.sons->data[(NI)(T7_ - ((NI) 2))];
		{
			NI T10_;
			T10_ = (NI)0;
			T10_ = len__ast_3155(call);
			if (!(((NI) 2) < T10_)) goto LA11_;
			liMessage__msgs_1128((*(*c.c).graph).config, (*forLoop).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_886), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_887, NIM_FALSE);
			goto BeforeRet_;
		}
		LA11_: ;
		semForObjectFields__sem_11591(c, (*typ)._kind_6.sons->data[((NI) 0)], forLoop, father);
		caseStmt = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 97), (*forLoop).info);
		access = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_3707((*(*typ)._kind_6.sons->data[((NI) 0)])._kind_4.sym, (*forLoop).info));
		T13_ = NIM_NIL;
		T13_ = semExprWithType__sem_57(c.c, access, 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		add__ast_4798(caseStmt, T13_);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(typ);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch;
					NI T17_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
					NI T19_;
					if (!(i_2 < colontmp_)) goto LA16;
					i = i_2;
					branch = copyTree__ast_4432((*typ)._kind_6.sons->data[i]);
					T17_ = (NI)0;
					T17_ = len__ast_3155(branch);
					asgnRef((void**) (&(*branch)._kind_6.sons->data[(NI)(T17_ - ((NI) 1))]), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*forLoop).info));
					T18_ = NIM_NIL;
					T18_ = lastSon__ast_4833((*typ)._kind_6.sons->data[i]);
					T19_ = (NI)0;
					T19_ = len__ast_3155(branch);
					semForObjectFields__sem_11591(c, T18_, forLoop, (*branch)._kind_6.sons->data[(NI)(T19_ - ((NI) 1))]);
					add__ast_4798(caseStmt, branch);
					i_2 += ((NI) 1);
				} LA16: ;
			}
		}
		add__ast_4798(father, caseStmt);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138):
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(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_11591(c, t, forLoop, father);
						i_4 += ((NI) 1);
					} LA24: ;
				}
			}
		}
	}
	break;
	default:
	{
		illFormedAstLocal__semdata_1104(typ, (*(*c.c).graph).config);
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semForFields__sem_11679)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* trueSymbol;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* stmts;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* call;
	NI T9_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tupleTypeA;
{	result = NIM_NIL;
	result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96), (*n).info, ((NI) 2));
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_875));
	trueSymbol = systemModuleSym__modulegraphs_2867((*c).graph, T1_);
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T6_;
		tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T7_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T8_;
		if (!(trueSymbol == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA4_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_876), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_877, NIM_FALSE);
		T6_ = NIM_NIL;
		T6_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_875));
		T7_ = nextSymId__ast_3103((*c).Sup.idgen);
		T8_ = NIM_NIL;
		T8_ = getCurrOwner__semdata_327(c);
		trueSymbol = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 0), T6_, T7_, T8_, (*n).info, 0);
		asgnRef((void**) (&(*trueSymbol).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1)));
	}
	LA4_: ;
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3707(trueSymbol, (*n).info));
	stmts = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), stmts);
	T9_ = (NI)0;
	T9_ = len__ast_3155(n);
	call = (*n)._kind_6.sons->data[(NI)(T9_ - ((NI) 2))];
	{
		NI T12_;
		NI T13_;
		T12_ = (NI)0;
		T12_ = len__ast_3155(n);
		T13_ = (NI)0;
		T13_ = len__ast_3155(call);
		if (!!(((NI)(T12_ - ((NI) 2)) == (NI)((NI)(T13_ - ((NI) 1)) + (m == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 129)))))) goto LA14_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_603), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_879, NIM_FALSE);
		goto BeforeRet_;
	}
	LA14_: ;
	tupleTypeA = skipTypes__ast_3723((*(*call)._kind_6.sons->data[((NI) 1)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_880);
	{
		if (!!(((*tupleTypeA).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18) || (*tupleTypeA).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17)))) goto LA18_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_881), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_882, NIM_FALSE);
		goto BeforeRet_;
	}
	LA18_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(call);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* calli;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tupleTypeB;
				if (!(i_2 < colontmp_)) goto LA22;
				i = i_2;
				calli = (*call)._kind_6.sons->data[i];
				tupleTypeB = skipTypes__ast_3723((*calli).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_880);
				{
					NIM_BOOL T25_;
					T25_ = (NIM_BOOL)0;
					T25_ = sameType__types_1886(tupleTypeA, tupleTypeB, 0);
					if (!!(T25_)) goto LA26_;
					typeMismatch__types_3934((*(*c).graph).config, (*calli).info, tupleTypeA, tupleTypeB, calli);
				}
				LA26_: ;
				i_2 += ((NI) 1);
			} LA22: ;
		}
	}
	(*(*c).p).nestedLoopCounter += ((NI) 1);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* loopBody;
		NI T32_;
		if (!((*tupleTypeA).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18))) goto LA30_;
		T32_ = (NI)0;
		T32_ = len__ast_3155(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_3990(tupleTypeA);
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T36_;
					tyObject_TFieldInstCtx__gggY1l2lKKFHg0YR3GdTXg fc;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T37_;
					if (!(i_4 < colontmp__2)) goto LA35;
					i_3 = i_4;
					T36_ = NIM_NIL;
					T36_ = openScope__lookups_76(c);
					nimZeroMem((void*)(&fc), sizeof(tyObject_TFieldInstCtx__gggY1l2lKKFHg0YR3GdTXg));
					fc.tupleType = tupleTypeA;
					fc.tupleIndex = i_3;
					fc.c = c;
					fc.replaceByFieldName = (m == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 129));
					body = instFieldLoopBody__sem_11505((&fc), loopBody, n);
					(*c).inUnrolledContext += ((NI) 1);
					T37_ = NIM_NIL;
					T37_ = semStmt__sem_87(c, body, 0);
					add__ast_4798(stmts, T37_);
					(*c).inUnrolledContext -= ((NI) 1);
					closeScope__lookups_108(c);
					i_4 += ((NI) 1);
				} LA35: ;
			}
		}
	}
	goto LA28_;
	LA30_: ;
	{
		tyObject_TFieldsCtx__qXVR2KI9aIfwG9bg4IHg9cw7w fc_2;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
		nimZeroMem((void*)(&fc_2), sizeof(tyObject_TFieldsCtx__qXVR2KI9aIfwG9bg4IHg9cw7w));
		fc_2.m = m;
		fc_2.c = c;
		t = tupleTypeA;
		{
			while (1) {
				if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17))) goto LA40;
				semForObjectFields__sem_11591(fc_2, (*t).n, n, stmts);
				{
					if (!((*t).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA43_;
					goto LA39;
				}
				LA43_: ;
				t = skipTypes__ast_3723((*t).sons->data[((NI) 0)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_59);
			} LA40: ;
		} LA39: ;
	}
	LA28_: ;
	(*(*c).p).nestedLoopCounter -= ((NI) 1);
	{
		NIM_BOOL T47_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T50_;
		T47_ = (NIM_BOOL)0;
		T47_ = containsNode__ast_4546(stmts, TM__DKP9c7KM5AbqYVP6Gd9blNUw_888);
		if (!T47_) goto LA48_;
		b = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 110), (*n).info);
		T50_ = NIM_NIL;
		T50_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*n).info);
		add__ast_4798(b, T50_);
		add__ast_4798(stmts, b);
	}
	goto LA45_;
	LA48_: ;
	{
		result = stmts;
	}
	LA45_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, implicitIterator__sem_12130)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, NimStringDesc* it, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*arg).info);
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_152((*c).cache, it);
	T2_ = NIM_NIL;
	T2_ = newIdentNode__ast_3700(T1_, (*arg).info);
	add__ast_4798(result, T2_);
	{
		NIM_BOOL T5_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T9_;
		T5_ = (NIM_BOOL)0;
		T5_ = !(((*arg).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T5_)) goto LA6_;
		T5_ = ((*(*arg).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*(*arg).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47));
		LA6_: ;
		if (!T5_) goto LA7_;
		T9_ = NIM_NIL;
		T9_ = newDeref__lowerings_11(arg);
		add__ast_4798(result, T9_);
	}
	goto LA3_;
	LA7_: ;
	{
		add__ast_4798(result, arg);
	}
	LA3_: ;
	result = semExprNoDeref__sem_65(c, result, 2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semFor__sem_12272)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T5_;
	NI T6_;
	NI T7_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* call;
	NI T8_;
	NIM_BOOL isCallExpr;
{	result = NIM_NIL;
	checkMinSonsLen__semdata_1114(n, ((NI) 3), (*(*c).graph).config);
	result = handleForLoopMacro__sem_12225(c, n, flags);
	{
		if (!!((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = NIM_NIL;
	T5_ = openScope__lookups_76(c);
	result = n;
	T6_ = (NI)0;
	T6_ = len__ast_3155(n);
	T7_ = (NI)0;
	T7_ = len__ast_3155(n);
	asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T6_ - ((NI) 2))]), semExprNoDeref__sem_65(c, (*n)._kind_6.sons->data[(NI)(T7_ - ((NI) 2))], 2));
	T8_ = (NI)0;
	T8_ = len__ast_3155(n);
	call = (*n)._kind_6.sons->data[(NI)(T8_ - ((NI) 2))];
	{
		NIM_BOOL T11_;
		NIM_BOOL T13_;
		NIM_BOOL T15_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T16_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
		NI T21_;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*call).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126));
		if (!(T11_)) goto LA12_;
		T13_ = (NIM_BOOL)0;
		T13_ = isTrivalStmtExpr__sem_12155(call);
		if (T13_) goto LA14_;
		T15_ = (NIM_BOOL)0;
		T16_ = NIM_NIL;
		T16_ = lastSon__ast_4833(call);
		T15_ = ((*T16_).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*T16_).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*T16_).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*T16_).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*T16_).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*T16_).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*T16_).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32));
		if (!(T15_)) goto LA17_;
		T18_ = NIM_NIL;
		T18_ = lastSon__ast_4833(call);
		T15_ = ((*(*(*T18_)._kind_6.sons->data[((NI) 0)])._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15));
		LA17_: ;
		T13_ = T15_;
		LA14_: ;
		T11_ = T13_;
		LA12_: ;
		if (!T11_) goto LA19_;
		call = lastSon__ast_4833(call);
		T21_ = (NI)0;
		T21_ = len__ast_3155(n);
		asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T21_ - ((NI) 2))]), call);
	}
	LA19_: ;
	isCallExpr = ((*call).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*call).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*call).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*call).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*call).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*call).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*call).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32));
	{
		NIM_BOOL T24_;
		NIM_BOOL T25_;
		T24_ = (NIM_BOOL)0;
		T25_ = (NIM_BOOL)0;
		T25_ = isCallExpr;
		if (!(T25_)) goto LA26_;
		T25_ = ((*(*call)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
		LA26_: ;
		T24_ = T25_;
		if (!(T24_)) goto LA27_;
		T24_ = ((*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 128) || (*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 129) || (*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 130));
		LA27_: ;
		if (!T24_) goto LA28_;
		{
			if (!((*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 130))) goto LA32_;
			result = semForVars__sem_11882(c, n, flags);
			transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 95));
		}
		goto LA30_;
		LA32_: ;
		{
			result = semForFields__sem_11679(c, n, (*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic);
		}
		LA30_: ;
	}
	goto LA22_;
	LA28_: ;
	{
		NIM_BOOL T36_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T38_;
		T36_ = (NIM_BOOL)0;
		T36_ = isCallExpr;
		if (!(T36_)) goto LA37_;
		T38_ = NIM_NIL;
		T38_ = skipTypes__ast_3723((*(*call)._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
		T36_ = isClosureIterator__ast_5016(T38_);
		LA37_: ;
		if (!T36_) goto LA39_;
		result = semForVars__sem_11882(c, n, flags);
	}
	goto LA22_;
	LA39_: ;
	{
		NIM_BOOL T42_;
		NIM_BOOL T43_;
		T42_ = (NIM_BOOL)0;
		T43_ = (NIM_BOOL)0;
		T43_ = !(isCallExpr);
		if (T43_) goto LA44_;
		T43_ = !(((*(*call)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)));
		LA44_: ;
		T42_ = T43_;
		if (T42_) goto LA45_;
		T42_ = !(((*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15)));
		LA45_: ;
		if (!T42_) goto LA46_;
		{
			NI T50_;
			NI T53_;
			NI T54_;
			T50_ = (NI)0;
			T50_ = len__ast_3155(n);
			if (!(T50_ == ((NI) 3))) goto LA51_;
			T53_ = (NI)0;
			T53_ = len__ast_3155(n);
			T54_ = (NI)0;
			T54_ = len__ast_3155(n);
			asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T53_ - ((NI) 2))]), implicitIterator__sem_12130(c, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_889), (*n)._kind_6.sons->data[(NI)(T54_ - ((NI) 2))]));
		}
		goto LA48_;
		LA51_: ;
		{
			NI T56_;
			NI T59_;
			NI T60_;
			T56_ = (NI)0;
			T56_ = len__ast_3155(n);
			if (!(T56_ == ((NI) 4))) goto LA57_;
			T59_ = (NI)0;
			T59_ = len__ast_3155(n);
			T60_ = (NI)0;
			T60_ = len__ast_3155(n);
			asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T59_ - ((NI) 2))]), implicitIterator__sem_12130(c, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_890), (*n)._kind_6.sons->data[(NI)(T60_ - ((NI) 2))]));
		}
		goto LA48_;
		LA57_: ;
		{
			NI T62_;
			T62_ = (NI)0;
			T62_ = len__ast_3155(n);
			liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[(NI)(T62_ - ((NI) 2))]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_891), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_892, NIM_FALSE);
		}
		LA48_: ;
		result = semForVars__sem_11882(c, n, flags);
	}
	goto LA22_;
	LA46_: ;
	{
		result = semForVars__sem_11882(c, n, flags);
	}
	LA22_: ;
	{
		NI T66_;
		T66_ = (NI)0;
		T66_ = len__ast_3155(n);
		if (!((*(*n)._kind_6.sons->data[(NI)(T66_ - ((NI) 1))]).typ == (*c).enforceVoidContext)) goto LA67_;
		asgnRef((void**) (&(*result).typ), (*c).enforceVoidContext);
	}
	goto LA64_;
	LA67_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T72_;
		if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 3))&31U)))!=0)) goto LA70_;
		T72_ = NIM_NIL;
		T72_ = lastSon__ast_4833(result);
		asgnRef((void**) (&(*result).typ), (*T72_).typ);
	}
	goto LA64_;
	LA70_: ;
	LA64_: ;
	closeScope__lookups_108(c);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, handleCaseStmtMacro__sem_12235)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* toResolve;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	tySequence__LFzufdBEvfOUK6PWh0HUtQ* errors;
	tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw r;
	result = NIM_NIL;
	toResolve = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_893));
	T2_ = NIM_NIL;
	T2_ = newIdentNode__ast_3700(T1_, (*n).info);
	add__ast_4798(toResolve, T2_);
	add__ast_4798(toResolve, (*n)._kind_6.sons->data[((NI) 0)]);
	errors = NIM_NIL;
	nimZeroMem((void*)(&r), sizeof(tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw));
	resolveOverloads__sem_2071(c, toResolve, toResolve, 393216, 524288, (&errors), NIM_FALSE, (&r));
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* match;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* toExpand;
		if (!(r.state == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 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_2454(c, (&r), r.call, 0);
		switch ((*match).kind) {
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
		{
			result = semMacroExpr__sem_530(c, toExpand, toExpand, match, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		break;
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
		{
			result = semTemplateExpr__sem_524(c, toExpand, match, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		break;
		default:
		{
			result = errorNode__semdata_1039(c, (*n)._kind_6.sons->data[((NI) 0)]);
		}
		break;
		}
	}
	goto LA3_;
	LA5_: ;
	{
		if (!(r.state == ((tyEnum_TCandidateState__OWU1uSiYyPkPf9adpdtClBg) 2))) goto LA11_;
		result = errorNode__semdata_1039(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	goto LA3_;
	LA11_: ;
	LA3_: ;
	{
		if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA15_;
		liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_894), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_895, NIM_FALSE);
	}
	LA15_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semCase__sem_12403)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	NIM_BOOL chckCovered;
	tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ covered;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T2_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType_2;
	NIM_BOOL hasElse;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* caseTyp;
{	result = NIM_NIL;
	result = n;
	checkMinSonsLen__semdata_1114(n, ((NI) 2), (*(*c).graph).config);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	pushCaseContext__semdata_1135(c, n);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 0)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
	chckCovered = NIM_FALSE;
	covered = toInt128__types_1431(((NI) 0));
	T2_ = NIM_NIL;
	T2_ = (tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) newObj((&NTIptype__q1v0zzhoMWrhMLs6UEp1IA_), sizeof(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA));
	(*T2_).Sup.Sup.m_type = (&NTIttype__kQDDJGUiaUAtO9c9b6LjZYjA_);
	(*T2_).kind = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6);
	typ = T2_;
	expectedType_2 = expectedType;
	hasElse = NIM_FALSE;
	caseTyp = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_455);
	switch ((*caseTyp).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44):
	{
		chckCovered = NIM_TRUE;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 20):
	{
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T7_;
			T7_ = NIM_NIL;
			T7_ = skipTypes__ast_3723((*caseTyp).sons->data[((NI) 0)], TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
			if (!((*T7_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*T7_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35) || (*T7_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2) || (*T7_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*T7_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) && (*T7_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44) || (*T7_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1))) goto LA8_;
			chckCovered = NIM_TRUE;
		}
		LA8_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50):
	{
	}
	break;
	default:
	{
		popCaseContext__semdata_1151(c);
		closeScope__lookups_108(c);
		result = handleCaseStmtMacro__sem_12235(c, n, flags);
		goto BeforeRet_;
	}
	break;
	}
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
				if (!(i_2 < colontmp_)) goto LA14;
				i = i_2;
				setCaseContextIdx__semdata_1166(c, i);
				x = (*n)._kind_6.sons->data[i];
				switch ((*x).kind) {
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85):
				{
					NI last;
					NI T16_;
					checkMinSonsLen__semdata_1114(x, ((NI) 2), (*(*c).graph).config);
					semCaseBranch__sem_4013(c, n, x, i, (&covered));
					T16_ = (NI)0;
					T16_ = len__ast_3155(x);
					last = (NI)(T16_ - ((NI) 1));
					asgnRef((void**) (&(*x)._kind_6.sons->data[last]), semExprBranchScope__sem_9933(c, (*x)._kind_6.sons->data[last], expectedType_2));
					typ = commonType__sem_452(c, typ, (*x)._kind_6.sons->data[last]);
					expectedType_2 = typ;
				}
				break;
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86):
				{
					tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T18_;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T19_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T20_;
					chckCovered = NIM_FALSE;
					checkSonsLen__semdata_1107(x, ((NI) 2), (*(*c).graph).config);
					T18_ = NIM_NIL;
					T18_ = openScope__lookups_76(c);
					T19_ = NIM_NIL;
					T19_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
					T20_ = NIM_NIL;
					T20_ = semExprWithType__sem_57(c, (*x)._kind_6.sons->data[((NI) 0)], 0, T19_);
					asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 0)]), forceBool__sem_2933(c, T20_));
					asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 1)]), semExprBranch__sem_9919(c, (*x)._kind_6.sons->data[((NI) 1)], 0, expectedType_2));
					typ = commonType__sem_452(c, typ, (*x)._kind_6.sons->data[((NI) 1)]);
					expectedType_2 = typ;
					closeScope__lookups_108(c);
				}
				break;
				case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88):
				{
					checkSonsLen__semdata_1107(x, ((NI) 1), (*(*c).graph).config);
					asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 0)]), semExprBranchScope__sem_9933(c, (*x)._kind_6.sons->data[((NI) 0)], expectedType_2));
					typ = commonType__sem_452(c, typ, (*x)._kind_6.sons->data[((NI) 0)]);
					expectedType_2 = typ;
					{
						NIM_BOOL T24_;
						NIM_BOOL T25_;
						tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T27_;
						T24_ = (NIM_BOOL)0;
						T25_ = (NIM_BOOL)0;
						T25_ = chckCovered;
						if (!(T25_)) goto LA26_;
						T27_ = toCover__sem_4106(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
						T25_ = eqeq___int495056_425(covered, T27_);
						LA26_: ;
						T24_ = T25_;
						if (T24_) goto LA28_;
						T24_ = hasElse;
						LA28_: ;
						if (!T24_) goto LA29_;
						liMessage__msgs_1128((*(*c).graph).config, (*x).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 45), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_896, NIM_FALSE);
					}
					LA29_: ;
					hasElse = NIM_TRUE;
					chckCovered = NIM_FALSE;
				}
				break;
				default:
				{
					illFormedAst__semdata_1101(x, (*(*c).graph).config);
				}
				break;
				}
				i_2 += ((NI) 1);
			} LA14: ;
		}
	}
	{
		if (!chckCovered) goto LA34_;
		{
			tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T38_;
			NIM_BOOL T39_;
			T38_ = toCover__sem_4106(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			T39_ = (NIM_BOOL)0;
			T39_ = eqeq___int495056_425(covered, T38_);
			if (!T39_) goto LA40_;
			hasElse = NIM_TRUE;
		}
		goto LA36_;
		LA40_: ;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T43_;
			NimStringDesc* T46_;
			NimStringDesc* T47_;
			T43_ = NIM_NIL;
			T43_ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_468);
			if (!((*T43_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*T43_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2))) goto LA44_;
			T46_ = NIM_NIL;
			T46_ = formatMissingEnums__sem_4242(c, n);
			T47_ = NIM_NIL;
			T47_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_469), T46_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T47_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_897, NIM_FALSE);
		}
		goto LA36_;
		LA44_: ;
		{
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_474), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_898, NIM_FALSE);
		}
		LA36_: ;
	}
	LA34_: ;
	popCaseContext__semdata_1151(c);
	closeScope__lookups_108(c);
	{
		NIM_BOOL T51_;
		NIM_BOOL T52_;
		NIM_BOOL T55_;
		T51_ = (NIM_BOOL)0;
		T52_ = (NIM_BOOL)0;
		T52_ = isEmptyType__ast_4780(typ);
		if (T52_) goto LA53_;
		T52_ = ((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5) || (*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6));
		LA53_: ;
		T51_ = T52_;
		if (T51_) goto LA54_;
		T55_ = (NIM_BOOL)0;
		T55_ = !(hasElse);
		if (!(T55_)) goto LA56_;
		T55_ = !(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 3))&31U)))!=0));
		LA56_: ;
		T51_ = T55_;
		LA54_: ;
		if (!T51_) goto LA57_;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3155(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T62_;
					if (!(i_4 < colontmp__2)) goto LA61;
					i_3 = i_4;
					T62_ = NIM_NIL;
					T62_ = lastSon__ast_4833((*n)._kind_6.sons->data[i_3]);
					discardCheck__sem_9980(c, T62_, flags);
					i_4 += ((NI) 1);
				} LA61: ;
			}
		}
		{
			if (!(typ == (*c).enforceVoidContext)) goto LA65_;
			asgnRef((void**) (&(*result).typ), (*c).enforceVoidContext);
		}
		LA65_: ;
	}
	goto LA49_;
	LA57_: ;
	{
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__ast_3155(n);
			i_6 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
					NI j;
					NI T71_;
					if (!(i_6 < colontmp__3)) goto LA70;
					i_5 = i_6;
					it = (*n)._kind_6.sons->data[i_5];
					T71_ = (NI)0;
					T71_ = len__ast_3155(it);
					j = (NI)(T71_ - ((NI) 1));
					{
						NIM_BOOL T74_;
						T74_ = (NIM_BOOL)0;
						T74_ = endsInNoReturn__sem_420((*it)._kind_6.sons->data[j]);
						if (!!(T74_)) goto LA75_;
						asgnRef((void**) (&(*it)._kind_6.sons->data[j]), fitNode__sem_73(c, typ, (*it)._kind_6.sons->data[j], (*(*it)._kind_6.sons->data[j]).info));
					}
					LA75_: ;
					i_6 += ((NI) 1);
				} LA70: ;
			}
		}
		asgnRef((void**) (&(*result).typ), typ);
	}
	LA49_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semReturn__sem_19136)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1107(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_5016((*(*(*c).p).owner).typ);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 73));
				if (!(T16_)) goto LA17_;
				T16_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__uh9cWvEa5Ty85PXOtuP5emw* a;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T24_;
				if (!!(((*(*c).p).resultSym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA22_;
				a = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				T24_ = NIM_NIL;
				T24_ = newSymNode__ast_3704((*(*c).p).resultSym);
				add__ast_4798(a, T24_);
				add__ast_4798(a, (*n)._kind_6.sons->data[((NI) 0)]);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), a);
			}
			goto LA13_;
			LA22_: ;
			{
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_899), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_900, NIM_FALSE);
				goto BeforeRet_;
			}
			LA13_: ;
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), semAsgn__sem_16464(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyEnum_SemAsgnMode__wU47lOiWWDnJezONEKyuEA) 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__clSgDh22o9au33BrVH9bDQZw) 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_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_901), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_902, NIM_FALSE);
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semUsing__sem_10449)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = (*(*c).graph).emptyNode;
	{
		NIM_BOOL T3_;
		NimStringDesc* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__semdata_1121(c);
		if (!!(T3_)) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_119), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_903));
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T6_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_904, NIM_FALSE);
	}
	LA4_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* def;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*(*(*c).graph).config).cmd == ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 11))) goto LA13_;
						suggestStmt__sigmatch_6347(c, a);
					}
					LA13_: ;
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125))) goto LA17_;
						goto LA10;
					}
					LA17_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 102)))) goto LA21_;
						illFormedAst__semdata_1101(a, (*(*c).graph).config);
					}
					LA21_: ;
					checkMinSonsLen__semdata_1114(a, ((NI) 3), (*(*c).graph).config);
					{
						NI T25_;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
						NI T28_;
						T25_ = (NI)0;
						T25_ = len__ast_3155(a);
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T25_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA26_;
						T28_ = (NI)0;
						T28_ = len__ast_3155(a);
						typ = semTypeNode__sem_83(c, (*a)._kind_6.sons->data[(NI)(T28_ - ((NI) 2))], ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) 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_3155(a);
							colontmp__2 = (NI)(T30_ - ((NI) 2));
							i_3 = ((NI) 0);
							{
								while (1) {
									tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v;
									NIM_BOOL T61_;
									if (!(i_3 < colontmp__2)) goto LA32;
									j = i_3;
									v = semIdentDef__sem_10359(c, (*a)._kind_6.sons->data[j], ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3), NIM_TRUE);
									{
										NIM_BOOL T35_;
										NIM_BOOL T36_;
										NIM_BOOL T37_;
										NIM_BOOL T38_;
										NIM_BOOL T39_;
										NIM_BOOL T40_;
										NIM_BOOL T41_;
										NIM_BOOL T42_;
										NIM_BOOL T43_;
										NIM_BOOL T44_;
										NIM_BOOL T45_;
										NIM_BOOL T55_;
										T35_ = (NIM_BOOL)0;
										T36_ = (NIM_BOOL)0;
										T37_ = (NIM_BOOL)0;
										T38_ = (NIM_BOOL)0;
										T39_ = (NIM_BOOL)0;
										T40_ = (NIM_BOOL)0;
										T41_ = (NIM_BOOL)0;
										T42_ = (NIM_BOOL)0;
										T43_ = (NIM_BOOL)0;
										T44_ = (NIM_BOOL)0;
										T45_ = (NIM_BOOL)0;
										T45_ = (((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 10))&31U)))!=0);
										if (!(T45_)) goto LA46_;
										T45_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
										LA46_: ;
										T44_ = T45_;
										if (!(T44_)) goto LA47_;
										T44_ = (((*(*(*c).graph).config).notes[(NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 91)- 17))&7U)))!=0);
										LA47_: ;
										T43_ = T44_;
										if (!(T43_)) goto LA48_;
										T43_ = belongsToProjectPackage__packages_50((*(*c).graph).config, v);
										LA48_: ;
										T42_ = T43_;
										if (!(T42_)) goto LA49_;
										T42_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 16))&63U)))!=0));
										LA49_: ;
										T41_ = T42_;
										if (!(T41_)) goto LA50_;
										T41_ = !(((*v).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11)));
										LA50_: ;
										T40_ = T41_;
										if (!(T40_)) goto LA51_;
										T40_ = !(((*v).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5)));
										LA51_: ;
										T39_ = T40_;
										if (!(T39_)) goto LA52_;
										T39_ = ((Letters__linter_12[(NU)(((NU8)((*(*v).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*v).name).s->data[((NI) 0)])))&7U)))!=0);
										LA52_: ;
										T38_ = T39_;
										if (!(T38_)) goto LA53_;
										T38_ = !(((144 &((NU32)1<<((NU)((*v).kind)&31U)))!=0));
										LA53_: ;
										T37_ = T38_;
										if (!(T37_)) goto LA54_;
										T55_ = (NIM_BOOL)0;
										T55_ = ((*v).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
										if (T55_) goto LA56_;
										T55_ = !(((*(*v).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)));
										LA56_: ;
										T37_ = T55_;
										LA54_: ;
										T36_ = T37_;
										if (!(T36_)) goto LA57_;
										T36_ = ((192 & (*v).flags) == 0);
										LA57_: ;
										T35_ = T36_;
										if (!(T35_)) goto LA58_;
										T35_ = !((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 34))&63U)))!=0));
										LA58_: ;
										if (!T35_) goto LA59_;
										nep1CheckDefImpl__linter_112((*(*c).graph).config, (*v).info, v, (*v).kind);
									}
									LA59_: ;
									asgnRef((void**) (&(*v).typ), typ);
									T61_ = (NIM_BOOL)0;
									T61_ = strTableIncl__astalgo_3374((&(*c).signatures), v, NIM_FALSE);
									i_3 += ((NI) 1);
								} LA32: ;
							}
						}
					}
					goto LA23_;
					LA26_: ;
					{
						liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_905), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_906, NIM_FALSE);
					}
					LA23_: ;
					def = NIM_NIL;
					{
						NI T65_;
						T65_ = (NI)0;
						T65_ = len__ast_3155(a);
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T65_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA66_;
						liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_907), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_908, NIM_FALSE);
					}
					LA66_: ;
				} LA10: ;
				i_2 += ((NI) 1);
			} LA9: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semAsm__sem_9881)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NIM_CHAR marker;
	result = NIM_NIL;
	checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
	marker = pragmaAsm__pragmas_203(c, (*n)._kind_6.sons->data[((NI) 0)]);
	{
		if (!((NU8)(marker) == (NU8)(0))) goto LA3_;
		marker = 96;
	}
	LA3_: ;
	result = semAsmOrEmit__pragmas_1136(c, n, marker);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semYieldVarResult__sem_19243)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* restype) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	t = skipTypes__ast_3723(restype, TM__DKP9c7KM5AbqYVP6Gd9blNUw_141);
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47):
	{
		(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 20)) & 63);
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_18823(c, (*n)._kind_6.sons->data[((NI) 0)], ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47))));
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3990(t);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* e;
					if (!(i_2 < colontmp_)) goto LA9;
					i = i_2;
					e = skipTypes__ast_3723((*t).sons->data[i], TM__DKP9c7KM5AbqYVP6Gd9blNUw_141);
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tupleConstr;
						if (!((*e).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*e).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47))) goto LA12_;
						(*e).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 20)) & 63);
						{
							if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 37) || (*tupleConstr).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160))) goto LA21_;
							{
								if (!((*(*tupleConstr)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34))) goto LA25_;
								asgnRef((void**) (&(*(*tupleConstr)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]), takeImplicitAddr__sem_18823(c, (*(*tupleConstr)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], ((*e).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47))));
							}
							goto LA23_;
							LA25_: ;
							{
								asgnRef((void**) (&(*tupleConstr)._kind_6.sons->data[i]), takeImplicitAddr__sem_18823(c, (*tupleConstr)._kind_6.sons->data[i], ((*e).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47))));
							}
							LA23_: ;
						}
						goto LA19_;
						LA21_: ;
						{
							liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 5), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_913), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_914, NIM_FALSE);
						}
						LA19_: ;
					}
					goto LA10_;
					LA12_: ;
					{
						if (!((*e).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 3))) goto LA30_;
						liMessage__msgs_1128((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_27), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_915, NIM_FALSE);
					}
					goto LA10_;
					LA30_: ;
					LA10_: ;
					i_2 += ((NI) 1);
				} LA9: ;
			}
		}
	}
	break;
	default:
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semYield__sem_19322)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1107(n, ((NI) 1), (*(*c).graph).config);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*c).p).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15)));
		LA4_: ;
		if (!T3_) goto LA5_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_909), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_910, NIM_FALSE);
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* iterType;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* restype;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA8_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_57(c, (*n)._kind_6.sons->data[((NI) 0)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		iterType = (*(*(*c).p).owner).typ;
		restype = (*iterType).sons->data[((NI) 0)];
		{
			if (!!((restype == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA12_;
			{
				if (!!(((*restype).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6)))) goto LA16_;
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), fitNode__sem_73(c, restype, (*n)._kind_6.sons->data[((NI) 0)], (*n).info));
			}
			LA16_: ;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA20_;
				internalErrorImpl__msgs_1441((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_911), TM__DKP9c7KM5AbqYVP6Gd9blNUw_912);
			}
			LA20_: ;
			{
				NIM_BOOL T24_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* inferred;
				T24_ = (NIM_BOOL)0;
				T24_ = isMetaType__ast_3474(restype);
				if (!(T24_)) goto LA25_;
				T24_ = !(((*restype).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA30_;
					asgnRef((void**) (&(*(*(*c).p).resultSym).typ), inferred);
				}
				LA30_: ;
			}
			LA26_: ;
			semYieldVarResult__sem_19243(c, n, restype);
		}
		goto LA10_;
		LA12_: ;
		{
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_916), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_917, NIM_FALSE);
		}
		LA10_: ;
	}
	goto LA1_;
	LA8_: ;
	{
		if (!!(((*(*(*(*c).p).owner).typ).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA34_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_918), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_919, NIM_FALSE);
	}
	goto LA1_;
	LA34_: ;
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semPragmaStmt__sem_21730)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		if (!((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6))) goto LA3_;
		pragma__pragmas_125(c, (*(*c).p).owner, n, TM__DKP9c7KM5AbqYVP6Gd9blNUw_920, NIM_TRUE);
	}
	goto LA1_;
	LA3_: ;
	{
		pragma__pragmas_125(c, (*(*c).p).owner, n, TM__DKP9c7KM5AbqYVP6Gd9blNUw_921, NIM_TRUE);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semIterator__sem_14495)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
{	result = NIM_NIL;
	{
		if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA3_;
		asgnRef((void**) (&(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).owner), getCurrOwner__semdata_327(c));
		transitionRoutineSymKind__ast_4394((*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym, ((tyEnum_TSymKind__5avKs4TYFTeLPAJjwtJ4cg) 15));
	}
	LA3_: ;
	result = semProcAux__sem_14073(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15), TM__DKP9c7KM5AbqYVP6Gd9blNUw_922, 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__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		if (!(T11_)) goto LA12_;
		T11_ = !(((*(*s).typ).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9)));
		LA12_: ;
		if (!T11_) goto LA13_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_923), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_924, NIM_FALSE);
	}
	LA13_: ;
	{
		if (!((*(*s).typ).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9))) goto LA17_;
		(*(*s).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 12)) & 63);
	}
	goto LA15_;
	LA17_: ;
	{
		(*(*s).typ).callConv = ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 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__clSgDh22o9au33BrVH9bDQZw) 1));
		if (!(T23_)) goto LA24_;
		T23_ = ((*s).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 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__DKP9c7KM5AbqYVP6Gd9blNUw_403), (*(*s).name).s);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T28_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_925, NIM_FALSE);
	}
	LA26_: ;
	{
		NIM_BOOL T31_;
		T31_ = (NIM_BOOL)0;
		T31_ = (((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 42))&63U)))!=0);
		if (!(T31_)) goto LA32_;
		T31_ = !(((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA32_: ;
		if (!T31_) goto LA33_;
		asgnRef((void**) (&(*result).typ), makeVarType__semdata_796(c, (*result).typ, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45)));
		(*(*result).typ).callConv = ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9);
	}
	LA33_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semProc__sem_9916)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = semProcAux__sem_14073(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12), TM__DKP9c7KM5AbqYVP6Gd9blNUw_926, 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semFunc__sem_14551)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw validPragmas;
	result = NIM_NIL;
	nimZeroMem((void*)validPragmas, sizeof(tySet_tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw));
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA3_;
		nimCopyMem((void*)validPragmas, (NIM_CONST void*)TM__DKP9c7KM5AbqYVP6Gd9blNUw_926, 37);
	}
	goto LA1_;
	LA3_: ;
	{
		nimCopyMem((void*)validPragmas, (NIM_CONST void*)TM__DKP9c7KM5AbqYVP6Gd9blNUw_927, 37);
	}
	LA1_: ;
	result = semProcAux__sem_14073(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 13), validPragmas, 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semMethod__sem_14561)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* disp;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NimStringDesc* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__semdata_1121(c);
		if (!!(T3_)) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_119), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_928));
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T6_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_929, NIM_FALSE);
	}
	LA4_: ;
	result = semProcAux__sem_14073(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14), TM__DKP9c7KM5AbqYVP6Gd9blNUw_930, 0);
	{
		NI T9_;
		T9_ = (NI)0;
		T9_ = safeLen__ast_3148(result);
		if (!(T9_ <= ((NI) 0))) goto LA10_;
		goto BeforeRet_;
	}
	LA10_: ;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__kQDDJGUiaUAtO9c9b6LjZYjA* ret;
		T18_ = (NIM_BOOL)0;
		T19_ = (NIM_BOOL)0;
		T19_ = !((disp == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
		if (!(T19_)) goto LA20_;
		T19_ = !(((*(*disp).typ).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA20_: ;
		T18_ = T19_;
		if (!(T18_)) goto LA21_;
		T18_ = ((*(*(*disp).typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA26_;
			{
				NIM_BOOL T30_;
				T30_ = (NIM_BOOL)0;
				T30_ = isEmptyType__ast_4780(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__uh9cWvEa5Ty85PXOtuP5emw*, semConverterDef__sem_14596)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg T26_;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NimStringDesc* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__semdata_1121(c);
		if (!!(T3_)) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_119), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_931));
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T6_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_932, NIM_FALSE);
	}
	LA4_: ;
	result = semProcAux__sem_14073(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 16), TM__DKP9c7KM5AbqYVP6Gd9blNUw_926, 0);
	{
		NI T9_;
		T9_ = (NI)0;
		T9_ = safeLen__ast_3148(result);
		if (!(T9_ <= ((NI) 0))) goto LA10_;
		goto BeforeRet_;
	}
	LA10_: ;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA18_;
		T20_ = NIM_NIL;
		T20_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_933), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_931));
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T20_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_934, NIM_FALSE);
	}
	LA18_: ;
	{
		NI T23_;
		T23_ = (NI)0;
		T23_ = len__ast_3990(t);
		if (!!((T23_ == ((NI) 2)))) goto LA24_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_935), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_936, NIM_FALSE);
	}
	LA24_: ;
	nimZeroMem((void*)(&T26_), sizeof(tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg));
	nimZeroMem((void*)(&T26_), sizeof(tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg));
	T26_.sym = s;
	addConverterDef__semdata_697(c, T26_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semMacroDef__sem_14615)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	NIM_BOOL allUntyped;
{	result = NIM_NIL;
	result = semProcAux__sem_14073(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17), TM__DKP9c7KM5AbqYVP6Gd9blNUw_937, 0);
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = safeLen__ast_3148(result);
		if (!(T3_ <= ((NI) 0))) goto LA4_;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_3155((*t).n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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__b28l2MkhJpnFhatVrsrXpg) 6)))) goto LA15_;
					allUntyped = NIM_FALSE;
				}
				LA15_: ;
				i_2 += ((NI) 1);
			} LA12: ;
		}
	}
	{
		if (!allUntyped) goto LA19_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 9)) & 63);
	}
	LA19_: ;
	{
		NimStringDesc* T25_;
		if (!((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA23_;
		T25_ = NIM_NIL;
		T25_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_403), (*(*s).name).s);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T25_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_938, NIM_FALSE);
	}
	LA23_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, incMod__sem_14650)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* includeStmtResult) {
	NI32 f;
	f = checkModuleName__modulepaths_21((*(*c).graph).config, it, NIM_TRUE);
	{
		if (!!((f == ((NI32) -1)))) goto LA3_;
		addIncludeFileDep__semdata_634(c, f);
		onProcessing__modulegraphs_13127((*c).graph, f, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_948), (*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_612((*(*c).graph).config, f);
			T11_ = NIM_NIL;
			T11_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_11), T10_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T11_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_949, NIM_FALSE);
		}
		goto LA5_;
		LA8_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T13_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T14_;
			T13_ = NIM_NIL;
			T13_ = (*(*c).graph).includeFileCallback((*c).graph, (*c).module, f);
			T14_ = NIM_NIL;
			T14_ = semStmt__sem_87(c, T13_, 0);
			add__ast_4798(includeStmtResult, T14_);
			excl__reorder_273((&(*c).includedFiles), ((NI) (f)));
		}
		LA5_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, evalInclude__sem_14670)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
	add__ast_4798(result, n);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* imp;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__clSgDh22o9au33BrVH9bDQZw) 29));
					if (!(T7_)) goto LA8_;
					T9_ = (NI)0;
					T9_ = len__ast_3155(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__DKP9c7KM5AbqYVP6Gd9blNUw_944)));
					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__DKP9c7KM5AbqYVP6Gd9blNUw_945));
appendString(T13_, (*(*(*it)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s);
appendString(T13_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_946));
					liMessage__msgs_1128((*(*c).graph).config, (*it).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T13_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_947, NIM_FALSE);
				}
				LA11_: ;
				{
					NIM_BOOL T16_;
					NIM_BOOL T17_;
					NI T19_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* sep;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dir;
					T16_ = (NIM_BOOL)0;
					T17_ = (NIM_BOOL)0;
					T17_ = ((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29));
					if (!(T17_)) goto LA18_;
					T19_ = (NI)0;
					T19_ = len__ast_3155(it);
					T17_ = (T19_ == ((NI) 3));
					LA18_: ;
					T16_ = T17_;
					if (!(T16_)) goto LA20_;
					T16_ = ((*(*it)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29), (*it).info);
					add__ast_4798(imp, sep);
					add__ast_4798(imp, dir);
					add__ast_4798(imp, sep);
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3148(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_14650(c, n, imp, result);
									i_4 += ((NI) 1);
								} LA26: ;
							}
						}
					}
				}
				goto LA14_;
				LA21_: ;
				{
					incMod__sem_14650(c, n, it, result);
				}
				LA14_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_2710)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* 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__K6X1Kd9cJ9a0hyG1Twv69bMNg) 3));
	LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_2722)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = isCachedModule__modulegraphs_2710(g, (*m).position);
	return result;
}
static N_INLINE(void, specialSyms__sem_21377)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	{
		tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg T5_;
		if (!((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 16))) goto LA3_;
		nimZeroMem((void*)(&T5_), sizeof(tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg));
		nimZeroMem((void*)(&T5_), sizeof(tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg));
		T5_.sym = s;
		addConverter__semdata_683(c, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg T15_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T9_ = (NIM_BOOL)0;
		T9_ = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7));
		if (!(T9_)) goto LA10_;
		T9_ = !(((*s).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA10_: ;
		T8_ = T9_;
		if (!(T8_)) goto LA11_;
		T8_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14));
		LA11_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA12_;
		T7_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 11))&63U)))!=0);
		LA12_: ;
		if (!T7_) goto LA13_;
		nimZeroMem((void*)(&T15_), sizeof(tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg));
		nimZeroMem((void*)(&T15_), sizeof(tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg));
		T15_.sym = s;
		addPureEnum__semdata_704(c, T15_);
	}
	goto LA1_;
	LA13_: ;
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExport__sem_21373)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 118), (*n).info);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
				tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg o;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__CvTtbgSac6VxMVCfhzIzkg));
				s = initOverloadIter__lookups_3120((&o), c, a);
				{
					NimStringDesc* T8_;
					NimStringDesc* T9_;
					if (!(s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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__DKP9c7KM5AbqYVP6Gd9blNUw_951));
appendString(T8_, T9_);
					liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T8_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_952, NIM_FALSE);
				}
				goto LA4_;
				LA6_: ;
				{
					if (!((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6))) goto LA11_;
					reexportSym__semdata_747(c, s);
					{
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* it;
						NIM_BOOL importHidden;
						it = NIM_NIL;
						importHidden = (((*s).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 27))&31U)))!=0);
						{
							NIM_BOOL T16_;
							tyObject_RodIter__L6nv9cakjPARHk068AFo6ww rodIt;
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* r;
							T16_ = (NIM_BOOL)0;
							T16_ = isCachedModule__modulegraphs_2722((*c).graph, s);
							if (!T16_) goto LA17_;
							nimZeroMem((void*)(&rodIt), sizeof(tyObject_RodIter__L6nv9cakjPARHk068AFo6ww));
							r = initRodIterAllSyms__icZic_8670((&rodIt), (*(*c).graph).config, (*(*c).graph).cache, (&(*(*c).graph).packed_0), ((NI32) ((*s).position)), importHidden);
							{
								while (1) {
									if (!!((r == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA20;
									it = r;
									{
										tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T25_;
										if (!((43513792 &((NU32)1<<((NU)((*it).kind)&31U)))!=0)) goto LA23_;
										reexportSym__semdata_747(c, it);
										T25_ = NIM_NIL;
										T25_ = newSymNode__ast_3707(it, (*a).info);
										add__ast_4798(result, T25_);
										specialSyms__sem_21377(c, it);
									}
									LA23_: ;
									r = nextRodIter__icZic_8980((&rodIt), (&(*(*c).graph).packed_0));
								} LA20: ;
							}
						}
						goto LA14_;
						LA17_: ;
						{
							{
								tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** s_2;
								tySequence__ed0C0uAUZPhvw3RAc5hfYg* colontmp__2;
								tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw* retX60gensym17_;
								NI i_3;
								NI L;
								NI T32_;
								s_2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA37_;
											it = (*s_2);
											{
												tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T43_;
												if (!((*it).kind >= ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6) && (*it).kind <= ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10) || (*it).kind >= ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12) && (*it).kind <= ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18) || (*it).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 20) || (*it).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 23) || (*it).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 25))) goto LA41_;
												reexportSym__semdata_747(c, it);
												T43_ = NIM_NIL;
												T43_ = newSymNode__ast_3707(it, (*a).info);
												add__ast_4798(result, T43_);
												specialSyms__sem_21377(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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA46;
							{
								NimStringDesc* T51_;
								NimStringDesc* T52_;
								if (!((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__DKP9c7KM5AbqYVP6Gd9blNUw_951));
appendString(T51_, T52_);
appendString(T51_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_953));
								liMessage__msgs_1128((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T51_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_954, NIM_FALSE);
							}
							LA49_: ;
							{
								NIM_BOOL T55_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__9be9c6fEXk5NwyPvxxb6toPA) 24))&63U)))!=0));
								LA56_: ;
								if (!T55_) goto LA57_;
								T59_ = NIM_NIL;
								T59_ = newSymNode__ast_3707(s, (*a).info);
								add__ast_4798(result, T59_);
								reexportSym__semdata_747(c, s);
								markUsed__sigmatch_85(c, (*n).info, s);
								specialSyms__sem_21377(c, s);
								{
									NIM_BOOL T62_;
									tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* etyp;
									T62_ = (NIM_BOOL)0;
									T62_ = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7));
									if (!(T62_)) goto LA63_;
									T62_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 11))&63U)))!=0));
									LA63_: ;
									if (!T62_) goto LA64_;
									etyp = (*s).typ;
									{
										if (!((*etyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1) || (*etyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14))) goto LA68_;
										{
											NI j;
											NI colontmp__3;
											NI i_4;
											j = (NI)0;
											colontmp__3 = (NI)0;
											colontmp__3 = len__ast_3155((*etyp).n);
											i_4 = ((NI) 0);
											{
												while (1) {
													tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* 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__sjiB9b9aO1FRPetW6gPYZbfw) 20)))) goto LA75_;
														internalErrorImpl__msgs_1441((*(*c).graph).config, (*s).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_955), TM__DKP9c7KM5AbqYVP6Gd9blNUw_956);
													}
													LA75_: ;
													reexportSym__semdata_747(c, e);
													i_4 += ((NI) 1);
												} LA72: ;
											}
										}
									}
									LA68_: ;
								}
								LA64_: ;
							}
							LA57_: ;
							s = nextOverloadIter__lookups_3274((&o), c, a);
						} LA46: ;
					}
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExportExcept__sem_21334)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* moduleName;
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw exceptSet;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* exported;
{	result = NIM_NIL;
	moduleName = semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*moduleName).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)));
		if (T3_) goto LA4_;
		T3_ = !(((*(*moduleName)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6)));
		LA4_: ;
		if (!T3_) goto LA5_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_958), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_959, NIM_FALSE);
		result = n;
		goto BeforeRet_;
	}
	LA5_: ;
	nimZeroMem((void*)(&exceptSet), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	readExceptSet__importer_17(c, n, (&exceptSet));
	exported = (*moduleName)._kind_4.sym;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 118), (*n).info);
	reexportSym__semdata_747(c, exported);
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		NIM_BOOL importHidden;
		s = NIM_NIL;
		importHidden = (((*exported).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 27))&31U)))!=0);
		{
			NIM_BOOL T10_;
			tyObject_RodIter__L6nv9cakjPARHk068AFo6ww rodIt;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* r;
			T10_ = (NIM_BOOL)0;
			T10_ = isCachedModule__modulegraphs_2722((*c).graph, exported);
			if (!T10_) goto LA11_;
			nimZeroMem((void*)(&rodIt), sizeof(tyObject_RodIter__L6nv9cakjPARHk068AFo6ww));
			r = initRodIterAllSyms__icZic_8670((&rodIt), (*(*c).graph).config, (*(*c).graph).cache, (&(*(*c).graph).packed_0), ((NI32) ((*exported).position)), importHidden);
			{
				while (1) {
					if (!!((r == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA14;
					s = r;
					{
						NIM_BOOL T17_;
						NIM_BOOL T18_;
						NIM_BOOL T20_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__9be9c6fEXk5NwyPvxxb6toPA) 24))&63U)))!=0));
						LA21_: ;
						if (!T17_) goto LA22_;
						reexportSym__semdata_747(c, s);
						T24_ = NIM_NIL;
						T24_ = newSymNode__ast_3707(s, (*n).info);
						add__ast_4798(result, T24_);
					}
					LA22_: ;
					r = nextRodIter__icZic_8980((&rodIt), (&(*(*c).graph).packed_0));
				} LA14: ;
			}
		}
		goto LA8_;
		LA11_: ;
		{
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** s_2;
				tySequence__ed0C0uAUZPhvw3RAc5hfYg* colontmp_;
				tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw* retX60gensym17_;
				NI i;
				NI L;
				NI T31_;
				s_2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA36_;
							s = (*s_2);
							{
								NIM_BOOL T40_;
								NIM_BOOL T41_;
								NIM_BOOL T43_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T47_;
								T40_ = (NIM_BOOL)0;
								T41_ = (NIM_BOOL)0;
								T41_ = ((*s).kind >= ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6) && (*s).kind <= ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10) || (*s).kind >= ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12) && (*s).kind <= ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18) || (*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 20) || (*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 23) || (*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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__9be9c6fEXk5NwyPvxxb6toPA) 24))&63U)))!=0));
								LA44_: ;
								if (!T40_) goto LA45_;
								reexportSym__semdata_747(c, s);
								T47_ = NIM_NIL;
								T47_ = newSymNode__ast_3707(s, (*n).info);
								add__ast_4798(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_14729)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	{
		if (!!((n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					setLine__sem_14729((*n)._kind_6.sons->data[i], info);
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
		(*n).info = info;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semPragmaBlock__sem_14742)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pragmaList;
	NI inUncheckedAssignSection;
	result = NIM_NIL;
	checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
	pragmaList = (*n)._kind_6.sons->data[((NI) 0)];
	pragma__pragmas_125(c, ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL), pragmaList, TM__DKP9c7KM5AbqYVP6Gd9blNUw_960, NIM_TRUE);
	inUncheckedAssignSection = ((NI) 0);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* p;
		p = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(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__N2XsqTpO5IzOf2KmXwk4Dw T7_;
						tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw T10_;
						T7_ = (tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw)0;
						T7_ = whichPragma__trees_244(p);
						if (!(T7_ == ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 9))) goto LA8_;
						T10_ = (tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw)0;
						T10_ = whichPragma__trees_244((*p)._kind_6.sons->data[((NI) 1)]);
						switch (T10_) {
						case ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 110):
						case ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 109):
						case ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 179):
						case ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 174):
						{
						}
						break;
						case ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 86):
						{
							inUncheckedAssignSection = ((NI) 1);
						}
						break;
						default:
						{
							NimStringDesc* T14_;
							NimStringDesc* T15_;
							T14_ = NIM_NIL;
							T15_ = NIM_NIL;
							T15_ = dollar___renderer_2116(p);
							T14_ = rawNewString((T15_ ? T15_->Sup.len : 0) + 22);
appendString(T14_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_961));
appendString(T14_, T15_);
							liMessage__msgs_1128((*(*c).graph).config, (*p).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T14_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_962, 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, expectedType));
	(*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_3155(pragmaList);
		i_4 = ((NI) 0);
		{
			while (1) {
				tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw T19_;
				if (!(i_4 < colontmp__2)) goto LA18;
				i_3 = i_4;
				T19_ = (tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw)0;
				T19_ = whichPragma__trees_244((*pragmaList)._kind_6.sons->data[i_3]);
				switch (T19_) {
				case ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 127):
				{
					setLine__sem_14729(result, (*(*pragmaList)._kind_6.sons->data[i_3]).info);
				}
				break;
				case ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 190):
				{
					(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 6)) & 31);
				}
				break;
				default:
				{
				}
				break;
				}
				i_4 += ((NI) 1);
			} LA18: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semStaticStmt__sem_14781)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	result = NIM_NIL;
	(*c).inStaticContext += ((NI) 1);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_76(c);
	a = semStmt__sem_87(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	closeScope__lookups_108(c);
	(*c).inStaticContext -= ((NI) 1);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), a);
	evalStaticStmt__vm_14112((*c).module, (*c).Sup.idgen, (*c).graph, a, (*(*c).p).owner);
	result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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__uh9cWvEa5Ty85PXOtuP5emw*, semExpr__sem_52)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	result = n;
	{
		if (!((*(*(*c).graph).config).cmd == ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 11))) goto LA3_;
		suggestExpr__sigmatch_6331(c, n);
	}
	LA3_: ;
	{
		if (!(((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 7))&31U)))!=0)) goto LA7_;
		goto BeforeRet_;
	}
	LA7_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		s = NIM_NIL;
		{
			NIM_BOOL T12_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expected;
			NI nameId;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T16_;
			T12_ = (NIM_BOOL)0;
			T12_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T12_)) goto LA13_;
			expected = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
			T12_ = ((*expected).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14));
			LA13_: ;
			if (!T12_) goto LA14_;
			T16_ = NIM_NIL;
			T16_ = considerQuotedIdent__lookups_29(c, n, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
			nameId = (*T16_).id;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* f;
				f = NIM_NIL;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen__ast_3148((*expected).n);
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA20;
							i = i_2;
							f = (*(*expected).n)._kind_6.sons->data[i];
							{
								NIM_BOOL T23_;
								T23_ = (NIM_BOOL)0;
								T23_ = ((*f).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
								if (!(T23_)) goto LA24_;
								T23_ = ((*(*(*f)._kind_4.sym).name).id == nameId);
								LA24_: ;
								if (!T23_) goto LA25_;
								s = (*f)._kind_4.sym;
								goto LA17;
							}
							LA25_: ;
							i_2 += ((NI) 1);
						} LA20: ;
					}
				}
			} LA17: ;
		}
		LA14_: ;
		{
			tySet_tyEnum_TLookupFlag__ns0lQuhi2aWBQ9bXAfDCqaA checks;
			if (!(s == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA29_;
			{
				if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 14))&31U)))!=0)) goto LA33_;
				checks = 10;
			}
			goto LA31_;
			LA33_: ;
			{
				if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 15))&31U)))!=0)) goto LA36_;
				checks = 14;
			}
			goto LA31_;
			LA36_: ;
			{
				checks = 15;
			}
			LA31_: ;
			s = qualifiedLookUp__lookups_2598(c, n, checks);
		}
		LA29_: ;
		{
			if (!((*c).matchedConcept == ((tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw*) NIM_NIL))) goto LA41_;
			semCaptureSym__lambdalifting_4999(s, (*(*c).p).owner);
		}
		LA41_: ;
		switch ((*s).kind) {
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 13):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 16):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15):
		{
			result = symChoice__sem_6911(c, n, s, ((tyEnum_TSymChoiceRule__qJSMbB2K6QUEZFA0xBF8xQ) 0), NIM_FALSE);
			{
				if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA46_;
				markIndirect__semdata_1090(c, (*result)._kind_4.sym);
			}
			LA46_: ;
			{
				if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 42))&63U)))!=0)) goto LA50_;
				asgnRef((void**) (&(*result).typ), makeVarType__semdata_796(c, (*result).typ, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45)));
			}
			LA50_: ;
		}
		break;
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 20):
		{
			{
				if (!(((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 15))&31U)))!=0)) goto LA55_;
				result = enumFieldSymChoice__sem_21681(c, n, s);
			}
			goto LA53_;
			LA55_: ;
			{
				result = semSym__sem_18211(c, n, s, flags);
			}
			LA53_: ;
		}
		break;
		default:
		{
			result = semSym__sem_18211(c, n, s, flags);
		}
		break;
		}
		{
			NIM_BOOL T61_;
			T61_ = (NIM_BOOL)0;
			T61_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T61_)) goto LA62_;
			T61_ = isSymChoice__sem_15478(result);
			LA62_: ;
			if (!T61_) goto LA63_;
			result = fitNode__sem_73(c, expectedType, result, (*n).info);
			{
				if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA67_;
				result = semSym__sem_18211(c, result, (*result)._kind_4.sym, flags);
			}
			LA67_: ;
		}
		LA63_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		result = semSym__sem_18211(c, n, (*n)._kind_4.sym, flags);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 0):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA74_;
			asgnRef((void**) (&(*result).typ), getNilType__sem_21674(c));
			{
				tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw m;
				if (!!((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA78_;
				nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__9b35s9cLOLunJ2l2Vo3cQTlw));
				newCandidate__sigmatch_195(c, (*result).typ, (&m));
				{
					tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA T82_;
					T82_ = (tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA)0;
					T82_ = typeRel__sigmatch_202((&m), expectedType, (*result).typ, 0);
					if (!(((tyEnum_TTypeRelation__owa1t43Zclf9bnqhI7konMA) 3) <= T82_)) goto LA83_;
					asgnRef((void**) (&(*result).typ), expectedType);
				}
				LA83_: ;
			}
			LA78_: ;
		}
		LA74_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA88_;
			{
				NIM_BOOL T92_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expected_2;
				T92_ = (NIM_BOOL)0;
				T92_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T92_)) goto LA93_;
				expected_2 = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T92_ = ((*expected_2).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*expected_2).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35) || (*expected_2).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) && (*expected_2).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44) || (*expected_2).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) && (*expected_2).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39));
				LA93_: ;
				if (!T92_) goto LA94_;
				asgnRef((void**) (&(*result).typ), expected_2);
				{
					if (!((*expected_2).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) && (*expected_2).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39))) goto LA98_;
					transitionIntToFloatKind__ast_4373(n, ((tyEnum_TNodeKind__s2uCfZ39cjRQ1ryTdhQjPCA) 16));
				}
				LA98_: ;
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA90_;
			LA94_: ;
			{
				setIntLitType__semdata_257(c, result);
			}
			LA90_: ;
		}
		LA88_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 7):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA104_;
			{
				NIM_BOOL T108_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedX60gensym5758_;
				T108_ = (NIM_BOOL)0;
				T108_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T108_)) goto LA109_;
				expectedX60gensym5758_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T108_ = ((*expectedX60gensym5758_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 32));
				LA109_: ;
				if (!T108_) goto LA110_;
				asgnRef((void**) (&(*result).typ), expectedX60gensym5758_);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA106_;
			LA110_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 32)));
			}
			LA106_: ;
		}
		LA104_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 8):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA116_;
			{
				NIM_BOOL T120_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedX60gensym5760_;
				T120_ = (NIM_BOOL)0;
				T120_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T120_)) goto LA121_;
				expectedX60gensym5760_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T120_ = ((*expectedX60gensym5760_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 33));
				LA121_: ;
				if (!T120_) goto LA122_;
				asgnRef((void**) (&(*result).typ), expectedX60gensym5760_);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA118_;
			LA122_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 33)));
			}
			LA118_: ;
		}
		LA116_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 9):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA128_;
			{
				NIM_BOOL T132_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedX60gensym5762_;
				T132_ = (NIM_BOOL)0;
				T132_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T132_)) goto LA133_;
				expectedX60gensym5762_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T132_ = ((*expectedX60gensym5762_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 34));
				LA133_: ;
				if (!T132_) goto LA134_;
				asgnRef((void**) (&(*result).typ), expectedX60gensym5762_);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA130_;
			LA134_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 34)));
			}
			LA130_: ;
		}
		LA128_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 10):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA140_;
			{
				NIM_BOOL T144_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedX60gensym5764_;
				T144_ = (NIM_BOOL)0;
				T144_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T144_)) goto LA145_;
				expectedX60gensym5764_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T144_ = ((*expectedX60gensym5764_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35));
				LA145_: ;
				if (!T144_) goto LA146_;
				asgnRef((void**) (&(*result).typ), expectedX60gensym5764_);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA142_;
			LA146_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35)));
			}
			LA142_: ;
		}
		LA140_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 11):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA152_;
			{
				NIM_BOOL T156_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedX60gensym5766_;
				T156_ = (NIM_BOOL)0;
				T156_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T156_)) goto LA157_;
				expectedX60gensym5766_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T156_ = ((*expectedX60gensym5766_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40));
				LA157_: ;
				if (!T156_) goto LA158_;
				asgnRef((void**) (&(*result).typ), expectedX60gensym5766_);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA154_;
			LA158_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40)));
			}
			LA154_: ;
		}
		LA152_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 12):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA164_;
			{
				NIM_BOOL T168_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedX60gensym5768_;
				T168_ = (NIM_BOOL)0;
				T168_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T168_)) goto LA169_;
				expectedX60gensym5768_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T168_ = ((*expectedX60gensym5768_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 41));
				LA169_: ;
				if (!T168_) goto LA170_;
				asgnRef((void**) (&(*result).typ), expectedX60gensym5768_);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA166_;
			LA170_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 41)));
			}
			LA166_: ;
		}
		LA164_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 13):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA176_;
			{
				NIM_BOOL T180_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedX60gensym5770_;
				T180_ = (NIM_BOOL)0;
				T180_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T180_)) goto LA181_;
				expectedX60gensym5770_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T180_ = ((*expectedX60gensym5770_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 42));
				LA181_: ;
				if (!T180_) goto LA182_;
				asgnRef((void**) (&(*result).typ), expectedX60gensym5770_);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA178_;
			LA182_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 42)));
			}
			LA178_: ;
		}
		LA176_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 14):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA188_;
			{
				NIM_BOOL T192_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedX60gensym5772_;
				T192_ = (NIM_BOOL)0;
				T192_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T192_)) goto LA193_;
				expectedX60gensym5772_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T192_ = ((*expectedX60gensym5772_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 43));
				LA193_: ;
				if (!T192_) goto LA194_;
				asgnRef((void**) (&(*result).typ), expectedX60gensym5772_);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA190_;
			LA194_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 43)));
			}
			LA190_: ;
		}
		LA188_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA200_;
			{
				NIM_BOOL T204_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedX60gensym5774_;
				T204_ = (NIM_BOOL)0;
				T204_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T204_)) goto LA205_;
				expectedX60gensym5774_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T204_ = ((*expectedX60gensym5774_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44));
				LA205_: ;
				if (!T204_) goto LA206_;
				asgnRef((void**) (&(*result).typ), expectedX60gensym5774_);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA202_;
			LA206_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44)));
			}
			LA202_: ;
		}
		LA200_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 16):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA212_;
			{
				NIM_BOOL T216_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expected_3;
				T216_ = (NIM_BOOL)0;
				T216_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T216_)) goto LA217_;
				expected_3 = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T216_ = ((*expected_3).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) && (*expected_3).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39));
				LA217_: ;
				if (!T216_) goto LA218_;
				asgnRef((void**) (&(*result).typ), expected_3);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA214_;
			LA218_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 38)));
			}
			LA214_: ;
		}
		LA212_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 17):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA224_;
			{
				NIM_BOOL T228_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedX60gensym5778_;
				T228_ = (NIM_BOOL)0;
				T228_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T228_)) goto LA229_;
				expectedX60gensym5778_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T228_ = ((*expectedX60gensym5778_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 37));
				LA229_: ;
				if (!T228_) goto LA230_;
				asgnRef((void**) (&(*result).typ), expectedX60gensym5778_);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA226_;
			LA230_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 37)));
			}
			LA226_: ;
		}
		LA224_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 18):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA236_;
			{
				NIM_BOOL T240_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedX60gensym5780_;
				T240_ = (NIM_BOOL)0;
				T240_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T240_)) goto LA241_;
				expectedX60gensym5780_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T240_ = ((*expectedX60gensym5780_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 38));
				LA241_: ;
				if (!T240_) goto LA242_;
				asgnRef((void**) (&(*result).typ), expectedX60gensym5780_);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA238_;
			LA242_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 38)));
			}
			LA238_: ;
		}
		LA236_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 19):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA248_;
			{
				NIM_BOOL T252_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedX60gensym5782_;
				T252_ = (NIM_BOOL)0;
				T252_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T252_)) goto LA253_;
				expectedX60gensym5782_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T252_ = ((*expectedX60gensym5782_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39));
				LA253_: ;
				if (!T252_) goto LA254_;
				asgnRef((void**) (&(*result).typ), expectedX60gensym5782_);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA250_;
			LA254_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39)));
			}
			LA250_: ;
		}
		LA248_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA260_;
			{
				NIM_BOOL T264_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expected_4;
				T264_ = (NIM_BOOL)0;
				T264_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T264_)) goto LA265_;
				expected_4 = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T264_ = ((*expected_4).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28) || (*expected_4).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29));
				LA265_: ;
				if (!T264_) goto LA266_;
				asgnRef((void**) (&(*result).typ), expectedType);
			}
			goto LA262_;
			LA266_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28)));
			}
			LA262_: ;
		}
		LA260_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5):
	{
		{
			if (!((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA272_;
			{
				NIM_BOOL T276_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedX60gensym5786_;
				T276_ = (NIM_BOOL)0;
				T276_ = !((expectedType == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T276_)) goto LA277_;
				expectedX60gensym5786_ = skipTypes__ast_3723(expectedType, TM__DKP9c7KM5AbqYVP6Gd9blNUw_5);
				T276_ = ((*expectedX60gensym5786_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2));
				LA277_: ;
				if (!T276_) goto LA278_;
				asgnRef((void**) (&(*result).typ), expectedX60gensym5786_);
				changeType__sem_78(c, result, expectedType, NIM_TRUE);
			}
			goto LA274_;
			LA278_: ;
			{
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2)));
			}
			LA274_: ;
		}
		LA272_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
	{
		result = semFieldAccess__sem_15003(c, n, flags);
		{
			if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 25))) goto LA284_;
			transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 27));
			result = semExpr__sem_52(c, result, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		}
		LA284_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 55):
	{
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 21), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_618), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_619, NIM_FALSE);
		result = semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], flags, expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 132):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 134):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 135):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 141) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 150):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 137):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T308_;
		{
			NIM_BOOL T290_;
			NI T292_;
			tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg modifier;
			T290_ = (NIM_BOOL)0;
			T290_ = !(((*c).matchedConcept == ((tyObject_TMatchedConcept__0kS5yo4t68pnIalDqA39crw*) NIM_NIL)));
			if (!(T290_)) goto LA291_;
			T292_ = (NI)0;
			T292_ = len__ast_3155(n);
			T290_ = (T292_ == ((NI) 1));
			LA291_: ;
			if (!T290_) goto LA293_;
			switch ((*n).kind) {
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 143):
			{
				modifier = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 141):
			{
				modifier = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 142):
			{
				modifier = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 137):
			{
				modifier = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 132):
			{
				modifier = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8);
			}
			break;
			default:
			{
				modifier = ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0);
			}
			break;
			}
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* baseType;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T305_;
				tySequence__vKogasEnJSPhbQmA8r4Y9aA* T306_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T307_;
				if (!!((modifier == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0)))) goto LA303_;
				T305_ = NIM_NIL;
				T305_ = semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
				baseType = skipTypes__ast_3723((*T305_).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128);
				T306_ = NIM_NIL;
				T306_ = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), 1);
				asgnRef((void**) (&T306_->data[0]), baseType);
				T307_ = NIM_NIL;
				T307_ = newTypeWithSons__semdata_851(c, modifier, T306_);
				asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, T307_));
				goto BeforeRet_;
			}
			LA303_: ;
		}
		LA293_: ;
		T308_ = NIM_NIL;
		T308_ = semTypeNode__sem_83(c, n, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		typ = skipTypes__ast_3723(T308_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_128);
		asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, typ));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 128):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ_2;
		typ_2 = semTypeNode__sem_83(c, n, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, typ_2));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28):
	{
		tySet_tyEnum_TLookupFlag__ns0lQuhi2aWBQ9bXAfDCqaA mode;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s_2;
		checkMinSonsLen__semdata_1114(n, ((NI) 1), (*(*c).graph).config);
		{
			if (!(((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 9))&31U)))!=0)) goto LA313_;
			mode = 0;
		}
		goto LA311_;
		LA313_: ;
		{
			mode = 2;
		}
		LA311_: ;
		(*c).isAmbiguous = NIM_FALSE;
		s_2 = qualifiedLookUp__lookups_2598(c, (*n)._kind_6.sons->data[((NI) 0)], mode);
		{
			if (!!((s_2 == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA318_;
			switch ((*s_2).kind) {
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
			{
				result = semDirectOp__sem_515(c, n, flags, expectedType);
			}
			break;
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7):
			{
				NIM_BOOL ambig;
				ambig = (*c).isAmbiguous;
				{
					NIM_BOOL T324_;
					NIM_BOOL T325_;
					NI T328_;
					T324_ = (NIM_BOOL)0;
					T325_ = (NIM_BOOL)0;
					T325_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2));
					if (!(T325_)) goto LA326_;
					T325_ = ambig;
					LA326_: ;
					T324_ = !(T325_);
					if (!(T324_)) goto LA327_;
					T328_ = (NI)0;
					T328_ = len__ast_3155(n);
					T324_ = (T328_ == ((NI) 2));
					LA327_: ;
					if (!T324_) goto LA329_;
					result = semConv__sem_15507(c, n, expectedType);
				}
				goto LA322_;
				LA329_: ;
				{
					NIM_BOOL T332_;
					NI T334_;
					T332_ = (NIM_BOOL)0;
					T332_ = ambig;
					if (!(T332_)) goto LA333_;
					T334_ = (NI)0;
					T334_ = len__ast_3155(n);
					T332_ = (T334_ == ((NI) 1));
					LA333_: ;
					if (!T332_) goto LA335_;
					errorUseQualifier__lookups_2516(c, (*n).info, s_2);
				}
				goto LA322_;
				LA335_: ;
				{
					NI T338_;
					T338_ = (NI)0;
					T338_ = len__ast_3155(n);
					if (!(T338_ == ((NI) 1))) goto LA339_;
					result = semObjConstr__sem_17703(c, n, flags, expectedType);
				}
				goto LA322_;
				LA339_: ;
				{
					if (!((*s_2).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0))) goto LA342_;
					result = semDirectOp__sem_515(c, n, flags, expectedType);
				}
				goto LA322_;
				LA342_: ;
				{
					result = semMagic__sem_19836(c, n, s_2, flags, expectedType);
				}
				LA322_: ;
			}
			break;
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 13):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 16):
			case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15):
			{
				{
					if (!((*s_2).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0))) goto LA348_;
					result = semDirectOp__sem_515(c, n, flags, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
				}
				goto LA346_;
				LA348_: ;
				{
					result = semMagic__sem_19836(c, n, s_2, flags, expectedType);
				}
				LA346_: ;
			}
			break;
			default:
			{
				result = semIndirectOp__sem_17782(c, n, flags, expectedType);
			}
			break;
			}
		}
		goto LA316_;
		LA318_: ;
		{
			NIM_BOOL T353_;
			NIM_BOOL T354_;
			T353_ = (NIM_BOOL)0;
			T354_ = (NIM_BOOL)0;
			T354_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42));
			if (T354_) goto LA355_;
			T354_ = shouldBeBracketExpr__sem_21515(n);
			LA355_: ;
			T353_ = T354_;
			if (!(T353_)) goto LA356_;
			T353_ = isSymChoice__sem_15478((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]);
			LA356_: ;
			if (!T353_) goto LA357_;
			setGenericParams__sem_17740(c, (*n)._kind_6.sons->data[((NI) 0)]);
			result = semDirectOp__sem_515(c, n, flags, expectedType);
		}
		goto LA316_;
		LA357_: ;
		{
			if (!(((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 9))&31U)))!=0)) goto LA360_;
			result = semDirectOp__sem_515(c, n, flags, expectedType);
		}
		goto LA316_;
		LA360_: ;
		{
			NIM_BOOL T363_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
			T363_ = (NIM_BOOL)0;
			T363_ = isSymChoice__sem_15478((*n)._kind_6.sons->data[((NI) 0)]);
			if (!T363_) goto LA364_;
			b = asBracketExpr__sem_21570(c, n);
			{
				if (!!((b == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA368_;
				result = semExpr__sem_52(c, b, flags, expectedType);
			}
			goto LA366_;
			LA368_: ;
			{
				result = semDirectOp__sem_515(c, n, flags, expectedType);
			}
			LA366_: ;
		}
		goto LA316_;
		LA364_: ;
		{
			result = semIndirectOp__sem_17782(c, n, flags, expectedType);
		}
		LA316_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* hoistedParams;
			tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T379_;
			if (!(((*result).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 19))&31U)))!=0)) goto LA374_;
			result = copyTree__ast_4432(result);
			hoistedParams = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 100), (*result).info);
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_3155(result);
				i_4 = ((NI) 1);
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA378;
						i_3 = i_4;
						hoistParamsUsedInDefault__sem_21635(c, &result, &hoistedParams, &(*result)._kind_6.sons->data[i_3]);
						i_4 += ((NI) 1);
					} LA378: ;
				}
			}
			nimZeroMem((void*)T379_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
			T379_[0] = hoistedParams;
			T379_[1] = result;
			result = newTreeIT__ast_3395(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*result).info, (*result).typ, T379_, 2);
		}
		LA374_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 93):
	{
		{
			if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 7))&31U)))!=0)) goto LA383_;
			result = semWhen__sem_520(c, n, NIM_TRUE);
		}
		goto LA381_;
		LA383_: ;
		{
			result = semWhen__sem_520(c, n, NIM_FALSE);
			{
				if (!(result == n)) goto LA388_;
				result = semWhen__sem_520(c, n, NIM_TRUE);
			}
			goto LA386_;
			LA388_: ;
			{
				result = semExpr__sem_52(c, result, flags, expectedType);
			}
			LA386_: ;
		}
		LA381_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
	{
		checkMinSonsLen__semdata_1114(n, ((NI) 1), (*(*c).graph).config);
		result = semArrayAccess__sem_18789(c, n, flags, expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 40):
	{
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T393_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T394_;
		T393_ = NIM_NIL;
		T393_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_132));
		T394_ = NIM_NIL;
		T394_ = buildOverloadedSubscripts__sem_18603(n, T393_);
		result = semExpr__sem_52(c, T394_, flags, expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pragma;
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* pragmaName;
		tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags_2;
		tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg finalNodeFlags;
		tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw T396_;
		pragma = (*n)._kind_6.sons->data[((NI) 1)];
		pragmaName = considerQuotedIdent__lookups_29(c, (*pragma)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		flags_2 = flags;
		finalNodeFlags = 0;
		T396_ = (tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw)0;
		T396_ = whichKeyword__idents_223(pragmaName);
		switch (T396_) {
		case ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 224):
		{
			flags_2 |= ((NU32)1)<<((((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 10)) & 31);
		}
		break;
		case ((tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw) 166):
		{
			finalNodeFlags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 20)) & 31);
		}
		break;
		default:
		{
			invalidPragma__pragmas_150(c, n);
		}
		break;
		}
		result = semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], flags_2, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		(*result).flags = ((*result).flags | finalNodeFlags);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160):
	{
		tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA T401_;
		T401_ = (tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA)0;
		T401_ = checkPar__sem_20278(c, n);
		switch (T401_) {
		case ((tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA) 0):
		{
			result = errorNode__semdata_1039(c, n);
		}
		break;
		case ((tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA) 3):
		{
			result = semTupleConstr__sem_21484(c, n, flags, expectedType);
		}
		break;
		case ((tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA) 2):
		{
			result = semTupleFieldsConstr__sem_20342(c, n, flags, expectedType);
		}
		break;
		case ((tyEnum_TParKind__QhlJ3P9aEuhPD2ehnbpL0YA) 1):
		{
			result = semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], flags, expectedType);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39):
	{
		result = semSetConstr__sem_20081(c, n, expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41):
	{
		result = semArrayConstr__sem_16015(c, n, flags, expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38):
	{
		result = semObjConstr__sem_17703(c, n, flags, expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	{
		result = semProcAux__sem_14073(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12), TM__DKP9c7KM5AbqYVP6Gd9blNUw_725, flags);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47):
	{
		result = semDeref__sem_18616(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 63):
	{
		result = n;
		checkSonsLen__semdata_1107(n, ((NI) 1), (*(*c).graph).config);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), semAddrArg__sem_16419(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_FALSE));
		asgnRef((void**) (&(*result).typ), makePtrType__semdata_772(c, (*(*result)._kind_6.sons->data[((NI) 0)]).typ));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 64):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65):
	{
		checkSonsLen__semdata_1107(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, expectedType));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 61):
	{
		result = semCast__sem_15637(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 48):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92):
	{
		result = semIf__sem_10032(c, n, flags, expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 60):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32):
	{
		checkSonsLen__semdata_1107(n, ((NI) 2), (*(*c).graph).config);
		considerGenSyms__semdata_437(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 71):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 72):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 66):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 67):
	{
		checkSonsLen__semdata_1107(n, ((NI) 1), (*(*c).graph).config);
		considerGenSyms__semdata_437(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 68):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 69):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 70):
	{
		checkSonsLen__semdata_1107(n, ((NI) 3), (*(*c).graph).config);
		considerGenSyms__semdata_437(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46):
	{
		checkMinSonsLen__semdata_1114(n, ((NI) 2), (*(*c).graph).config);
		considerGenSyms__semdata_437(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 54):
	{
		result = semTableConstr__sem_20209(c, n, expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 62):
	{
		result = semStaticExpr__sem_128(c, (*n)._kind_6.sons->data[((NI) 0)], expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74):
	{
		result = semAsgn__sem_16464(c, n, ((tyEnum_SemAsgnMode__wU47lOiWWDnJezONEKyuEA) 0));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 127):
	{
		result = semBlock__sem_21242(c, n, flags, expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126):
	{
		result = semStmtList__sem_14827(c, n, flags, expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 108):
	{
		result = semRaise__sem_12505(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99):
	{
		result = semVarOrLet__sem_10836(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 8));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 100):
	{
		result = semVarOrLet__sem_10836(c, n, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 101):
	{
		result = semConst__sem_11251(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	{
		result = semTypeSection__sem_13340(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 114):
	{
		result = semDiscard__sem_9806(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96):
	{
		result = semWhile__sem_9887(c, n, flags);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 154):
	{
		result = semTry__sem_10090(c, n, flags, expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 110):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 111):
	{
		result = semBreakOrContinue__sem_9838(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 94):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 95):
	{
		result = semFor__sem_12272(c, n, flags);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 97):
	{
		result = semCase__sem_12403(c, n, flags, expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 109):
	{
		result = semReturn__sem_19136(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 124):
	{
		result = semUsing__sem_10449(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 89):
	{
		result = semAsm__sem_9881(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 104):
	{
		result = semYield__sem_19322(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 90):
	{
		semPragmaStmt__sem_21730(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	{
		result = semIterator__sem_14495(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79):
	{
		result = semProc__sem_9916(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
		result = semFunc__sem_14551(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 80):
	{
		result = semMethod__sem_14561(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	{
		result = semConverterDef__sem_14596(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 82):
	{
		result = semMacroDef__sem_14615(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83):
	{
		result = semTemplateDef__sem_8125(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 116):
	{
		{
			NimStringDesc* T453_;
			if (!((NI)(((NI) 2) + (*c).compilesContextId) < (*(*c).currentScope).depthLevel)) goto LA451_;
			T453_ = NIM_NIL;
			T453_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_119), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_939));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T453_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_940, NIM_FALSE);
		}
		LA451_: ;
		result = evalImport__importer_4976(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 117):
	{
		{
			NIM_BOOL T457_;
			NimStringDesc* T460_;
			T457_ = (NIM_BOOL)0;
			T457_ = isTopLevel__semdata_1121(c);
			if (!!(T457_)) goto LA458_;
			T460_ = NIM_NIL;
			T460_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_119), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_939));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T460_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_941, NIM_FALSE);
		}
		LA458_: ;
		result = evalImportExcept__importer_5070(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 120):
	{
		{
			NIM_BOOL T464_;
			NimStringDesc* T467_;
			T464_ = (NIM_BOOL)0;
			T464_ = isTopLevel__semdata_1121(c);
			if (!!(T464_)) goto LA465_;
			T467_ = NIM_NIL;
			T467_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_119), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_942));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T467_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_943, NIM_FALSE);
		}
		LA465_: ;
		result = evalFrom__importer_5044(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 121):
	{
		result = evalInclude__sem_14670(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 118):
	{
		{
			NIM_BOOL T472_;
			NimStringDesc* T475_;
			T472_ = (NIM_BOOL)0;
			T472_ = isTopLevel__semdata_1121(c);
			if (!!(T472_)) goto LA473_;
			T475_ = NIM_NIL;
			T475_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_119), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_120));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T475_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_950, NIM_FALSE);
		}
		LA473_: ;
		result = semExport__sem_21373(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 119):
	{
		{
			NIM_BOOL T479_;
			NimStringDesc* T482_;
			T479_ = (NIM_BOOL)0;
			T479_ = isTopLevel__semdata_1121(c);
			if (!!(T479_)) goto LA480_;
			T482_ = NIM_NIL;
			T482_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_119), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_120));
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T482_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_957, NIM_FALSE);
		}
		LA480_: ;
		result = semExportExcept__sem_21334(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 91):
	{
		result = semPragmaBlock__sem_14742(c, n, expectedType);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 113):
	{
		result = semStaticStmt__sem_14781(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 105):
	{
		{
			if (!((*c).currentScope == (*c).topLevelScope)) goto LA488_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_963), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_964, NIM_FALSE);
		}
		LA488_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		{
			NIM_BOOL T492_;
			NIM_BOOL T493_;
			NIM_BOOL T495_;
			T492_ = (NIM_BOOL)0;
			T493_ = (NIM_BOOL)0;
			T493_ = isEmptyType__ast_4780((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			T492_ = !(T493_);
			if (!(T492_)) goto LA494_;
			T495_ = (NIM_BOOL)0;
			T495_ = implicitlyDiscardable__sem_9782((*n)._kind_6.sons->data[((NI) 0)]);
			T492_ = !(T495_);
			LA494_: ;
			if (!T492_) goto LA496_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_965), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_966, NIM_FALSE);
		}
		LA496_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 157):
	{
		{
			NIM_BOOL T501_;
			NI T502_;
			NI T504_;
			T501_ = (NIM_BOOL)0;
			T502_ = (NI)0;
			T502_ = len__ast_3155(n);
			T501_ = !((T502_ == ((NI) 1)));
			if (!(T501_)) goto LA503_;
			T504_ = (NI)0;
			T504_ = len__ast_3155(n);
			T501_ = !((T504_ == ((NI) 2)));
			LA503_: ;
			if (!T501_) goto LA505_;
			illFormedAst__semdata_1101(n, (*(*c).graph).config);
		}
		LA505_: ;
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__ast_3155(n);
			i_6 = ((NI) 0);
			{
				while (1) {
					if (!(i_6 < colontmp__3)) goto LA509;
					i_5 = i_6;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_5]), semExpr__sem_52(c, (*n)._kind_6.sons->data[i_5], 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
					i_6 += ((NI) 1);
				} LA509: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 24):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122):
	{
		{
			if (!!(((*c).p == ((tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA*) NIM_NIL)))) goto LA515_;
			{
				NIM_BOOL T519_;
				NI T520_;
				NI T524_;
				T519_ = (NIM_BOOL)0;
				T520_ = (NI)0;
				T520_ = len__ast_3155(n);
				T519_ = (((NI) 0) < T520_);
				if (!(T519_)) goto LA521_;
				T519_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
				LA521_: ;
				if (!T519_) goto LA522_;
				asgnRef((void**) (&(*(*c).p).localBindStmts), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*(*c).p).localBindStmts), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
				T524_ = (*(*c).p).localBindStmts->Sup.len++;
				asgnRef((void**) (&(*(*c).p).localBindStmts->data[T524_]), n);
			}
			LA522_: ;
		}
		goto LA513_;
		LA515_: ;
		{
			NimStringDesc* T526_;
			NimStringDesc* T527_;
			T526_ = NIM_NIL;
			T527_ = NIM_NIL;
			T527_ = renderTree__renderer_46(n, 4);
			T526_ = rawNewString((T527_ ? T527_->Sup.len : 0) + 38);
appendString(T526_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_967));
appendString(T526_, T527_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T526_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_968, NIM_FALSE);
		}
		LA513_: ;
	}
	break;
	default:
	{
		NimStringDesc* T529_;
		NimStringDesc* T530_;
		T529_ = NIM_NIL;
		T530_ = NIM_NIL;
		T530_ = renderTree__renderer_46(n, 4);
		T529_ = rawNewString((T530_ ? T530_->Sup.len : 0) + 20);
appendString(T529_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_969));
appendString(T529_, T530_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T529_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_970, NIM_FALSE);
	}
	break;
	}
	{
		if (!!((result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA533_;
		(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 7)) & 31);
	}
	LA533_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExprCheck__sem_15042)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NIM_BOOL isEmpty;
	NIM_BOOL isTypeError;
	NIM_BOOL T5_;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA3_;
		illFormedAst__semdata_1101(n, (*(*c).graph).config);
	}
	LA3_: ;
	result = semExpr__sem_52(c, n, (flags | 2048), expectedType);
	isEmpty = ((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
	T5_ = (NIM_BOOL)0;
	T5_ = !(((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
	if (!(T5_)) goto LA6_;
	T5_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__DKP9c7KM5AbqYVP6Gd9blNUw_864), T13_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T14_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_971, NIM_FALSE);
	}
	LA11_: ;
	{
		if (!isEmpty) goto LA17_;
		result = errorNode__semdata_1039(c, n);
	}
	LA17_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semExprWithType__sem_57)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = semExprCheck__sem_15042(c, n, flags, expectedType);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw) 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__kQDDJGUiaUAtO9c9b6LjZYjA*) 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__DKP9c7KM5AbqYVP6Gd9blNUw_864), T12_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T13_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_972, NIM_FALSE);
		asgnRef((void**) (&(*result).typ), errorType__semdata_1032(c));
	}
	goto LA1_;
	LA10_: ;
	{
		if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50))) goto LA15_;
		asgnRef((void**) (&(*result).typ), errorType__semdata_1032(c));
	}
	goto LA1_;
	LA15_: ;
	{
		{
			if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47))) goto LA20_;
			result = newDeref__lowerings_11(result);
		}
		LA20_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semConstExpr__sem_619)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* expectedType) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e;
{	result = NIM_NIL;
	e = semExprWithType__sem_57(c, n, 0, expectedType);
	{
		if (!(e == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA3_;
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_361), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_973, NIM_FALSE);
		result = n;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T9_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*e).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56) || (*e).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57));
		if (!(T7_)) goto LA8_;
		T9_ = NIM_NIL;
		T9_ = skipTypes__ast_3723((*(*e)._kind_6.sons->data[((NI) 0)]).typ, TM__DKP9c7KM5AbqYVP6Gd9blNUw_75);
		T7_ = ((*T9_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA14_;
		result = evalConstExpr__vm_14099((*c).module, (*c).Sup.idgen, (*c).graph, e);
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = (result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
			if (T18_) goto LA19_;
			T18_ = ((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
			LA19_: ;
			if (!T18_) goto LA20_;
			{
				NIM_BOOL T24_;
				T24_ = (NIM_BOOL)0;
				T24_ = eqeq___msgs_1003((*e).info, (*n).info);
				if (!!(T24_)) goto LA25_;
				pushInfoContext__msgs_500((*(*c).graph).config, (*n).info, ((NimStringDesc*) NIM_NIL));
				liMessage__msgs_1128((*(*c).graph).config, (*e).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_361), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_974, NIM_FALSE);
				popInfoContext__msgs_517((*(*c).graph).config);
			}
			goto LA22_;
			LA25_: ;
			{
				liMessage__msgs_1128((*(*c).graph).config, (*e).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_361), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_975, NIM_FALSE);
			}
			LA22_: ;
			result = e;
		}
		goto LA16_;
		LA20_: ;
		{
			result = fixupTypeAfterEval__sem_577(c, result, e);
		}
		LA16_: ;
	}
	LA14_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasUnresolvedParams__sem_10567)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (((*(*n).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 9))&63U)))!=0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semOperand__sem_15009)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TExprFlag__r6ni9cszPdxrSgot9bYmbKjw flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA3_;
		illFormedAst__semdata_1101(n, (*(*c).graph).config);
	}
	LA3_: ;
	result = semExpr__sem_52(c, n, (flags | 4096), ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	{
		if (!!(((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA7_;
		{
			NIM_BOOL T11_;
			NimStringDesc* T15_;
			NimStringDesc* T16_;
			T11_ = (NIM_BOOL)0;
			T11_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
			if (!(T11_)) goto LA12_;
			T11_ = hasUnresolvedParams__sem_10567(result, 4096);
			LA12_: ;
			if (!T11_) goto LA13_;
			T15_ = NIM_NIL;
			T15_ = renderTree__renderer_46(n, 0);
			T16_ = NIM_NIL;
			T16_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_755), T15_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T16_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_976, NIM_FALSE);
		}
		LA13_: ;
		{
			if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23) || (*(*result).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47))) goto LA19_;
			result = newDeref__lowerings_11(result);
		}
		LA19_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		if (!!(((384 & flags) == 0))) goto LA22_;
		asgnRef((void**) (&(*result).typ), newTypeS__semdata_763(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__DKP9c7KM5AbqYVP6Gd9blNUw_864), T25_);
		liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T26_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_977, NIM_FALSE);
		asgnRef((void**) (&(*result).typ), errorType__semdata_1032(c));
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semInferredLambda__sem_13629)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TIdTable__Cs7vbulfMjKciTA2Uv9b6vQ pt, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* original;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* params;
	tyObject_TScope__9aTSl1tODXnq8aZe4E3GxoQ* T9_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_1024(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_4432((*(*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_3155(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__b28l2MkhJpnFhatVrsrXpg) 8) || (*(*(*params)._kind_6.sons->data[i]).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12) || (*(*(*params)._kind_6.sons->data[i]).typ).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 51) && (*(*(*params)._kind_6.sons->data[i]).typ).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54) || (*(*(*params)._kind_6.sons->data[i]).typ).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 56) && (*(*(*params)._kind_6.sons->data[i]).typ).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 59) || (*(*(*params)._kind_6.sons->data[i]).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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__DKP9c7KM5AbqYVP6Gd9blNUw_978));
appendString(T8_, (*(*(*(*params)._kind_6.sons->data[i])._kind_4.sym).name).s);
					liMessage__msgs_1128((*(*c).graph).config, (*(*params)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T8_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_979, NIM_FALSE);
				}
				LA6_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	T9_ = NIM_NIL;
	T9_ = openScope__lookups_76(c);
	pushOwner__semdata_334(c, s);
	addParams__sem_99(c, params, ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12));
	pushProcCon__sem_908(c, s);
	addResult__sem_13423(c, n_2, (*(*n_2).typ).sons->data[((NI) 0)], ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12));
	T10_ = NIM_NIL;
	T10_ = semProcBody__sem_69(c, (*n_2)._kind_6.sons->data[((NI) 6)], (*(*n_2).typ).sons->data[((NI) 0)]);
	asgnRef((void**) (&(*(*s).ast)._kind_6.sons->data[((NI) 6)]), hloBody__sem_793(c, T10_));
	trackProc__sempass50_4721(c, s, (*(*s).ast)._kind_6.sons->data[((NI) 6)]);
	popProcCon__semdata_401(c);
	popOwner__semdata_341(c);
	closeScope__lookups_108(c);
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = (((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 42))&63U)))!=0);
		if (!(T13_)) goto LA14_;
		T13_ = !(((*result).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA14_: ;
		if (!T13_) goto LA15_;
		asgnRef((void**) (&(*result).typ), makeVarType__semdata_796(c, (*result).typ, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45)));
	}
	LA15_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw*, myOpen__sem_22328)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen) {
	tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw* result;
	tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T1_;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T2_;
	tyProc__Nc9aAsBDTkr61wP9a9cnds8Og T7_;
	tyProc__z8FaSv6eEIc72FZ9c9cBcaGg T8_;
	tyProc__9bnYcX9avusKBraL3FJXBwJw T9_;
	result = NIM_NIL;
	c = newContext__semdata_515(graph, module);
	asgnRef((void**) (&(*c).Sup.idgen), idgen);
	T1_ = nextTypeId__ast_3122(idgen);
	asgnRef((void**) (&(*c).enforceVoidContext), newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7), T1_, ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
	T2_ = nextTypeId__ast_3122(idgen);
	asgnRef((void**) (&(*c).voidType), newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63), T2_, ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
	{
		if (!!(((*c).p == ((tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA*) NIM_NIL)))) goto LA5_;
		internalErrorImpl__msgs_1441((*graph).config, (*module).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_2), TM__DKP9c7KM5AbqYVP6Gd9blNUw_3);
	}
	LA5_: ;
	(*c).semConstExpr = semConstExpr__sem_619;
	(*c).semExpr = semExpr__sem_52;
	(*c).semTryExpr = tryExpr__sem_107;
	(*c).semTryConstExpr = tryConstExpr__sem_589;
	(*c).computeRequiresInit = computeRequiresInit__sem_139;
	(*c).semOperand = semOperand__sem_15009;
	(*c).semConstBoolExpr = semConstBoolExpr__sem_2941;
	(*c).semOverloadedCall = semOverloadedCall__sem_2551;
	nimZeroMem((void*)(&T7_), sizeof(tyProc__Nc9aAsBDTkr61wP9a9cnds8Og));
	T7_.ClP_0 = ((TM__DKP9c7KM5AbqYVP6Gd9blNUw_980) (semInferredLambda__sem_13629)); 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__z8FaSv6eEIc72FZ9c9cBcaGg));
	T8_.ClP_0 = ((TM__DKP9c7KM5AbqYVP6Gd9blNUw_981) (generateInstance__sem_1319)); 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_83;
	(*c).instTypeBoundOp = instTypeBoundOp__sigmatch_4368;
	nimZeroMem((void*)(&T9_), sizeof(tyProc__9bnYcX9avusKBraL3FJXBwJw));
	T9_.ClP_0 = ((TM__DKP9c7KM5AbqYVP6Gd9blNUw_982) (hasUnresolvedArgs__sem_146)); 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_22338());
	pushProcCon__sem_908(c, module);
	pushOwner__semdata_334(c, (*c).module);
	asgnRef((void**) (&(*c).moduleScope), openScope__lookups_76(c));
	strTableAdd__astalgo_3325((&(*(*c).moduleScope).symbols), module);
	{
		if (!(((*module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 15))&63U)))!=0)) goto LA12_;
		asgnRef((void**) (&(*graph).systemModule), module);
	}
	LA12_: ;
	asgnRef((void**) (&(*c).topLevelScope), openScope__lookups_76(c));
	result = &c->Sup;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportSystemStmt__sem_22468)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!((*g).systemModule == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 116):
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
			x = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3148(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__clSgDh22o9au33BrVH9bDQZw) 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__clSgDh22o9au33BrVH9bDQZw) 117):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 120):
	{
		{
			NI32 f_2;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 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_22489)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115):
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
			it = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3148(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_22489(it);
							if (!!(T8_)) goto LA9_;
							result = NIM_FALSE;
							goto BeforeRet_;
						}
						LA9_: ;
						i_2 += ((NI) 1);
					} LA5: ;
				}
			}
		}
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	{
		result = NIM_TRUE;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gatherStmts__sem_13261)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 121):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(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_612((*(*c).graph).config, f);
							T15_ = NIM_NIL;
							T15_ = nsuFormatSingleElem(((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_11), T14_);
							liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T15_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_983, NIM_FALSE);
						}
						goto LA9_;
						LA12_: ;
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* code;
							code = (*(*c).graph).includeFileCallback((*c).graph, (*c).module, f);
							gatherStmts__sem_13261(c, code, result);
							excl__reorder_273((&(*c).includedFiles), ((NI) (f)));
						}
						LA9_: ;
					}
					LA7_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115):
	{
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3155(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA20;
					i_3 = i_4;
					gatherStmts__sem_13261(c, (*n)._kind_6.sons->data[i_3], result);
					i_4 += ((NI) 1);
				} LA20: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	{
		(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 7)) & 31);
		typeSectionLeftSidePass__sem_12665(c, n);
		add__ast_4798(result, n);
	}
	break;
	default:
	{
		add__ast_4798(result, n);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semAllTypeSections__sem_13257)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
	gatherStmts__sem_13261(c, n, result);
	{
		NI iX60gensym3456_;
		NI colontmp_;
		NI i;
		iX60gensym3456_ = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(result);
		i = ((NI) 0);
		{
			while (1) {
				if (!(i < colontmp_)) goto LA3;
				iX60gensym3456_ = i;
				{
					if (!((*(*result)._kind_6.sons->data[iX60gensym3456_]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98))) goto LA6_;
					typeSectionRightSidePass__sem_12786(c, (*result)._kind_6.sons->data[iX60gensym3456_]);
				}
				LA6_: ;
				i += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI iX60gensym3459_;
		NI colontmp__2;
		NI i_2;
		iX60gensym3459_ = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__ast_3155(result);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp__2)) goto LA10;
				iX60gensym3459_ = i_2;
				{
					if (!((*(*result)._kind_6.sons->data[iX60gensym3459_]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98))) goto LA13_;
					typeSectionFinalPass__sem_13102(c, (*result)._kind_6.sons->data[iX60gensym3459_]);
				}
				LA13_: ;
				i_2 += ((NI) 1);
			} LA10: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, hloStmt__sem_804)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__HPX9bEWraE8wyYLoP9bHbKYQ) 23))&31U)))!=0));
		LA5_: ;
		if (!T3_) goto LA6_;
		result = n;
		goto BeforeRet_;
	}
	LA6_: ;
	(*c).hloLoopDetector = ((NI) 0);
	result = hlo__sem_678(c, n);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildEchoStmt__sem_17963)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* e;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T1_;
	NimStringDesc* T9_;
	NimStringDesc* T10_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T11_;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_152((*c).cache, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_984));
	e = systemModuleSym__modulegraphs_2867((*c).graph, T1_);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		if (!!((e == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = newSymNode__ast_3704(e);
		add__ast_4798(result, T6_);
	}
	goto LA2_;
	LA4_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n2X60gensym4714_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T8_;
		n2X60gensym4714_ = n;
		liMessage__msgs_1128((*(*c).graph).config, (*n2X60gensym4714_).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_985), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_986, NIM_FALSE);
		T8_ = NIM_NIL;
		T8_ = errorNode__semdata_1039(c, n2X60gensym4714_);
		add__ast_4798(result, T8_);
	}
	LA2_: ;
	add__ast_4798(result, n);
	T9_ = NIM_NIL;
	T10_ = NIM_NIL;
	T10_ = typeToString__types_50((*n).typ, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
	T9_ = rawNewString((T10_ ? T10_->Sup.len : 0) + 2);
appendString(T9_, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_293));
appendString(T9_, T10_);
	T11_ = NIM_NIL;
	T11_ = newStrNode__ast_3801(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20), T9_);
	add__ast_4798(result, T11_);
	result = semExpr__sem_52(c, result, 0, ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semStmtAndGenerateGenerics__sem_22493)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_22468((*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__9be9c6fEXk5NwyPvxxb6toPA) 15))&63U)))!=0));
			if (!(T10_)) goto LA11_;
			T12_ = (NIM_BOOL)0;
			T12_ = isEmptyTree__sem_22489(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__9be9c6fEXk5NwyPvxxb6toPA) 10))&63U)))!=0)) goto LA18_;
		result = semAllTypeSections__sem_13257(c, n);
	}
	goto LA16_;
	LA18_: ;
	{
		result = n;
	}
	LA16_: ;
	result = semStmt__sem_87(c, result, 0);
	result = hloStmt__sem_804(c, result);
	{
		NIM_BOOL T23_;
		NIM_BOOL T25_;
		T23_ = (NIM_BOOL)0;
		T23_ = ((*(*(*c).graph).config).cmd == ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 24));
		if (!(T23_)) goto LA24_;
		T25_ = (NIM_BOOL)0;
		T25_ = isEmptyType__ast_4780((*result).typ);
		T23_ = !(T25_);
		LA24_: ;
		if (!T23_) goto LA26_;
		result = buildEchoStmt__sem_17963(c, result);
	}
	LA26_: ;
	{
		if (!((*(*(*c).graph).config).cmd == ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 11))) goto LA30_;
		appendToModule__ast_3519((*c).module, result);
	}
	LA30_: ;
	trackStmt__sempass50_4945(c, (*c).module, result, NIM_TRUE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, recoverContext__sem_22528)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c) {
	asgnRef((void**) (&(*c).currentScope), (*c).topLevelScope);
	{
		while (1) {
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T3_;
			T3_ = NIM_NIL;
			T3_ = getCurrOwner__semdata_327(c);
			if (!!(((*T3_).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6)))) goto LA2;
			popOwner__semdata_341(c);
		} LA2: ;
	}
	{
		while (1) {
			NIM_BOOL T6_;
			T6_ = (NIM_BOOL)0;
			T6_ = !(((*c).p == ((tyObject_TProcCon__9aK41DZ7WNm5NSRfb1CbcRA*) NIM_NIL)));
			if (!(T6_)) goto LA7_;
			T6_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 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_3321(obj, subclass, cache);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, myProcess__sem_22542)(tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw* context, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* volatile result;
	tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c;
	result = NIM_NIL;
	c = ((tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw*) (context));
	{
		if (!((*(*(*c).graph).config).errorMax <= ((NI) 1))) goto LA3_;
		result = semStmtAndGenerateGenerics__sem_22493(c, n);
	}
	goto LA1_;
	LA3_: ;
	{
		NI oldContextLen;
		NI oldInGenericInst;
		TSafePoint TM__DKP9c7KM5AbqYVP6Gd9blNUw_987;
		oldContextLen = getInfoContextLen__msgs_486((*(*c).graph).config);
		oldInGenericInst = (*c).inGenericInst;
		pushSafePoint(&TM__DKP9c7KM5AbqYVP6Gd9blNUw_987);
		TM__DKP9c7KM5AbqYVP6Gd9blNUw_987.status = setjmp(TM__DKP9c7KM5AbqYVP6Gd9blNUw_987.context);
		if (TM__DKP9c7KM5AbqYVP6Gd9blNUw_987.status == 0) {
		result = semStmtAndGenerateGenerics__sem_22493(c, n);
		popSafePoint();
		}
		else {
			popSafePoint();
			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIerecoverableerror__aRVEU9aWMU9b9a9baYZqUd3t9cA_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIesuggestdone__0sxcG9bses4KEF5Ub8L9ae1Q_))) {
				TM__DKP9c7KM5AbqYVP6Gd9blNUw_987.status = 0;
				recoverContext__sem_22528(c);
				(*c).inGenericInst = oldInGenericInst;
				setInfoContextLen__msgs_493((*(*c).graph).config, oldContextLen);
				{
					Exception* T10_;
					T10_ = NIM_NIL;
					T10_ = getCurrentException();
					if (!((T10_) && (isObjWithCache((*T10_).Sup.m_type, (&NTIesuggestdone__0sxcG9bses4KEF5Ub8L9ae1Q_), Nim_OfCheck_CACHE989)))) goto LA11_;
					(*c).suggestionsMade = NIM_TRUE;
					result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
				}
				goto LA8_;
				LA11_: ;
				{
					result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*n).info);
				}
				LA8_: ;
				popCurrentException();
			}
		}
		if (TM__DKP9c7KM5AbqYVP6Gd9blNUw_987.status != 0) reraiseException();
	}
	LA1_: ;
	storeRodNode__semdata_1208(c, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, reportUnusedModules__sem_22556)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* 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__9be9c6fEXk5NwyPvxxb6toPA) 0))&63U)))!=0))) goto LA7_;
					liMessage__msgs_1128((*(*c).graph).config, (*c).unusedImports->data[i].Field1, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 37), (*(*(*c).unusedImports->data[i].Field0).name).s, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__DKP9c7KM5AbqYVP6Gd9blNUw_989, NIM_FALSE);
				}
				LA7_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, addCodeForGenerics__sem_22292)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__3r34mwqcVmg5JFNmiaVncw* 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__3qAy6bDUDlF8Fc2RR6pF9ag) 0));
					LA8_: ;
					if (!T7_) goto LA9_;
					{
						NIM_BOOL T13_;
						NimStringDesc* T17_;
						T13_ = (NIM_BOOL)0;
						T13_ = ((*prc).ast == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
						if (T13_) goto LA14_;
						T13_ = ((*(*prc).ast)._kind_6.sons->data[((NI) 6)] == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) 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__DKP9c7KM5AbqYVP6Gd9blNUw_992));
appendString(T17_, (*(*prc).name).s);
						internalErrorImpl__msgs_1441((*(*c).graph).config, (*prc).info, T17_, TM__DKP9c7KM5AbqYVP6Gd9blNUw_993);
					}
					goto LA11_;
					LA15_: ;
					{
						add__ast_4798(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__uh9cWvEa5Ty85PXOtuP5emw*, myClose__sem_22570)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw* context, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c;
	result = NIM_NIL;
	c = ((tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw*) (context));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*c).graph).config).cmd == ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 11));
		if (!(T3_)) goto LA4_;
		T3_ = !((*c).suggestionsMade);
		LA4_: ;
		if (!T3_) goto LA5_;
		suggestSentinel__sigmatch_6362(c);
	}
	LA5_: ;
	closeScope__lookups_108(c);
	rawCloseScope__lookups_106(c);
	reportUnusedModules__sem_22556(c);
	result = newNode__ast_3289(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115));
	{
		if (!!((n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA9_;
		internalErrorImpl__msgs_1441((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__DKP9c7KM5AbqYVP6Gd9blNUw_990), TM__DKP9c7KM5AbqYVP6Gd9blNUw_991);
	}
	LA9_: ;
	addCodeForGenerics__sem_22292(c, result);
	{
		if (!!(((*(*c).module).ast == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA13_;
		add__ast_4798(result, (*(*c).module).ast);
	}
	LA13_: ;
	popOwner__semdata_341(c);
	popProcCon__semdata_401(c);
	sealRodFile__semdata_3633(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, atmsemdotnim_DatInit000)(void) {
static TNimNode* TM__DKP9c7KM5AbqYVP6Gd9blNUw_363_3[3];
static TNimNode* TM__DKP9c7KM5AbqYVP6Gd9blNUw_375_2[2];
static TNimNode* TM__DKP9c7KM5AbqYVP6Gd9blNUw_805_2[2];
static TNimNode TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[10];
NTIobject__UdwrZCFez7lYdvLY8j2kdQ_.size = sizeof(tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ);
NTIobject__UdwrZCFez7lYdvLY8j2kdQ_.align = NIM_ALIGNOF(tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ);
NTIobject__UdwrZCFez7lYdvLY8j2kdQ_.kind = 17;
NTIobject__UdwrZCFez7lYdvLY8j2kdQ_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_363_3[0] = &TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[1];
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[1].kind = 1;
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[1].offset = offsetof(tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ, colonstate_);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[1].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[1].name = ":state";
TM__DKP9c7KM5AbqYVP6Gd9blNUw_363_3[1] = &TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[2];
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[2].kind = 1;
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[2].offset = offsetof(tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ, c1);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[2].typ = (&NTIpcontext__C5LQliQ3Detta8PpLynVjQ_);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[2].name = "c1";
TM__DKP9c7KM5AbqYVP6Gd9blNUw_363_3[2] = &TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[3];
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[3].kind = 1;
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[3].offset = offsetof(tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ, scope2);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[3].typ = (&NTIpscope__1WBIpqNgZhwC9bV4356CRhQ_);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[3].name = "scope2";
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[0].len = 3; TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[0].kind = 2; TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[0].sons = &TM__DKP9c7KM5AbqYVP6Gd9blNUw_363_3[0];
NTIobject__UdwrZCFez7lYdvLY8j2kdQ_.node = &TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[0];
NTIrefobject__mCf9cYkDtv8sK56ASCMYang_.size = sizeof(tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ*);
NTIrefobject__mCf9cYkDtv8sK56ASCMYang_.align = NIM_ALIGNOF(tyObject_Env_semmagicdotnim_semDynamicBindSym___UdwrZCFez7lYdvLY8j2kdQ*);
NTIrefobject__mCf9cYkDtv8sK56ASCMYang_.kind = 22;
NTIrefobject__mCf9cYkDtv8sK56ASCMYang_.base = (&NTIobject__UdwrZCFez7lYdvLY8j2kdQ_);
NTIrefobject__mCf9cYkDtv8sK56ASCMYang_.marker = Marker_tyRef__mCf9cYkDtv8sK56ASCMYang;
NTIobject__G3GDRnS0a9bK9bA0vzUpFf0A_.size = sizeof(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A);
NTIobject__G3GDRnS0a9bK9bA0vzUpFf0A_.align = NIM_ALIGNOF(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A);
NTIobject__G3GDRnS0a9bK9bA0vzUpFf0A_.kind = 17;
NTIobject__G3GDRnS0a9bK9bA0vzUpFf0A_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_375_2[0] = &TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[5];
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[5].kind = 1;
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[5].offset = offsetof(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A, colonstate_);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[5].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[5].name = ":state";
TM__DKP9c7KM5AbqYVP6Gd9blNUw_375_2[1] = &TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[6];
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[6].kind = 1;
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[6].offset = offsetof(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A, orig1);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[6].typ = (&NTIpsym__u9bhQvrOYyAS9bCQ6gt41GOQ_);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[6].name = "orig1";
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[4].len = 2; TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[4].kind = 2; TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[4].sons = &TM__DKP9c7KM5AbqYVP6Gd9blNUw_375_2[0];
NTIobject__G3GDRnS0a9bK9bA0vzUpFf0A_.node = &TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[4];
NTIrefobject__lQMImV3D9anOIeIeBWcSo9aA_.size = sizeof(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A*);
NTIrefobject__lQMImV3D9anOIeIeBWcSo9aA_.align = NIM_ALIGNOF(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___G3GDRnS0a9bK9bA0vzUpFf0A*);
NTIrefobject__lQMImV3D9anOIeIeBWcSo9aA_.kind = 22;
NTIrefobject__lQMImV3D9anOIeIeBWcSo9aA_.base = (&NTIobject__G3GDRnS0a9bK9bA0vzUpFf0A_);
NTIrefobject__lQMImV3D9anOIeIeBWcSo9aA_.marker = Marker_tyRef__lQMImV3D9anOIeIeBWcSo9aA;
NTIobject__3G5lZo0SaSXQI9cud9cmU4vQ_.size = sizeof(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ);
NTIobject__3G5lZo0SaSXQI9cud9cmU4vQ_.align = NIM_ALIGNOF(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ);
NTIobject__3G5lZo0SaSXQI9cud9cmU4vQ_.kind = 17;
NTIobject__3G5lZo0SaSXQI9cud9cmU4vQ_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_805_2[0] = &TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[8];
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[8].kind = 1;
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[8].offset = offsetof(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ, colonstate_);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[8].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[8].name = ":state";
TM__DKP9c7KM5AbqYVP6Gd9blNUw_805_2[1] = &TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[9];
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[9].kind = 1;
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[9].offset = offsetof(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ, genericType1);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[9].typ = (&NTIptype__q1v0zzhoMWrhMLs6UEp1IA_);
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[9].name = "genericType1";
TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[7].len = 2; TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[7].kind = 2; TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[7].sons = &TM__DKP9c7KM5AbqYVP6Gd9blNUw_805_2[0];
NTIobject__3G5lZo0SaSXQI9cud9cmU4vQ_.node = &TM__DKP9c7KM5AbqYVP6Gd9blNUw_0[7];
NTIrefobject__cj85JDaB589buv4QyqKL4kw_.size = sizeof(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ*);
NTIrefobject__cj85JDaB589buv4QyqKL4kw_.align = NIM_ALIGNOF(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___3G5lZo0SaSXQI9cud9cmU4vQ*);
NTIrefobject__cj85JDaB589buv4QyqKL4kw_.kind = 22;
NTIrefobject__cj85JDaB589buv4QyqKL4kw_.base = (&NTIobject__3G5lZo0SaSXQI9cud9cmU4vQ_);
NTIrefobject__cj85JDaB589buv4QyqKL4kw_.marker = Marker_tyRef__cj85JDaB589buv4QyqKL4kw;
}

