/* Generated by Nim Compiler v1.3.5 */
/*   (c) 2020 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 64

/* section: NIM_merge_HEADERS */

#include "nimbase.h"
#include <string.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

/* section: NIM_merge_FRAME_DEFINES */
#define nimfr_(x, y)
#define nimln_(x, y)

/* section: NIM_merge_FORWARD_TYPES */
typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w;
typedef struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw;
typedef struct tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ;
typedef struct tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg;
typedef struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ tySequence__DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg;
typedef struct tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ;
typedef struct tySequence__9brg1xNurxcus33lU4IE1Dw tySequence__9brg1xNurxcus33lU4IE1Dw;
typedef struct tySequence__oYkV9aFZe0MXcEAprJaOUsA tySequence__oYkV9aFZe0MXcEAprJaOUsA;
typedef struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q;
typedef struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA tySequence__Mh9agqM29bm9aP5AUL1x7dZGA;
typedef struct tySequence__arD7Tw6eD6lvOczWZl9buNg tySequence__arD7Tw6eD6lvOczWZl9buNg;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw;
typedef struct tySequence__jWKvSdankQPoT5bw9cBU9aiw tySequence__jWKvSdankQPoT5bw9cBU9aiw;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__YceFcaugL2PWNtVbyffD9bQ tySequence__YceFcaugL2PWNtVbyffD9bQ;
typedef struct tySequence__d4l6E4jBnTQ3BEfsLOpmEQ tySequence__d4l6E4jBnTQ3BEfsLOpmEQ;
typedef struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w;
typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw tySequence__Bis5AbpONWcIRrPyPJS8Yw;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tySequence__bWZXqEvLFwhLvAqSRoFNgQ tySequence__bWZXqEvLFwhLvAqSRoFNgQ;
typedef struct tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA;
typedef struct tyObject_Table__IioUJGdqPI6xC7S7QF8MBw tyObject_Table__IioUJGdqPI6xC7S7QF8MBw;
typedef struct tySequence__Qr6E8eH7btq79cFKGaJfGLw tySequence__Qr6E8eH7btq79cFKGaJfGLw;
typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
typedef struct tySequence__PzqTLBFNawCGiqTk0UORYw tySequence__PzqTLBFNawCGiqTk0UORYw;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
typedef struct tySequence__Ef05srmQTDulnBdXR4Ja6Q tySequence__Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA tySequence__DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
typedef struct tySequence__1I3cxybVrOXM64KW2dfERQ tySequence__1I3cxybVrOXM64KW2dfERQ;
typedef struct tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ;
typedef struct tyObject_TIdentIter__Oi4goG2ACEsy9cyTe6OCPrA tyObject_TIdentIter__Oi4goG2ACEsy9cyTe6OCPrA;
typedef struct tySequence__MvZmat48bhe9b6x9aUD58D5Q tySequence__MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA;
typedef struct tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ;
typedef struct tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg;
typedef struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA;
typedef struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ;
typedef struct tySequence__0dpGN6F4ocevqUQGsaf41w tySequence__0dpGN6F4ocevqUQGsaf41w;
typedef struct tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ;
typedef struct tySequence__P9bWebqKHkrGHwy9aZW9bw0TA tySequence__P9bWebqKHkrGHwy9aZW9bw0TA;
typedef struct tyTuple__K9bYwLtGKmFQYg8TwmqoG3Q tyTuple__K9bYwLtGKmFQYg8TwmqoG3Q;
typedef struct tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w;
typedef struct tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w;
typedef struct tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw;
typedef struct tyTuple__zwpS6d6iewrdlBSTNFoyVA tyTuple__zwpS6d6iewrdlBSTNFoyVA;
typedef struct tyTuple__ZtAk5YtH0VW1iPowvxePrg tyTuple__ZtAk5YtH0VW1iPowvxePrg;
typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
typedef struct tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg;
typedef struct tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA;
typedef struct tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA;
typedef struct tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
typedef struct tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw;
typedef struct Exception Exception;
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
typedef struct tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw;
typedef struct tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ;
typedef struct tyObject_HSlice__fqLtJsaN5foHLgxLTScotw tyObject_HSlice__fqLtJsaN5foHLgxLTScotw;
typedef struct tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA;
typedef struct tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw;
typedef struct tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA;
typedef struct tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw;
typedef struct tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg;
typedef struct tyTuple__DJxbl4DYEJfb29cy1MYaUPQ tyTuple__DJxbl4DYEJfb29cy1MYaUPQ;
typedef struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg;
typedef struct tyTuple__KlSLWBROOViO04uLQHu7ig tyTuple__KlSLWBROOViO04uLQHu7ig;
typedef struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__quA39a2QdEQU9cSEIUSibApQ tyTuple__quA39a2QdEQU9cSEIUSibApQ;
typedef struct tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
typedef struct tyTuple__euPCXX9bc3XzndEhYlqNS7g tyTuple__euPCXX9bc3XzndEhYlqNS7g;
typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;

/* section: NIM_merge_TYPES */
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w {
  RootObj Sup;
};
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg {
NI elems;
NI counter;
NI max;
tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* head;
tySequence__9brg1xNurxcus33lU4IE1Dw* data;
tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q {
NI counter;
tySequence__Mh9agqM29bm9aP5AUL1x7dZGA* data;
};
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__RcJNn9bSvWdJgUmA1O6sbHA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
typedef NU32 tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ;
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__39auogS0nN05zO6JrT7za9cQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__msQKNa7Ucgnt49aAZ3YRJww) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
void* ClE_0;
} tyProc__7JwrY3AhkVNlleAJXClX9cw;
typedef NU32 tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__qlV9aWvA5wrWVg9bI5PqwJyA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
typedef N_NIMCALL_PTR(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, tyProc__PiEiMdzXg9bcm3lEo4Q6iNw) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
typedef struct {
N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
void* ClE_0;
} tyProc__3cacbJ4la9bDJNibHybQSnA;
typedef struct {
N_NIMCALL_PTR(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, void* ClE_0);
void* ClE_0;
} tyProc__L4XfH7VEp8aJssG3EbEBaQ;
struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* data;
};
typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
typedef N_NIMCALL_PTR(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, tyProc__9amcenQyXzP9cCQNnXZVgnYQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* dc, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op, NI col);
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU16 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w {
tySequence__Bis5AbpONWcIRrPyPJS8Yw* data;
NI counter;
};
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug {
  tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w Sup;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* enforceVoidContext;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module;
tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* currentScope;
tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* importTable;
tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* topLevelScope;
tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* p;
tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* matchedConcept;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* friendModules;
NI instCounter;
NI* templInstCounter;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg ambiguousSymbols;
NI inGenericContext;
NI inStaticContext;
NI inUnrolledContext;
NI compilesContextId;
NI compilesContextIdGenerator;
NI inGenericInst;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* converters;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* patterns;
tySequence__oYkV9aFZe0MXcEAprJaOUsA* optionStack;
tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q symMapping;
tySequence__arD7Tw6eD6lvOczWZl9buNg* libs;
tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstExpr;
tyProc__39auogS0nN05zO6JrT7za9cQ semExpr;
tyProc__39auogS0nN05zO6JrT7za9cQ semTryExpr;
tyProc__RcJNn9bSvWdJgUmA1O6sbHA semTryConstExpr;
tyProc__msQKNa7Ucgnt49aAZ3YRJww computeRequiresInit;
tyProc__7JwrY3AhkVNlleAJXClX9cw hasUnresolvedArgs;
tyProc__39auogS0nN05zO6JrT7za9cQ semOperand;
tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstBoolExpr;
tyProc__qlV9aWvA5wrWVg9bI5PqwJyA semOverloadedCall;
tyProc__PiEiMdzXg9bcm3lEo4Q6iNw semTypeNode;
tyProc__3cacbJ4la9bDJNibHybQSnA semInferredLambda;
tyProc__L4XfH7VEp8aJssG3EbEBaQ semGenerateInstance;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg includedFiles;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA pureEnumFields;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA userPragmas;
tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* evalContext;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg unknownIdents;
tySequence__jWKvSdankQPoT5bw9cBU9aiw* generics;
NI topStmts;
NI lastGenericIdx;
NI hloLoopDetector;
NI inParallelStmt;
tyProc__9amcenQyXzP9cCQNnXZVgnYQ instTypeBoundOp;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* selfName;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA signatures;
NimStringDesc* recursiveDep;
NIM_BOOL suggestionsMade;
tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
NI inTypeContext;
tySequence__YceFcaugL2PWNtVbyffD9bQ* typesWithOps;
tySequence__d4l6E4jBnTQ3BEfsLOpmEQ* unusedImports;
tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w exportIndirections;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastTLineInfo;
};
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
typedef tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray__OLX364rHC66WkzRbMp49aQg[64];
typedef tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray__6GDJmNRiFxkWAAdMgUie8g[70];
struct tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA {
char dummy;
};
struct tyObject_Table__IioUJGdqPI6xC7S7QF8MBw {
tySequence__Qr6E8eH7btq79cFKGaJfGLw* data;
NI counter;
};
struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, tyProc__c6vdo1yHyj19b9bS17tijS2w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__d5yEkT9aXkAtHvVerr7IeCQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(void, tyProc__sP1I7TbCn358eLy9bX4IphA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
tySequence__23SMqauuRsbDANhthj9bWlA* data;
NI counter;
};
struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
NI counter;
};
typedef N_NIMCALL_PTR(void, tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__3TeLOx1euAsRk3YCaQCuPg) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* actual);
struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ {
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* modules;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageSyms;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg deps;
tyObject_Table__fdKWDDO1P17zvuQPReVgRA importDeps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ inclToMod;
tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
RootObj* vm;
tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* usageSym;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* owners;
tySequence__bWZXqEvLFwhLvAqSRoFNgQ* methods;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* systemModule;
tyArray__OLX364rHC66WkzRbMp49aQg sysTypes;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA compilerprocs;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA exposed;
tyArray__6GDJmNRiFxkWAAdMgUie8g intTypeCache;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opContains;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opNot;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* emptyNode;
tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA incr;
tyObject_Table__IioUJGdqPI6xC7S7QF8MBw canonTypes;
tyObject_Table__G1v8c16HePOldLeucwe05Q symBodyHashes;
tyProc__c6vdo1yHyj19b9bS17tijS2w importModuleCallback;
tyProc__d5yEkT9aXkAtHvVerr7IeCQ includeFileCallback;
tyProc__sP1I7TbCn358eLy9bX4IphA recordStmt;
tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
tyObject_Table__NttoEzoiq5CiphZe81oadg cacheCounters;
tyObject_Table__nagDFX4QHx0s6Fvma9blmSg cacheTables;
tySequence__PzqTLBFNawCGiqTk0UORYw* passes;
tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onDefinition;
tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onDefinitionResolveForward;
tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onUsage;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* globalDestructors;
tyProc__sP1I7TbCn358eLy9bX4IphA strongSemCheck;
tyProc__3TeLOx1euAsRk3YCaQCuPg compatibleProps;
};
struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence__Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
} _kind_1;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_2;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
NI alignment;
} _kind_4;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
} _kind_4;
struct {tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
NimStringDesc* comment;
};
typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
typedef NU8 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag;
typedef NU8 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ;
struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw {
tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ targetOS;
tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
typedef NU8 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA;
struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
tySequence__tNFrR3kRuS1FSwuiLGoSSA* msgContext;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastError;
tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
tySequence__Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw;
typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
typedef NU8 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
typedef NU8 tySet_tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA[9];
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
void* ClE_0;
} tyProc__oL9coyIA2VDTGdUcur9aL9bew;
struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw cmd;
tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
NI verbosity;
NI numberOfProcessors;
NimStringDesc* evalExpr;
NF lastCmdTime;
tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA modifiedyNotes;
tySet_tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA cmdlineNotes;
tySet_tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA foreignPackageNotes;
tySet_tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA notes;
tySet_tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA warningAsErrors;
tySet_tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
NI maxLoopIterationsVM;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* jsonBuildFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
NIM_BOOL 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* cIncludes;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
NimStringDesc* linkOptionsCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
NimStringDesc* linkOptions;
NimStringDesc* compileOptions;
NimStringDesc* cCompilerPath;
tySequence__pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
tyProc__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
NimStringDesc* cppCustomNamespace;
tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
};
typedef NU8 tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tySet_tyEnum_TLookupFlag__ObWMY5GMSl1GiMcrKaAhKQ;
typedef NU8 tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ;
struct tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* resultSym;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* selfSym;
NI nestedLoopCounter;
NI nestedBlockCounter;
NI inTryStmt;
tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* next;
NIM_BOOL mappingExists;
tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q mapping;
tySequence__1I3cxybVrOXM64KW2dfERQ* caseContext;
};
typedef NU8 tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA;
struct tyObject_TIdentIter__Oi4goG2ACEsy9cyTe6OCPrA {
NI h;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name;
};
typedef NU8 tyEnum_TOverloadIterMode__xCku9a0wtzKQQBbzX1t6btg;
struct tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ {
tyObject_TIdentIter__Oi4goG2ACEsy9cyTe6OCPrA it;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m;
tyEnum_TOverloadIterMode__xCku9a0wtzKQQBbzX1t6btg mode;
NI symChoiceIndex;
tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg inSymChoice;
};
typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tyArray__PsPyPA45AAjHu4uDGHNjTg[6];
struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray__PsPyPA45AAjHu4uDGHNjTg attachedOps;
tySequence__MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
typedef NU64 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
typedef NU8 tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw;
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU16 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA;
typedef NU8 tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw[21];
typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef NU8 tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g;
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__AB6yfoUgfWM2NtGe9bzkCmw[2];
typedef tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray__E1tCxfqiw3fNnaaIR5Kn2A[2];
typedef NU8 tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw;
typedef NU8 tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA;
typedef NU8 tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA;
typedef NU8 tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
typedef NU8 tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg;
typedef NU8 tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w;
struct tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ {
tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w kind;
NI arg;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* formal;
};
struct tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA {
tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
NI exactMatches;
NI genericMatches;
NI subtypeMatches;
NI intConvMatches;
NI convMatches;
tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg state;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* callee;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* calleeSym;
NI calleeScope;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q bindings;
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
NIM_BOOL baseTypeMatch;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag fauxMatch;
NIM_BOOL genericConverter;
NIM_BOOL coerceDistincts;
NIM_BOOL typedescMatched;
NIM_BOOL isNoCall;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* inferredTypes;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* diagnostics;
NI inheritancePenalty;
tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ firstMismatch;
NIM_BOOL diagnosticsEnabled;
};
struct tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* candidateType;
tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* prev;
NI depth;
};
struct tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw {
NI depthLevel;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA symbols;
tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* parent;
};
struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* concreteTypes;
NI compilesId;
};
struct tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg {
tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ* typeMap;
tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q symMap;
tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q localCache;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
NIM_BOOL allowMetaTypes;
NIM_BOOL skipTypedesc;
NIM_BOOL isReturnType;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
NI recursionLimit;
};
typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA {
tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
};
typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
typedef NU8 tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg;
struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* genericSym;
tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
};
typedef NU8 tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw[36];
typedef NU8 tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ;
struct tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ firstMismatch;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* diagnostics;
NIM_BOOL enabled;
};
struct tyTuple__K9bYwLtGKmFQYg8TwmqoG3Q {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field0;
NI Field1;
};
typedef NU8 tyEnum_TProcCompilationSteps__2LY1MARGn5z4Y5kU8eJFMg;
typedef NU16 tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw;
typedef tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* tyArray__o8KQyTFgNQGvsJZYtdEsgA[8192];
struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw {
tyArray__o8KQyTFgNQGvsJZYtdEsgA buckets;
NI wordCounter;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* idAnon;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* idDelegator;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* emptyIdent;
};
struct tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w {
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA defaultCC;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* dynlib;
tySet_tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA notes;
tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* otherPragmas;
tySet_tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA warningAsErrors;
};
struct tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w {
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg toMixin;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg toBind;
NIM_BOOL cursorInBody;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bracketExpr;
};
typedef NU8 tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA;
typedef NU8 tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA;
struct tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ {
tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q topLayer;
tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ* nextLayer;
};
struct tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw {
tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg toBind;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg toMixin;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg toInject;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
NIM_BOOL cursorInBody;
NI scopeN;
NI noGenSym;
NI inTemplateHeader;
};
typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
typedef NU8 tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg;
struct tyTuple__zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
typedef NU8 tySet_tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw;
typedef NU8 tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw;
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg[34];
typedef NU8 tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag;
typedef NU8 tyEnum_TTypeRelation__1IMf5P083XuEtWGxYaIXyQ;
typedef NU8 tySet_tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg;
typedef NU8 tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ;
typedef NU8 tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA;
struct tyTuple__ZtAk5YtH0VW1iPowvxePrg {
tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw Field0;
NimStringDesc* Field1;
};
typedef NU8 tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w;
struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyFile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
typedef NimStringDesc* tyArray__nr38yHugp0nuiB6VarJGiw[2];
struct tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg {
  RootObj Sup;
NI colonstate_;
tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c1;
tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope2;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* args, void* ClE_0);
void* ClE_0;
} tyProc__5QC9cKfPJmKuW0XbCTd8ylA;
struct tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA {
NI ra;
NI rb;
NI rc;
tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA* slots;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentException;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q currentLineInfo;
};
struct tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg {
  RootObj Sup;
NI colonstate_;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* orig1;
};
typedef struct {
N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ClP_0) (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* procSym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* old, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* fresh, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* oldParam, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* newParam, void* ClE_0);
void* ClE_0;
} tyProc__ZB008LFGdRYy2vj1OH1xuQ;
typedef N_CLOSURE_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, TM__rF9caJawfOjYTjsgLVUSGFA_330) (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* procSym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* old, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* fresh, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* oldParam, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* newParam);
typedef N_CLOSURE_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, TM__rF9caJawfOjYTjsgLVUSGFA_331) (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* procSym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* old, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* fresh, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* oldParam, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* newParam);
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__T6RKPw8xfAeNaoei9aZGzXg[3];
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};
typedef NU tyArray__VqSA39cBDWnwnJySTumCdjw[8];
struct tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ {
tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* next;
NI key;
tyArray__VqSA39cBDWnwnJySTumCdjw bits;
};
struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA {
  RootObj Sup;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* left;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* right;
NI L;
NimStringDesc* data;
};
struct tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr;
NIM_BOOL needsFullInit;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* missingFields;
};
typedef NU8 tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ;
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
Exception* up;
};
struct tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field0;
NI Field1;
};
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__voNMFnIDThVNu9afe2zfZWA[5];
typedef NU8 tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw;
struct tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ {
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw a;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw b;
};
struct tyObject_HSlice__fqLtJsaN5foHLgxLTScotw {
tyObject_Int128__9a9axPfb75jdWY25AamJewkA a;
tyObject_Int128__9a9axPfb75jdWY25AamJewkA b;
};
struct tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA {
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag a;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag b;
};
typedef NimStringDesc* tyArray__Q6RksR9bl1dCf8jl3HeN9bXg[8];
typedef NU8 tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw;
typedef NU8 tyEnum_TSpawnResult__YOcUu9brt5AKRflRWdxATPw;
typedef N_CLOSURE_PTR(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, TM__rF9caJawfOjYTjsgLVUSGFA_623) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
typedef NU8 tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg;
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__cypz0nHJsd9cnKgpO7fP5hQ[1];
struct tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw {
  RootObj Sup;
NI colonstate_;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* genericType1;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, void* ClE_0);
void* ClE_0;
} tyProc__9c12O79biRoLGSQrMfBJEQDg;
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_715) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_716) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_717) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_720) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_727) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_732) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_733) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_734) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_736) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
struct tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tupleType;
NI tupleIndex;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field;
NIM_BOOL replaceByFieldName;
tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
};
struct tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw {
tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m;
};
typedef NU8 tyEnum_TSymKind__uwRDzlpaGW5WJzgBn4R8Eg;
struct tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg {
NI h;
};
typedef N_CLOSURE_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, TM__rF9caJawfOjYTjsgLVUSGFA_869) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
typedef N_CLOSURE_PTR(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, TM__rF9caJawfOjYTjsgLVUSGFA_870) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, void* ClE_0);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_871) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
struct tyTuple__DJxbl4DYEJfb29cy1MYaUPQ {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field0;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field1;
};
struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg {
tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA* key;
RootObj* val;
};
struct tyTuple__KlSLWBROOViO04uLQHu7ig {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* Field0;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* Field1;
};
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ {
NI Field0;
tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ Field1;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyTuple__quA39a2QdEQU9cSEIUSibApQ {
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* Field2;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
NI entries;
};
struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
};
typedef N_NIMCALL_PTR(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, tyProc__8ooe5vdoqmvpHnfXV29bP3w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__A7Sdoem70tRxSEmKrf9cmyg) (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* topLevelStmt);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__EAEKmBUgKFg29agoUGtzDEQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
struct tyTuple__euPCXX9bc3XzndEhYlqNS7g {
tyProc__8ooe5vdoqmvpHnfXV29bP3w Field0;
tyProc__A7Sdoem70tRxSEmKrf9cmyg Field1;
tyProc__EAEKmBUgKFg29agoUGtzDEQ Field2;
NIM_BOOL Field3;
};
struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
NimStringDesc* Field1;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
};
struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
NCSTRING procname;
NI line;
NCSTRING filename;
};

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence__Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence__jWKvSdankQPoT5bw9cBU9aiw {
  TGenericSeq Sup;
  tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__0dpGN6F4ocevqUQGsaf41w {
  TGenericSeq Sup;
  tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ data[SEQ_DECL_SIZE];
};
struct tySequence__P9bWebqKHkrGHwy9aZW9bw0TA {
  TGenericSeq Sup;
  tyTuple__K9bYwLtGKmFQYg8TwmqoG3Q data[SEQ_DECL_SIZE];
};
struct tySequence__MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple__zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__9brg1xNurxcus33lU4IE1Dw {
  TGenericSeq Sup;
  tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE];
};
struct tySequence__oYkV9aFZe0MXcEAprJaOUsA {
  TGenericSeq Sup;
  tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w* data[SEQ_DECL_SIZE];
};
struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA {
  TGenericSeq Sup;
  tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg data[SEQ_DECL_SIZE];
};
struct tySequence__arD7Tw6eD6lvOczWZl9buNg {
  TGenericSeq Sup;
  tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* data[SEQ_DECL_SIZE];
};
struct tySequence__YceFcaugL2PWNtVbyffD9bQ {
  TGenericSeq Sup;
  tyTuple__KlSLWBROOViO04uLQHu7ig data[SEQ_DECL_SIZE];
};
struct tySequence__d4l6E4jBnTQ3BEfsLOpmEQ {
  TGenericSeq Sup;
  tyTuple__DJxbl4DYEJfb29cy1MYaUPQ data[SEQ_DECL_SIZE];
};
struct tySequence__Bis5AbpONWcIRrPyPJS8Yw {
  TGenericSeq Sup;
  tyTuple__NAaJgGVgNmlGoqmiWxdOHQ 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__bWZXqEvLFwhLvAqSRoFNgQ {
  TGenericSeq Sup;
  tyTuple__quA39a2QdEQU9cSEIUSibApQ data[SEQ_DECL_SIZE];
};
struct tySequence__Qr6E8eH7btq79cFKGaJfGLw {
  TGenericSeq Sup;
  tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__23SMqauuRsbDANhthj9bWlA {
  TGenericSeq Sup;
  tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence__pHNq3oXj9av2sEUdqaqeZjw {
  TGenericSeq Sup;
  tyTuple__wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
};
struct tySequence__PzqTLBFNawCGiqTk0UORYw {
  TGenericSeq Sup;
  tyTuple__euPCXX9bc3XzndEhYlqNS7g data[SEQ_DECL_SIZE];
};
struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
  TGenericSeq Sup;
  tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
  TGenericSeq Sup;
  tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
struct tySequence__1I3cxybVrOXM64KW2dfERQ {
  TGenericSeq Sup;
  tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw data[SEQ_DECL_SIZE];
};
struct tySequence__uB9b75OUPRENsBAu4AnoePA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
};

/* section: NIM_merge_PROC_HEADERS */
N_LIB_PRIVATE N_NIMCALL(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*, newContext__dfWKKRV6rIabJ2ctPOd59aA)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConstExpr__7YxUILpPxooC5qqa89a54dw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprWithType__vJZwz9bfROKrfrtM50y74CQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprCheck__vJZwz9bfROKrfrtM50y74CQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExpr__vJZwz9bfROKrfrtM50y74CQ_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, suggestExpr__wb6KhAx6bZ5NV37kY4bXJw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TLookupFlag__ObWMY5GMSl1GiMcrKaAhKQ flags);
N_LIB_PRIVATE N_NIMCALL(void, semCaptureSym__h6aJJZj4uWFwM8eXN4VDAw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, symChoice__ce08GbPIDAcM29cbr3lVUxg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA r, NIM_BOOL isField);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, initOverloadIter__yTTeeqtnENsm0xyCro9a61w)(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ* o, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, nextOverloadIter__yTTeeqtnENsm0xyCro9a61w_2)(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ* o, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__AFd9c9cdRrILXl9anrr9aRvqig)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, markUsed__QlWTWY7567sCdiTkeUTTDA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newTypeS__xb5E2cGIynZweqWlCP8Tig)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, markOwnerModuleAsUsed__YW6ZVaTpPDUETmgx3UgpFw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, add__P8dDSotTW25BkfbyspojGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
static N_INLINE(void, markIndirect__OGrPg9bGc5rou9aBRgLK606Qsemdata)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makeVarType__45x39aIZGLTdqqo59b4NHvLw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSym__20OKsvfFnNZXONk4IBzYgg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getGenSym__pT6glwCH57hiSrY6Jp4rug)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, inlineConst__a1Z9a4khB42QCtmKBL9cckKAsem)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__Dsjo9bte8vGxzhtcSrsTyiQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__Q6JNH4uRwLyZrj0dJakHew)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString__QlvraUan7WbHowhAbvDvdA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__I2DV2TmmOysY1ZEGW19b9bRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, base__PfgI9ap7WOnsRfFV4znQ27w)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NI, requiredParams__knh7oe6js9clE7mbQBo9aJGA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMacroExpr__GFpnqBAgGBu4p8rc0WsOTw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, pushInfoContext__uDLK9aoAOWwwFTev4NOwF7Q)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* detail);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalMacroCall__6SgKdna0C4CEFxNnRELlUg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI* templInstCounter, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAfterMacroCall__Hw66264lMkoOE49a7wqbwsQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* macroResult, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getModule__xfh8ar7fDxVX2A4OO9b5sqQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, idSynchronizationPoint__o9blMKDNUEgfiqOxiffy8Tw)(NI idRange);
N_LIB_PRIVATE N_NIMCALL(void, resetSemFlag__sIxO9bj7Xwv3qFTK7z9b5jSg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStmt__vJZwz9bfROKrfrtM50y74CQ_4)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprNoType__7YxUILpPxooC5qqa89a54dw_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasHint__6vRFaWMeJsly8QVCeazPQA_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA note);
N_LIB_PRIVATE N_NIMCALL(void, discardCheck__tp7yV6CFb40nVuGT1TBFpw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, implicitlyDiscardable__OiccTa3ruRNl9anoSqZh2Sg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__UPSW0jLTX5qJL51YMUAHgw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCallExpr__CZaoTkWCFI9acor4BmYF3Yw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___qX5C9b0n9bOP7jk69amC8dA7A)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___aQsiZUvE4SFfnWyKx1JgKA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, popInfoContext__O9arH9bYenXLOr27ZSmcQnEw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(void, transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semTypeNode__O8zf75mcUwo9cfPQUQRaEug)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(void, checkSonsLen__EezdXeDvu4rB7fR84AJZgw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI length, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semTypeof__O8zf75mcUwo9cfPQUQRaEug_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*, openScope__HbQKk9aDdsJVs9bASTXwa5Lw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, closeScope__TX9bi5b9bIHR13FiwHwV59a4w)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, fixupTypeOf__3zDDdB9b7Qt20FH75Al61MA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typExpr);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son, NIM_BOOL propagateHasAsgn);
N_LIB_PRIVATE N_NIMCALL(void, assignType__RDstL9c8H9bSHUphDz0iB0hg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semAnonTuple__O8zf75mcUwo9cfPQUQRaEug_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__vokyXY9cZDshCSxFKChhG9bg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semRangeAux__O8zf75mcUwo9cfPQUQRaEug_4)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, errorType__9aXTnVBVS5pbBC3zrwMhttg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
static N_INLINE(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipIntLit__PyQcLUUKkDYcpwke36Qpxgmagicsys)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, copyType__4O4aYoscFPo2FRSh4rP9ayg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, NIM_BOOL keepId);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__3isNyHKb0U1OCnClmflXSg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__6euCPZwUsyXzP1vAm4IthA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NIM_BOOL allowEnumWithHoles);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, enumHasHoles__YPjOkGV9axAnGR3UfLeWZ1g_3)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasUnresolvedArgs__iY9a3KG6T9aTt3fJH8J6BrJQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnresolvedSym__J1LR9bIUh18t4XFDmYEYBYw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMetaType__aVxWxXLmf103vwE8uZ9cXRw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* origin);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, searchInScopes__Drn1sJCJSwUUo03qKJigUw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeStaticExpr__g3ODV709caO5lfQfPGeUxSQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA, classify__x3IKzrz1VNvfZbypScSTXg)(NF x);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, weakLeValue__u0tFw6hmOCjNH0Gl9c619aMw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
static N_INLINE(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, freshType__MYPl0kqQUBUN3G45LDt6rwsem)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* res, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semTypeExpr__O8zf75mcUwo9cfPQUQRaEug_5)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, maybeAliasType__xPYGnx9aHNqBtfJgpdvk0Eg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeExpr, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makeAndType__9b4dTSY3d7uIjSch9cj9cGP1w)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t1, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makeOrType__9b4dTSY3d7uIjSch9cj9cGP1w_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t1, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makeTypeFromExpr__D2YW7F23KYvdV39aTScM3IQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTree__FpOm4fidh9bWdkMa1BMRJkQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makeNotType__UPDD9aO4WRk8hLMnfpJZudg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semAnyRef__WkfdPzqjIHjpNCHcK8ViDg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newConstraint__QGpv9bqfXWWeJjJoCL6cRRA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag k);
N_LIB_PRIVATE N_NIMCALL(void, checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI length, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semObjectNode__T23bTYnaXqU9cKlZ7Ag9bdBg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev, NIM_BOOL isInheritable);
N_LIB_PRIVATE N_NIMCALL(void, initIntSet__n8oDZMn19bEdodSnrBQB9a1Q)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypesOrNil__zsqmUNR5OZrTUna0Y9bdu9bg_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
static N_INLINE(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipGenericInvocation__un0CMx5e9axSJU0IN3TyTiwsem)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(void, addInheritedFields__PxMjdK03AEVfD5NRj9bgcDg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check, NI* pos, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* obj);
N_LIB_PRIVATE N_NIMCALL(void, addInheritedFieldsAux__ACSQTAVDG480Jn3p3wc7ug)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check, NI* pos, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, incl__jENnK9c9bPE73pKmo2vYjpqg)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, semRecordNodeAux__xnbsksR9alpM9axWraQlPoDQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check, NI* pos, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rectype, NIM_BOOL hasCaseFields);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConstBoolExpr__7YxUILpPxooC5qqa89a54dw_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, forceBool__7YxUILpPxooC5qqa89a54dw_4)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitNode__3gQ9buvlr7tPLmWwfmGV7fw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, indexTypesMatch__8llRCFM4VdmgY27XJn2sRA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* f, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg);
N_LIB_PRIVATE N_NIMCALL(void, newCandidate__rFFaxk6TYVlvnKNibvVmkg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* callee, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, paramTypesMatch__MkZIYaWSL2Febv66liB9aIA)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* f, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* argOrig);
N_LIB_PRIVATE N_NIMCALL(void, instGenericConvertersArg__OiEXsRRJbWjgfYLWIAKYYQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, generateInstance__Bbmaz5QjetnTaor7LYngPg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(NimStringDesc*, toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info);
N_LIB_PRIVATE N_NIMCALL(void, addInt__mftMOxbyu0h4yByfs3sqjA)(NimStringDesc** result, NI64 x);
static N_INLINE(NIM_BOOL, isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, copySym__lIu8wX6Beq6dBJgESOFFjg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, pushOwner__AqgO9b89aLwRYAgSHN9aBrlHQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA*, new__BiEKflRN9azaxRNwAA9br7uA)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newSym__IXbidcxhXTQGZY9abN63Cxg)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(RootObj*, idTableGet__K5M5T7J9c0H7M5ahfeRl8xw)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q t, tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA* key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, generateTypeInstance__ab5BITmU2P8zKztV9cfNtsg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* p, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, addDecl__aPXKqZJT9c7r7gT8X3uZAHw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, rawPushProcCon__jWGpC0lY8vG9b1MhOYJ9cFiQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_LIB_PRIVATE N_NIMCALL(void, instantiateProcType__1PhCjyNxyOAJRoRgfsrJDQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ*, initLayeredTypeMap__B4ANHmRtTNsf0tY0IplCpw)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt);
N_LIB_PRIVATE N_NIMCALL(void, initTypeVars__EZn0NSR9cUjgZYKdEVkzwaA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* p, tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ* typeMap, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, instCopyType__cNsAY9aO2v1oTCPqZyHga1w_5)(tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg* cl, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, resetIdTable__Z7fF0Wc4DSB4kCiKZ8rGfQ_2)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, replaceTypeVarsT__cNsAY9aO2v1oTCPqZyHga1w)(tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg* cl, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, replaceTypeVarsN__TMTYUYo5YIKojKgBmj9boOQ)(tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg* cl, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI start);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, referencesAnotherParam__cvWGVSvD9adrttq7iqjO7wA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, errorNode__g3ODV709caO5lfQfPGeUxSQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitNodePostMatch__t9cW9ai7WILQBcTRPAW4swfA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__BH9abOhPX8pH0DnEWlRxmlw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, changeType__sF9cXBCC3k8saS0PTBUB9b8A)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* newType, NIM_BOOL check);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, elemType__PfgI9ap7WOnsRfFV4znQ27w_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getSymFromList__aHh3vzt6upPNMkKnONiMRw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* list, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident, NI start);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___xL5gyZrjbGMarSdRAXOo9ag_3)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__hjogdnp59cMX1rwmjikBhqw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___nr9cP9b0OL9cabygV9bo19cJgZA_3)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lastOrd__hjogdnp59cMX1rwmjikBhqw_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, floatRangeCheck__RTbq1U5r9aGXeN20T54YASg)(NF x, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF f);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipHiddenSubConv__BH9abOhPX8pH0DnEWlRxmlw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, propagateToOwner__SzeWf39bw6SALsrL5NDJWbQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* owner, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* elem, NIM_BOOL propagateHasAsgn);
N_LIB_PRIVATE N_NIMCALL(void, eraseVoidParams__w2l6CVu9bYn8M06fJcMTkHw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, skipIntLiteralParams__w2l6CVu9bYn8M06fJcMTkHw_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, genericCacheGet__yrVWUjVCLM4qNMOOOoQryQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* genericSym, tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA entry, NI id);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameInstantiation__bGmhq9bb8pFOkYidfiwlp5w)(tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA a, tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compareTypes__oyXq5u7iL4RjsT9bovvTE9cg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* y, tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg cmp, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
N_LIB_PRIVATE N_NIMCALL(void, rawHandleSelf__jWGpC0lY8vG9b1MhOYJ9cFiQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void, addObjFieldsToLocalScope__NRIJDWZtATzMum7OEjYC2g)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, fieldVisible__9bfgTfDbdDjqc3nAFjdnkKwsigmatch)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* f);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, strTableIncl__4C9ciVlXutN6a0CSSeSkVDA)(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* t, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* n, NIM_BOOL onConflictKeepOld);
N_LIB_PRIVATE N_NIMCALL(void, makeInstPair__OBM04JqIpDFmR9bhgy9ckD3w)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst, tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ* Result);
N_LIB_PRIVATE N_NIMCALL(void, pragma__m5gdSrENJIwAi9aMdDiUT9bg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas, NIM_BOOL isStatement);
N_LIB_PRIVATE N_NIMCALL(void, instantiateBody__6k2yIpmfdYEOM5RXDFvgYQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* orig);
N_LIB_PRIVATE N_NIMCALL(void, maybeAddResult__8H5d8d9cPCfbpMuDrerQMeQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, sysTypeFromName__tS9cwSHSUZLgy9baxOcGRlCQ)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(void, addResult__7eBNKE6IPVEZgtGluTicdQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, getIdent__9coBOmdXN09be4rJvXK6fQGQ)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
N_LIB_PRIVATE N_NIMCALL(void, addParamOrResult__pceuJlMM5di29a5a9cxxzXSQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, findEnforcedStaticType__9cRlRlKvV58Tq3YoHJJi1Rw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getSysSym__9bvw79ck1FDiWpnBYh88rEfw)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(void, addResultNode__NRIJDWZtATzMum7OEjYC2g_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isInlineIterator__EhCVbB6PynSh7XFAFVMiJAast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, initIdTable__Z7fF0Wc4DSB4kCiKZ8rGfQ)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* x);
N_LIB_PRIVATE N_NIMCALL(void, idTablePut__anELyz7VLsjbCIoxLpxbfQ)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* t, tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA* key, RootObj* val);
N_LIB_PRIVATE N_NIMCALL(void, freshGenSyms__sniSZ3lXmsiJXk4n7qLgPw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* orig, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* symMap);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProcBody__7YxUILpPxooC5qqa89a54dw_5)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, fixNilType__NRIJDWZtATzMum7OEjYC2g_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isAtom__ORlI8o1EUYdPqjuTcBWx1Aast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsgn__mkzYzG9avRzHz5NmIFyZdRg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, builtinFieldAccess__vJZwz9bfROKrfrtM50y74CQ_5)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryReadingTypeField__6Ix9awqI9ax7ryNwTnzhRziw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* i, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, lookupInRecord__gYQxUKQhlRY6yBu3Ll2TYg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* field);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makeTypeDesc__BhLel1oiCddEysrc3uc6iQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryReadingGenericParam__L5Nhi0f3LeGUlYzLEKJ7lw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* i, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, readTypeParameter__mu5r1rtNM9aogbn9cBVgqt3A)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* paramName, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, linkTo__Lxy1G9c1I40y65cWkoPnssA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipGenericAlias__PfgI9ap7WOnsRfFV4znQ27w_3)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTypeExpr__OiccTa3ruRNl9anoSqZh2Sg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, lookupInRecordAndBuildCheck__h4jJjDt0klDz9b1Aq9bwK14A)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* field, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** check);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, createSetType__rwLVyLHZXgxsg41zHjQWfg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeDeref__wWBimsBS4M6UZBvTRDlQTQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, propertyWriteAccess__LlYuhVuv4UT9crSsgDzV0sQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ)(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__duw0Uu9cIFXmCAaunQWIP0g)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOverloadedCallAnalyseEffects__9b1JieByYAFP9bIuFhYqD8AA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOverloadedCall__pBkKnME6t9c8v6khuDD76Fg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, resolveOverloads__deoiEhU508ju9btmg2AXeFw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags, tySequence__0dpGN6F4ocevqUQGsaf41w** errors, NIM_BOOL errorsEnabled, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result);
static N_INLINE(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(void, semOpAux__NRIJDWZtATzMum7OEjYC2g_4)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, pickBestCandidate__IETBO4nA4t9bpyaJXqQ9aSTg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initialBinding, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* best, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* alt, tySequence__0dpGN6F4ocevqUQGsaf41w** errors, NIM_BOOL diagnosticsFlag, NIM_BOOL errorsEnabled);
N_LIB_PRIVATE N_NIMCALL(NI, lastOverloadScope__8ksyNJM57vm1Sx3GOp09acw)(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ* o);
N_LIB_PRIVATE N_NIMCALL(void, initCandidate__KpVjtqarjr9c7ddovPDNqvA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* callee, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* binding, NI calleeScope, NIM_BOOL diagnosticsEnabled);
N_LIB_PRIVATE N_NIMCALL(void, determineType__PSSiITp8zAUcZ8z1k5AMLA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProcAux__HtuGXsziiAueY6wARBVVAA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas, tyEnum_TProcCompilationSteps__2LY1MARGn5z4Y5kU8eJFMg phase);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProcAnnotation__Uz9bZ6N7ZeTxuwI9b9cYeOeYw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prc, tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw, whichPragma__Pjztiiq9bHmTTxDuLd39cNRw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ)(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA t, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyExcept__fBlFhtX9baijQaFTBKid83w)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalTemplate__MnrgLhOl4U6sn3rRD19cz9bA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tmpl, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* genSymOwner, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NI* instID, NIM_BOOL fromHlo);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, semIdentDef__L2b79bZBCkiyCHeJkLWxPlQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, semIdentWithPragma__gSt4lwrAK8GOXOIIBgGsog)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw allowed);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, semIdentVis__gSt4lwrAK8GOXOIIBgGsog_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw allowed);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newSymG__z0Xq7x7aKOzONyxr8mX73A)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toHumanStr__QHyA5kxlk0TZf3p6IbMdtA)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getLineInfo__oiqk14Y4OLEhcR9bJBpfCag_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(void, suggestSym__c4UsAt49bYALbZKCjgqOrCQsigmatch)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** usageSym, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, setGenericParamsMisc__7YxUILpPxooC5qqa89a54dw_6)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericParamList__00ZJT6x0WT6z8eBqr79cipw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newTypeWithSons__7doBlU1jfuQUQdCuB7BM4Q)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tySequence__Ef05srmQTDulnBdXR4Ja6Q* sons);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semGenericConstraints__XPC0ita29a0P9cMGViV9aayYQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericType__YPjOkGV9axAnGR3UfLeWZ1g_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, semParamList__HJ2sXcKFjirzvqsZjMcpTg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semProcTypeNode__ZVaxL1YkeVlGuk9csaO0Z2w)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, NIM_BOOL isType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newProcType__5gg5mq4XYRQKbAkdLMpzGA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w*, lastOptionEntry__SQasfuhUR9aUpH0EyW9aFezg_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semParamType__JfIbex3lv6r6Ex7T9a9cADuw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** constraint);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semNodeKindConstraints__h4580wUcWriTu1bx3JdXfA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI start);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMagic__aafCJ57RxmXkzBZMJ1lSSQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasPragma__oSJ8Ge9caDJrmJG9brFCzlOg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw pragma);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmt__7YxUILpPxooC5qqa89a54dw_7)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmt__aVtCjYVuHV1t3poDWh43wA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lookup__aVtCjYVuHV1t3poDWh43wA_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, skipAlias__5qYRPQsu9attXO2xg5lnFVQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__R6uRTGpl30Ofaw4Ni3vawA)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, errorUndeclaredIdentifier__2jJM9bqw5w9caMyqez0JSuZw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmtSymbol__q2u7Xlf0LOsIed6IkVg52g)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, NIM_BOOL fromDotExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNodeTypeDesc__gg6DZ4kb59aQbmKe4ytsnvA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fuzzyLookup__AtVxV9cBv7sgERvmPI9aqfnA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx, NIM_BOOL* isMacro);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, searchInScopes__Jp5sb3DT9aETEb2x58UOk6g)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* s, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDot__9bgrXSJFYUNpBL6r2Dw4dwQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMixinStmt__gk1t9bC9cmwHRhVJXF0sVfqA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* toMixin);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBindStmt__9askHuPxNsdv5Fi00VcmrXQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* toBind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmtScope__aVtCjYVuHV1t3poDWh43wA_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx);
N_LIB_PRIVATE N_NIMCALL(void, addTempDecl__XjZLpvNqVUTx1J6TXREPBQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newSymS__z0Xq7x7aKOzONyxr8mX73A_2)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getIdentNode__7YxUILpPxooC5qqa89a54dw_8)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addPrelimDecl__aPXKqZJT9c7r7gT8X3uZAHw_4)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw k);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInfixAs__CZaoTkWCFI9acor4BmYF3Yw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyContainer__YPjOkGV9axAnGR3UfLeWZ1g_4)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, liftParamType__IED6yzEuxOVbtiDk639cvjw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw procKind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* paramType, NimStringDesc* paramName, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NIM_BOOL anon);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, addImplicitGeneric__PNQVBgqq1K3pEL9atJ4kfOw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeClass, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* typId, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, NimStringDesc* paramName);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, exactReplica__wG9cFX0BL4VD1hNwr4zEuwQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, instGenericContainer__sJO8n9aXqgecj24tOSPjmow)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* header, NIM_BOOL allowMetaTypes);
N_LIB_PRIVATE N_NIMCALL(void, transitionGenericParamToType__EEixHgS5VK63cVXrrMe6Tw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPattern__7YxUILpPxooC5qqa89a54dw_9)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, flattenStmts__qsyX8NJX39ctdwAi4rC8W1g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPatternBody__DuioLh4uofptxEKissr2sw)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleSym__bk0oScE0sXzp15PuTrbg3w)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newParam__bk0oScE0sXzp15PuTrbg3w_2)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, expectParam__DuioLh4uofptxEKissr2sw_2)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stupidStmtListExpr__OiccTa3ruRNl9anoSqZh2Sg_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, searchForProc__WIQjdZgnZBgByteqPM0pPw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fn);
N_LIB_PRIVATE N_NIMCALL(void, addInterfaceOverloadableSymAt__HcojHyPBYsbchSQtmBqThg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, addInterfaceDeclAt__HcojHyPBYsbchSQtmBqThg_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, implicitPragmas__3fUSuAmLz4H9aPTbK4rPERw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas);
N_LIB_PRIVATE N_NIMCALL(void, wrongRedefinition__m38oZS3DB39a2RtTLWidA5w)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q conflictsWith);
N_LIB_PRIVATE N_NIMCALL(void, addGenericParamListToScope__NRIJDWZtATzMum7OEjYC2g_5)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addParams__XjZLpvNqVUTx1J6TXREPBQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind);
static N_INLINE(NIM_BOOL, importantComments__TzsgO9bY9cwAf4hwmbs7dTmgoptions)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, popOwner__9aY89b9aR25iMJ8fPdM84CvQg_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, semOverride__8H5d8d9cPCfbpMuDrerQMeQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, bindTypeHook__tGevY34EeRmY9bzfs7irrbQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, canonType__ZcD0zNCGO9bcEV34hRXFEJA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, prevDestructor__ROJgPFH7qSpxtHsXsMs9bTg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prevOp, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* obj, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(NIM_BOOL, contains__MghwuKjQqmVLYE8A59cNGHgsystem)(NimStringDesc** a, NI aLen_0, NimStringDesc* item);
static N_INLINE(NI, find__CWgb1wQSxTCKtdHVU5pCYQsystem)(NimStringDesc** a, NI aLen_0, NimStringDesc* item);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cursorInProc__2z69cmDyuoRHwZ79bXIom4jw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cursorInProcAux__2z69cmDyuoRHwZ79bXIom4jw_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg, inCheckpoint__39cgIJElcz9arpbYiRwV2TVw)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q current, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos);
N_LIB_PRIVATE N_NIMCALL(void, semMethodPrototype__8H5d8d9cPCfbpMuDrerQMeQ_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericRoutine__uUQONnU7icBs9bdkKqJVqhA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasObjParam__J1LR9bIUh18t4XFDmYEYBYw_2)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, methodDef__NKjYu87vB0uQmGRMfpDEBQ)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NIM_BOOL fromCache);
N_LIB_PRIVATE N_NIMCALL(void, pushProcCon__jWGpC0lY8vG9b1MhOYJ9cFiQ_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
static N_INLINE(void, paramsTypeCheck__X9cjeXk0ogla5nWLtx0FEkAsem)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, typeAllowedCheck__OJXIxi4fH0HgKVBUkO49a7w)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tySet_tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, typeAllowed__l66YrquEyj20orz2a4YbTw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tySet_tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, hloBody__7YxUILpPxooC5qqa89a54dw_10)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, hlo__7YxUILpPxooC5qqa89a54dw_11)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyPatterns__7YxUILpPxooC5qqa89a54dw_12)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyRule__ZQ863YHaqTVgTAf1B1grTA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalPattern__bbosmif5uBCIMfZ0A73vOQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDirectOp__vJZwz9bfROKrfrtM50y74CQ_6)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, afterCallActions__Qn3T9bt6Cg4I7XaYRMg219aw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, semFinishOperands__wb6KhAx6bZ5NV37kY4bXJw_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, activate__NRIJDWZtATzMum7OEjYC2g_6)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, fixAbstractType__NRIJDWZtATzMum7OEjYC2g_7)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isArrayConstr__crbaOhZgTohCnKAdtWPkSQsem)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, analyseIfAddressTakenInCall__NRIJDWZtATzMum7OEjYC2g_8)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag, isAssignable__ASvZU4uIBad6J9b9cMoLNFvA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isUnsafeAddr);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag, isAssignable__H8ClJSBthN45fIRKmjWHMQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isUnsafeAddr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, analyseIfAddressTaken__7YxUILpPxooC5qqa89a54dw_13)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newHiddenAddrTaken__7YxUILpPxooC5qqa89a54dw_14)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderNotLValue__vfKkxNGxagsG9czCdz2IAEQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, magicsAfterOverloadResolution__vJZwz9bfROKrfrtM50y74CQ_7)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAddrArg__kiPmghV1gaPm718CtGyhQw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isUnsafeAddr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makePtrType__PDWeh9cjpi22xXdNggYvsWA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTypeOf__7YxUILpPxooC5qqa89a54dw_15)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, computeSizeAlign__Nur2IEN9ayDXYT9aVdBUPsYQ)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__zcNs9blLGYB6i9aGKob9bpzRw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrGet__vJZwz9bfROKrfrtM50y74CQ_8)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSubscript__vJZwz9bfROKrfrtM50y74CQ_9)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDeref__7YxUILpPxooC5qqa89a54dw_16)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semStaticType__DMAavRw02YcIRkO3yZ1XeQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* childNode, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Int128__9a9axPfb75jdWY25AamJewkA onError);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___xL5gyZrjbGMarSdRAXOo9ag)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(NI, toInt__TIX0sFuRf3uBpOBltYp7bw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSymGenericInstantiation__aK9ce4VwkiusXxioJ5dzs5w)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, explicitGenericInstantiation__aK9ce4VwkiusXxioJ5dzs5w_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, explicitGenericSym__aK9ce4VwkiusXxioJ5dzs5w_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, newCandidate__BdjBO3HF6dSjQEzna7SJ1A)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* callee, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* binding, NI calleeScope, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__1IMf5P083XuEtWGxYaIXyQ, typeRel__3a3tkQB9aY8V2J9acM5cZ6nA)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* f, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* aOrig, tySet_tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, explicitGenericInstError__7YxUILpPxooC5qqa89a54dw_17)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, symNodeFromType__MpkaQE9aiK11PxY8aspzYDw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, symFromType__xO2UfktRDKCUWUorFz9cLYA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, bracketNotFoundError__NRIJDWZtATzMum7OEjYC2g_9)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, notFoundError__3yYIcS0VQPQvrknpxFc7TQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__0dpGN6F4ocevqUQGsaf41w* errors);
N_LIB_PRIVATE N_NIMCALL(void, presentFailedCandidates__DzsD9bOR72VurwdjRilOhmA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__0dpGN6F4ocevqUQGsaf41w* errors, tyTuple__ZtAk5YtH0VW1iPowvxePrg* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, describeArgs__cCrxh8TxJsIrMINltM1ovw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI startIdx, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getProcHeader__bRG2xX9ar5tfMW3c7xo9ccKQ)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer, NIM_BOOL getDeclarationPath);
N_LIB_PRIVATE N_NIMCALL(void, effectProblem__3uc8nf1Yi57kIzOPCNU9caA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* f, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, NimStringDesc** result, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ, compatibleEffects__jMDzK5tLgCQpWKRW9azac5w)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* actual);
N_LIB_PRIVATE N_NIMCALL(void, sort__QeVk9c1PKgtuLn69cFZt89cSg)(NimStringDesc** a, NI aLen_0, tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA order);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a, NI aLen_0, NimStringDesc* sep);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrPut__vJZwz9bfROKrfrtM50y74CQ_10)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipAddr__7hiIf9cX1T4l9amfLkdHBowAast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsgnOpr__7YxUILpPxooC5qqa89a54dw_18)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semShallowCopy__vJZwz9bfROKrfrtM50y74CQ_11)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIsPartOf__vJZwz9bfROKrfrtM50y74CQ_12)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w, isPartOf__1otDDZAmvFsmbqPyFytXFg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNodeT__NzFGf0r9bOfRvVQjkvApbgQ)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA intVal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__161i7kexvUAISxPtGBRWYw)(NI arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTypeTraits__7YxUILpPxooC5qqa89a54dw_19)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalTypeTrait__J9a21UTKN4zETETiDQaaUMw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* traitCall, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* operand, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* context);
N_LIB_PRIVATE N_NIMCALL(NI, hashString)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, toNode__pidBpg4XuuDNdF3NVODN6A)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newTypeWithSons__aSykZlHQuGR9almJ1ehcUew)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tySequence__Ef05srmQTDulnBdXR4Ja6Q* sons);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw, parseEnum__ASE7k7bSFM18MJ5iPda8rQ)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStrNode__zLcHGdlEbBYFtoCoan9agkg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NimStringDesc* strVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newType__SNqpa06pdVCLFFBR28119aQ)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getTypeDescNode__PDBS7GU6I7t8evrM8dmPkA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toHumanStr__8clA3iQh1Lbc5cnapppbXQ)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, uninstantiate__9cRlRlKvV58Tq3YoHJJi1Rw_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStrNodeT__9cl7myBS6dfbP30fsccozTQ)(NimStringDesc* strVal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semInstantiationInfo__7YxUILpPxooC5qqa89a54dw_20)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, expectIntLit__a4cQxFar9atOGMK9b4U0EEVA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getInfoContext__TXxF2CG3kwLqptPWf0kC9aQ)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI index);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toFullPath__VW1RaR1l9c9bPnJxr1KuvIrg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI32 fileIdx);
static N_INLINE(NI, toLinenumber__6D4Rmpw7LpcRI1j7CMqEsAmsgs)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(NI, toColumn__6D4Rmpw7LpcRI1j7CMqEsA_2msgs)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOrd__7YxUILpPxooC5qqa89a54dw_21)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI64, toInt64__1szweXXq3RBN50owrYu2Xw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makeRangeType__Jrbal1EnVldk9cZ2EZVjuLQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, NI64 first, NI64 last, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* intType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOf__7YxUILpPxooC5qqa89a54dw_22)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, inheritanceDiff__1dM2iQB5qStJfnn3684ijQ_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, commonSuperclass__CFsXKWHnV1O9asJrtw08whA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semLowHigh__7e8kUc3a9a4gEAcnG7wUcyQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBindSym__7YxUILpPxooC5qqa89a54dw_23)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isCompileTimeProc__Ye2MiAptq3GrXxTQeyXNeA_2ast)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDynamicBindSym__7YxUILpPxooC5qqa89a54dw_24)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef__IqGNbqKVyQ9b9an5n9bN8QJsQ)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, setupGlobalCtx__41qwP9bj6cfy3VehAu9aAFvw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph);
N_LIB_PRIVATE N_NIMCALL(NI, registerCallback__KnNoqgKj9bmG2p3f4SLNFqA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NimStringDesc* name, tyProc__5QC9cKfPJmKuW0XbCTd8ylA callback);
N_LIB_PRIVATE N_CLOSURE(void, bindSymWrapper__Yigy4cCtqH652LhibVuvOA)(tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* a, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(void, setResult__Adyk89aSgmLp9bDuSV0Va03A)(tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, opBindSym__WI1aMJFzyk8ggPo9bdhAVJw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI isMixin, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getNode__DuJnnnM0aSaXeDv118rkUw)(tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* a, NI i);
N_LIB_PRIVATE N_NIMCALL(NI64, getInt__VJ5Unk9bDoOAoLiZLdhb9b1Q)(tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* a, NI i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntTypeNode__9azVbThnGagKx8BBa5Ph9cDw)(NI64 intVal, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyProc__RcJNn9bSvWdJgUmA1O6sbHA, getPlugin__CPe4POy5nrj1aG8wD32ycw)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, whereToBindTypeHook__ZcD0zNCGO9bcEV34hRXFEJA_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, turnFinalizerIntoDestructor__ZI4mbm59aB4PCl4xGhxV09bw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* orig, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_NIMCALL(void, Marker_tyRef__NaDYkbcAjZXYRP9arR0vzYg)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makeVarType__1XhuXEO6E22P9aDkvWkNrHQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_CLOSURE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transform__jpL3B9a76sXjWDD2lkGF2ew)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* procSym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* old, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* fresh, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* oldParam, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* newParam, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNil__3isNyHKb0U1OCnClmflXSg_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newProcType__9bgJAAoskVeu3l1AHMmz9adg)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void, addParam__MnxL8SpIj0v6dB7M1prhCw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* procType, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semUnown__7YxUILpPxooC5qqa89a54dw_25)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, unownedType__ZcD0zNCGO9bcEV34hRXFEJA_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tySequence__Ef05srmQTDulnBdXR4Ja6Q*, newSeq__g2qIn6210g4boJ9cN37Mg3Q)(NI len);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semQuantifier__7YxUILpPxooC5qqa89a54dw_26)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOld__7YxUILpPxooC5qqa89a54dw_27)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkIsolate__ZXNCKm9cN9beZ9cx11s9c1Qypw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalAtCompileTime__7YxUILpPxooC5qqa89a54dw_28)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getConstExpr__A7gcXCy5E3uGBy5F37NoHA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalStaticExpr__ajRaPV9aInq6ZNnUYn0DaVw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fixupTypeAfterEval__uWNSz7p50zmqqN864XaVBA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* evaluated, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eOrig);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasCycle__OiccTa3ruRNl9anoSqZh2Sg_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, annotateType__zBoL79cc9cORdBkTIEpbntbg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalConstExpr__P8uF2QSxl7YdNpBnl0Ybqg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, commonOptimizations__0A2Fu3iOZ9aCzHX2sVSYlhg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, trackProc__P9bJkIGwY9beKGfhhcBedbpg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body);
N_LIB_PRIVATE N_NIMCALL(void, fixupInstantiatedSymbols__PSSiITp8zAUcZ8z1k5AMLA_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
static N_INLINE(void, popProcCon__SjrsaPFXVDopDGJmDQUKewsemdata)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, semBorrow__OGQY86R2SObbzHiM7l0Jxg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, searchForBorrowProc__4pWHBKQGe6fnkUK3uFl6xQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* startScope, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, baseOfDistinct__PfgI9ap7WOnsRfFV4znQ27w_4)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, sideEffectsCheck__PSSiITp8zAUcZ8z1k5AMLA_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, matches__BxEsf1Gt7Hq3usrwPERzyA_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m);
N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NI, cmpCandidates__K2h4nBXAyIEnS4gvLx162g)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* a, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* b);
N_LIB_PRIVATE N_NIMCALL(tySequence__P9bWebqKHkrGHwy9aZW9bw0TA*, initCandidateSymbols__6M9chcVQEVQseAfXvR9bENIw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initialBinding, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* best, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* alt, tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ* o, NIM_BOOL diagnostics);
static N_NIMCALL(void, Marker_tySequence__P9bWebqKHkrGHwy9aZW9bw0TA)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, insert__k2dh9aOATKmq7LxvapyA7CA)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* item, NI i);
N_LIB_PRIVATE N_NIMCALL(void, delete__TgBXLpGAm0rF5SZ3bkKUbg)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, NI i);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___txCax6HTxTvaDY9bSHIRipg)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** b, NI bLen_0);
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b);
static N_INLINE(NimStringDesc*, X5BX5D___ogYTOKbgqbjPfyC123US1gsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___xNR8BVBMWzS9bXXNMikmyLgsystem)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getMsgDiagnostic__9a9cj3QUHlIK9ah21FZrVSRgw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getSymRepr__q0Idm3DQlYmoqr1FN0Wn2g)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameMethodDispatcher__J29brquhJ05YcB0AjRLYFEg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semResolvedCall__tI9alV34Tv2MGPKAeQ6xsmw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, instGenericConvertersSons__DyVfh0xLvP9cQgsc36rPgEA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* x);
N_LIB_PRIVATE N_NIMCALL(void, updateDefaultParams__eSEQYRkB13fhZ9c33IzktDQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call);
static N_INLINE(NIM_BOOL, canDeref__crbaOhZgTohCnKAdtWPkSQ_2sem)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryDeref__wWBimsBS4M6UZBvTRDlQTQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, errorSym__CLMmoDuBHkJLvNsKvljGNw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, dotTransformation__7YxUILpPxooC5qqa89a54dw_29)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isSymChoice__crbaOhZgTohCnKAdtWPkSQ_3sem)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildOverloadedSubscripts__nefR35PSczfhlx6FSH1N7w)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerTupleUnpackingForAsgn__8A4G64HByteFanrMUexmNw_3)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__1IMf5P083XuEtWGxYaIXyQ, cmpTypes__6LyhcPFOyQXLaZFXoqJM1w)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* f, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a);
N_LIB_PRIVATE N_NIMCALL(void, typeMismatch__1xxyFIws27lai2cG4n31Ow)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* actual);
N_LIB_PRIVATE N_NIMCALL(void, borrowCheck__J1O6ZLf1JD7YcSRxfw8Usg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
static N_INLINE(NIM_BOOL, scopedLifetime__Ht8IGDD0esJjGANh4G2DZwsem)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getRoot__WJ80zbTOky5IFknpruSGag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL followDeref);
static N_INLINE(NIM_BOOL, escapes__cZ8gUfmyb9cMvgwP1Q5K9bbAsem)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, goodLineInfo__eFiXGzEcaqcZ648kwvI9a9ag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg);
static N_INLINE(void, asgnToResultVar__h9b9cHg6rgpKzNHniS8pqoyAsem)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, takeImplicitAddr__x3K9b1cKzX9bI8nPJA1N22wQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isLent);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, exprRoot__XD7qSmhHQJchscUPfXW57g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, createDocLink__pWiLD3R2s41obcTDlPhj9cA)(NimStringDesc* urlSuffix);
static N_INLINE(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, pop__sJkHMuFHoY5Elz2ZDxz78Asystem)(tySequence__DfgJFJEYoj4YBAHLZPl5lQ** s);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
N_LIB_PRIVATE N_NIMCALL(void, finishMethod__PSSiITp8zAUcZ8z1k5AMLA_4)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, assign__9aeoXSYLtfdHDeDWcO9bHVbg)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* dest, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* src);
N_LIB_PRIVATE N_NIMCALL(void, semRecordCase__b2sT4Mx5xMcD0WzRKPqmPA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check, NI* pos, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rectype);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___nr9cP9b0OL9cabygV9bo19cJgZA_2)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lengthOrd__hjogdnp59cMX1rwmjikBhqw_3)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, semCaseBranch__v9aNPEhC9bTKfOzSbulyV4jw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch, NI branchIndex, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered);
static N_INLINE(NIM_BOOL, isRange__ZcP19cH3pVINjK9ckLU2rBeQtrees)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCaseBranchRange__0knXB2kLqr5zutyOXWu8Rg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBranchRange__j3LbHf9bqKk6Mw4S3FFgkVQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConvTakeType__BH9abOhPX8pH0DnEWlRxmlw_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, emptyRange__tlIBRycg3YyKwtO2aPbGGg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___Sp7OcCEIFoBYolB6PB1fAg_2)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, plus___hiijuMqvH9aC9aKmwIYuqUAA_2)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, plus___Sp7OcCEIFoBYolB6PB1fAg)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(void, delSon__oU9bKATaboy8iUhv0r9bMBPw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, NI idx);
N_LIB_PRIVATE N_NIMCALL(void, inc__Glh2geFlMs9aE78UZ1JZGAA)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, NU32 y);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, deduplicate__npqksG7nXsyGRBfJK1db1g)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCaseBranchSetElem__0knXB2kLqr5zutyOXWu8Rg_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered);
N_LIB_PRIVATE N_NIMCALL(void, checkForOverlap__72gDnaHzi4O4sp9av09bP7vw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, NI currentEx, NI branchIndex);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, overlap__tlIBRycg3YyKwtO2aPbGGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___7c5Zw7H31uJfWmmhZe9aEqw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toCover__VyVU6SDhkTqKxSsQUZSePg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, shl__al6Zjboz2CA0pIDMg9a9cJFw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, formatMissingEnums__zUJc3JNayUkQ8i11jOQJeQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderAsType__jONWMAXSsSmnBgUvyxg7Hw)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* vals, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__Jx9cyf9byen4PwchGOyl5LUg)(NimStringDesc** s, NIM_CHAR x);
static N_INLINE(NI, len__litHeZeW9bpJugmXT0ufvwgintsets)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s);
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y);
static N_INLINE(void, minus___LSsT9adsoi9bg6Vh4SNYfeQQintsets)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s1, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s2, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* Result);
N_LIB_PRIVATE N_NIMCALL(void, difference__jhF9cCHu5ggiDdc87e1wx3g)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s1, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s2, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* Result);
N_LIB_PRIVATE N_NIMCALL(void, getIntSetOfType__uLhVC3evuQrv7q9aBGOuzeQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rope__yShmEg9cffWxI7s5XzEKBow)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, computeRequiresInit__p5rbEi9c5JmURA4qGF6bxhg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, initConstrContext__RYPHxM9aTf8uWaAnZ0rNc2A)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__PMZ27S9ai4FB3gXOMDXvwsQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ, semConstructTypeAux__sAwB0gQrQ1keYlqxdq08bQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* constrCtx, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ, semConstructFields__uWuMnWjhYSs5k358Hz7X7w)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* constrCtx, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, mergeInitStatus__P9cKs45sta9alE9cK9aOiS7Rhw)(tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ* existing, tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ newStatus);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, fieldsPresentInInitExpr__fAlP9cVEHopuX8Pfr9b5rx9cw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsRecList, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, locateFieldInInitExpr__3B9cY0H3QtrZxUpHxV7SvKg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr);
N_LIB_PRIVATE N_NIMCALL(void, invalidObjConstr__NRIJDWZtATzMum7OEjYC2g_10)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConstrField__dYxITD6gRULNORUNQ6Cc9cg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprFlagDispatched__vJZwz9bfROKrfrtM50y74CQ_13)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryConstExpr__7YxUILpPxooC5qqa89a54dw_30)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
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(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipHidden__BH9abOhPX8pH0DnEWlRxmlw_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, findUsefulCaseContext__0hNT3646PPGbJcsdagLbHg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* discrimator, tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw* Result);
N_LIB_PRIVATE N_NIMCALL(void, branchVals__XK56AwQllxmCRE7fuCvRCQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseNode, NI caseIdx, NIM_BOOL isStmtBranch, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* Result);
N_LIB_PRIVATE N_NIMCALL(void, excl__jENnK9c9bPE73pKmo2vYjpqg_2)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, caseBranchMatchesExpr__2m1qzNtSRcrBCjT714EGTA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* matched);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__E1mnSzj2NONtG7h9cR3AuFA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, NIM_BOOL strictSymEquality);
N_LIB_PRIVATE N_NIMCALL(void, collectMissingFields__R8ignHxUaQZzB8x7tzNkEg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsRecList, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* constrCtx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntLit__TuFlkTIoJNHT6fCcycYtSw)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI64 value);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pickCaseBranch__XwTdxP6ATUC1LHA9bBiTnDA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseExpr, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* matched);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSonNoPropagationOfTypeFlags__9a8CdZqChTyqzq5bpSL3TzA_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semTypeof2__O8zf75mcUwo9cfPQUQRaEug_6)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semWhen__5C4HPXQuhxlMYIzPbe36lg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL semCheck);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, lookUp__CLMmoDuBHkJLvNsKvljGNw_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, commonType__hfwrZ5ThSx8sbABQFEwdHg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* y);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, semTypeIdent__AO57Q9bSpsZiuv7kwwoM7yw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, pickSym__SVsbCvrhrWQIRF0pM3cw5Q)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kinds, tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags);
N_LIB_PRIVATE N_NIMCALL(void, reset__2DpKIamrWIkCdM4vNi0Xcw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj);
N_LIB_PRIVATE N_NIMCALL(void, transitionNoneToSym__ZdMf7vswMpd0Pc5oB9aS4og)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, symFromExpectedTypeNode__AO57Q9bSpsZiuv7kwwoM7yw_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semArray__O8zf75mcUwo9cfPQUQRaEug_7)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semArrayIndex__aJQEuszymrhDdKaEXWG3Vg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makeRangeWithStaticExpr__D2YW7F23KYvdV39aTScM3IQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semContainer__9c9cJm09bVJhp6JDeDwpDcllw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, NimStringDesc* kindStr, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(void, semContainerArg__tX9cFHLAurfZYsTsUVxevYw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* kindStr, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semRange__O8zf75mcUwo9cfPQUQRaEug_8)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semSet__O8zf75mcUwo9cfPQUQRaEug_9)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semOrdinal__O8zf75mcUwo9cfPQUQRaEug_10)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semVarargs__O8zf75mcUwo9cfPQUQRaEug_11)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semTuple__O8zf75mcUwo9cfPQUQRaEug_12)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTupleRecursive__YPjOkGV9axAnGR3UfLeWZ1g_12)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semGeneric__nGXSqtv2avLRNyfQXJjLWw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semGenericParamInInvocation__aJQEuszymrhDdKaEXWG3Vg_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes__Jb9ck8uy9aKqJSHdNSzDJAJQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds, NI maxIters);
N_LIB_PRIVATE N_NIMCALL(void, semObjectTypeForInheritedGenericInst__ZPW6MqdUk6rECHJvUIgrnA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, recomputeFieldPositions__XUkgGL16NQZcptTJ0lg7nQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, NI* currPosition);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__iGg0RIKceRvsmvq8FUHOEw)(NimStringDesc* s, NI first);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semTypeClass__O8zf75mcUwo9cfPQUQRaEug_13)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(void, add__9a8CdZqChTyqzq5bpSL3TzA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makeTypeWithModifier__YyNjY7O2UpEApULCS9ctQYQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag modifier, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConceptBody__7YxUILpPxooC5qqa89a54dw_31)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semVarOutType__kPfUv0X9aI6AfGcdSb9aYz9cA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semDistinct__O8zf75mcUwo9cfPQUQRaEug_14)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semProcTypeWithScope__HVX0MCOg4yL8PRkNzdiEmQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyTypeSectionPragmas__n3MU2Z4B9cngRayLYQCel5A)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmas, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* operand);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTreeWithoutNode__aN5jlv83QmlsI1PY356I2w)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* skippedNode);
N_LIB_PRIVATE N_NIMCALL(void, setEffectsForProcType__anXKpeIcfo8QOiHQxzurxw)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semEnum__O8zf75mcUwo9cfPQUQRaEug_15)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(void, initStrTable__2n9b6ELeZfbbP5wqNYm7VyA)(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* x);
N_LIB_PRIVATE N_NIMCALL(void, strTableAdd__tyTgUybFIoow4CX2l5beug)(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* t, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* n);
N_LIB_PRIVATE N_NIMCALL(void, importPureEnumField__qTKM3Dk2MEIWKGK9aoCIRwg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, strTableInclReportConflict__tsV7rrfL6ZnfCXBjJk0jUA)(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* t, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* n, NIM_BOOL onConflictKeepOld);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semStmtListType__O8zf75mcUwo9cfPQUQRaEug_16)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semBlockType__O8zf75mcUwo9cfPQUQRaEug_17)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev);
N_LIB_PRIVATE N_NIMCALL(void, instAllTypeBoundOp__Qpi3NgGJ9aSfcPm9cZqhFJUg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, newIdTable__Vn79aD3eLpwW0W0F5ymtWkw)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* Result);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsthasKey)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, wrapInComesFrom__Cb09cvJMrK2DzloKNIynCQQ)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res);
N_LIB_PRIVATE N_NIMCALL(void, setIntLitType__JsZMQGDyZXnGr9cg0jxXW0w)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semFieldAccess__vJZwz9bfROKrfrtM50y74CQ_14)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConv__7YxUILpPxooC5qqa89a54dw_32)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStaticExpr__7YxUILpPxooC5qqa89a54dw_33)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, findUnresolvedStatic__UPSW0jLTX5qJL51YMUAHgw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, maybeLiftType__K7SXxqU6fIMYb9b4D3wV5CQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ** t, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedSym__iY9a3KG6T9aTt3fJH8J6BrJQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, inferWithMetatype__2aIGqt1c0rX64kF16cP4Pw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, NIM_BOOL coerceDistincts);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw, checkConvertible__wqYfe9cPnmcuZgfMqqBjkkA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* targetTyp, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw, checkConversionBetweenObjects__IxznSNSPzSVAXeEIIkymSA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* castDest, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src, NI pointers);
static N_INLINE(NIM_BOOL, contains__zYqwL8gLoyye80MYuubU4Qsystem)(tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ s, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw value);
static N_INLINE(tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ, dotdot___zEl0oB35FYImlhRYJ1IWBwsystem)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw a, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw b);
static N_INLINE(NIM_BOOL, contains__7Sy9cDQTm9cs7zSfkcqgIQdwsystem)(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw* s, tyObject_Int128__9a9axPfb75jdWY25AamJewkA value);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___7c5Zw7H31uJfWmmhZe9aEqw_2)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
static N_INLINE(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw, dotdot___SGmrVHErX3j2AKHYB8sGjgsystem)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, getInt__Ml9bTZ5dXYSLBfnGRkErokw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
static N_INLINE(NIM_BOOL, contains__JskUST5Zl4jxh9cOha2CJ8Qsystem)(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw* s, NI64 value);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___nr9cP9b0OL9cabygV9bo19cJgZA)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
static N_INLINE(NIM_BOOL, contains__NUcXcdcbrUs0l4XrxCmsRgsystem)(tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA s, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag value);
static N_INLINE(tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA, dotdot___Lid9a4g9biXDC8SKbcluO70gsystem)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag a, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___W2wbDjPGDCaBwLQM6yLUQg)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a);
N_LIB_PRIVATE N_NIMCALL(NF, getFloat__dgNNhprrT2HlJglL2Nc3EA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(void, errorUseQualifier__t5EWYooFsFPeMiRTzdCWFw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semObjConstr__vJZwz9bfROKrfrtM50y74CQ_15)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, listSymbolNames__8Z1zCwaGnI7ov1q9bc6s4uQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** symbols, NI symbolsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMagic__NYxU2DkHA0Gt5fsL9bYZdog_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDefined__7YxUILpPxooC5qqa89a54dw_34)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__jkXTnxDf8MX1Pmks3s0XxA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* symbol);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, setMs__YdV8xmi8UjdS8ox7bsgtGw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDeclared__ssxiU9aPj4i6xXfLbEm3Reg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL onlyCurrentScope);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, lookUpForDeclared__ejqqZ7JpeaJqZ9aJjvnjSXw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL onlyCurrentScope);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, localSearchInScope__Drn1sJCJSwUUo03qKJigUw_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCompiles__vJZwz9bfROKrfrtM50y74CQ_16)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryExpr__vJZwz9bfROKrfrtM50y74CQ_17)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(NI, getInfoContextLen__QY5gXnIUBOUa79b5tGece0A)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, trackStmt__QaQdy9beybDhOWYNIJD0SGA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isTopLevel);
N_LIB_PRIVATE N_NIMCALL(void, setInfoContextLen__JRH1QeGlTzlBOChAZ7bvoQ)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI L);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIs__vJZwz9bfROKrfrtM50y74CQ_18)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, fixupStaticType__NRIJDWZtATzMum7OEjYC2g_11)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeTypeSymNode__L4oMECPyC3ttpx9cr0kf9a9bw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, isOpImpl__vJZwz9bfROKrfrtM50y74CQ_19)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExpandToAst__QP3kds6GlqvnvsFXvC0yvw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* magicSym, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExpandToAst__7YxUILpPxooC5qqa89a54dw_35)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semQuoteAst__7YxUILpPxooC5qqa89a54dw_36)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, expectString__zUJc3JNayUkQ8i11jOQJeQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*, newSeq__rWQEUE6RvOVfamepP2TwPw)(NI len);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newAnonSym__w5lZcsHUDOEnXuinSWI8ww)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, processQuotations__JHIMJhmDecu8Q5MfBu4NEQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n, NimStringDesc* op, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** quotes, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** ids);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s, NimStringDesc* prefix);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newProcNode__g5PEkYP0A0RT03uHbJ6wKQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* name, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pattern, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmas, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exceptions);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplateDef__7YxUILpPxooC5qqa89a54dw_37)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBodyDirty__DuioLh4uofptxEKissr2sw_3)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBody__DuioLh4uofptxEKissr2sw_4)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplSymbol__v9aCQGt9cWiikzASIttxYkOQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NIM_BOOL isField);
N_LIB_PRIVATE N_NIMCALL(void, styleCheckUse__k3cqh606mJPYNzLXdtZjIg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBodySons__DuioLh4uofptxEKissr2sw_5)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, openScope__v8rOnBcZIF3O8b3uSd4HeA)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c);
N_LIB_PRIVATE N_NIMCALL(void, closeScope__v8rOnBcZIF3O8b3uSd4HeA_2)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBodyScope__DuioLh4uofptxEKissr2sw_6)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addLocalDecl__w8tQ2g9cGJTRX1sc4tPkZhw)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw k);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw, symBinding__lRF6a2VbcNtMQTglYy3orA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw, whichKeyword__sZUQNPhNGEM8MllfcWvRiw)(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* id);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, onlyReplaceParams__DuioLh4uofptxEKissr2sw_7)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getIdentNode__DuioLh4uofptxEKissr2sw_8)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isTemplParam__XVOXP9ay7a7Pj2tMnC3DpKQsem)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, replaceIdentBySym__f9bg4q9aUFEI1VrFUdopr7oQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newGenSym__pZY5bxiuLRGzLAtcZwPJyQ)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c);
N_LIB_PRIVATE N_NIMCALL(void, semTemplSomeDecl__7l8P1u9cbRbmxfIqmTswe6Q)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, NI start);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semRoutineInTemplBody__tZ0y3BLqy4d0VbZugMb29cw)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw k);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semRoutineInTemplName__DuioLh4uofptxEKissr2sw_9)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRunnableExamples__CZaoTkWCFI9acor4BmYF3Yw_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, symTabReplace__mq4tDXMjV9aoOV0jJhDFqKA)(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* t, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prevSym, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* newSym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, createMagic__MzNJxZ0htpjW89c9b2wBN5rQ)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpawnResult__YOcUu9brt5AKRflRWdxATPw, spawnResult__115WOpmSjJFT089amuDIXdA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NIM_BOOL inParallel);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, createFlowVar__FNAdkkRAZAzuZfvQrY8ffg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, instantiateCreateFlowVarCall__xO2UfktRDKCUWUorFz9cLYA_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSizeof__7YxUILpPxooC5qqa89a54dw_38)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIndirectOp__vJZwz9bfROKrfrtM50y74CQ_20)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDeref__RzKgK8tcIIFHt7HBTQVoYQlowerings)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, bracketedMacro__B9cQwIphxB9aXLurrc1x2XhQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, setGenericParams__NRIJDWZtATzMum7OEjYC2g_12)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, resolveIndirectCall__Ue9bfKSqSYcEhUFt1R9cJKjw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result);
N_LIB_PRIVATE N_NIMCALL(void, initCandidate__GPx9buyQn9cq0nARN4Amyarw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* callee);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, overloadedCallOpr__7YxUILpPxooC5qqa89a54dw_39)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldBeBracketExpr__OiccTa3ruRNl9anoSqZh2Sg_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrayAccess__vJZwz9bfROKrfrtM50y74CQ_21)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, invalidPragma__0LSWh2UqkqDBtNGS0Kh9cNQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg, checkPar__l5Y3wSn9c2wuzfpP3PtAptA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTupleConstr__vJZwz9bfROKrfrtM50y74CQ_22)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTuplePositionsConstr__vJZwz9bfROKrfrtM50y74CQ_23)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTupleFieldsConstr__vJZwz9bfROKrfrtM50y74CQ_24)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSetConstr__7YxUILpPxooC5qqa89a54dw_40)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrayConstr__vJZwz9bfROKrfrtM50y74CQ_25)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semLambda__vJZwz9bfROKrfrtM50y74CQ_26)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCast__7YxUILpPxooC5qqa89a54dw_41)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCastable__RrUSf4OJ4Rybj6aC0XqcHA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dst, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFinal__YPjOkGV9axAnGR3UfLeWZ1g_5)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NI64, computeSize__vCG1GF2Iu043oALVyuJfOw_3)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIf__vJZwz9bfROKrfrtM50y74CQ_27)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprBranch__vJZwz9bfROKrfrtM50y74CQ_28)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, commonType__wEK756YRi9c3lsyIxi9aFXSg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, endsInNoReturn__OiccTa3ruRNl9anoSqZh2Sg_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprBranchScope__7YxUILpPxooC5qqa89a54dw_42)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, considerGenSyms__mQRLEYWj7fi9a0kZxdT9cvjQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTableConstr__7YxUILpPxooC5qqa89a54dw_43)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBlock__vJZwz9bfROKrfrtM50y74CQ_29)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStmtList__vJZwz9bfROKrfrtM50y74CQ_30)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnresolvedStatic__aVxWxXLmf103vwE8uZ9cXRw_3)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, inferConceptStaticParam__C0PRtNs0w318DTgRD2xT9cg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* inferred, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semRaise__7YxUILpPxooC5qqa89a54dw_44)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedException__dZW9czpRSiiVl9cyT6tyk84A)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isException__YPjOkGV9axAnGR3UfLeWZ1g_13)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semVarOrLet__9aaeuZC3SovMoEd6yN1pUdg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symkind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semLowerLetVarCustomPragma__YnGuZwNZgNND9bMHSc9cGxzQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, suggestStmt__wb6KhAx6bZ5NV37kY4bXJw_4)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasEmpty__7NKj1MHAV0sRlpGa31vf8w)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, newSons__Bu9cqnssJjx4jfWBeiR9albg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, NI length);
N_LIB_PRIVATE N_NIMCALL(void, addToVarSection__rATgbLzWCudr6icucCz5hA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* identDefs);
N_LIB_PRIVATE N_NIMCALL(void, fillPartialObject__kJjN1gd8ISazJd7RmyND3A)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDiscardUnderscore__Brh9b6lg9c65wJVd9bszm1D1g)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v);
N_LIB_PRIVATE N_NIMCALL(void, addInterfaceDecl__aPXKqZJT9c7r7gT8X3uZAHw_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, findShadowedVar__X80n25ArIa9aG019bZhPbmzw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v);
N_LIB_PRIVATE N_NIMCALL(void, setVarType__2vD75zhrXW5EMFzUU9a9cEUQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, defaultConstructionError__SDnpDS6VfoCU9aBUYR8UoFg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, checkNilable__L1S5GkGOJih9bnTgycxmzAQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, astdef__PBkjYIaAGbtrZ8DiUArHcw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, setupCompileTimeVar__zQ7dn9aEDgIq1IbBIE9cxsxg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConst__7YxUILpPxooC5qqa89a54dw_45)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitRemoveHiddenConv__wMJQkaeAPG0iIuqYsMdZgQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newFloatNode__FUOXigLcQdNOaWKUo0hkTg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NF floatVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTypeSection__7YxUILpPxooC5qqa89a54dw_46)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, typeSectionLeftSidePass__NRIJDWZtATzMum7OEjYC2g_13)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, typeDefLeftSidePass__Sbx6MQrOoMPnRUYXOXA3NA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typeSection, NI i);
N_LIB_PRIVATE N_NIMCALL(void, typeSectionRightSidePass__NRIJDWZtATzMum7OEjYC2g_14)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, typeSectionTypeName__7YxUILpPxooC5qqa89a54dw_47)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, processMagicType__gPoEwHdu4chIAfwrKhjTjA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m);
N_LIB_PRIVATE N_NIMCALL(void, setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, NI size);
N_LIB_PRIVATE N_NIMCALL(void, setMagicType__FuNrknGP1Vshc6r9b9af0PQw_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, NI size);
N_LIB_PRIVATE N_NIMCALL(NI16, floatInt64Align__Nm9cs6Kn6ltGLynV4vNsRgw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, checkCovariantParamsUsages__fJHDVHP75aONSHseylETAw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* genericType);
static N_NIMCALL(void, Marker_tyRef__hW0nFkOHm9b8Hn43XRoDtzQ)(void* p, NI op);
N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, traverseSubTypes__Pkr5yx0YVtVYHazxo9a3x2g)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(void, typeSectionFinalPass__NRIJDWZtATzMum7OEjYC2g_15)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, safeSkipTypes__qgwlffIIb2pFkSZek4igDA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(void, checkConstructedType__09chTcGpP9cwUssGPOfkWIGw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, checkForMetaFields__NRIJDWZtATzMum7OEjYC2g_16)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, checkMeta__ZPW6MqdUk6rECHJvUIgrnA_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDiscard__7YxUILpPxooC5qqa89a54dw_48)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semWhile__vJZwz9bfROKrfrtM50y74CQ_31)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTry__vJZwz9bfROKrfrtM50y74CQ_32)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, toObject__IIQZtbSxQZOu2WmBJ9bnpCg_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, toRef__IIQZtbSxQZOu2WmBJ9bnpCg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBreakOrContinue__7YxUILpPxooC5qqa89a54dw_49)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semFor__vJZwz9bfROKrfrtM50y74CQ_33)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleForLoopMacro__vJZwz9bfROKrfrtM50y74CQ_34)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleStmtMacro__15J7kYDEVfuA6C4REjC7dA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* selector, NimStringDesc* magicType, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprNoDeref__vJZwz9bfROKrfrtM50y74CQ_35)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrivalStmtExpr__OiccTa3ruRNl9anoSqZh2Sg_7)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semForVars__vJZwz9bfROKrfrtM50y74CQ_36)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, symForVar__AO57Q9bSpsZiuv7kwwoM7yw_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semForFields__7e8kUc3a9a4gEAcnG7wUcyQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, instFieldLoopBody__NWigU6dr5apz5g827GjO4w)(tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* forLoop);
N_LIB_PRIVATE N_NIMCALL(void, semForObjectFields__QePBJ9bHaUde9cnkvf6xqUYQ)(tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typ, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* forLoop, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father);
N_LIB_PRIVATE N_NIMCALL(void, illFormedAstLocal__aOnJJ9cXkOooTyUuLmnc09bw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsNode__3PkUvehQ5keciM9cue9ayMTw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kinds);
static N_INLINE(NIM_BOOL, isClosureIterator__EhCVbB6PynSh7XFAFVMiJA_3ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, implicitIterator__p09bRKOzs8qJ4GcAQ9czOv9bQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, NimStringDesc* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCase__vJZwz9bfROKrfrtM50y74CQ_37)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, pushCaseContext__Hz1YayV9c9aSkUcvf7h2lHXQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseNode);
N_LIB_PRIVATE N_NIMCALL(void, popCaseContext__9aY89b9aR25iMJ8fPdM84CvQg_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleCaseStmtMacro__vJZwz9bfROKrfrtM50y74CQ_38)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, setCaseContextIdx__jiOUhpYURJJFfrdMgAQxPQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, NI idx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semReturn__7YxUILpPxooC5qqa89a54dw_50)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semUsing__7YxUILpPxooC5qqa89a54dw_51)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsm__7YxUILpPxooC5qqa89a54dw_52)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, pragmaAsm__BMqa01f86BatswrKktaxCw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsmOrEmit__7on6juYQ5yDeHojpmzlBFg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* con, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_CHAR marker);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semYield__7YxUILpPxooC5qqa89a54dw_53)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, semYieldVarResult__RmzIhIZBxhW1YDiKMLOGcQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* restype);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIterator__7YxUILpPxooC5qqa89a54dw_54)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, transitionRoutineSymKind__IAW6i9bfWpSsueZudnBZzHQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyEnum_TSymKind__uwRDzlpaGW5WJzgBn4R8Eg kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProc__7YxUILpPxooC5qqa89a54dw_55)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semFunc__7YxUILpPxooC5qqa89a54dw_56)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMethod__7YxUILpPxooC5qqa89a54dw_57)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getDispatcher__L29cJgZ3WUDC7PfTSciv49cw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConverterDef__7YxUILpPxooC5qqa89a54dw_58)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addConverter__ymX9afTGg7YU9b9aXV3gliVtA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* conv);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMacroDef__7YxUILpPxooC5qqa89a54dw_59)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalImport__xmufAMBjGiK9cy1UljniTyg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalImportExcept__xmufAMBjGiK9cy1UljniTyg_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalFrom__xmufAMBjGiK9cy1UljniTyg_4)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalInclude__7YxUILpPxooC5qqa89a54dw_60)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, incMod__AE9a7ubTroOu3uw1tThDp7g)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* includeStmtResult);
N_LIB_PRIVATE N_NIMCALL(NI32, checkModuleName__fDy39b69bb9cFVEyPkMJp3GTg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL doLocalError);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toMsgFilename__eX9aCxa5NfPq9alDDS1zYbvw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI32 info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExport__7YxUILpPxooC5qqa89a54dw_61)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, initTabIter__Ag5U6LHpF7iSy3G6AzXM9cw)(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg* ti, tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, nextIter__Ag5U6LHpF7iSy3G6AzXM9cw_2)(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg* ti, tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExportExcept__7YxUILpPxooC5qqa89a54dw_62)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, readExceptSet__t9cI0oYChx2XYqk1hhh0lvA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPragmaBlock__7YxUILpPxooC5qqa89a54dw_63)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, setLine__eTuk9brfDSpx17jJ53NDUag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStaticStmt__7YxUILpPxooC5qqa89a54dw_64)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, evalStaticStmt__4ISne8kQ4QKaNjEY5dqxUg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___59bygf5b7AsTVb9a1lVM66oA)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q a, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOperand__vJZwz9bfROKrfrtM50y74CQ_39)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semInferredLambda__s5ZNJifOyxLa9bFOCUqHCXg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, replaceTypesInBody__JQMwbj1fgdFwBCg7mhUBRQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* p, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, NIM_BOOL allowMetaTypes);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, instTypeBoundOp__Kdk4BCAjDmsFKO9cO4U4ccw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* dc, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op, NI col);
N_LIB_PRIVATE N_NIMCALL(NI*, new__wSSF51wLRD8g2UFxfG6Hvg)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStmtAndGenerateGenerics__7YxUILpPxooC5qqa89a54dw_65)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportSystemStmt__Py1GUj7PccyIa3ac40A6MA)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyTree__OiccTa3ruRNl9anoSqZh2Sg_8)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, importAllSymbols__9bonb4OC5BOScb4pv7w7J1Q)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fromMod);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAllTypeSections__7YxUILpPxooC5qqa89a54dw_66)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, gatherStmts__9a9a1Ojxj7NR51moAUvzAVIw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, hloStmt__7YxUILpPxooC5qqa89a54dw_67)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildEchoStmt__7YxUILpPxooC5qqa89a54dw_68)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, appendToModule__T4o9clzgbAgGY4ORbfP6LmQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, recoverContext__Zisdl5hRh5Vv9bXMXRnK8QA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
static N_INLINE(Exception*, getCurrentException)(void);
static N_INLINE(NIM_BOOL, isObjWithCache)(TNimType* obj, TNimType* subclass, TNimType** cache);
N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isObjSlowPath__H8B7g6iFRPI5Em52KFoD6w)(TNimType* obj, TNimType* subclass, TNimType** cache);
N_LIB_PRIVATE N_NIMCALL(void, suggestSentinel__9bcrXlTwB3ELAkoCqH9bihfA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, rawCloseScope__TX9bi5b9bIHR13FiwHwV59a4w_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, reportUnusedModules__Zisdl5hRh5Vv9bXMXRnK8QA_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, addCodeForGenerics__NRIJDWZtATzMum7OEjYC2g_17)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);

/* section: NIM_merge_DATA */
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_2, "sem.myOpen", 10);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_4, "/Users/runner/work/nim4py/nim4py/Nim/compiler/sem.nim", 53);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_3 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 507),
((NI) 30)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_5, "constant of type \'", 18);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_6, "\' has no value", 14);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_8, "/Users/runner/work/nim4py/nim4py/Nim/compiler/semexprs.nim", 58);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_7 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 97),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_9, "recursive dependency: \'$1\'", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_10 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 462),
((NI) 15)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_11, "\'$1\' has unspecified generic parameters", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_12 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 468),
((NI) 15)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_13, "template instantiation too nested", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_14 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 400),
((NI) 15)}
;
extern TNimType NTI__DfgJFJEYoj4YBAHLZPl5lQ_;
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__rF9caJawfOjYTjsgLVUSGFA_15 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04,
0x02, 0x00, 0xe0, 0x11, 0x02, 0x0c, 0x01, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_16, "expression \'", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_17, "\' is of type \'", 14);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_18, "\' and has to be used (or discarded)", 35);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_19, "; start of expression here: ", 28);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_20, "; for a function call use ()", 28);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_22, "/Users/runner/work/nim4py/nim4py/Nim/compiler/semstmts.nim", 58);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_21 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 151),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_23, "type expected", 13);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_25, "/Users/runner/work/nim4py/nim4py/Nim/compiler/semtypes.nim", 58);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_24 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 429),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_26, "[]", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_27, "range is empty", 14);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_28 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 223),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_29, "type mismatch", 13);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_30 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 238),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_31, "ordinal or float type expected", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_32 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 241),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_33, "enum \'$1\' has holes", 19);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_34 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 243),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_35, "NaN is not a valid start or end for a range", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_36 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 254),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_37 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 257),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_38, "invalid type", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_39 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1715),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_40, "expected type, but got: ", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_41 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1514),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_42, "|", 1);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_43 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1726),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_44 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1729),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_45, "Invalid syntax. When used with a type, \'not\' can be followed on"
"ly by \'nil\'", 74);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_46 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1741),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_47, "enable the \'not nil\' annotation with {.experimental: \"notnil\".}", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_48 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1744),
((NI) 22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_49 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1776),
((NI) 22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_50 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1781),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_51, "cannot inherit from a type that is not an object type", 53);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_52 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 855),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_53 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 867),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_54, "addInheritedFieldsAux", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_55 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 814),
((NI) 42)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_56, "addInheritedFieldsAux(record case branch)", 41);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_57 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 820),
((NI) 25)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_58, "addInheritedFieldsAux()", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_59 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 827),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_60, "inheritance only works with non-final objects; for ", 51);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_61, " to be inheritable it must be \'object of RootObj\' instead of \'o"
"bject\'", 69);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_62 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 871),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_63, "semObjectNode", 13);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_64 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 876),
((NI) 40)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_65, "expression has no type: ", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_66 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 91),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_67, "(", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_68, ", ", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_69, ")", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_71, "/Users/runner/work/nim4py/nim4py/Nim/compiler/seminst.nim", 57);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_70 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_71),
((NI) 328),
((NI) 17)}
;
static NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q TM__rF9caJawfOjYTjsgLVUSGFA_72 = {((NU16) 0), ((NI16) -1), ((NI32) -1)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_73, "generic instantiation too nested", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_74 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_71),
((NI) 331),
((NI) 15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_75 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_71),
((NI) 350),
((NI) 17)}
;
extern TNimType NTI__Ef05srmQTDulnBdXR4Ja6Q_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_76 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_71),
((NI) 61),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_77 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_71),
((NI) 63),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_78, "cannot instantiate: \'$1\'", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_79 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_71),
((NI) 77),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_80 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_71),
((NI) 80),
((NI) 16)}
;
extern TNimType NTI__GJ8qR6LTU9bYLzfOArsHTSg_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_81 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_71),
((NI) 271),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_82, "no tuple type for constructor", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_83 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 513),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_84, "invalid tuple constructor", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_85 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 519),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_86, "unknown identifier: ", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_87 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 524),
((NI) 23)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_88, "cannot convert ", 15);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_89, " to ", 4);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_90 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 542),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_91, "cannot convert \'$1\' to \'$2\'", 27);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_92 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 546),
((NI) 16)}
;
extern TNimType NTI__DXS6mEo7PVUFJkirsQ9bNQA_;
extern TNimType NTI__jWKvSdankQPoT5bw9cBU9aiw_;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_93 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0c, 0xa0, 0xfe, 0xb1, 0xbf, 0x5f, 0x00,
0x63, 0xfe, 0x0f, 0x00, 0x01, 0xc2, 0x01, 0x34,
0x06, 0x60, 0x48, 0x12, 0x00, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_94, "NimNode", 7);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_95, "result", 6);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_96, "value of type \'$1\' has to be used (or discarded)", 48);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_97 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 128),
((NI) 16)}
;
extern TNimType NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_98, "semstmts.nim(1494, 14) `r[0].kind == nkSym` ", 44);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_99, "semstmts.nim(1503, 14) `result != nil` ", 39);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_100, "cannot use symbol of kind \'$1\' as a \'$2\'", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_101 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 206),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_102, "\'$1\' is only allowed at top level", 33);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_103, "export", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_104 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 482),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_105, "invalid visibility: \'$1\'", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_106 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 484),
((NI) 20)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_107 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x08, 0xf6, 0x18, 0x00, 0x50, 0x00,
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_108 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x08, 0xf6, 0x31, 0x81, 0x53, 0x00,
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x00, 0x60, 0x62, 0x01, 0x00, 0x22, 0x80, 0x00,
0x00, 0x10, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_109 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x07, 0xf6, 0x31, 0x01, 0x53, 0x00,
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_110, "in", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_111, "the \'$1\' modifier can be used only with imported types", 54);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_112 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 2109),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_113, "{}", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_114, "\'", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_115, "\' is only allowed in templates and macros or magic procs", 56);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_116 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1217),
((NI) 20)}
;
extern NIM_CONST tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw OverloadableSyms__yJfP9bpZPSQn9bPO6KCo08fQ;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_117, "{}=", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_118, "[]=", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_119, "cannot infer the type of parameter \'", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_120 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1235),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_121, "\':\' expected", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_122 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1259),
((NI) 27)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_123, "typeless parameters are obsolete", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_124 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1271),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_125, ":type", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_126, "the macro body cannot be compiled, because the parameter \'$1\' h"
"as a generic type", 80);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_127 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1038),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_128, "typedesc", 8);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_129, "type", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_130, "illegal recursion in type \'$1\'", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_131 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1078),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_132 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_71),
((NI) 178),
((NI) 17)}
;
extern TNimType NTI__zSq8dodcWpSdfE0WaiBU9cw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_133 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1119),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_134, "attempt to redefine: \'", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_135 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1283),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_136, "`typed` will change its meaning in future versions of Nim. `voi"
"d` or no return type declaration at all has the same meaning as "
"the current meaning of `typed` as return type declaration.", 185);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_137 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1303),
((NI) 11)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_138, "return type \'", 13);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_139, "\' is only valid for macros and templates", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_140 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1311),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_141, "invalid expression", 18);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_143, "/Users/runner/work/nim4py/nim4py/Nim/compiler/semtempl.nim", 58);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_142 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_143),
((NI) 727),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_144 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_143),
((NI) 707),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_145 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_143),
((NI) 737),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_146 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_143),
((NI) 739),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_147, "*", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_148, "**", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_149, "~", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_150, "a pattern cannot be empty", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_151 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_143),
((NI) 809),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_152, "pragmas are only allowed in the header of a proc; redefinition "
"of $1", 68);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_153, "\' from ", 7);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_154 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1936),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_155, "semProcAux", 10);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_156 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1955),
((NI) 46)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_157, "=destroy", 8);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_158, "deepcopy", 8);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_159, "=deepcopy", 9);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_160, "=", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_161, "=sink", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_162, "=trace", 6);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_163, "=dispose", 8);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_164, "cannot bind another \'", 21);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_165, "\' to: ", 6);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_166, "; previous declaration was constructed here implicitly: ", 56);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_167, "; previous declaration was here: ", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_168 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1656),
((NI) 12)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_169, "type bound operation `", 22);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_170, "` can be defined only in the same module with its type (", 56);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_171 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1692),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_172, "signature for \'", 15);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_173, "\' must be proc[T: object](x: var T)", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_174 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1695),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_175, "cannot bind another \'deepCopy\' to: ", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_176 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1719),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_177, "cannot bind \'deepCopy\' to: ", 27);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_178 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1722),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_179 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1726),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_180, "signature for \'deepCopy\' must be proc[T: ptr|ref](x: T): T", 58);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_181 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1730),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_182 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1764),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_183, "\' must be proc[T: object](x: var T; y: T)", 41);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_184 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1769),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_185, "\'destroy\' or \'deepCopy\' expected for \'override\'", 47);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_186 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1777),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_188, ".", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_189, ".()", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_190, ".=", 2);
static NIM_CONST tyArray__24KAM9afIUgUaqBaEBB6r9bg TM__rF9caJawfOjYTjsgLVUSGFA_187 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_188),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_189),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_190)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_191, "the overloaded ", 15);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_192, " operator has to be enabled with {.experimental: \"dotOperators\""
".}", 65);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_193 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1966),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_194, "()", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_195, " operator has to be enabled with {.experimental: \"callOperator\""
".}", 65);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_196 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1969),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_197, "implementation of \'$1\' is not allowed", 37);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_198 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1975),
((NI) 16)}
;
extern TNimType NTI__MvZmat48bhe9b6x9aUD58D5Q_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_199, "generic methods are deprecated", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_200 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1819),
((NI) 11)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_201, "\'method\' needs a parameter that has an object type", 50);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_202 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1829),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_203, "invalid type: \'$1\' for $2", 25);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_204, ". Did you mean to call the $1 with \'()\'\?", 40);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_205, "invalid type: \'$1\' in this context: \'$2\' for $3", 47);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_206 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 243),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_208, "/Users/runner/work/nim4py/nim4py/Nim/compiler/hlo.nim", 53);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_207 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_208),
((NI) 48),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_209 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_208),
((NI) 15),
((NI) 17)}
;
static NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg TM__rF9caJawfOjYTjsgLVUSGFA_210 = {
0x00, 0x00, 0x20, 0x60, 0x07, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x38, 0x46, 0x30, 0x08, 0x00, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_211, "for a \'var\' type a variable needs to be passed; but \'$1\' is imm"
"utable", 69);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_212 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 721),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_213, "address of \'$1\' may not escape its stack frame", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_214 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 728),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_215 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 673),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_216, "analyseIfAddressTaken", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_217 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 687),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_218, "expression has no address", 25);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_220, "/Users/runner/work/nim4py/nim4py/Nim/compiler/semmagic.nim", 58);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_219 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 21),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_221, "expression has no address; maybe use \'unsafeAddr\'", 49);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_222 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 23),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_223, "unsafeAddr", 10);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_224, "typeof: cannot evaluate \'mode\' parameter at compile-time", 56);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_225 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 31),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_226, "can\'t compute offsetof on this ast", 34);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_228, "/Users/runner/work/nim4py/nim4py/Nim/compiler/sizealignoffsetim"
"pl.nim", 69);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_227 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_228),
((NI) 487),
((NI) 16)}
;
static NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA TM__rF9caJawfOjYTjsgLVUSGFA_229 = {{((NU32) IL64(4294967295)),
((NU32) IL64(4294967295)),
((NU32) IL64(4294967295)),
((NU32) 2147483647)}
}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_230, "invalid index value for tuple subscript", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_231 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1509),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_232, "cannot instantiate: \'", 21);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_233, "\'; got ", 7);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_234, " typeof(s) but expected ", 24);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_236, "/Users/runner/work/nim4py/nim4py/Nim/compiler/semcall.nim", 57);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_235 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 638),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_237 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 596),
((NI) 12)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_238, "AnonType", 8);
extern TNimType NTI__0dpGN6F4ocevqUQGsaf41w_;
extern TNimType NTI__sM4lkSb7zS6F7OVMvW9cffQ_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_239, "could not resolve: ", 19);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_240 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 303),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_241 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 276),
((NI) 15)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_242, "expression \'$1\' cannot be called", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_243 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 279),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_244, "\012", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_245, "  first type mismatch at position: ", 35);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_246, "\012  unknown named parameter", 26);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_247, "\012  unknown named parameter: ", 28);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_248, "\012  named param already provided: ", 33);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_249, "\012  positional param was already given as named param", 52);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_250, "\012  extra argument given", 23);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_251, "\012  missing parameter: ", 22);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_252, "semcall.nim(228, 18) `nArg != nil` ", 35);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_253, "semcall.nim(230, 18) `err.firstMismatch.formal != nil` ", 55);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_254, "\012  required type for ", 21);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_255, ": ", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_256, "\012  but expression \'", 19);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_257, "\' is immutable, not \'var\'", 25);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_258, "\' is of type: ", 14);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_259, "semcall.nim(242, 20) `wanted != nil` ", 37);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_260, "\012  This expression is not GC-safe. Annotate the proc with {.gcs"
"afe.} to get extended error information.", 103);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_261, "\012  This expression can have side effects. Annotate the proc wit"
"h {.noSideEffect.} to get extended error information.", 116);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_262, "\012  The `.raises` requirements differ.", 37);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_263, "\012  The `.raises` requirements differ. Annotate the proc with {."
"raises: [].} to get extended error information.", 110);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_264, "\012  The `.tags` requirements differ.", 35);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_265, "\012  The `.tags` requirements differ. Annotate the proc with {.ta"
"gs: [].} to get extended error information.", 106);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_266, "\012  The `.locks` requirements differ. Annotate the proc with {.l"
"ocks: 0.} to get extended error information.", 107);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_267, " other mismatching symbols have been suppressed; compile with -"
"-showAllMismatches:on to see them\012", 97);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_268, "maybe misplaced space between ", 30);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_269, " and \'(\' \012", 10);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_270, "type mismatch: got <", 20);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_271, "\012but expected one of: \012", 23);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_272, "\012expression: ", 13);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_273 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 288),
((NI) 12)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_274 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 209),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_275 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 129),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_276, "or", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_277, "and", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_278, "not", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_279, "typeToString", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_280, "name", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_281, "$", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_282, "arity", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_283, "genericHead", 11);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_284, "stripGenericParams", 18);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_285, "supportsCopyMem", 15);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_286, "isNamedTuple", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_287, "tupleLen", 8);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_288, "distinctBase", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_289, "expected generic type, got: type $2 of kind $1", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_290 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 174),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_291, "distinctBase expects a distinct type as argument. The given typ"
"e was ", 69);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_292 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 199),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_293, "unknown trait: ", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_294 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 203),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_295, "integer literal expected", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_296 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 80),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_297, "command line", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_298, "\?\?\?", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_299, "ordinal type expected", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_300 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 228),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_301, "\'of\' takes object types", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_302 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 334),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_303 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 336),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_304 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 345),
((NI) 15)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_305, "\'$1\' cannot be of this subtype", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_306 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 352),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_307 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 354),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_308, "\'of\' takes 2 arguments", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_309 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 359),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_310, "\'$1\' expects a type or value", 28);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_311, "low", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_312, "high", 4);
N_LIB_PRIVATE NIM_CONST tyArray__nr38yHugp0nuiB6VarJGiw opToStr__x47hvY2ezR4p9cvQjupSCVQ = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_311),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_312)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_313 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 355),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_314, "invalid argument for: ", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_315 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 372),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_316, "string literal expected", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_317 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 237),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_318, "constant expression expected", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_319 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 243),
((NI) 14)}
;
extern TNimType NTI__ytyiCJqK439aF9cIibuRVpAg_;
N_LIB_PRIVATE TNimType NTI__LF0eKAnygFo4etNDdpTetg_;
extern TNimType NTI__xHTZrq9aYs6boc9bCba0JbpQ_;
extern TNimType NTI__EjEifkTC8tg9afiUW4StSSA_;
extern TNimType NTI__N89ckikRqMir57209a3tEeqw_;
N_LIB_PRIVATE TNimType NTI__IqGNbqKVyQ9b9an5n9bN8QJsQ_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_321, "bindSymImpl", 11);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_322, "string or ident node expected", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_323 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 261),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_324 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 265),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_325, "cannot find plugin ", 19);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_326 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 521),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_327, "finalizer must be a direct reference to a proc", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_328 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 528),
((NI) 16)}
;
N_LIB_PRIVATE TNimType NTI__UaUb9bgQbqCS7gyXItZuJNg_;
extern TNimType NTI__K9bspPztfoWajecnwjyHuYQ_;
N_LIB_PRIVATE TNimType NTI__NaDYkbcAjZXYRP9arR0vzYg_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_332, "<quantifier> \'in\' <range> expected", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_333 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 454),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_334, "\'old\' takes a parameter name", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_335 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 462),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_336, " does not belong to ", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_337 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 464),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_338 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 556),
((NI) 13)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_339 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 559),
((NI) 12)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_340 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 562),
((NI) 13)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_341, "expression cannot be isolated: ", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_342 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_220),
((NI) 565),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg TM__rF9caJawfOjYTjsgLVUSGFA_343 = {
0xe1, 0x00, 0x00, 0xe0, 0xf0, 0xcf, 0xff, 0xf7,
0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x3f,
0xf8, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_344, "cannot evaluate \'$1\'", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_345 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 811),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_346, "the resulting AST is cyclic and cannot be processed further", 59);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_347 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 299),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_348, " --> \'", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_349 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_208),
((NI) 31),
((NI) 11)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_350, "return type \'auto\' cannot be used in forward declarations", 57);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_351 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2014),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_352, "implementation of \'$1\' expected", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_353 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2017),
((NI) 31)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_354, "no symbol to borrow from found", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_355 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1429),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_356, "\'.closure\' calling convention for top level routines is invalid", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_357 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2035),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_358 = {
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 NTI__B8Gf2sSWgQ79bLZ9bYWrLHaA_;
N_LIB_PRIVATE TNimType NTI__K9bYwLtGKmFQYg8TwmqoG3Q_;
extern TNimType NTI__rR5Bzr1D5krxoo1NcNyeMA_;
N_LIB_PRIVATE TNimType NTI__P9bWebqKHkrGHwy9aZW9bw0TA_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_360 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 378),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_361, "\012  found \'$1\' of kind \'$2\'", 26);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_362, " for type ", 10);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_363, "undeclared field: \'$1\'", 22);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_364, " ", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_365, "attempting to call undeclared routine: \'$1\'", 43);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_366, "attempting to call routine: \'$1\'$2", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_367 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 407),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_368 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 411),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_369 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 421),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_370, "ambiguous call", 14);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_371 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 426),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_372, "ambiguous call; both $1 and $2 match for: $3", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_373 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 435),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_374, "Non-matching candidates for ", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_375 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 562),
((NI) 13)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_376 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236),
((NI) 537),
((NI) 25)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_377, "semOverloadedCallAnalyseEffects", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_378 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 851),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_379, "recursion is not supported in iterators: \'$1\'", 45);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_380 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 858),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_381, "expression has no type", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_382 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1713),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_383, "\'$1\' cannot be assigned to", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_384 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1718),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_385 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1734),
((NI) 25)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_386, "cannot return an owned pointer as an unowned pointer; use \'owne"
"d(", 65);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_387, ")\' as the return type", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_388 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1647),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_389, "assignment produces a dangling ref: the unowned ref lives longe"
"r than the owned ref", 83);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_390 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1650),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_391, "\'$1\' escapes its stack frame; context: \'$2\'; see $3", 51);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_392, "var_t_return.html", 17);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_393 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1577),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_394, "\'$1\' is not the first parameter; context: \'$2\'; see $3", 54);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_395 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1580),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_396 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1595),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_397 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1597),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_398, "cannot infer the return type of \'$1\'", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_399 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1800),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_400 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1804),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_401 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 487),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_402, "semRecordCase: discriminant is no symbol", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_403 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 663),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_404, "selector must be of an ordinal type, float", 42);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_405 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 681),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_406, "low(", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_407, ") must be 0 for discriminant", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_408 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 683),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_409, "len($1) must be less than 32768", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_410 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 686),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_411 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 525),
((NI) 35)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_412, "duplicate case label", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_413 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 513),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_414 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 698),
((NI) 15)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_415, "not all cases are covered; missing: $1", 38);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_416, "{", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_417, "omitted $1 values...", 20);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_418, "}", 1);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_419 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 705),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_420, "not all cases are covered", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_421 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 708),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_422, "initialization not allowed here", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_423 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 765),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_424 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 768),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_425 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 792),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_426 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 803),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_427, "dummy", 5);
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_428 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x14, 0x00, 0xf6, 0x7f, 0x05, 0x53, 0x00,
0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x00,
0x62, 0x60, 0x81, 0x0c, 0x00, 0x02, 0x00, 0x00,
0x80, 0x01, 0x00, 0x30}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_430, "/Users/runner/work/nim4py/nim4py/Nim/compiler/semobjconstr.nim", 62);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_429 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 179),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_431, "incorrect object construction syntax; use a space after the col"
"on", 65);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_432 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 52),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_433, "incorrect object construction syntax", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_434 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 54),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_435, "semobjconstr.nim(132, 14) `recList.kind == nkRecList` ", 54);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_436, "The fields \'$1\' and \'$2\' cannot be initialized together, becaus"
"e they are from conflicting branches in the case object.", 119);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_437 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 190),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_438, "the field \'$1\' is not accessible.", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_439 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 74),
((NI) 16)}
;
extern TNimType NTI__IxbcvonC7TQkv166Uvdu1g_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_440, "branch initialization with a runtime discriminator only support"
"s ordinal types with 2^16 elements or less.", 106);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_441 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 233),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_442, "cannot prove that it\'s safe to initialize $1 with the runtime v"
"alue for the discriminator \'$2\' ", 95);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_443 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 201),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_444, "possible values $2 are in conflict with discriminator values fo"
"r selected object branch $1.", 91);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_445 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 247),
((NI) 35)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_446, "runtime discriminator must be immutable if branch fields are in"
"itialized, a \'let\' binding is required.", 102);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_447 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 252),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_448, "branch initialization with a runtime discriminator is not suppo"
"rted inside of an `elif` branch.", 95);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_449 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 256),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_450 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 265),
((NI) 33)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_451 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 283),
((NI) 35)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_452, "a case selecting discriminator \'$1\' with value \'$2\' appears in "
"the object construction, but the field(s) $3 are in conflict wit"
"h this value.", 140);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_453 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 285),
((NI) 28)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_454 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 323),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_455, "type \'$1 void\' is not allowed", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_456 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 912),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_457, "region needs to be an object type", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_458 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 927),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_459, "region for pointer types is deprecated", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_460 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 930),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_461, "typeof", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_462 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1670),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_463, "owned", 5);
extern TNimType NTI__AgIT5feFR9a9aoVjv9cx2rOtg_;
extern TNimType NTI__v9ae2Dpu13OW2ZJ2U9bNMd9cQ_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_464 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 385),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_465 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 399),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_466 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 409),
((NI) 47)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_467, "identifier expected", 19);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_468 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 424),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_469 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1648),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_470, "Array length can\'t be negative, but was ", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_471 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 296),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_472 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 304),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_473 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 309),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_474 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 338),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_475 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 340),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_476, "array expects two type parameters", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_477 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 350),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_478, "\'$1\' is not a concrete type", 27);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_479 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 174),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_480, "\'$1\' expects one type parameter", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_481 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 177),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_482, "openarray", 9);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_483, "UncheckedArray", 14);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_484, "..<", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_485, "range types need to be constructed with \'..\', \'..<\' is not supp"
"orted", 68);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_486 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 279),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_487, "expected range", 14);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_488 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 281),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_489, "range", 5);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_490 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 284),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_491 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 163),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_492, "set is too large", 16);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_493 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 165),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_494, "set", 3);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_495 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 167),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_496 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 359),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_497, "ordinal", 7);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_498 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 362),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_499, "seq", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_500, "varargs", 7);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_501 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 193),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_502, "type \'var var\' is not allowed", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_503 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1837),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_504 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 447),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_505 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 450),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_506 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 457),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_507 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 465),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_508, "cannot instantiate the \'$1\' $2", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_509 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1403),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_510 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1416),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_511, "no generic parameters allowed for $1", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_512 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1428),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_513, "cannot instantiate ", 19);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_514, "\012got: <", 7);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_515, ">\012but expected: <", 17);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_516, ">", 1);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_517 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1439),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_518 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1460),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_519 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1470),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_520, "object", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_521 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1390),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_522, "inheritance only works with non-final objects", 45);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_523 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1397),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_524, "object constructor needs an object type; for named arguments us"
"e \'=\' instead of \':\'", 83);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_525 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1847),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_526 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1853),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_527 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1869),
((NI) 38)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_528 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1872),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_529 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1894),
((NI) 25)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_530, "type expected, but symbol \'$1\' has no type.", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_531 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1909),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_532, "type expected, but got symbol \'$1\' of kind \'$2\'", 47);
extern TNimType NTI__cNCW9acsSznmEccl1fgQwkw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_533 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1911),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_534 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1572),
((NI) 19)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_535 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 201),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_536, "semtypes.nim(1610, 22) `r[0].kind == nkSym` ", 44);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_537, "semtypes.nim(1615, 27) `false` cannot happen", 44);
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_538 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,
0x40, 0xfe, 0x0f, 0x00, 0x00, 0xc2, 0x01, 0x00,
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_539 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_540, "inheritance only works with an enum", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_541 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 74),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_542 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_543, "ordinal type expected; given: ", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_544 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 100),
((NI) 24)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_545 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 104),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_546, "wrong number of variables", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_547 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 106),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_548 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 112),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_549, "invalid order in enum \'$1\'", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_550 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 118),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_551, "type expected, but got: ", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_552 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 1947),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_553 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 425),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_554 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 476),
((NI) 11)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_555 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1205),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_556, "illegal context for \'nimvm\' magic", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_557 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1209),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_558, "semexprs.nim(1250, 22) `f == s` ", 32);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_559, "bind is deprecated", 18);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_560 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2656),
((NI) 11)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_561, "a type conversion takes exactly one argument", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_562 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 243),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_563 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 251),
((NI) 19)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_564 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 831),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_565, ":anon", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_566, "object construction uses \':\', not \'=\'", 37);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_567 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 285),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_568 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 312),
((NI) 13)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_569, "illegal conversion from \'$1\' to \'$2\'", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_570 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 316),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_571, " can\'t be converted to ", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_572 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 321),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_573, "object constructor needs an object type", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_574 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 374),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_575 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 386),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_576, "The $1 type requires the following fields to be initialized: $2"
".", 64);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_577 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 398),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_578, "field initialized twice: \'$1\'", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_579 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 417),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_580 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 420),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_581, "identifier expected, but got: ", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_582 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1888),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_583, "\'is\' operator takes 2 arguments", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_584 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 440),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_585 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 391),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_586, "closure", 7);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_587, "iterator", 8);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_588, "expected a template that takes ", 31);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_589, " arguments", 10);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_590 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1954),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_591, "ambiguous symbol in \'getAst\' context: ", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_592 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1956),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_593, "getAst takes a call, but got ", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_594 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1966),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_595 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1968),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_596, "\'quote\' expects 1 or 2 arguments", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_597 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2011),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_598 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1922),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_599, "``", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_600, "block", 5);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_601 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2026),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_602, "untyped", 7);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_604, "!=", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_605, ">=", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_606, "incl", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_607, "excl", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_608, "notin", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_609, "isnot", 5);
static NIM_CONST tyArray__Q6RksR9bl1dCf8jl3HeN9bXg TM__rF9caJawfOjYTjsgLVUSGFA_603 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_604),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_605),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_516),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_606),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_607),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_110),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_608),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_609)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_610, "vm", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_611, "stackTrace", 10);
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_612 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0x00, 0x01, 0x00, 0x50, 0x00,
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_613 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_143),
((NI) 662),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_614 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_143),
((NI) 664),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_615, "newIdentNode", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_616, "getAst", 6);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_617, "use the {.experimental.} pragma to enable \'parallel\'", 52);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_618 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2219),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_619, "FlowVar", 7);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_620, "nimCreateFlowVar", 16);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_621, "system needs: nimCreateFlowVar", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_622 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2149),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_624, "sizeof", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_625 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2167),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_626 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 945),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_627, ">\012but expected one of: \012", 24);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_628, " = ", 3);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_629 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 969),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_630, "named expression expected", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_631 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2436),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_632, "named expression not allowed here", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_633 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2440),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_634, "Mixing types and values in tuples is not allowed.", 49);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_635 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2560),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_636 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2453),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_637, "typedesc not allowed as tuple field.", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_638 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2458),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_639 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2377),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_640, "expected ordinal value for array ", 33);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_641, "index, got \'$1\'", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_642 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 577),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_643, "size of array exceeds range of index ", 37);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_644, "type \'$1\' by $2 elements", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_645 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 594),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_646, "invalid order in array constructor", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_647 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 602),
((NI) 20)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_648 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x08, 0x00, 0xf6, 0xb0, 0x9f, 0x00, 0x00,
0x20, 0xfe, 0x0f, 0x00, 0x00, 0xc2, 0x01, 0x00,
0x00, 0x00, 0x48, 0x02, 0x00, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_649 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1559),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_650, "A nested proc can have generic parameters only when it is used "
"as an operand to another routine and the types of the generic pa"
"ramers can be inferred from the expected signature.", 178);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_651 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1570),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_652 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1573),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_653, "cannot cast to a non concrete type: \'$1\'", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_654 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 340),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_655, "expression cannot be cast to ", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_656 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 345),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_657, "==", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_658, "cannot infer the concept parameter \'%s\', due to a type mismatch"
". attempt to equate \'%s\' and \'%s\'.", 97);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_659 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2214),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_660, "concept predicate failed", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_661 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2251),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_662 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2271),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_663, "only a \'ref object\' can be raised", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_664 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1022),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_665, "raised object of type $1 does not inherit from Exception", 56);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_666 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1024),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_667, "semstmts.nim(461, 14) `nodePragma.kind in {nkIdent, nkAccQuoted"
"}` ", 66);
extern TNimType NTI__G4E4Gxe7oI2Cm03rkiOzQw_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_668, "cannot infer the type of the $1", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_669 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 517),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_670, "\'$1\' doesn\'t have a concrete type, due to unspecified generic p"
"arameters.", 73);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_671 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 519),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_672, "tuple", 5);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_673 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 541),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_674 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 543),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_675 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 553),
((NI) 13)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_676, "implicit object field construction requires a .partial object, "
"but got ", 71);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_677 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 419),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_678, "nkDotNode requires 2 children", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_679 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 422),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_680, "_", 1);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_681 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 575),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_682, "a thread var cannot be initialized explicitly; this would only "
"run for the main thread", 86);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_683 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 578),
((NI) 44)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_684, "inconsistent typing for reintroduced symbol \'", 45);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_685, "\': previous type was: ", 22);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_686, "; new type is: ", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_687 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 426),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_688, "The $1 type doesn\'t have a default value. The following fields "
"must be initialized: $2.", 87);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_689 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430),
((NI) 364),
((NI) 12)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_690 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 338),
((NI) 13)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_691 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 340),
((NI) 13)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_692, "\'let\' symbol requires an initialization", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_693 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 617),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_694 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 623),
((NI) 15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_695 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 293),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_696 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 662),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_697 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 672),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_698 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 674),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_699, "unknown package name: ", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_700 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1052),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_701, " is not a type that can be forwarded", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_702 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1067),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_703, "only top level types in a package can be \'package\'", 50);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_704 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1085),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_705, "cannot complete type \'", 22);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_706, "\' twice; previous type completion was here: ", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_707 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1093),
((NI) 22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_708 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1194),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_709, "auto", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_710, "lent", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_711, "sink", 4);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_712 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 2050),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_713 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_25),
((NI) 2051),
((NI) 18)}
;
N_LIB_PRIVATE TNimType NTI__GnXaFIlVxvDpiKnOUsLlMw_;
N_LIB_PRIVATE TNimType NTI__hW0nFkOHm9b8Hn43XRoDtzQ_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_718, "non-invariant type param used in a proc type: ", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_719 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1143),
((NI) 13)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_721, "covariant param \'", 17);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_722, "\' used in a non-covariant position", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_723 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1154),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_724, "contravariant param \'", 21);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_725, "\' used in a non-contravariant position", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_726 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1162),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_728, "non-invariant type parameters cannot be used with types such \'", 62);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_729 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1168),
((NI) 11)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_730, "non-invariant type parameters are not supported in concepts", 59);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_731 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1170),
((NI) 11)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_735 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1180),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_737, "{.exportc.} not allowed for type aliases", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_738 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1263),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_739, "only a \'distinct\' type can borrow `.`", 37);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_740 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1266),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_741 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1273),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_742 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1274),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_743, ":ObjectType", 11);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_744, "\'$1\' is not a concrete type; for a callback without parameters "
"use \'proc()\'", 75);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_745 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1288),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_746 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1291),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_747 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1310),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_748, "statement returns no value that can be discarded", 48);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_749 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 48),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_750, "illegal discard proc, did you mean: ", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_751 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 51),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_752 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 193),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_753, "exception already handled", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_754 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 196),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_755, "Mix of imported and native exception types is not allowed in on"
"e except branch", 78);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_756 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 248),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_757, "Only one finally is allowed after all other branches", 52);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_758 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 252),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_759, "Only one general except clause is allowed after more specific e"
"xceptions", 72);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_760 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 260),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_761, "invalid control flow: $1", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_762 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 72),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_763, "\'continue\' cannot have a label", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_764 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 74),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_765 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 76),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_766 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 842),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_767, "ForLoopStmt", 11);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_768, "expression \'$1\' has no type (or is ambiguous)", 45);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_769 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 87),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_770 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 725),
((NI) 20)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_771 = {
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, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_772 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 751),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_773 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 753),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_774 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 769),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_775, "true", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_776, "system needs: \'true\'", 20);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_778, "/Users/runner/work/nim4py/nim4py/Nim/compiler/semfields.nim", 59);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_777 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_778),
((NI) 111),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_779 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_778),
((NI) 121),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_780, "no object or tuple type", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_781 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_778),
((NI) 127),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_782, "Field", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_783, "\'continue\' not supported in a \'fields\' loop", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_784 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_778),
((NI) 53),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_785, "parallel \'fields\' iterator does not work for \'case\' objects", 59);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_786 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_778),
((NI) 81),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__rF9caJawfOjYTjsgLVUSGFA_787 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_788, "items", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_789, "pairs", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_790, "iterator within for loop context expected", 41);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_791 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 918),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_792, "match", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_793, "selector must be of an ordinal type, float or string", 52);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_794 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 956),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_795 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 984),
((NI) 15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_796 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 993),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_797 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 996),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_798, "no return type declared", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_799 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1767),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_800, "\'return\' not allowed here", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_801 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1769),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_802, "using", 5);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_803 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 360),
((NI) 34)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_804, "\'using\' section must have a type", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_805 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 376),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_806, "\'using\' sections cannot contain assignments", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_807 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 379),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_808, "\'yield\' only allowed in an iterator", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_809 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1835),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_810, "semYield", 8);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_811 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1843),
((NI) 39)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_812, "tuple constructor", 17);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_813 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1828),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_814, "current routine cannot return an expression", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_815 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1853),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_816, "yield statement must yield a value", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_817 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1855),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_818 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0xf0, 0xf9,
0x3f, 0x00, 0xc0, 0xff, 0xdc, 0x21, 0x9e, 0xc9,
0x89, 0x0f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_819 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0xf6, 0xb1, 0x06, 0x50, 0x00,
0x20, 0xfe, 0x0f, 0x00, 0x00, 0xc2, 0x01, 0x00,
0x06, 0x60, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_820, "iterator needs a return type", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_821 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2057),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_822 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2066),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_823 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0c, 0xa0, 0xfe, 0xb1, 0xbf, 0x57, 0x00,
0x63, 0xfe, 0x0f, 0x00, 0x01, 0xc2, 0x01, 0x34,
0x06, 0x60, 0x48, 0x12, 0x00, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_824, "method", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_825 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2078),
((NI) 34)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_826 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0c, 0xa0, 0xfc, 0xb1, 0xbf, 0x5f, 0x00,
0x63, 0xfe, 0x0f, 0x00, 0x01, 0xc2, 0x01, 0x34,
0x06, 0x60, 0x48, 0x12, 0x00, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_827, "converter", 9);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_828 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2099),
((NI) 34)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_829, "$1 needs a return type", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_830 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2110),
((NI) 28)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_831, "a converter takes exactly one argument", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_832 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2111),
((NI) 27)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_833 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x80, 0xf6, 0x31, 0x02, 0x53, 0x00,
0x20, 0xfe, 0x0f, 0x00, 0x01, 0x00, 0x00, 0x00,
0x04, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_834 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2131),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_835, "import", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_836 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2817),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_837 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2820),
((NI) 36)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_838, "from", 4);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_839 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2823),
((NI) 36)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_840, "/", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_841, "Cannot use \'", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_842, "\' in \'include\'.", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_843 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2149),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_844 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 2137),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_845 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2829),
((NI) 36)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_846, "cannot export: ", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_847 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2529),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_848, "; enum field cannot be exported individually", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_849 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2544),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_850 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2832),
((NI) 36)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_851, "The export/except syntax expects a module name", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_852 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2506),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_853 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_854, "defer statement not supported at top level", 42);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_855 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2840),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_856, "\'defer\' takes a \'void\' expression", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_857 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2843),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_858, "invalid expression: ", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_859 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 2851),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_860 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 70),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_861 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 78),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_862 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 349),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_863 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 358),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_864 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 361),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_865 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 56),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_866 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 61),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_867, "cannot infer type of parameter: ", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_868 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1600),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_872 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_22),
((NI) 1359),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_873, "echo", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_874, "system needs: echo", 18);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_875 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_8),
((NI) 1017),
((NI) 14)}
;
extern TNimType NTI__cDtWY9cE7zf8BAC5QcEZZkQ_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_877 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 622),
((NI) 13)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_878, "n is not nil", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_879 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 633),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_880, "no code for ", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_881 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 500),
((NI) 21)}
;

/* section: NIM_merge_VARS */
extern NIM_BOOL nimInErrorMode__759bT87luu8XGcbkw13FUjA;
extern Exception* currException__9bVPeDJlYTi9bQApZpfH8wjg;
extern Exception* currException__9bVPeDJlYTi9bQApZpfH8wjg;
extern Exception* currException__9bVPeDJlYTi9bQApZpfH8wjg;
extern Exception* currException__9bVPeDJlYTi9bQApZpfH8wjg;
static TNimType* Nim_OfCheck_CACHE877[2];

/* section: NIM_merge_PROCS */
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (NIM_BOOL*)0;
	result = (&nimInErrorMode__759bT87luu8XGcbkw13FUjA);
	return result;
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26):
	{
		result = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag((*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		result = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag((*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = (*n).info;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, symChoice__ce08GbPIDAcM29cbr3lVUxg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA r, NIM_BOOL isField) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a;
	tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
	NI i;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	a = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
	i = ((NI) 0);
	a = initOverloadIter__yTTeeqtnENsm0xyCro9a61w((&o), c, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		while (1) {
			if (!!((a == NIM_NIL))) goto LA2;
			{
				if (!!(((*a).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)))) goto LA5_;
				i += ((NI) 1);
				{
					if (!(((NI) 1) < i)) goto LA9_;
					goto LA1;
				}
				LA9_: ;
			}
			LA5_: ;
			a = nextOverloadIter__yTTeeqtnENsm0xyCro9a61w_2((&o), c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA2: ;
	} LA1: ;
	info = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = (i <= ((NI) 1));
		if (!(T13_)) goto LA14_;
		T13_ = !((r == ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2)));
		LA14_: ;
		if (!T13_) goto LA15_;
		{
			NIM_BOOL T19_;
			T19_ = (NIM_BOOL)0;
			T19_ = !(isField);
			if (T19_) goto LA20_;
			T19_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0));
			LA20_: ;
			if (!T19_) goto LA21_;
			result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			markUsed__QlWTWY7567sCdiTkeUTTDA(c, info, s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA17_;
		LA21_: ;
		{
			result = n;
		}
		LA17_: ;
	}
	goto LA11_;
	LA15_: ;
	{
		tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T32_;
		{
			NIM_BOOL T27_;
			T27_ = (NIM_BOOL)0;
			T27_ = (r == ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0));
			if (T27_) goto LA28_;
			T27_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45));
			LA28_: ;
			if (!T27_) goto LA29_;
			kind = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56);
		}
		goto LA25_;
		LA29_: ;
		{
			kind = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57);
		}
		LA25_: ;
		T32_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T32_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(kind, info, T32_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		a = initOverloadIter__yTTeeqtnENsm0xyCro9a61w((&o), c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			while (1) {
				if (!!((a == NIM_NIL))) goto LA34;
				{
					NIM_BOOL T37_;
					NIM_BOOL T39_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
					T37_ = (NIM_BOOL)0;
					T37_ = !(((*a).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)));
					if (!(T37_)) goto LA38_;
					T39_ = (NIM_BOOL)0;
					T39_ = !(isField);
					if (T39_) goto LA40_;
					T39_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0));
					LA40_: ;
					T37_ = T39_;
					LA38_: ;
					if (!T37_) goto LA41_;
					(*a).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
					markOwnerModuleAsUsed__YW6ZVaTpPDUETmgx3UgpFw(c, a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T43_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T43_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(a, info);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__P8dDSotTW25BkfbyspojGg(result, T43_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA41_: ;
				a = nextOverloadIter__yTTeeqtnENsm0xyCro9a61w_2((&o), c, n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA34: ;
		}
	}
	LA11_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, markIndirect__OGrPg9bGc5rou9aBRgLK606Qsemdata)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	{
		if (!((126976 &(1U<<((NU)((*s).kind)&31U)))!=0)) goto LA3_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 17)) & 63);
	}
	LA3_: ;
}
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__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		void* T5_;
		void* T6_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (void*)0;
		T5_ = ((void*) ((&(*dest).data[(*dest).Sup.len])));
		T6_ = (void*)0;
		T6_ = ((void*) ((*src).data));
		copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(T5_, T6_, ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, inlineConst__a1Z9a4khB42QCtmKBL9cckKAsem)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*s).ast);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!(result == 0)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T6_ = (NimStringDesc*)0;
		T6_ = typeToString__QlvraUan7WbHowhAbvDvdA((*s).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T5_ = rawNewString((T6_ ? T6_->Sup.len : 0) + 32);
appendString(T5_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_5));
appendString(T5_, T6_);
appendString(T5_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_6));
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T5_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_7, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		(*result).typ = (*s).typ;
		(*result).info = (*n).info;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, resetSemFlag__sIxO9bj7Xwv3qFTK7z9b5jSg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	(*n).flags &= ~(((NU32)1) << ((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7)) & 31));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				resetSemFlag__sIxO9bj7Xwv3qFTK7z9b5jSg((*n)._kind_6.sons->data[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, implicitlyDiscardable__OiccTa3ruRNl9anoSqZh2Sg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
	NIM_BOOL T3_;
	NIM_BOOL T5_;
	NIM_BOOL T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	n_2 = n;
	{
		while (1) {
			if (!((TM__rF9caJawfOjYTjsgLVUSGFA_15[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)) goto LA2;
			n_2 = lastSon__UPSW0jLTX5qJL51YMUAHgw(n_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA2: ;
	}
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108) || (*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109) || (*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110) || (*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111));
	if (T3_) goto LA4_;
	T5_ = (NIM_BOOL)0;
	T6_ = (NIM_BOOL)0;
	T6_ = isCallExpr__CZaoTkWCFI9acor4BmYF3Yw_2(n_2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (!(T6_)) goto LA7_;
	T6_ = ((*(*n_2)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	LA7_: ;
	T5_ = T6_;
	if (!(T5_)) goto LA8_;
	T5_ = (((*(*(*n_2)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 33))&63U)))!=0);
	LA8_: ;
	T3_ = T5_;
	LA4_: ;
	result = T3_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, discardCheck__tp7yV6CFb40nVuGT1TBFpw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*c).matchedConcept == NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = ((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 2))&31U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = !(((*result).typ == NIM_NIL));
		if (!(T9_)) goto LA10_;
		T9_ = !(((IL64(-9223372036854775680) &((NU64)1<<((NU)((*(*result).typ).kind)&63U)))!=0));
		LA10_: ;
		if (!T9_) goto LA11_;
		{
			NIM_BOOL T15_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
			T15_ = (NIM_BOOL)0;
			T15_ = implicitlyDiscardable__OiccTa3ruRNl9anoSqZh2Sg(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T15_) goto LA16_;
			n = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114), (*result).info, ((NI) 1));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 0)] = result;
		}
		goto LA13_;
		LA16_: ;
		{
			NIM_BOOL T19_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
			NimStringDesc* s;
			NimStringDesc* T25_;
			NimStringDesc* T26_;
			NimStringDesc* T27_;
			T19_ = (NIM_BOOL)0;
			T19_ = !(((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50)));
			if (!(T19_)) goto LA20_;
			T19_ = !(((*(*(*c).graph).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 18)));
			LA20_: ;
			if (!T19_) goto LA21_;
			n_2 = result;
			{
				while (1) {
					if (!((TM__rF9caJawfOjYTjsgLVUSGFA_15[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)) goto LA24;
					n_2 = lastSon__UPSW0jLTX5qJL51YMUAHgw(n_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA24: ;
			}
			T25_ = (NimStringDesc*)0;
			T26_ = (NimStringDesc*)0;
			T26_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(n_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T27_ = (NimStringDesc*)0;
			T27_ = typeToString__QlvraUan7WbHowhAbvDvdA((*result).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T25_ = rawNewString((T26_ ? T26_->Sup.len : 0) + (T27_ ? T27_->Sup.len : 0) + 61);
appendString(T25_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_16));
appendString(T25_, T26_);
appendString(T25_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_17));
appendString(T25_, T27_);
appendString(T25_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_18));
			s = T25_;
			{
				NIM_BOOL T30_;
				NimStringDesc* T34_;
				NimStringDesc* T35_;
				T30_ = (NIM_BOOL)0;
				T30_ = !(((*result).info.line == (*n_2).info.line));
				if (T30_) goto LA31_;
				T30_ = !(((*result).info.fileIndex == (*n_2).info.fileIndex));
				LA31_: ;
				if (!T30_) goto LA32_;
				T34_ = (NimStringDesc*)0;
				T35_ = (NimStringDesc*)0;
				T35_ = dollar___aQsiZUvE4SFfnWyKx1JgKA((*(*c).graph).config, (*result).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T34_ = rawNewString((T35_ ? T35_->Sup.len : 0) + 28);
appendString(T34_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_19));
appendString(T34_, T35_);
				s = resizeString(s, (T34_ ? T34_->Sup.len : 0) + 0);
appendString(s, T34_);
			}
			LA32_: ;
			{
				if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25))) goto LA38_;
				s = resizeString(s, 28);
appendString(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_20));
			}
			LA38_: ;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), s, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_21, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA13_;
		LA21_: ;
		LA13_: ;
	}
	LA11_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprNoType__7YxUILpPxooC5qqa89a54dw_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL isPush;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	isPush = hasHint__6vRFaWMeJsly8QVCeazPQA_2((*(*c).graph).config, ((tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA) 81));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!isPush) goto LA3_;
		pushInfoContext__uDLK9aoAOWwwFTev4NOwF7Q((*(*c).graph).config, (*n).info, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, n, 64);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	discardCheck__tp7yV6CFb40nVuGT1TBFpw(c, result, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!isPush) goto LA7_;
		popInfoContext__O9arH9bYenXLOr27ZSmcQnEw((*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA7_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStmt__vJZwz9bfROKrfrtM50y74CQ_4)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!!(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 2))&31U)))!=0))) goto LA3_;
		result = semExprNoType__7YxUILpPxooC5qqa89a54dw_2(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* 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__3zDDdB9b7Qt20FH75Al61MA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typExpr) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
		if (!!((prev == NIM_NIL))) goto LA3_;
		result = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, (*typExpr).typ, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).sym = (*prev).sym;
		assignType__RDstL9c8H9bSHUphDz0iB0hg(prev, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semTypeof__O8zf75mcUwo9cfPQUQRaEug_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	t = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, n, 4);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	fixupTypeOf__3zDDdB9b7Qt20FH75Al61MA(c, prev, t);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (*t).typ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (!(prev == NIM_NIL)) goto LA3_;
		result = newTypeS__xb5E2cGIynZweqWlCP8Tig(kind, c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		result = prev;
		{
			if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30))) goto LA8_;
			(*result).kind = kind;
		}
		LA8_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semAnonTuple__O8zf75mcUwo9cfPQUQRaEug_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 0))) goto LA4_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_24, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18), prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
		it = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
					if (!(i_2 < colontmp_)) goto LA9;
					i = i_2;
					it = (*n)._kind_6.sons->data[i];
					T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T10_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, it, NIM_NIL);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, T10_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI) 1);
				} LA9: ;
			}
		}
	}
	}BeforeRet_: ;
	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__9bGgqEk7RXXl6eqM9c1HdELAsystem)(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__9bGgqEk7RXXl6eqM9c1HdELAsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipIntLit__PyQcLUUKkDYcpwke36Qpxgmagicsys)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*t).n == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = ((IL64(70866960384) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = copyType__4O4aYoscFPo2FRSh4rP9ayg(t, (*t).owner, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).n = NIM_NIL;
	}
	goto LA1_;
	LA5_: ;
	{
		result = t;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnresolvedSym__J1LR9bIUh18t4XFDmYEYBYw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	result = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4));
	{
		NIM_BOOL T3_;
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T10_;
		NIM_BOOL T13_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(result);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*s).typ == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = (((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 27))&63U)))!=0);
		if (T8_) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
		if (!(T10_)) goto LA11_;
		T10_ = isMetaType__aVxWxXLmf103vwE8uZ9cXRw((*s).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA11_: ;
		T8_ = T10_;
		LA9_: ;
		T7_ = T8_;
		if (T7_) goto LA12_;
		T13_ = (NIM_BOOL)0;
		T13_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
		if (!(T13_)) goto LA14_;
		T13_ = !((((*(*s).typ).flags & 100663296) == 0));
		LA14_: ;
		T7_ = T13_;
		LA12_: ;
		result = T7_;
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasUnresolvedArgs__iY9a3KG6T9aTt3fJH8J6BrJQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = isUnresolvedSym__J1LR9bIUh18t4XFDmYEYBYw((*n)._kind_4.sym);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
		ident = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, n, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		sym = searchInScopes__Drn1sJCJSwUUo03qKJigUw(c, ident);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((sym == NIM_NIL))) goto LA5_;
			result = isUnresolvedSym__J1LR9bIUh18t4XFDmYEYBYw(sym);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			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__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA11;
					i = i_2;
					{
						NIM_BOOL T14_;
						T14_ = (NIM_BOOL)0;
						T14_ = hasUnresolvedArgs__iY9a3KG6T9aTt3fJH8J6BrJQ(c, (*n)._kind_6.sons->data[i]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T14_) goto LA15_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA15_: ;
					i_2 += ((NI) 1);
				} LA11: ;
			}
		}
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semRangeAux__O8zf75mcUwo9cfPQUQRaEug_4)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw range;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
	tyArray__E1tCxfqiw3fNnaaIR5Kn2A rangeT;
	NIM_BOOL hasUnknownTypes;
	NIM_BOOL T16_;
	NIM_BOOL T17_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 3), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20), prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).n = T1_;
	T2_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		if (T5_) goto LA6_;
		T5_ = ((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		LA6_: ;
		if (!T5_) goto LA7_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_27), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_28, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA7_: ;
	nimZeroMem((void*)range, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T9_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 1)], 256);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	range[(((NI) 0))- 0] = T9_;
	T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T10_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 2)], 256);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	range[(((NI) 1))- 0] = T10_;
	nimZeroMem((void*)rangeT, sizeof(tyArray__E1tCxfqiw3fNnaaIR5Kn2A));
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
				if (!(res <= ((NI) 1))) goto LA13;
				i = res;
				T14_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T14_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*range[(i)- 0]).typ, IL64(1152921504606846976));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T15_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T15_ = skipIntLit__PyQcLUUKkDYcpwke36Qpxgmagicsys(T14_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				rangeT[(i)- 0] = T15_;
				res += ((NI) 1);
			} LA13: ;
		}
	}
	T16_ = (NIM_BOOL)0;
	T17_ = (NIM_BOOL)0;
	T17_ = (((NI) 0) < (*c).inGenericContext);
	if (!(T17_)) goto LA18_;
	T17_ = ((*rangeT[(((NI) 0))- 0]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61));
	LA18_: ;
	T16_ = T17_;
	if (T16_) goto LA19_;
	T16_ = ((*rangeT[(((NI) 1))- 0]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61));
	LA19_: ;
	hasUnknownTypes = T16_;
	{
		if (!!(hasUnknownTypes)) goto LA22_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T27_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T28_;
			NIM_BOOL T29_;
			T26_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T26_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(rangeT[(((NI) 0))- 0], 1048576);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T27_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T27_ = T26_;
			T28_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T28_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(rangeT[(((NI) 1))- 0], 1048576);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T29_ = (NIM_BOOL)0;
			T29_ = sameType__3isNyHKb0U1OCnClmflXSg(T27_, T28_, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T29_)) goto LA30_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_29), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_30, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA24_;
		LA30_: ;
		{
			NIM_BOOL T33_;
			NIM_BOOL T34_;
			NIM_BOOL T35_;
			T33_ = (NIM_BOOL)0;
			T34_ = (NIM_BOOL)0;
			T35_ = (NIM_BOOL)0;
			T35_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA(rangeT[(((NI) 0))- 0], NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T34_ = !(T35_);
			if (!(T34_)) goto LA36_;
			T34_ = !(((IL64(1030792151040) &((NU64)1<<((NU)((*rangeT[(((NI) 0))- 0]).kind)&63U)))!=0));
			LA36_: ;
			T33_ = T34_;
			if (T33_) goto LA37_;
			T33_ = ((*rangeT[(((NI) 0))- 0]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
			LA37_: ;
			if (!T33_) goto LA38_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_31), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_32, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA24_;
		LA38_: ;
		{
			NIM_BOOL T41_;
			NimStringDesc* T44_;
			NimStringDesc* T45_;
			T41_ = (NIM_BOOL)0;
			T41_ = enumHasHoles__YPjOkGV9axAnGR3UfLeWZ1g_3(rangeT[(((NI) 0))- 0]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T41_) goto LA42_;
			T44_ = (NimStringDesc*)0;
			T44_ = typeToString__QlvraUan7WbHowhAbvDvdA(rangeT[(((NI) 0))- 0], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T45_ = (NimStringDesc*)0;
			T45_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_33), T44_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T45_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_34, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA24_;
		LA42_: ;
		LA24_: ;
	}
	LA22_: ;
	{
		NI i_2;
		NI res_2;
		i_2 = (NI)0;
		res_2 = ((NI) 0);
		{
			while (1) {
				if (!(res_2 <= ((NI) 1))) goto LA48;
				i_2 = res_2;
				{
					NIM_BOOL T51_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T54_;
					T51_ = (NIM_BOOL)0;
					T51_ = hasUnresolvedArgs__iY9a3KG6T9aTt3fJH8J6BrJQ(c, range[(i_2)- 0]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T51_) goto LA52_;
					T54_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T54_ = makeStaticExpr__g3ODV709caO5lfQfPGeUxSQ(c, range[(i_2)- 0]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__P8dDSotTW25BkfbyspojGg((*result).n, T54_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)) & 63);
				}
				goto LA49_;
				LA52_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T56_;
					T56_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T56_ = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, range[(i_2)- 0]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__P8dDSotTW25BkfbyspojGg((*result).n, T56_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA49_: ;
				res_2 += ((NI) 1);
			} LA48: ;
		}
	}
	{
		NIM_BOOL T59_;
		NIM_BOOL T60_;
		tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA T62_;
		NIM_BOOL T64_;
		tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA T66_;
		T59_ = (NIM_BOOL)0;
		T60_ = (NIM_BOOL)0;
		T60_ = ((*(*(*result).n)._kind_6.sons->data[((NI) 0)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) && (*(*(*result).n)._kind_6.sons->data[((NI) 0)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18));
		if (!(T60_)) goto LA61_;
		T62_ = (tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA)0;
		T62_ = classify__x3IKzrz1VNvfZbypScSTXg((*(*(*result).n)._kind_6.sons->data[((NI) 0)])._kind_2.floatVal);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T60_ = (T62_ == ((tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA) 4));
		LA61_: ;
		T59_ = T60_;
		if (T59_) goto LA63_;
		T64_ = (NIM_BOOL)0;
		T64_ = ((*(*(*result).n)._kind_6.sons->data[((NI) 1)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) && (*(*(*result).n)._kind_6.sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18));
		if (!(T64_)) goto LA65_;
		T66_ = (tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA)0;
		T66_ = classify__x3IKzrz1VNvfZbypScSTXg((*(*(*result).n)._kind_6.sons->data[((NI) 1)])._kind_2.floatVal);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T64_ = (T66_ == ((tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA) 4));
		LA65_: ;
		T59_ = T64_;
		LA63_: ;
		if (!T59_) goto LA67_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_35), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_36, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA67_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T71_;
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T72_;
		T71_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T71_ = (*(*result).n)._kind_6.sons->data[((NI) 0)];
		T72_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T72_ = weakLeValue__u0tFw6hmOCjNH0Gl9c619aMw(T71_, (*(*result).n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T72_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1))) goto LA73_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_27), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_37, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA73_: ;
	(*result).sons->data[((NI) 0)] = rangeT[(((NI) 0))- 0];
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, freshType__MYPl0kqQUBUN3G45LDt6rwsem)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* res, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (!(prev == 0)) goto LA3_;
		result = copyType__4O4aYoscFPo2FRSh4rP9ayg(res, (*res).owner, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		result = res;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, maybeAliasType__xPYGnx9aHNqBtfJgpdvk0Eg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeExpr, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((1073898496 &((NU64)1<<((NU)((*typeExpr).kind)&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !((prev == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, typeExpr, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).sym = (*prev).sym;
		assignType__RDstL9c8H9bSHUphDz0iB0hg(prev, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semTypeExpr__O8zf75mcUwo9cfPQUQRaEug_5)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	n_2 = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, n, 256);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!((*(*n_2).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA3_;
		result = base__PfgI9ap7WOnsRfFV4znQ27w((*n_2).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = !((prev == NIM_NIL));
			if (!(T7_)) goto LA8_;
			T7_ = !(((*prev).sym == NIM_NIL));
			LA8_: ;
			if (!T7_) goto LA9_;
			{
				if (!((*result).sym == 0)) goto LA13_;
				(*result).sym = (*prev).sym;
				(*(*result).sym).typ = result;
			}
			goto LA11_;
			LA13_: ;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* alias;
				alias = maybeAliasType__xPYGnx9aHNqBtfJgpdvk0Eg(c, result, prev);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!!((alias == NIM_NIL))) goto LA18_;
					result = alias;
				}
				LA18_: ;
			}
			LA11_: ;
		}
		LA9_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T21_;
		NimStringDesc* T22_;
		NimStringDesc* T23_;
		T21_ = (*n_2).info;
		T22_ = (NimStringDesc*)0;
		T23_ = (NimStringDesc*)0;
		T23_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n_2, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T22_ = rawNewString((T23_ ? T23_->Sup.len : 0) + 24);
appendString(T22_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_40));
appendString(T22_, T23_);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T21_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T22_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_41, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newConstraint__QGpv9bqfXWWeJjJoCL6cRRA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag k) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51), c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(k, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipGenericInvocation__un0CMx5e9axSJU0IN3TyTiwsem)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = t;
	{
		if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA3_;
		result = (*result).sons->data[((NI) 0)];
	}
	LA3_: ;
	{
		while (1) {
			if (!((IL64(105553122561040) &((NU64)1<<((NU)((*result).kind)&63U)))!=0)) goto LA6;
			result = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA6: ;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addInheritedFieldsAux__ACSQTAVDG480Jn3p3wc7ug)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check, NI* pos, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA4_;
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_54), TM__rF9caJawfOjYTjsgLVUSGFA_55);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA4_: ;
		addInheritedFieldsAux__ACSQTAVDG480Jn3p3wc7ug(c, check, pos, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					switch ((*(*n)._kind_6.sons->data[i]).kind) {
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
						T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T10_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*n)._kind_6.sons->data[i]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						addInheritedFieldsAux__ACSQTAVDG480Jn3p3wc7ug(c, check, pos, T10_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					break;
					default:
					{
						internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_56), TM__rF9caJawfOjYTjsgLVUSGFA_57);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					break;
					}
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 140):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
	{
		{
			NI i_3;
			NI colontmp__2;
			NI colontmp__3;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__2 = ((NI) (((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86))));
			colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = colontmp__2;
			{
				while (1) {
					if (!(i_4 < colontmp__3)) goto LA15;
					i_3 = i_4;
					addInheritedFieldsAux__ACSQTAVDG480Jn3p3wc7ug(c, check, pos, (*n)._kind_6.sons->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_4 += ((NI) 1);
				} LA15: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		incl__jENnK9c9bPE73pKmo2vYjpqg(check, (*(*(*n)._kind_4.sym).name).Sup.id);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*pos) += ((NI) 1);
	}
	break;
	default:
	{
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_58), TM__rF9caJawfOjYTjsgLVUSGFA_59);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addInheritedFields__PxMjdK03AEVfD5NRj9bgcDg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check, NI* pos, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* obj) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		NI T4_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__5mJADrRYkP3r9auuiuDZN9cQast(obj);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (((NI) 0) < T4_);
		if (!(T3_)) goto LA5_;
		T3_ = !(((*obj).sons->data[((NI) 0)] == NIM_NIL));
		LA5_: ;
		if (!T3_) goto LA6_;
		T8_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T8_ = skipGenericInvocation__un0CMx5e9axSJU0IN3TyTiwsem((*obj).sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		addInheritedFields__PxMjdK03AEVfD5NRj9bgcDg(c, check, pos, T8_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA6_: ;
	addInheritedFieldsAux__ACSQTAVDG480Jn3p3wc7ug(c, check, pos, (*obj).n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NimStringDesc*, toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = resizeString(result, (info.Field0 ? info.Field0->Sup.len : 0) + 0);
appendString(result, info.Field0);
	{
		if (!(((NI) 0) < info.Field1)) goto LA3_;
		result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_67));
		addInt__mftMOxbyu0h4yByfs3sqjA((&result), ((NI64) (info.Field1)));
		{
			if (!(((NI) 0) < (NI)(info.Field2 + ((NI) 1)))) goto LA7_;
			result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_68));
			addInt__mftMOxbyu0h4yByfs3sqjA((&result), ((NI64) ((NI)(info.Field2 + ((NI) 1)))));
		}
		LA7_: ;
		result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_69));
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*(*c).currentScope).depthLevel <= ((NI) 2));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawPushProcCon__jWGpC0lY8vG9b1MhOYJ9cFiQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner) {
	tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* x;
	x = (tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ*)0;
	x = (tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ*) newObj((&NTI__GJ8qR6LTU9bYLzfOArsHTSg_), sizeof(tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ));
	(*x).owner = owner;
	(*x).next = (*c).p;
	(*c).p = x;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, referencesAnotherParam__cvWGVSvD9adrttq7iqjO7wA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* p) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
		if (!(T5_)) goto LA6_;
		T5_ = ((*(*n)._kind_4.sym).owner == p);
		LA6_: ;
		result = T5_;
		goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					{
						NIM_BOOL T13_;
						T13_ = (NIM_BOOL)0;
						T13_ = referencesAnotherParam__cvWGVSvD9adrttq7iqjO7wA((*n)._kind_6.sons->data[i], p);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						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__sF9cXBCC3k8saS0PTBUB9b8A)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* newType, NIM_BOOL check) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					T5_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T5_ = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(newType);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					changeType__sF9cXBCC3k8saS0PTBUB9b8A(c, (*n)._kind_6.sons->data[i], T5_, check);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tup;
		tup = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(newType, IL64(70368744187920));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*tup).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18)))) goto LA9_;
			{
				if (!((*tup).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA13_;
				goto BeforeRet_;
			}
			LA13_: ;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_82), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_83, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA7_;
		LA9_: ;
		{
			NIM_BOOL T16_;
			NI T17_;
			T16_ = (NIM_BOOL)0;
			T17_ = (NI)0;
			T17_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T16_ = (((NI) 0) < T17_);
			if (!(T16_)) goto LA18_;
			T16_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
			LA18_: ;
			if (!T16_) goto LA19_;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_4 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
						if (!(i_4 < colontmp__2)) goto LA23;
						i_3 = i_4;
						m = (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 0)];
						{
							if (!!(((*m).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA26_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*m).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_84), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_85, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
						LA26_: ;
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* f;
							if (!!(((*tup).n == NIM_NIL))) goto LA30_;
							f = getSymFromList__aHh3vzt6upPNMkKnONiMRw((*tup).n, (*(*m)._kind_4.sym).name, ((NI) 0));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T36_;
								NimStringDesc* T37_;
								if (!(f == NIM_NIL)) goto LA34_;
								T36_ = (*m).info;
								T37_ = (NimStringDesc*)0;
								T37_ = rawNewString(((*(*(*m)._kind_4.sym).name).s ? (*(*(*m)._kind_4.sym).name).s->Sup.len : 0) + 20);
appendString(T37_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_86));
appendString(T37_, (*(*(*m)._kind_4.sym).name).s);
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T36_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T37_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_87, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
							LA34_: ;
							changeType__sF9cXBCC3k8saS0PTBUB9b8A(c, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 1)], (*f).typ, check);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA28_;
						LA30_: ;
						{
							changeType__sF9cXBCC3k8saS0PTBUB9b8A(c, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 1)], (*tup).sons->data[i_3], check);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						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__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_6 = ((NI) 0);
				{
					while (1) {
						if (!(i_6 < colontmp__3)) goto LA42;
						i_5 = i_6;
						changeType__sF9cXBCC3k8saS0PTBUB9b8A(c, (*n)._kind_6.sons->data[i_5], (*tup).sons->data[i_5], check);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_6 += ((NI) 1);
					} LA42: ;
				}
			}
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		{
			NIM_BOOL T46_;
			NIM_BOOL T47_;
			NIM_BOOL T50_;
			NI64 value;
			T46_ = (NIM_BOOL)0;
			T47_ = (NIM_BOOL)0;
			T47_ = check;
			if (!(T47_)) goto LA48_;
			T47_ = !(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15)));
			LA48_: ;
			T46_ = T47_;
			if (!(T46_)) goto LA49_;
			T50_ = (NIM_BOOL)0;
			T50_ = sameType__3isNyHKb0U1OCnClmflXSg((*n).typ, newType, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T46_ = !(T50_);
			LA49_: ;
			if (!T46_) goto LA51_;
			value = (*n)._kind_1.intVal;
			{
				NIM_BOOL T55_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T56_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T58_;
				NimStringDesc* T61_;
				NimStringDesc* T62_;
				NimStringDesc* T63_;
				T55_ = (NIM_BOOL)0;
				T56_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*c).graph).config, newType);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T55_ = lt___xL5gyZrjbGMarSdRAXOo9ag_3(value, T56_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (T55_) goto LA57_;
				T58_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*c).graph).config, newType);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T55_ = lt___nr9cP9b0OL9cabygV9bo19cJgZA_3(T58_, value);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA57_: ;
				if (!T55_) goto LA59_;
				T61_ = (NimStringDesc*)0;
				T62_ = (NimStringDesc*)0;
				T62_ = nimInt64ToStr(value);
				T63_ = (NimStringDesc*)0;
				T63_ = typeToString__QlvraUan7WbHowhAbvDvdA(newType, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T61_ = rawNewString((T62_ ? T62_->Sup.len : 0) + (T63_ ? T63_->Sup.len : 0) + 19);
appendString(T61_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_88));
appendString(T61_, T62_);
appendString(T61_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_89));
appendString(T61_, T63_);
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T61_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_90, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA59_: ;
		}
		LA51_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
	{
		{
			NIM_BOOL T67_;
			NIM_BOOL T69_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T72_;
			tyArray__Re75IspeoxXy2oCZHwcRrA T73_;
			NimStringDesc* T74_;
			NimStringDesc* T75_;
			T67_ = (NIM_BOOL)0;
			T67_ = check;
			if (!(T67_)) goto LA68_;
			T69_ = (NIM_BOOL)0;
			T69_ = floatRangeCheck__RTbq1U5r9aGXeN20T54YASg((*n)._kind_2.floatVal, newType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T67_ = !(T69_);
			LA68_: ;
			if (!T67_) goto LA70_;
			T72_ = (*n).info;
			nimZeroMem((void*)T73_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T73_[0] = nimFloatToStr((*n)._kind_2.floatVal);
			T74_ = (NimStringDesc*)0;
			T74_ = typeToString__QlvraUan7WbHowhAbvDvdA(newType, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T73_[1] = T74_;
			T75_ = (NimStringDesc*)0;
			T75_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_91), T73_, 2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T72_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T75_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_92, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA70_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	(*n).typ = newType;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitNodePostMatch__t9cW9ai7WILQBcTRPAW4swfA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	x = skipConv__BH9abOhPX8pH0DnEWlRxmlw(arg);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6)));
		LA4_: ;
		if (!T3_) goto LA5_;
		changeType__sF9cXBCC3k8saS0PTBUB9b8A(c, x, formal, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	result = arg;
	result = skipHiddenSubConv__BH9abOhPX8pH0DnEWlRxmlw_2(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, instantiateProcType__1PhCjyNxyOAJRoRgfsrJDQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ* typeMap;
	tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg cl;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* originalParams;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T54_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T55_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pushInfoContext__uDLK9aoAOWwwFTev4NOwF7Q((*(*c).graph).config, info, ((NimStringDesc*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	typeMap = initLayeredTypeMap__B4ANHmRtTNsf0tY0IplCpw(pt);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)(&cl), sizeof(tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg));
	initTypeVars__EZn0NSR9cUjgZYKdEVkzwaA(c, typeMap, info, NIM_NIL, (&cl));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = instCopyType__cNsAY9aO2v1oTCPqZyHga1w_5((&cl), (*prc).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	originalParams = (*result).n;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(originalParams);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).n = T1_;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeToFit;
				NIM_BOOL needsStaticSkipping;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* oldParam;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T53_;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					if (!(((NI) 1) < i)) goto LA7_;
					resetIdTable__Z7fF0Wc4DSB4kCiKZ8rGfQ_2((&cl.symMap));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					resetIdTable__Z7fF0Wc4DSB4kCiKZ8rGfQ_2((&cl.localCache));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA7_: ;
				typeToFit = (*result).sons->data[i];
				needsStaticSkipping = ((*(*result).sons->data[i]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61));
				T9_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T9_ = replaceTypeVarsT__cNsAY9aO2v1oTCPqZyHga1w((&cl), (*result).sons->data[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).sons->data[i] = T9_;
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
					if (!needsStaticSkipping) goto LA12_;
					T14_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T14_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*result).sons->data[i], IL64(1152921504606846976));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result).sons->data[i] = T14_;
				}
				LA12_: ;
				{
					NIM_BOOL T17_;
					NIM_BOOL T18_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
					T17_ = (NIM_BOOL)0;
					T18_ = (NIM_BOOL)0;
					T18_ = !(((*typeToFit).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)));
					if (T18_) goto LA19_;
					T20_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T20_ = base__PfgI9ap7WOnsRfFV4znQ27w(typeToFit);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T18_ = !(((*T20_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)));
					LA19_: ;
					T17_ = T18_;
					if (!(T17_)) goto LA21_;
					T17_ = !(((*typeToFit).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60)));
					LA21_: ;
					if (!T17_) goto LA22_;
					typeToFit = (*result).sons->data[i];
				}
				LA22_: ;
				{
					NimStringDesc* argX60gensym184_;
					if (!!(((*(*originalParams)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA26_;
					argX60gensym184_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_81);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym184_, TM__rF9caJawfOjYTjsgLVUSGFA_81);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA26_: ;
				oldParam = (*(*originalParams)._kind_6.sons->data[i])._kind_4.sym;
				param = copySym__lIu8wX6Beq6dBJgESOFFjg(oldParam);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*param).owner = prc;
				(*param).typ = (*result).sons->data[i];
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* converted;
					if (!!(((*oldParam).ast == NIM_NIL))) goto LA30_;
					def = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*oldParam).ast);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27))) goto LA34_;
						{
							NI i_3;
							NI colontmp__2;
							NI i_4;
							i_3 = (NI)0;
							colontmp__2 = (NI)0;
							colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(def);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							i_4 = ((NI) 1);
							{
								while (1) {
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T39_;
									if (!(i_4 < colontmp__2)) goto LA38;
									i_3 = i_4;
									T39_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T39_ = replaceTypeVarsN__TMTYUYo5YIKojKgBmj9boOQ((&cl), (*def)._kind_6.sons->data[i_3], ((NI) 0));
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*def)._kind_6.sons->data[i_3] = T39_;
									i_4 += ((NI) 1);
								} LA38: ;
							}
						}
					}
					LA34_: ;
					def = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, def, 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T42_;
						NIM_BOOL T43_;
						T42_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
						T42_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T43_ = (NIM_BOOL)0;
						T43_ = referencesAnotherParam__cvWGVSvD9adrttq7iqjO7wA(def, T42_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T43_) goto LA44_;
						(*def).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 19)) & 31);
					}
					LA44_: ;
					converted = indexTypesMatch__8llRCFM4VdmgY27XJn2sRA(c, typeToFit, (*def).typ, def);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T50_;
						if (!(converted == NIM_NIL)) goto LA48_;
						T50_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T50_ = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, def);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*param).ast = T50_;
					}
					goto LA46_;
					LA48_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T52_;
						T52_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T52_ = fitNodePostMatch__t9cW9ai7WILQBcTRPAW4swfA(c, typeToFit, converted);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*param).ast = T52_;
					}
					LA46_: ;
					(*param).typ = (*result).sons->data[i];
				}
				LA30_: ;
				T53_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T53_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(param);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*(*result).n)._kind_6.sons->data[i] = T53_;
				propagateToOwner__SzeWf39bw6SALsrL5NDJWbQ(result, (*result).sons->data[i], NIM_TRUE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, param);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	resetIdTable__Z7fF0Wc4DSB4kCiKZ8rGfQ_2((&cl.symMap));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	resetIdTable__Z7fF0Wc4DSB4kCiKZ8rGfQ_2((&cl.localCache));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	cl.isReturnType = NIM_TRUE;
	T54_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T54_ = replaceTypeVarsT__cNsAY9aO2v1oTCPqZyHga1w((&cl), (*result).sons->data[((NI) 0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).sons->data[((NI) 0)] = T54_;
	cl.isReturnType = NIM_FALSE;
	T55_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T55_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*originalParams)._kind_6.sons->data[((NI) 0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*result).n)._kind_6.sons->data[((NI) 0)] = T55_;
	{
		if (!!(((*result).sons->data[((NI) 0)] == NIM_NIL))) goto LA58_;
		propagateToOwner__SzeWf39bw6SALsrL5NDJWbQ(result, (*result).sons->data[((NI) 0)], NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA58_: ;
	eraseVoidParams__w2l6CVu9bYn8M06fJcMTkHw(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	skipIntLiteralParams__w2l6CVu9bYn8M06fJcMTkHw_2(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*prc).typ = result;
	popInfoContext__O9arH9bYenXLOr27ZSmcQnEw((*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameInstantiation__bGmhq9bb8pFOkYidfiwlp5w)(tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA a, tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA b) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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__oyXq5u7iL4RjsT9bovvTE9cg(a.concreteTypes->data[i], b.concreteTypes->data[i], ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 0), 36);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						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__JpsEh5i1AcKChGYbg7aV4w*, genericCacheGet__yrVWUjVCLM4qNMOOOoQryQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* genericSym, tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA entry, NI id) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA** inst;
		tySequence__DXS6mEo7PVUFJkirsQ9bNQA* colontmp_;
		NI i;
		NI L;
		NI T2_;
		inst = (tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA**)0;
		colontmp_ = (tySequence__DXS6mEo7PVUFJkirsQ9bNQA*)0;
		colontmp_ = (*genericSym)._kind_2.procInstCache;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				inst = &colontmp_->data[i];
				{
					NIM_BOOL T7_;
					NIM_BOOL T8_;
					T7_ = (NIM_BOOL)0;
					T8_ = (NIM_BOOL)0;
					T8_ = ((*(*inst)).compilesId == ((NI) 0));
					if (T8_) goto LA9_;
					T8_ = ((*(*inst)).compilesId == id);
					LA9_: ;
					T7_ = T8_;
					if (!(T7_)) goto LA10_;
					T7_ = sameInstantiation__bGmhq9bb8pFOkYidfiwlp5w(entry, (*(*inst)));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					LA10_: ;
					if (!T7_) goto LA11_;
					result = (*(*inst)).sym;
					goto BeforeRet_;
				}
				LA11_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, fieldVisible__9bfgTfDbdDjqc3nAFjdnkKwsigmatch)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* f) {
	NIM_BOOL result;
	NI fmoduleId;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T1_;
	NIM_BOOL T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = getModule__xfh8ar7fDxVX2A4OO9b5sqQ(f);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	fmoduleId = (*T1_).Sup.id;
	T2_ = (NIM_BOOL)0;
	T2_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 1))&63U)))!=0);
	if (T2_) goto LA3_;
	T2_ = (fmoduleId == (*(*c).module).Sup.id);
	LA3_: ;
	result = T2_;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** module;
		NI i;
		NI L;
		NI T5_;
		module = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
		i = ((NI) 0);
		T5_ = ((*c).friendModules ? (*c).friendModules->Sup.len : 0);
		L = T5_;
		{
			while (1) {
				if (!(i < L)) goto LA7;
				module = &(*c).friendModules->data[i];
				{
					if (!(fmoduleId == (*(*module)).Sup.id)) goto LA10_;
					result = NIM_TRUE;
					goto LA4;
				}
				LA10_: ;
				i += ((NI) 1);
			} LA7: ;
		}
	} LA4: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addObjFieldsToLocalScope__NRIJDWZtATzMum7OEjYC2g)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					addObjFieldsToLocalScope__NRIJDWZtATzMum7OEjYC2g(c, (*n)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		{
			NI T8_;
			T8_ = (NI)0;
			T8_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI) 0) < T8_)) goto LA9_;
			addObjFieldsToLocalScope__NRIJDWZtATzMum7OEjYC2g(c, (*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 1);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA13;
					i_3 = i_4;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
						if (!((*(*n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85) || (*(*n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88))) goto LA16_;
						T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T18_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*n)._kind_6.sons->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						addObjFieldsToLocalScope__NRIJDWZtATzMum7OEjYC2g(c, T18_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA16_: ;
					i_4 += ((NI) 1);
				} LA13: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* f;
		f = (*n)._kind_4.sym;
		{
			NIM_BOOL T22_;
			NIM_BOOL T26_;
			T22_ = (NIM_BOOL)0;
			T22_ = ((*f).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19));
			if (!(T22_)) goto LA23_;
			T22_ = fieldVisible__9bfgTfDbdDjqc3nAFjdnkKwsigmatch(c, f);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA23_: ;
			if (!T22_) goto LA24_;
			T26_ = (NIM_BOOL)0;
			T26_ = strTableIncl__4C9ciVlXutN6a0CSSeSkVDA((&(*(*c).currentScope).symbols), f, NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*f).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
		}
		LA24_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, rawHandleSelf__jWGpC0lY8vG9b1MhOYJ9cFiQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*c).selfName == NIM_NIL));
		if (!(T4_)) goto LA5_;
		T4_ = ((258048 &(1U<<((NU)((*owner).kind)&31U)))!=0);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = !(((*owner).typ == NIM_NIL));
		LA6_: ;
		if (!T3_) goto LA7_;
		params = (*(*owner).typ).n;
		{
			NI T11_;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* arg;
			T11_ = (NI)0;
			T11_ = len__P89cqdlERShb9alU3iC0yj8wast(params);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI) 1) < T11_)) goto LA12_;
			arg = (*(*params)._kind_6.sons->data[((NI) 1)])._kind_4.sym;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
				if (!((*(*arg).name).Sup.id == (*(*c).selfName).Sup.id)) goto LA16_;
				(*(*c).p).selfSym = arg;
				(*arg).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34)) & 63);
				t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*(*c).p).selfSym).typ, IL64(36275087638309136));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					while (1) {
						if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA19;
						addObjFieldsToLocalScope__NRIJDWZtATzMum7OEjYC2g(c, (*t).n);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!((*t).sons->data[((NI) 0)] == NIM_NIL)) goto LA22_;
							goto LA18;
						}
						LA22_: ;
						t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(36275087638268176));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					} LA19: ;
				} LA18: ;
			}
			LA16_: ;
		}
		LA12_: ;
	}
	LA7_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, findEnforcedStaticType__9cRlRlKvV58Tq3YoHJJi1Rw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (!(t == NIM_NIL)) goto LA3_;
		result = NIM_NIL;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA7_;
		result = t;
		goto BeforeRet_;
	}
	LA7_: ;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56))) goto LA11_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ** s;
			NI i;
			NI L;
			NI T14_;
			s = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ**)0;
			i = ((NI) 0);
			T14_ = ((*t).sons ? (*t).sons->Sup.len : 0);
			L = T14_;
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
					if (!(i < L)) goto LA16;
					s = &(*t).sons->data[i];
					t_2 = findEnforcedStaticType__9cRlRlKvV58Tq3YoHJJi1Rw((*s));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!((t_2 == 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__pceuJlMM5di29a5a9cxxzXSQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* staticType;
		if (!(kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17))) goto LA3_;
		staticType = findEnforcedStaticType__9cRlRlKvV58Tq3YoHJJi1Rw((*param).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
			if (!!((staticType == NIM_NIL))) goto LA7_;
			a = copySym__lIu8wX6Beq6dBJgESOFFjg(param);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T9_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T9_ = base__PfgI9ap7WOnsRfFV4znQ27w(staticType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*a).typ = T9_;
			addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, a);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA5_;
		LA7_: ;
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* nn;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a_2;
			nn = getSysSym__9bvw79ck1FDiWpnBYh88rEfw((*c).graph, (*param).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_94));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			a_2 = copySym__lIu8wX6Beq6dBJgESOFFjg(param);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*a_2).typ = (*nn).typ;
			addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			if (!(((*param).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0)) goto LA14_;
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T20_;
				if (!((*param).owner == NIM_NIL)) goto LA18_;
				T20_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T20_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*param).owner = T20_;
			}
			LA18_: ;
		}
		goto LA12_;
		LA14_: ;
		{
			addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, param);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA12_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addResult__7eBNKE6IPVEZgtGluTicdQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw owner) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T7_;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T8_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = (owner == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
		if (T3_) goto LA4_;
		T3_ = !((t == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T7_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_95));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T8_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T8_ = T7_;
		T9_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T9_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		s = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11), T8_, T9_, info, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s).typ = t;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
		addParamOrResult__pceuJlMM5di29a5a9cxxzXSQ(c, s, owner);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*(*c).p).resultSym = s;
	}
	LA5_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addResultNode__NRIJDWZtATzMum7OEjYC2g_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!!(((*(*c).p).resultSym == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*(*c).p).resultSym);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(n, T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, isInlineIterator__EhCVbB6PynSh7XFAFVMiJAast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
	if (!(T2_)) goto LA3_;
	T2_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = !(((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9)));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, maybeAddResult__8H5d8d9cPCfbpMuDrerQMeQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* resultType;
		if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17))) goto LA3_;
		resultType = sysTypeFromName__tS9cwSHSUZLgy9baxOcGRlCQ((*c).graph, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_94));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		addResult__7eBNKE6IPVEZgtGluTicdQ(c, resultType, (*n).info, (*s).kind);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		addResultNode__NRIJDWZtATzMum7OEjYC2g_2(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		NIM_BOOL T8_;
		T6_ = (NIM_BOOL)0;
		T6_ = !(((*(*s).typ).sons->data[((NI) 0)] == NIM_NIL));
		if (!(T6_)) goto LA7_;
		T8_ = (NIM_BOOL)0;
		T8_ = isInlineIterator__EhCVbB6PynSh7XFAFVMiJAast((*s).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = !(T8_);
		LA7_: ;
		if (!T6_) goto LA9_;
		addResult__7eBNKE6IPVEZgtGluTicdQ(c, (*(*s).typ).sons->data[((NI) 0)], (*n).info, (*s).kind);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		addResultNode__NRIJDWZtATzMum7OEjYC2g_2(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA9_: ;
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, freshGenSyms__sniSZ3lXmsiJXk4n7qLgPw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* orig, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* symMap) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* x;
		tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA* T7_;
		RootObj* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		s = (*n)._kind_4.sym;
		T7_ = (tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA*)0;
		T7_ = &s->Sup;
		T8_ = (RootObj*)0;
		T8_ = idTableGet__K5M5T7J9c0H7M5ahfeRl8xw((*symMap), T7_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		x = ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) (T8_));
		{
			if (!!((x == NIM_NIL))) goto LA11_;
			(*n)._kind_4.sym = x;
		}
		goto LA9_;
		LA11_: ;
		{
			NIM_BOOL T14_;
			tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA* T18_;
			RootObj* T19_;
			T14_ = (NIM_BOOL)0;
			T14_ = ((*s).owner == NIM_NIL);
			if (T14_) goto LA15_;
			T14_ = ((*(*s).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 24));
			LA15_: ;
			if (!T14_) goto LA16_;
			x = copySym__lIu8wX6Beq6dBJgESOFFjg(s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*x).owner = owner;
			T18_ = (tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA*)0;
			T18_ = &s->Sup;
			T19_ = (RootObj*)0;
			T19_ = &x->Sup.Sup;
			idTablePut__anELyz7VLsjbCIoxLpxbfQ(symMap, T18_, T19_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_4.sym = x;
		}
		goto LA9_;
		LA16_: ;
		LA9_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA23;
					i = i_2;
					freshGenSyms__sniSZ3lXmsiJXk4n7qLgPw((*n)._kind_6.sons->data[i], owner, orig, symMap);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI) 1);
				} LA23: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == NIM_NIL);
	if (T1_) goto LA2_;
	T1_ = ((IL64(-9223372036854775680) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isAtom__ORlI8o1EUYdPqjuTcBWx1Aast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) <= (*n).kind);
	if (!(T1_)) goto LA2_;
	T1_ = ((*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fixNilType__NRIJDWZtATzMum7OEjYC2g_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isAtom__ORlI8o1EUYdPqjuTcBWx1Aast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T12_;
			NimStringDesc* T13_;
			NimStringDesc* T14_;
			T8_ = (NIM_BOOL)0;
			T8_ = !(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23)));
			if (!(T8_)) goto LA9_;
			T8_ = !(((*n).typ == NIM_NIL));
			LA9_: ;
			if (!T8_) goto LA10_;
			T12_ = (*n).info;
			T13_ = (NimStringDesc*)0;
			T13_ = typeToString__QlvraUan7WbHowhAbvDvdA((*n).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T14_ = (NimStringDesc*)0;
			T14_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_96), T13_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T12_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T14_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_97, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA10_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA16_;
		transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 115));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
			it = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA21;
						i = i_2;
						it = (*n)._kind_6.sons->data[i];
						fixNilType__NRIJDWZtATzMum7OEjYC2g_3(c, it);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_2 += ((NI) 1);
					} LA21: ;
				}
			}
		}
	}
	goto LA1_;
	LA16_: ;
	LA1_: ;
	(*n).typ = NIM_NIL;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, readTypeParameter__mu5r1rtNM9aogbn9cBVgqt3A)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* paramName, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((IL64(13510798882111488) &((NU64)1<<((NU)((*typ).kind)&63U)))!=0)) goto LA3_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* statement;
			statement = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast((*typ).n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA8;
						i = i_2;
						statement = (*(*typ).n)._kind_6.sons->data[i];
						switch ((*statement).kind) {
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
						{
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
								def = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								{
									NI i_3;
									NI colontmp__2;
									NI i_4;
									i_3 = (NI)0;
									colontmp__2 = (NI)0;
									colontmp__2 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(statement);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									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__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* foundType;
												tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T18_;
												tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T19_;
												if (!((*(*(*(*def)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).Sup.id == (*paramName).Sup.id)) goto LA16_;
												foundType = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(c, (*(*def)._kind_6.sons->data[((NI) 2)]).typ);
												if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
												T18_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
												T18_ = copySym__lIu8wX6Beq6dBJgESOFFjg((*(*def)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
												if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
												T19_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
												T19_ = linkTo__Lxy1G9c1I40y65cWkoPnssA(T18_, foundType);
												if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
												result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(T19_, info);
												if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
												goto BeforeRet_;
											}
											LA16_: ;
											i_4 += ((NI) 1);
										} LA13: ;
									}
								}
							}
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
						{
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def_2;
								def_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								{
									NI i_5;
									NI colontmp__3;
									NI i_6;
									i_5 = (NI)0;
									colontmp__3 = (NI)0;
									colontmp__3 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(statement);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									i_6 = ((NI) 0);
									{
										while (1) {
											if (!(i_6 < colontmp__3)) goto LA24;
											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).Sup.id == (*paramName).Sup.id)) goto LA27_;
												result = (*def_2)._kind_6.sons->data[((NI) 2)];
												goto BeforeRet_;
											}
											LA27_: ;
											i_6 += ((NI) 1);
										} LA24: ;
									}
								}
							}
						}
						break;
						default:
						{
						}
						break;
						}
						i_2 += ((NI) 1);
					} LA8: ;
				}
			}
		}
	}
	LA3_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tbody;
		if (!!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52)))) goto LA32_;
		{
			if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54))) goto LA36_;
			ty = skipGenericAlias__PfgI9ap7WOnsRfFV4znQ27w_3((*typ).sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA34_;
		LA36_: ;
		{
			ty = skipGenericAlias__PfgI9ap7WOnsRfFV4znQ27w_3(typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA34_: ;
		tbody = (*ty).sons->data[((NI) 0)];
		{
			NI s;
			NI colontmp__4;
			NI T40_;
			NI i_7;
			s = (NI)0;
			colontmp__4 = (NI)0;
			T40_ = (NI)0;
			T40_ = len__5mJADrRYkP3r9auuiuDZN9cQast(tbody);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp__4 = (NI)(T40_ - ((NI) 1));
			i_7 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tParam;
					if (!(i_7 < colontmp__4)) goto LA42;
					s = i_7;
					tParam = (*tbody).sons->data[s];
					{
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rawTyp;
						if (!((*(*(*tParam).sym).name).Sup.id == (*paramName).Sup.id)) goto LA45_;
						rawTyp = (*ty).sons->data[(NI)(s + ((NI) 1))];
						{
							if (!((*rawTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA49_;
							{
								if (!!(((*rawTyp).n == NIM_NIL))) goto LA53_;
								result = (*rawTyp).n;
								goto BeforeRet_;
							}
							goto LA51_;
							LA53_: ;
							{
								result = (*(*c).graph).emptyNode;
								goto BeforeRet_;
							}
							LA51_: ;
						}
						goto LA47_;
						LA49_: ;
						{
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* foundTyp;
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T57_;
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T58_;
							foundTyp = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(c, rawTyp);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T57_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
							T57_ = copySym__lIu8wX6Beq6dBJgESOFFjg((*tParam).sym);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T58_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
							T58_ = linkTo__Lxy1G9c1I40y65cWkoPnssA(T57_, foundTyp);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(T58_, info);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
						LA47_: ;
					}
					LA45_: ;
					i_7 += ((NI) 1);
				} LA42: ;
			}
		}
	}
	LA32_: ;
	result = NIM_NIL;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryReadingGenericParam__L5Nhi0f3LeGUlYzLEKJ7lw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* i, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
	{
		result = readTypeParameter__mu5r1rtNM9aogbn9cBVgqt3A(c, t, i, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
			if (!(result == (*(*c).graph).emptyNode)) goto LA4_;
			result = n;
			T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T6_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T7_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T7_ = makeTypeFromExpr__D2YW7F23KYvdV39aTScM3IQ(c, T6_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n).typ = T7_;
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
	{
		{
			if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0)) goto LA11_;
			result = readTypeParameter__mu5r1rtNM9aogbn9cBVgqt3A(c, t, i, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA9_;
		LA11_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
			T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T14_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T15_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T15_ = makeTypeFromExpr__D2YW7F23KYvdV39aTScM3IQ(c, T14_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n).typ = T15_;
			result = n;
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
		T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T17_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T18_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T18_ = makeTypeFromExpr__D2YW7F23KYvdV39aTScM3IQ(c, T17_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n).typ = T18_;
		result = n;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryReadingTypeField__6Ix9awqI9ax7ryNwTnzhRziw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* i, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty_2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	ty_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(ty, IL64(246290619301904));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch ((*ty_2).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* f;
		f = NIM_NIL;
		{
			while (1) {
				if (!!((ty_2 == NIM_NIL))) goto LA3;
				f = getSymFromList__aHh3vzt6upPNMkKnONiMRw((*ty_2).n, i, ((NI) 0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!!((f == NIM_NIL))) goto LA6_;
					goto LA2;
				}
				LA6_: ;
				ty_2 = (*ty_2).sons->data[((NI) 0)];
			} LA3: ;
		} LA2: ;
		{
			if (!!((f == NIM_NIL))) goto LA10_;
			result = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(f);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).info = (*n).info;
			(*result).typ = ty_2;
			markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, f);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NIM_BOOL T15_;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field;
			T15_ = (NIM_BOOL)0;
			T15_ = !(((*ty_2).n == NIM_NIL));
			if (!(T15_)) goto LA16_;
			T15_ = ((*(*ty_2).n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138));
			LA16_: ;
			if (!T15_) goto LA17_;
			field = lookupInRecord__gYQxUKQhlRY6yBu3Ll2TYg((*ty_2).n, i);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T23_;
				if (!!((field == NIM_NIL))) goto LA21_;
				T23_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T23_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(c, (*field).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n).typ = T23_;
				result = n;
			}
			LA21_: ;
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
		T25_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T25_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(ty_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = tryReadingTypeField__6Ix9awqI9ax7ryNwTnzhRziw(c, n, i, T25_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(result == NIM_NIL)) goto LA28_;
			result = tryReadingGenericParam__L5Nhi0f3LeGUlYzLEKJ7lw(c, n, i, ty_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA28_: ;
	}
	break;
	default:
	{
		result = tryReadingGenericParam__L5Nhi0f3LeGUlYzLEKJ7lw(c, n, i, ty_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTypeExpr__OiccTa3ruRNl9anoSqZh2Sg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, createSetType__rwLVyLHZXgxsg41zHjQWfg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19), c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, baseType, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, lookupInRecordAndBuildCheck__h4jJjDt0klDz9b1Aq9bwK14A)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* field, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** check) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	result = NIM_NIL;
	switch ((*r).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(r);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					result = lookupInRecordAndBuildCheck__h4jJjDt0klDz9b1Aq9bwK14A(c, n, (*r)._kind_6.sons->data[i], field, check);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!((result == NIM_NIL))) goto LA7_;
						goto BeforeRet_;
					}
					LA7_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* setType;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(r, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*(*r)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA12_;
			illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(r, (*(*c).graph).config);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA12_: ;
		result = lookupInRecordAndBuildCheck__h4jJjDt0klDz9b1Aq9bwK14A(c, n, (*r)._kind_6.sons->data[((NI) 0)], field, check);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((result == NIM_NIL))) goto LA16_;
			goto BeforeRet_;
		}
		LA16_: ;
		setType = createSetType__rwLVyLHZXgxsg41zHjQWfg(c, (*(*r)._kind_6.sons->data[((NI) 0)]).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		s = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (*r).info, setType);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(r);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					if (!(i_4 < colontmp__2)) goto LA20;
					i_3 = i_4;
					it = (*r)._kind_6.sons->data[i_3];
					switch ((*it).kind) {
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
						T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T22_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						result = lookupInRecordAndBuildCheck__h4jJjDt0klDz9b1Aq9bwK14A(c, n, T22_, field, check);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!(result == 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__P89cqdlERShb9alU3iC0yj8wast(it);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								colontmp__3 = (NI)(T28_ - ((NI) 1));
								i_5 = ((NI) 0);
								{
									while (1) {
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
										if (!(i_5 < colontmp__3)) goto LA30;
										j = i_5;
										T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
										T31_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*it)._kind_6.sons->data[j]);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										add__P8dDSotTW25BkfbyspojGg(s, T31_);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										i_5 += ((NI) 1);
									} LA30: ;
								}
							}
						}
						goto LA23_;
						LA25_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* inExpr;
							tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T43_;
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T44_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T45_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T46_;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
								if (!((*check) == NIM_NIL)) goto LA35_;
								T37_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T37_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46), (*n).info);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*check) = T37_;
								add__P8dDSotTW25BkfbyspojGg((*check), (*(*c).graph).emptyNode);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA35_: ;
							s = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (*n).info, setType);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								NI j_2;
								NI colontmp__4;
								NI T39_;
								NI i_6;
								j_2 = (NI)0;
								colontmp__4 = (NI)0;
								T39_ = (NI)0;
								T39_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								colontmp__4 = (NI)(T39_ - ((NI) 1));
								i_6 = ((NI) 0);
								{
									while (1) {
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T42_;
										if (!(i_6 < colontmp__4)) goto LA41;
										j_2 = i_6;
										T42_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
										T42_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*it)._kind_6.sons->data[j_2]);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										add__P8dDSotTW25BkfbyspojGg(s, T42_);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										i_6 += ((NI) 1);
									} LA41: ;
								}
							}
							T43_ = (*n).info;
							T44_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T44_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							inExpr = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T43_, T44_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T45_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T45_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig((*(*c).graph).opContains, (*n).info);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(inExpr, T45_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(inExpr, s);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T46_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T46_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*r)._kind_6.sons->data[((NI) 0)]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(inExpr, T46_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg((*check), inExpr);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
						LA23_: ;
					}
					break;
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T48_;
						T48_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T48_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						result = lookupInRecordAndBuildCheck__h4jJjDt0klDz9b1Aq9bwK14A(c, n, T48_, field, check);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* inExpr_2;
							tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T58_;
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T59_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T60_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T61_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* notExpr;
							tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T62_;
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T63_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T64_;
							if (!!((result == NIM_NIL))) goto LA51_;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T57_;
								if (!((*check) == NIM_NIL)) goto LA55_;
								T57_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T57_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46), (*n).info);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*check) = T57_;
								add__P8dDSotTW25BkfbyspojGg((*check), (*(*c).graph).emptyNode);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA55_: ;
							T58_ = (*n).info;
							T59_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T59_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							inExpr_2 = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T58_, T59_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T60_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T60_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig((*(*c).graph).opContains, (*n).info);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(inExpr_2, T60_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(inExpr_2, s);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T61_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T61_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*r)._kind_6.sons->data[((NI) 0)]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(inExpr_2, T61_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T62_ = (*n).info;
							T63_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T63_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							notExpr = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T62_, T63_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T64_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T64_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig((*(*c).graph).opNot, (*n).info);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(notExpr, T64_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(notExpr, inExpr_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg((*check), notExpr);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
						LA51_: ;
					}
					break;
					default:
					{
						illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(it, (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					break;
					}
					i_4 += ((NI) 1);
				} LA20: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			if (!((*(*(*r)._kind_4.sym).name).Sup.id == (*field).Sup.id)) goto LA69_;
			result = (*r)._kind_4.sym;
		}
		LA69_: ;
	}
	break;
	default:
	{
		illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeDeref__wWBimsBS4M6UZBvTRDlQTQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = (*n).typ;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(13510798882111488) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		t = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(105553116268560));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = n;
	{
		if (!((IL64(140737496743936) &((NU64)1<<((NU)((*t).kind)&63U)))!=0)) goto LA9_;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65), (*n).info, (*t).sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(105553116268560));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA9_: ;
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseTyp;
			if (!((6291456 &((NU64)1<<((NU)((*t).kind)&63U)))!=0)) goto LA12;
			a = result;
			baseTyp = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65), (*n).info, baseTyp);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(result, a);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(baseTyp, IL64(105553116268560));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA12: ;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, builtinFieldAccess__vJZwz9bfROKrfrtM50y74CQ_5)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* i;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* f;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag(c, n, 7);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((s == NIM_NIL))) goto LA3_;
		{
			if (!((520256 &(1U<<((NU)((*s).kind)&31U)))!=0)) goto LA7_;
			result = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA11_;
				result = semSym__20OKsvfFnNZXONk4IBzYgg(c, n, s, flags);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA11_: ;
		}
		goto LA5_;
		LA7_: ;
		{
			markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).info, s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = semSym__20OKsvfFnNZXONk4IBzYgg(c, n, s, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA5_: ;
		goto BeforeRet_;
	}
	LA3_: ;
	T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T14_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 0)], (flags | 256));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 0)] = T14_;
	i = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*n)._kind_6.sons->data[((NI) 1)], n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	ty = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
	f = NIM_NIL;
	result = NIM_NIL;
	{
		if (!((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA17_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
			T21_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T21_ = base__PfgI9ap7WOnsRfFV4znQ27w(ty);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((*T21_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA22_;
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T26_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T30_;
				T26_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T26_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!(((*T26_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17)))) goto LA27_;
				T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T29_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T30_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T30_ = makeTypeFromExpr__D2YW7F23KYvdV39aTScM3IQ(c, T29_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n).typ = T30_;
				result = n;
				goto BeforeRet_;
			}
			goto LA24_;
			LA27_: ;
			{
				result = NIM_NIL;
				goto BeforeRet_;
			}
			LA24_: ;
		}
		goto LA19_;
		LA22_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T33_;
			T33_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T33_ = base__PfgI9ap7WOnsRfFV4znQ27w(ty);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = tryReadingTypeField__6Ix9awqI9ax7ryNwTnzhRziw(c, n, i, T33_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		LA19_: ;
	}
	goto LA15_;
	LA17_: ;
	{
		NIM_BOOL T35_;
		T35_ = (NIM_BOOL)0;
		T35_ = isTypeExpr__OiccTa3ruRNl9anoSqZh2Sg_2((*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T35_) goto LA36_;
		result = tryReadingTypeField__6Ix9awqI9ax7ryNwTnzhRziw(c, n, i, ty);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	goto LA15_;
	LA36_: ;
	LA15_: ;
	{
		NIM_BOOL T40_;
		T40_ = (NIM_BOOL)0;
		T40_ = ((IL64(13510798882111488) &((NU64)1<<((NU)((*ty).kind)&63U)))!=0);
		if (!(T40_)) goto LA41_;
		T40_ = (((*ty).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
		LA41_: ;
		if (!T40_) goto LA42_;
		ty = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(ty);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA42_: ;
	ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(ty, IL64(246290619303952));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		while (1) {
			if (!(((*ty).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 32))&63U)))!=0)) goto LA45;
			ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(ty, 8192);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA45: ;
	}
	check = NIM_NIL;
	{
		if (!((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA48_;
		{
			while (1) {
				check = NIM_NIL;
				f = lookupInRecordAndBuildCheck__h4jJjDt0klDz9b1Aq9bwK14A(c, n, (*ty).n, i, &check);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!!((f == NIM_NIL))) goto LA54_;
					goto LA50;
				}
				LA54_: ;
				{
					if (!((*ty).sons->data[((NI) 0)] == NIM_NIL)) goto LA58_;
					goto LA50;
				}
				LA58_: ;
				ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*ty).sons->data[((NI) 0)], IL64(36275087638268176));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
		} LA50: ;
		{
			NIM_BOOL visibilityCheckNeeded;
			if (!!((f == NIM_NIL))) goto LA62_;
			{
				NIM_BOOL T66_;
				T66_ = (NIM_BOOL)0;
				T66_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T66_)) goto LA67_;
				T66_ = ((*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym == f);
				LA67_: ;
				if (!T66_) goto LA68_;
				visibilityCheckNeeded = NIM_FALSE;
			}
			goto LA64_;
			LA68_: ;
			{
				visibilityCheckNeeded = NIM_TRUE;
			}
			LA64_: ;
			{
				NIM_BOOL T73_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T77_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T78_;
				T73_ = (NIM_BOOL)0;
				T73_ = !(visibilityCheckNeeded);
				if (T73_) goto LA74_;
				T73_ = fieldVisible__9bfgTfDbdDjqc3nAFjdnkKwsigmatch(c, f);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA74_: ;
				if (!T73_) goto LA75_;
				markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).info, f);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T77_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T77_ = makeDeref__wWBimsBS4M6UZBvTRDlQTQ((*n)._kind_6.sons->data[((NI) 0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 0)] = T77_;
				T78_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T78_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(f);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 1)] = T78_;
				(*n).typ = (*f).typ;
				{
					if (!(check == NIM_NIL)) goto LA81_;
					result = n;
				}
				goto LA79_;
				LA81_: ;
				{
					(*check)._kind_6.sons->data[((NI) 0)] = n;
					(*check).typ = (*n).typ;
					result = check;
				}
				LA79_: ;
			}
			LA75_: ;
		}
		LA62_: ;
	}
	goto LA46_;
	LA48_: ;
	{
		NIM_BOOL T85_;
		T85_ = (NIM_BOOL)0;
		T85_ = ((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		if (!(T85_)) goto LA86_;
		T85_ = !(((*ty).n == NIM_NIL));
		LA86_: ;
		if (!T85_) goto LA87_;
		f = getSymFromList__aHh3vzt6upPNMkKnONiMRw((*ty).n, i, ((NI) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T93_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T94_;
			if (!!((f == NIM_NIL))) goto LA91_;
			markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).info, f);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T93_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T93_ = makeDeref__wWBimsBS4M6UZBvTRDlQTQ((*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 0)] = T93_;
			T94_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T94_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(f);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 1)] = T94_;
			(*n).typ = (*f).typ;
			result = n;
		}
		LA91_: ;
	}
	goto LA46_;
	LA87_: ;
	LA46_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		if (!(result == NIM_NIL)) goto LA97_;
		t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(246290619301904));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = tryReadingGenericParam__L5Nhi0f3LeGUlYzLEKJ7lw(c, n, i, t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA97_: ;
	}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);
}
static N_INLINE(void, unsureAsgnRef)(void** dest, void* src) {
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(void, semOpAux__NRIJDWZtATzMum7OEjYC2g_4)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T6_;
					NI T8_;
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
					tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T11_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33));
					if (!(T6_)) goto LA7_;
					T8_ = (NI)0;
					T8_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T6_ = (T8_ == ((NI) 2));
					LA7_: ;
					if (!T6_) goto LA9_;
					info = (*(*a)._kind_6.sons->data[((NI) 0)]).info;
					T11_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
					T11_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*a)._kind_6.sons->data[((NI) 0)], a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T12_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T11_, info);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*a)._kind_6.sons->data[((NI) 0)] = T12_;
					T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T13_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*a)._kind_6.sons->data[((NI) 1)], 256);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*a)._kind_6.sons->data[((NI) 1)] = T13_;
					(*a).typ = (*(*a)._kind_6.sons->data[((NI) 1)]).typ;
				}
				goto LA4_;
				LA9_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
					T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T15_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, a, 256);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i] = T15_;
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyExcept__fBlFhtX9baijQaFTBKid83w)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI j;
		NI colontmp_;
		NI i_2;
		j = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				j = i_2;
				{
					if (!!((j == i))) goto LA6_;
					add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[j]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA6_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	info = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	markUsed__QlWTWY7567sCdiTkeUTTDA(c, info, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	pushInfoContext__uDLK9aoAOWwwFTev4NOwF7Q((*(*c).graph).config, (*n).info, (*(*s).name).s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = evalTemplate__MnrgLhOl4U6sn3rRD19cz9bA(n, s, T1_, (*(*c).graph).config, (*c).cache, (*c).templInstCounter, ((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 16))&31U)))!=0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 13))&31U)))!=0))) goto LA4_;
		result = semAfterMacroCall__Hw66264lMkoOE49a7wqbwsQ(c, n, result, s, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	popInfoContext__O9arH9bYenXLOr27ZSmcQnEw((*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).info = info;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProcAnnotation__Uz9bZ6N7ZeTxuwI9b9cYeOeYw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prc, tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	n = (*prc)._kind_6.sons->data[((NI) 4)];
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (n == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T47_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r;
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m;
					it = (*n)._kind_6.sons->data[i];
					{
						NIM_BOOL T13_;
						NI T15_;
						T13_ = (NIM_BOOL)0;
						T13_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28));
						if (!(T13_)) goto LA14_;
						T15_ = (NI)0;
						T15_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T13_ = (((NI) 1) <= T15_);
						LA14_: ;
						if (!T13_) goto LA16_;
						key = (*it)._kind_6.sons->data[((NI) 0)];
					}
					goto LA11_;
					LA16_: ;
					{
						key = it;
					}
					LA11_: ;
					{
						tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T21_;
						T21_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
						T21_ = whichPragma__Pjztiiq9bHmTTxDuLd39cNRw(it);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!!((T21_ == ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 0)))) goto LA22_;
						goto LA10;
					}
					goto LA19_;
					LA22_: ;
					{
						tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
						ident = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, key, NIM_NIL);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T27_;
							T27_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
							T27_ = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ((*c).userPragmas, ident);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!((T27_ == NIM_NIL))) goto LA28_;
							goto LA10;
						}
						goto LA25_;
						LA28_: ;
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
							sym = searchInScopes__Drn1sJCJSwUUo03qKJigUw(c, ident);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								NIM_BOOL T33_;
								T33_ = (NIM_BOOL)0;
								T33_ = !((sym == NIM_NIL));
								if (!(T33_)) goto LA34_;
								T33_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0);
								LA34_: ;
								if (!T33_) goto LA35_;
								goto LA10;
							}
							LA35_: ;
						}
						LA25_: ;
					}
					LA19_: ;
					x = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*key).info);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__P8dDSotTW25BkfbyspojGg(x, key);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NIM_BOOL T39_;
						NI T41_;
						T39_ = (NIM_BOOL)0;
						T39_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28));
						if (!(T39_)) goto LA40_;
						T41_ = (NI)0;
						T41_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						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__P89cqdlERShb9alU3iC0yj8wast(it);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							i_4 = ((NI) 1);
							{
								while (1) {
									if (!(i_4 < colontmp__2)) goto LA46;
									i_3 = i_4;
									add__P8dDSotTW25BkfbyspojGg(x, (*it)._kind_6.sons->data[i_3]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									i_4 += ((NI) 1);
								} LA46: ;
							}
						}
					}
					LA42_: ;
					T47_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T47_ = copyExcept__fBlFhtX9baijQaFTBKid83w(n, i);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*prc)._kind_6.sons->data[((NI) 4)] = T47_;
					{
						NIM_BOOL T50_;
						NI T52_;
						T50_ = (NIM_BOOL)0;
						T50_ = !(((*(*prc)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
						if (!(T50_)) goto LA51_;
						T52_ = (NI)0;
						T52_ = len__P89cqdlERShb9alU3iC0yj8wast((*prc)._kind_6.sons->data[((NI) 4)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T50_ = (T52_ == ((NI) 0));
						LA51_: ;
						if (!T50_) goto LA53_;
						(*prc)._kind_6.sons->data[((NI) 4)] = (*(*c).graph).emptyNode;
					}
					LA53_: ;
					add__P8dDSotTW25BkfbyspojGg(x, prc);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					r = semOverloadedCall__pBkKnME6t9c8v6khuDD76Fg(c, x, x, 393216, 262144);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!(r == NIM_NIL)) goto LA57_;
						(*prc)._kind_6.sons->data[((NI) 4)] = n;
						goto LA10;
					}
					LA57_: ;
					{
						if (!!(((*(*r)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA61_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_98));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA61_: ;
					m = (*(*r)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
					switch ((*m).kind) {
					case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
					{
						result = semMacroExpr__GFpnqBAgGBu4p8rc0WsOTw(c, r, r, m, 0);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					break;
					case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
					{
						result = semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog(c, r, m, 0);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					break;
					default:
					{
						(*prc)._kind_6.sons->data[((NI) 4)] = n;
						goto LA10;
					}
					break;
					}
					{
						if (!!(!((result == NIM_NIL)))) goto LA68_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_99));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA68_: ;
					{
						NIM_BOOL T72_;
						NIM_BOOL T73_;
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T78_;
						T72_ = (NIM_BOOL)0;
						T73_ = (NIM_BOOL)0;
						T73_ = ((*result).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) && (*result).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52) || (*result).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) && (*result).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159));
						if (!(T73_)) goto LA74_;
						T73_ = ((*(*result)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
						LA74_: ;
						T72_ = T73_;
						if (!(T72_)) goto LA75_;
						T72_ = !(((*(*result)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
						LA75_: ;
						if (!T72_) goto LA76_;
						T78_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
						T78_ = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
						pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, T78_, (*result)._kind_6.sons->data[((NI) 4)], validPragmas, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA76_: ;
					goto BeforeRet_;
				} LA10: ;
				i_2 += ((NI) 1);
			} LA9: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newSymG__z0Xq7x7aKOzONyxr8mX73A)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T13_;
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		result = (*n)._kind_4.sym;
		{
			tyArray__Re75IspeoxXy2oCZHwcRrA T9_;
			NimStringDesc* T10_;
			NimStringDesc* T11_;
			NimStringDesc* T12_;
			if (!!(((*result).kind == kind || (*result).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5)))) goto LA7_;
			nimZeroMem((void*)T9_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T10_ = (NimStringDesc*)0;
			T10_ = toHumanStr__QHyA5kxlk0TZf3p6IbMdtA((*result).kind);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T9_[0] = T10_;
			T11_ = (NimStringDesc*)0;
			T11_ = toHumanStr__QHyA5kxlk0TZf3p6IbMdtA(kind);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T9_[1] = T11_;
			T12_ = (NimStringDesc*)0;
			T12_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_100), T9_, 2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T12_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_101, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA7_: ;
		T13_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T13_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).owner = T13_;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T15_;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T16_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T17_;
		T15_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T15_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, n, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T16_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T16_ = T15_;
		T17_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T17_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newSym__IXbidcxhXTQGZY9abN63Cxg(kind, T16_, T17_, (*n).info, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, semIdentVis__gSt4lwrAK8GOXOIIBgGsog_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw allowed) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31))) goto LA3_;
		{
			NI T7_;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* v;
			T7_ = (NI)0;
			T7_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T7_ == ((NI) 2))) goto LA8_;
			result = newSymG__z0Xq7x7aKOzONyxr8mX73A(kind, (*n)._kind_6.sons->data[((NI) 1)], c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			v = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = ((allowed &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 1))&63U)))!=0);
				if (!(T12_)) goto LA13_;
				T12_ = ((*v).Sup.id == ((NI) 72));
				LA13_: ;
				if (!T12_) goto LA14_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 1)) & 63);
			}
			goto LA10_;
			LA14_: ;
			{
				{
					NimStringDesc* T21_;
					if (!!(((allowed &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 1))&63U)))!=0))) goto LA19_;
					T21_ = (NimStringDesc*)0;
					T21_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_103));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_104, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA17_;
				LA19_: ;
				{
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T23_;
					NimStringDesc* T24_;
					NimStringDesc* T25_;
					T23_ = (*(*n)._kind_6.sons->data[((NI) 0)]).info;
					T24_ = (NimStringDesc*)0;
					T24_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA((*n)._kind_6.sons->data[((NI) 0)], 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T25_ = (NimStringDesc*)0;
					T25_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_105), T24_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T23_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T25_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_106, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA17_: ;
			}
			LA10_: ;
		}
		goto LA5_;
		LA8_: ;
		{
			illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = newSymG__z0Xq7x7aKOzONyxr8mX73A(kind, n, c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, semIdentWithPragma__gSt4lwrAK8GOXOIIBgGsog)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw allowed) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA3_;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semIdentVis__gSt4lwrAK8GOXOIIBgGsog_2(c, kind, (*n)._kind_6.sons->data[((NI) 0)], allowed);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		switch (kind) {
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
		{
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19):
		{
			pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_107, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8):
		{
			pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_108, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9):
		{
			pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_108, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10):
		{
			pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_109, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		result = semIdentVis__gSt4lwrAK8GOXOIIBgGsog_2(c, kind, n, allowed);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getLineInfo__oiqk14Y4OLEhcR9bJBpfCag_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
	{
		result = getLineInfo__oiqk14Y4OLEhcR9bJBpfCag_2((*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
		result = getLineInfo__oiqk14Y4OLEhcR9bJBpfCag_2((*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = (*n).info;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, suggestSym__c4UsAt49bYALbZKCjgqOrCQsigmatch)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** usageSym, NIM_BOOL isDecl) {
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, semIdentDef__L2b79bZBCkiyCHeJkLWxPlQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		result = semIdentWithPragma__gSt4lwrAK8GOXOIIBgGsog(c, kind, n, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
	}
	goto LA1_;
	LA4_: ;
	{
		result = semIdentWithPragma__gSt4lwrAK8GOXOIIBgGsog(c, kind, n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*(*result).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6))) goto LA9_;
			(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
		}
		LA9_: ;
	}
	LA1_: ;
	(*result).options = (*(*(*c).graph).config).options;
	info = getLineInfo__oiqk14Y4OLEhcR9bJBpfCag_2(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T11_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
	T11_ = (*(*c).graph).config;
	suggestSym__c4UsAt49bYALbZKCjgqOrCQsigmatch(T11_, info, result, &(*(*c).graph).usageSym, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semGenericConstraints__XPC0ita29a0P9cMGViV9aayYQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tySequence__Ef05srmQTDulnBdXR4Ja6Q* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
	T1_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
	T1_->data[0] = x;
	result = newTypeWithSons__7doBlU1jfuQUQdCuB7BM4Q(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12), T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericParamList__00ZJT6x0WT6z8eBqr79cipw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75)))) goto LA3_;
		illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
				NI T12_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
				NI T13_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
				if (!(i_2 < colontmp_)) goto LA7;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				{
					if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35)))) goto LA10_;
					illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA10_: ;
				T12_ = (NI)0;
				T12_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				def = (*a)._kind_6.sons->data[(NI)(T12_ - ((NI) 1))];
				T13_ = (NI)0;
				T13_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				constraint = (*a)._kind_6.sons->data[(NI)(T13_ - ((NI) 2))];
				typ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				{
					if (!!(((*constraint).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA16_;
					typ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, constraint, NIM_NIL);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NIM_BOOL T20_;
						NI T22_;
						T20_ = (NIM_BOOL)0;
						T20_ = !(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60)));
						if (T20_) goto LA21_;
						T22_ = (NI)0;
						T22_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T20_ = (T22_ == ((NI) 0));
						LA21_: ;
						if (!T20_) goto LA23_;
						{
							if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA27_;
							{
								tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T33_;
								tySequence__Ef05srmQTDulnBdXR4Ja6Q* T34_;
								tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T35_;
								if (!((*(*typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA31_;
								T33_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
								T33_ = c;
								T34_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
								T34_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
								T35_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
								T35_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T34_->data[0] = T35_;
								typ = newTypeWithSons__7doBlU1jfuQUQdCuB7BM4Q(T33_, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8), T34_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
							}
							LA31_: ;
						}
						goto LA25_;
						LA27_: ;
						{
							typ = semGenericConstraints__XPC0ita29a0P9cMGViV9aayYQ(c, typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA25_: ;
					}
					LA23_: ;
				}
				LA16_: ;
				{
					if (!!(((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA39_;
					def = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, def);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!(typ == NIM_NIL)) goto LA43_;
						{
							tySequence__Ef05srmQTDulnBdXR4Ja6Q* T49_;
							if (!!(((*(*def).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)))) goto LA47_;
							T49_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
							T49_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
							T49_->data[0] = (*def).typ;
							typ = newTypeWithSons__7doBlU1jfuQUQdCuB7BM4Q(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), T49_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA47_: ;
					}
					goto LA41_;
					LA43_: ;
					{
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T51_;
						T51_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T51_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*def).typ, 256);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*def).typ = T51_;
						{
							NIM_BOOL T54_;
							T54_ = (NIM_BOOL)0;
							T54_ = containsGenericType__YPjOkGV9axAnGR3UfLeWZ1g_2((*def).typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(T54_)) goto LA55_;
							def = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, typ, def, (*def).info);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA55_: ;
					}
					LA41_: ;
				}
				LA39_: ;
				{
					if (!(typ == NIM_NIL)) goto LA59_;
					typ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12), c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!(father == NIM_NIL)) goto LA63_;
						(*typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30)) & 63);
					}
					LA63_: ;
				}
				LA59_: ;
				(*typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 25)) & 63);
				{
					NI j;
					NI colontmp__2;
					NI T66_;
					NI i_3;
					j = (NI)0;
					colontmp__2 = (NI)0;
					T66_ = (NI)0;
					T66_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					colontmp__2 = (NI)(T66_ - ((NI) 2));
					i_3 = ((NI) 0);
					{
						while (1) {
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* finalType;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* paramName;
							tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw covarianceFlag;
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
							NI T124_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T125_;
							if (!(i_3 < colontmp__2)) goto LA68;
							j = i_3;
							{
								if (!(j == ((NI) 0))) goto LA71_;
								finalType = typ;
							}
							goto LA69_;
							LA71_: ;
							{
								finalType = copyType__4O4aYoscFPo2FRSh4rP9ayg(typ, (*typ).owner, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA69_: ;
							paramName = (*a)._kind_6.sons->data[j];
							covarianceFlag = ((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9);
							{
								NI T76_;
								T76_ = (NI)0;
								T76_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(paramName);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!(T76_ == ((NI) 2))) goto LA77_;
								{
									NIM_BOOL T81_;
									T81_ = (NIM_BOOL)0;
									T81_ = NIM_TRUE;
									if (T81_) goto LA82_;
									T81_ = eqStrings((*(*(*paramName)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_110));
									LA82_: ;
									if (!T81_) goto LA83_;
									{
										NIM_BOOL T87_;
										tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T91_;
										NimStringDesc* T92_;
										NimStringDesc* T93_;
										T87_ = (NIM_BOOL)0;
										T87_ = (father == NIM_NIL);
										if (T87_) goto LA88_;
										T87_ = !((((*(*father).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0));
										LA88_: ;
										if (!T87_) goto LA89_;
										T91_ = (*paramName).info;
										T92_ = (NimStringDesc*)0;
										T92_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A((*paramName)._kind_6.sons->data[((NI) 0)]);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										T93_ = (NimStringDesc*)0;
										T93_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_111), T92_);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T91_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T93_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_112, NIM_FALSE);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									LA89_: ;
								}
								LA83_: ;
								{
									if (!eqStrings((*(*(*paramName)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_110))) goto LA96_;
									covarianceFlag = ((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 37);
								}
								goto LA94_;
								LA96_: ;
								{
									covarianceFlag = ((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 35);
								}
								LA94_: ;
								{
									if (!!((father == NIM_NIL))) goto LA101_;
									(*father).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 35)) & 63);
								}
								LA101_: ;
								paramName = (*paramName)._kind_6.sons->data[((NI) 1)];
							}
							LA77_: ;
							{
								NIM_BOOL T105_;
								tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T109_;
								T105_ = (NIM_BOOL)0;
								T105_ = ((*finalType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
								if (T105_) goto LA106_;
								T105_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0);
								LA106_: ;
								if (!T105_) goto LA107_;
								T109_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
								T109_ = newSymG__z0Xq7x7aKOzONyxr8mX73A(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4), paramName, c);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								s = linkTo__Lxy1G9c1I40y65cWkoPnssA(T109_, finalType);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							goto LA103_;
							LA107_: ;
							{
								tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T111_;
								T111_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
								T111_ = newSymG__z0Xq7x7aKOzONyxr8mX73A(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), paramName, c);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								s = linkTo__Lxy1G9c1I40y65cWkoPnssA(T111_, finalType);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA103_: ;
							{
								if (!!((covarianceFlag == ((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)))) goto LA114_;
								(*(*s).typ).flags |= ((NU64)1)<<((covarianceFlag) & 63);
							}
							LA114_: ;
							{
								if (!!(((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA118_;
								(*s).ast = def;
							}
							LA118_: ;
							{
								if (!!((father == NIM_NIL))) goto LA122_;
								addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(father, (*s).typ);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA122_: ;
							T124_ = (NI)0;
							T124_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*s).position = T124_;
							T125_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T125_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(s);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(result, T125_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								if (!!((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0))) goto LA128_;
								addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, s);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA128_: ;
							i_3 += ((NI) 1);
						} LA68: ;
					}
				}
				i_2 += ((NI) 1);
			} LA7: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, setGenericParamsMisc__7YxUILpPxooC5qqa89a54dw_6)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	orig = (*n)._kind_6.sons->data[((NI) 2)];
	result = semGenericParamList__00ZJT6x0WT6z8eBqr79cipw(c, orig, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		if (!((*(*n)._kind_6.sons->data[((NI) 5)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T5_[0] = (*(*c).graph).emptyNode;
		T5_[1] = orig;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), T5_, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 5)] = T6_;
	}
	goto LA1_;
	LA3_: ;
	{
		(*(*n)._kind_6.sons->data[((NI) 5)])._kind_6.sons->data[((NI) 1)] = orig;
	}
	LA1_: ;
	(*n)._kind_6.sons->data[((NI) 2)] = result;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newProcType__5gg5mq4XYRQKbAkdLMpzGA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25), prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w*)0;
	T1_ = lastOptionEntry__SQasfuhUR9aUpH0EyW9aFezg_2(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).callConv = (*T1_).defaultCC;
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76), info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).n = T2_;
	rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, NIM_NIL, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg((*result).n, T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semParamType__JfIbex3lv6r6Ex7T9a9cADuw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** constraint) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40))) goto LA3_;
		result = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = semNodeKindConstraints__h4580wUcWriTu1bx3JdXfA(n, (*(*c).graph).config, ((NI) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*constraint) = T5_;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T11_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27));
		if (!(T8_)) goto LA9_;
		T8_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56));
		LA9_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA10_;
		T11_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T11_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_ = eqStrings((*T11_).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_113));
		LA10_: ;
		if (!T7_) goto LA12_;
		result = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 1)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T14_ = semNodeKindConstraints__h4580wUcWriTu1bx3JdXfA(n, (*(*c).graph).config, ((NI) 2));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*constraint) = T14_;
	}
	goto LA1_;
	LA12_: ;
	{
		result = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, n, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMagic__aafCJ57RxmXkzBZMJ1lSSQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nPragmas;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nPragmas = (*(*sym).ast)._kind_6.sons->data[((NI) 4)];
	result = hasPragma__oSJ8Ge9caDJrmJG9brFCzlOg(nPragmas, ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 74));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmtSymbol__q2u7Xlf0LOsIed6IkVg52g)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, NIM_BOOL fromDotExpr) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
	switch ((*s).kind) {
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0):
	{
		result = n;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6):
	{
		result = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1), NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
	{
		{
			NIM_BOOL T6_;
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			NI T11_;
			T6_ = (NIM_BOOL)0;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T8_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0));
			if (!(T8_)) goto LA9_;
			T8_ = ((393216 &(1U<<((NU)((*s).kind)&31U)))!=0);
			LA9_: ;
			T7_ = T8_;
			if (!(T7_)) goto LA10_;
			T11_ = (NI)0;
			T11_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*s).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T7_ = (T11_ == ((NI) 1));
			LA10_: ;
			T6_ = T7_;
			if (!(T6_)) goto LA12_;
			T6_ = !(fromDotExpr);
			LA12_: ;
			if (!T6_) goto LA13_;
			result = semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog(c, n, s, 8192);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, result, 0, ctx);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA4_;
		LA13_: ;
		{
			result = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1), NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
	{
		{
			NIM_BOOL T19_;
			NIM_BOOL T20_;
			NIM_BOOL T21_;
			NI T24_;
			T19_ = (NIM_BOOL)0;
			T20_ = (NIM_BOOL)0;
			T21_ = (NIM_BOOL)0;
			T21_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0));
			if (!(T21_)) goto LA22_;
			T21_ = ((393216 &(1U<<((NU)((*s).kind)&31U)))!=0);
			LA22_: ;
			T20_ = T21_;
			if (!(T20_)) goto LA23_;
			T24_ = (NI)0;
			T24_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*s).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T20_ = (T24_ == ((NI) 1));
			LA23_: ;
			T19_ = T20_;
			if (!(T19_)) goto LA25_;
			T19_ = !(fromDotExpr);
			LA25_: ;
			if (!T19_) goto LA26_;
			result = semMacroExpr__GFpnqBAgGBu4p8rc0WsOTw(c, n, n, s, 8192);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, result, 0, ctx);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA17_;
		LA26_: ;
		{
			result = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1), NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4):
	{
		{
			NIM_BOOL T32_;
			T32_ = (NIM_BOOL)0;
			T32_ = !(((*s).typ == NIM_NIL));
			if (!(T32_)) goto LA33_;
			T32_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
			LA33_: ;
			if (!T32_) goto LA34_;
			{
				if (!!(((*(*s).typ).n == NIM_NIL))) goto LA38_;
				result = (*(*s).typ).n;
			}
			goto LA36_;
			LA38_: ;
			{
				result = n;
			}
			LA36_: ;
		}
		goto LA30_;
		LA34_: ;
		{
			result = newSymNodeTypeDesc__gg6DZ4kb59aQbmKe4ytsnvA(s, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA30_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3):
	{
		result = n;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
	{
		{
			NIM_BOOL T46_;
			T46_ = (NIM_BOOL)0;
			T46_ = !(((*s).typ == NIM_NIL));
			if (!(T46_)) goto LA47_;
			T46_ = (((*(*s).typ).flags & 100663296) == 0);
			LA47_: ;
			if (!T46_) goto LA48_;
			result = newSymNodeTypeDesc__gg6DZ4kb59aQbmKe4ytsnvA(s, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA44_;
		LA48_: ;
		{
			result = n;
		}
		LA44_: ;
	}
	break;
	default:
	{
		result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lookup__aVtCjYVuHV1t3poDWh43wA_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	ident = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, n, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = searchInScopes__Drn1sJCJSwUUo03qKJigUw(c, ident);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	s = skipAlias__5qYRPQsu9attXO2xg5lnFVQ(T1_, n, (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(s == NIM_NIL)) goto LA4_;
		s = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ((*c).pureEnumFields, ident);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = !((s == NIM_NIL));
			if (!(T8_)) goto LA9_;
			T8_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*c).ambiguousSymbols), (*s).Sup.id);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA9_: ;
			if (!T8_) goto LA10_;
			s = NIM_NIL;
		}
		LA10_: ;
	}
	LA4_: ;
	{
		if (!(s == NIM_NIL)) goto LA14_;
		{
			NIM_BOOL T18_;
			NIM_BOOL T19_;
			T18_ = (NIM_BOOL)0;
			T19_ = (NIM_BOOL)0;
			T19_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*ctx).toMixin), (*ident).Sup.id);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T18_ = !(T19_);
			if (!(T18_)) goto LA20_;
			T18_ = !(((flags &(1U<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 2))&7U)))!=0));
			LA20_: ;
			if (!T18_) goto LA21_;
			errorUndeclaredIdentifier__2jJM9bqw5w9caMyqez0JSuZw(c, (*n).info, (*ident).s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA21_: ;
	}
	goto LA12_;
	LA14_: ;
	{
		{
			NIM_BOOL T26_;
			T26_ = (NIM_BOOL)0;
			T26_ = ((flags &(1U<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 0))&7U)))!=0);
			if (T26_) goto LA27_;
			T26_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*ctx).toBind), (*s).Sup.id);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA27_: ;
			if (!T26_) goto LA28_;
			result = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA24_;
		LA28_: ;
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sX60gensym1941_;
			NIM_BOOL T31_;
			NIM_BOOL T33_;
			NIM_BOOL T34_;
			sX60gensym1941_ = s;
			T31_ = (NIM_BOOL)0;
			T31_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*ctx).toMixin), (*(*sX60gensym1941_).name).Sup.id);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T31_) goto LA32_;
			T33_ = (NIM_BOOL)0;
			T34_ = (NIM_BOOL)0;
			T34_ = ((flags &(1U<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 3))&7U)))!=0);
			if (!(T34_)) goto LA35_;
			T34_ = ((*sX60gensym1941_).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
			LA35_: ;
			T33_ = T34_;
			if (!(T33_)) goto LA36_;
			T33_ = ((OverloadableSyms__yJfP9bpZPSQn9bPO6KCo08fQ &(1U<<((NU)((*sX60gensym1941_).kind)&31U)))!=0);
			LA36_: ;
			T31_ = T33_;
			LA32_: ;
			if (!T31_) goto LA37_;
			result = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2), NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA24_;
		LA37_: ;
		{
			result = semGenericStmtSymbol__q2u7Xlf0LOsIed6IkVg52g(c, n, s, ctx, flags, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA24_: ;
	}
	LA12_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDot__9bgrXSJFYUNpBL6r2Dw4dwQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[((NI) 0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, b);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fuzzyLookup__AtVxV9cBv7sgERvmPI9aqfnA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx, NIM_BOOL* isMacro) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tySet_tyEnum_TLookupFlag__ObWMY5GMSl1GiMcrKaAhKQ luf;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!!(((flags &(1U<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 2))&7U)))!=0))) goto LA3_;
		luf = 6;
	}
	goto LA1_;
	LA3_: ;
	{
		luf = 4;
	}
	LA1_: ;
	s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag(c, n, luf);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((s == NIM_NIL))) goto LA8_;
		result = semGenericStmtSymbol__q2u7Xlf0LOsIed6IkVg52g(c, n, s, ctx, flags, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA6_;
	LA8_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T12_;
		T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[((NI) 0)], flags, ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T11_;
		result = n;
		n_2 = (*n)._kind_6.sons->data[((NI) 1)];
		ident = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, n_2, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T12_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T12_ = searchInScopes__Jp5sb3DT9aETEb2x58UOk6g(c, ident, 520192);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		s_2 = skipAlias__5qYRPQsu9attXO2xg5lnFVQ(T12_, n_2, (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((s_2 == NIM_NIL))) goto LA15_;
			(*isMacro) = ((393216 &(1U<<((NU)((*s_2).kind)&31U)))!=0);
			{
				NIM_BOOL T19_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
				T19_ = (NIM_BOOL)0;
				T19_ = ((flags &(1U<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 0))&7U)))!=0);
				if (T19_) goto LA20_;
				T19_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*ctx).toBind), (*s_2).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA20_: ;
				if (!T19_) goto LA21_;
				T23_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T23_ = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n_2, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = newDot__9bgrXSJFYUNpBL6r2Dw4dwQ(result, T23_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA17_;
			LA21_: ;
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sX60gensym1959_;
				NIM_BOOL T25_;
				NIM_BOOL T27_;
				NIM_BOOL T28_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
				sX60gensym1959_ = s_2;
				T25_ = (NIM_BOOL)0;
				T25_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*ctx).toMixin), (*(*sX60gensym1959_).name).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (T25_) goto LA26_;
				T27_ = (NIM_BOOL)0;
				T28_ = (NIM_BOOL)0;
				T28_ = ((flags &(1U<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 3))&7U)))!=0);
				if (!(T28_)) goto LA29_;
				T28_ = ((*sX60gensym1959_).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
				LA29_: ;
				T27_ = T28_;
				if (!(T27_)) goto LA30_;
				T27_ = ((OverloadableSyms__yJfP9bpZPSQn9bPO6KCo08fQ &(1U<<((NU)((*sX60gensym1959_).kind)&31U)))!=0);
				LA30_: ;
				T25_ = T27_;
				LA26_: ;
				if (!T25_) goto LA31_;
				T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T33_ = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n_2, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2), NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = newDot__9bgrXSJFYUNpBL6r2Dw4dwQ(result, T33_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA17_;
			LA31_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* syms;
				syms = semGenericStmtSymbol__q2u7Xlf0LOsIed6IkVg52g(c, n_2, s_2, ctx, flags, NIM_TRUE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* choice;
					if (!((*syms).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA37_;
					choice = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n_2, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2), NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(choice, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 56));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					result = newDot__9bgrXSJFYUNpBL6r2Dw4dwQ(result, choice);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA35_;
				LA37_: ;
				{
					result = newDot__9bgrXSJFYUNpBL6r2Dw4dwQ(result, syms);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA35_: ;
			}
			LA17_: ;
		}
		LA15_: ;
	}
	LA6_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMixinStmt__gk1t9bC9cmwHRhVJXF0sVfqA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* toMixin) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T4_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
				T4_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*n)._kind_6.sons->data[i], NIM_NIL);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				incl__jENnK9c9bPE73pKmo2vYjpqg(toMixin, (*T4_).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBindStmt__9askHuPxNsdv5Fi00VcmrXQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* toBind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag(c, a, 2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sc;
					if (!!((s == NIM_NIL))) goto LA6_;
					sc = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!((*sc).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA10_;
						incl__jENnK9c9bPE73pKmo2vYjpqg(toBind, (*(*sc)._kind_4.sym).Sup.id);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA8_;
					LA10_: ;
					{
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
							x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI i_3;
								NI colontmp__2;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__2 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(sc);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								i_4 = ((NI) 0);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA16;
										i_3 = i_4;
										x = (*sc)._kind_6.sons->data[i_3];
										incl__jENnK9c9bPE73pKmo2vYjpqg(toBind, (*(*x)._kind_4.sym).Sup.id);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										i_4 += ((NI) 1);
									} LA16: ;
								}
							}
						}
					}
					LA8_: ;
				}
				goto LA4_;
				LA6_: ;
				{
					illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a, (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmtScope__aVtCjYVuHV1t3poDWh43wA_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, n, flags, ctx);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newSymS__z0Xq7x7aKOzONyxr8mX73A_2)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T1_;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T2_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T1_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, n, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T2_ = T1_;
	T3_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T3_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newSym__IXbidcxhXTQGZY9abN63Cxg(kind, T2_, T3_, (*n).info, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getIdentNode__7YxUILpPxooC5qqa89a54dw_8)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
	{
		result = getIdentNode__7YxUILpPxooC5qqa89a54dw_8(c, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
		result = getIdentNode__7YxUILpPxooC5qqa89a54dw_8(c, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = n;
	}
	break;
	default:
	{
		illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = n;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addTempDecl__XjZLpvNqVUTx1J6TXREPBQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = getIdentNode__7YxUILpPxooC5qqa89a54dw_8(c, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	s = newSymS__z0Xq7x7aKOzONyxr8mX73A_2(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0), T1_, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	addPrelimDecl__aPXKqZJT9c7r7gT8X3uZAHw_4(c, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA4_;
		nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*n).info, s, kind);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmt__aVtCjYVuHV1t3poDWh43wA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		result = lookup__aVtCjYVuHV1t3poDWh43wA_2(c, n, flags, ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		NIM_BOOL dummy;
		dummy = (NIM_BOOL)0;
		result = fuzzyLookup__AtVxV9cBv7sgERvmPI9aqfnA(c, n, flags, ctx, (&dummy));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b;
		a = (*n)._kind_4.sym;
		b = getGenSym__pT6glwCH57hiSrY6Jp4rug(c, a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((b == a))) goto LA6_;
			(*n)._kind_4.sym = b;
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 55):
	{
		result = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[((NI) 0)], (flags | 1), ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
	{
		result = semMixinStmt__gk1t9bC9cmwHRhVJXF0sVfqA(c, n, (&(*ctx).toMixin));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122):
	{
		result = semBindStmt__9askHuPxNsdv5Fi00VcmrXQ(c, n, (&(*ctx).toBind));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fn;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		NI first;
		NIM_BOOL mixinContext;
		tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags_2;
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 1), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		fn = (*n)._kind_6.sons->data[((NI) 0)];
		s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag(c, fn, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			NIM_BOOL T17_;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T21_;
			NIM_BOOL T22_;
			NimStringDesc* T25_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T17_ = (NIM_BOOL)0;
			T17_ = (s == NIM_NIL);
			if (!(T17_)) goto LA18_;
			T17_ = ((12 & flags) == 0);
			LA18_: ;
			T16_ = T17_;
			if (!(T16_)) goto LA19_;
			T16_ = ((*fn).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2) || (*fn).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53));
			LA19_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA20_;
			T21_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T21_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, fn, NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T22_ = (NIM_BOOL)0;
			T22_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*ctx).toMixin), (*T21_).Sup.id);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T15_ = !(T22_);
			LA20_: ;
			if (!T15_) goto LA23_;
			T25_ = (NimStringDesc*)0;
			T25_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(fn, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			errorUndeclaredIdentifier__2jJM9bqw5w9caMyqez0JSuZw(c, (*n).info, T25_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA23_: ;
		first = ((flags &(1U<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 3))&7U)))!=0);
		mixinContext = NIM_FALSE;
		{
			tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA whichChoice;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sc;
			if (!!((s == NIM_NIL))) goto LA28_;
			(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
			mixinContext = ((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 1) || (*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 2) || (*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 3) || (*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 4) || (*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 140));
			{
				NIM_BOOL T32_;
				T32_ = (NIM_BOOL)0;
				T32_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*ctx).toBind), (*s).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T32_) goto LA33_;
				whichChoice = ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0);
			}
			goto LA30_;
			LA33_: ;
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sX60gensym1978_;
				NIM_BOOL T36_;
				NIM_BOOL T38_;
				NIM_BOOL T39_;
				sX60gensym1978_ = s;
				T36_ = (NIM_BOOL)0;
				T36_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*ctx).toMixin), (*(*sX60gensym1978_).name).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (T36_) goto LA37_;
				T38_ = (NIM_BOOL)0;
				T39_ = (NIM_BOOL)0;
				T39_ = ((flags &(1U<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 3))&7U)))!=0);
				if (!(T39_)) goto LA40_;
				T39_ = ((*sX60gensym1978_).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
				LA40_: ;
				T38_ = T39_;
				if (!(T38_)) goto LA41_;
				T38_ = ((OverloadableSyms__yJfP9bpZPSQn9bPO6KCo08fQ &(1U<<((NU)((*sX60gensym1978_).kind)&31U)))!=0);
				LA41_: ;
				T36_ = T38_;
				LA37_: ;
				if (!T36_) goto LA42_;
				whichChoice = ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2);
			}
			goto LA30_;
			LA42_: ;
			{
				whichChoice = ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1);
			}
			LA30_: ;
			sc = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, fn, s, whichChoice, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			switch ((*s).kind) {
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
			{
				{
					NIM_BOOL T48_;
					NIM_BOOL T49_;
					NIM_BOOL T51_;
					NI T52_;
					NI T55_;
					T48_ = (NIM_BOOL)0;
					T49_ = (NIM_BOOL)0;
					T49_ = ((393216 &(1U<<((NU)((*s).kind)&31U)))!=0);
					if (!(T49_)) goto LA50_;
					T51_ = (NIM_BOOL)0;
					T52_ = (NI)0;
					T52_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*s).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T51_ = (T52_ == ((NI) 1));
					if (T51_) goto LA53_;
					T51_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
					LA53_: ;
					T49_ = T51_;
					LA50_: ;
					T48_ = T49_;
					if (!(T48_)) goto LA54_;
					T55_ = (NI)0;
					T55_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(sc);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T48_ = (T55_ <= ((NI) 1));
					LA54_: ;
					if (!T48_) goto LA56_;
					result = semMacroExpr__GFpnqBAgGBu4p8rc0WsOTw(c, n, n, s, 8192);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					result = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, result, flags, ctx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA46_;
				LA56_: ;
				{
					(*n)._kind_6.sons->data[((NI) 0)] = sc;
					result = n;
				}
				LA46_: ;
				mixinContext = NIM_TRUE;
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
			{
				{
					NIM_BOOL T62_;
					NIM_BOOL T63_;
					NIM_BOOL T65_;
					NI T66_;
					NI T69_;
					T62_ = (NIM_BOOL)0;
					T63_ = (NIM_BOOL)0;
					T63_ = ((393216 &(1U<<((NU)((*s).kind)&31U)))!=0);
					if (!(T63_)) goto LA64_;
					T65_ = (NIM_BOOL)0;
					T66_ = (NI)0;
					T66_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*s).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T65_ = (T66_ == ((NI) 1));
					if (T65_) goto LA67_;
					T65_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
					LA67_: ;
					T63_ = T65_;
					LA64_: ;
					T62_ = T63_;
					if (!(T62_)) goto LA68_;
					T69_ = (NI)0;
					T69_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(sc);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T62_ = (T69_ <= ((NI) 1));
					LA68_: ;
					if (!T62_) goto LA70_;
					result = semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog(c, n, s, 8192);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					result = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, result, flags, ctx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA60_;
				LA70_: ;
				{
					(*n)._kind_6.sons->data[((NI) 0)] = sc;
					result = n;
				}
				LA60_: ;
				mixinContext = NIM_TRUE;
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3):
			{
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6):
			{
				(*result)._kind_6.sons->data[((NI) 0)] = sc;
				first = ((NI) 1);
				{
					if (!((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 262))) goto LA77_;
					first = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(result);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA77_: ;
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T80_;
				T80_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T80_ = newSymNodeTypeDesc__gg6DZ4kb59aQbmKe4ytsnvA(s, (*fn).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[((NI) 0)] = T80_;
				first = ((NI) 1);
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
			{
				{
					NIM_BOOL T84_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T88_;
					T84_ = (NIM_BOOL)0;
					T84_ = !(((*s).typ == NIM_NIL));
					if (!(T84_)) goto LA85_;
					T84_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)));
					LA85_: ;
					if (!T84_) goto LA86_;
					T88_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T88_ = newSymNodeTypeDesc__gg6DZ4kb59aQbmKe4ytsnvA(s, (*fn).info);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result)._kind_6.sons->data[((NI) 0)] = T88_;
					first = ((NI) 1);
				}
				LA86_: ;
			}
			break;
			default:
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T90_;
				T90_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T90_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*fn).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[((NI) 0)] = T90_;
				first = ((NI) 1);
			}
			break;
			}
		}
		goto LA26_;
		LA28_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T94_;
			if (!((*fn).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA92_;
			T94_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T94_ = fuzzyLookup__AtVxV9cBv7sgERvmPI9aqfnA(c, fn, flags, ctx, (&mixinContext));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result)._kind_6.sons->data[((NI) 0)] = T94_;
			first = ((NI) 1);
		}
		goto LA26_;
		LA92_: ;
		LA26_: ;
		{
			if (!mixinContext) goto LA97_;
			flags_2 = (flags | 4);
		}
		goto LA95_;
		LA97_: ;
		{
			flags_2 = flags;
		}
		LA95_: ;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = first;
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T103_;
					if (!(i_2 < colontmp_)) goto LA102;
					i = i_2;
					T103_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T103_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*result)._kind_6.sons->data[i], flags_2, ctx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result)._kind_6.sons->data[i] = T103_;
					i_2 += ((NI) 1);
				} LA102: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T105_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T106_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T105_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T105_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_113));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T106_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T106_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T105_, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T106_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA109;
					i_3 = i_4;
					add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_4 += ((NI) 1);
				} LA109: ;
			}
		}
		result = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, result, flags, ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T111_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T112_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T111_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T111_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T112_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T112_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T111_, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T112_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_6 = ((NI) 0);
			{
				while (1) {
					if (!(i_6 < colontmp__3)) goto LA115;
					i_5 = i_6;
					add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[i_5]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_6 += ((NI) 1);
				} LA115: ;
			}
		}
		result = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, result, flags, ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b_2;
		tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		a_2 = (*n)._kind_6.sons->data[((NI) 0)];
		b_2 = (*n)._kind_6.sons->data[((NI) 1)];
		k = (*a_2).kind;
		switch (k) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
		{
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T118_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T119_;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T118_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T118_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_117));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T119_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T119_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T118_, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(result, T119_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NI i_7;
				NI colontmp__4;
				NI i_8;
				i_7 = (NI)0;
				colontmp__4 = (NI)0;
				colontmp__4 = len__P89cqdlERShb9alU3iC0yj8wast(a_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_8 = ((NI) 0);
				{
					while (1) {
						if (!(i_8 < colontmp__4)) goto LA122;
						i_7 = i_8;
						add__P8dDSotTW25BkfbyspojGg(result, (*a_2)._kind_6.sons->data[i_7]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_8 += ((NI) 1);
					} LA122: ;
				}
			}
			add__P8dDSotTW25BkfbyspojGg(result, b_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, result, flags, ctx);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
		{
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T124_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T125_;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T124_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T124_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_118));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T125_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T125_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T124_, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(result, T125_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NI i_9;
				NI colontmp__5;
				NI i_10;
				i_9 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = len__P89cqdlERShb9alU3iC0yj8wast(a_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_10 = ((NI) 0);
				{
					while (1) {
						if (!(i_10 < colontmp__5)) goto LA128;
						i_9 = i_10;
						add__P8dDSotTW25BkfbyspojGg(result, (*a_2)._kind_6.sons->data[i_9]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_10 += ((NI) 1);
					} LA128: ;
				}
			}
			add__P8dDSotTW25BkfbyspojGg(result, b_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, result, flags, ctx);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		default:
		{
			{
				NI i_11;
				NI colontmp__6;
				NI i_12;
				i_11 = (NI)0;
				colontmp__6 = (NI)0;
				colontmp__6 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_12 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T133_;
						if (!(i_12 < colontmp__6)) goto LA132;
						i_11 = i_12;
						T133_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T133_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[i_11], flags, ctx);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*result)._kind_6.sons->data[i_11] = T133_;
						i_12 += ((NI) 1);
					} LA132: ;
				}
			}
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	{
		{
			NI i_13;
			NI colontmp__7;
			NI i_14;
			i_13 = (NI)0;
			colontmp__7 = (NI)0;
			colontmp__7 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_14 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T138_;
					if (!(i_14 < colontmp__7)) goto LA137;
					i_13 = i_14;
					T138_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T138_ = semGenericStmtScope__aVtCjYVuHV1t3poDWh43wA_3(c, (*n)._kind_6.sons->data[i_13], flags, ctx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_13] = T138_;
					i_14 += ((NI) 1);
				} LA137: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		{
			NI i_15;
			NI colontmp__8;
			NI i_16;
			i_15 = (NI)0;
			colontmp__8 = (NI)0;
			colontmp__8 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_16 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					if (!(i_16 < colontmp__8)) goto LA142;
					i_15 = i_16;
					it = (*n)._kind_6.sons->data[i_15];
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T147_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T148_;
						if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86))) goto LA145_;
						T147_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T147_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*it)._kind_6.sons->data[((NI) 0)], flags, ctx);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*(*n)._kind_6.sons->data[i_15])._kind_6.sons->data[((NI) 0)] = T147_;
						T148_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T148_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*it)._kind_6.sons->data[((NI) 1)], (flags | 4), ctx);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*(*n)._kind_6.sons->data[i_15])._kind_6.sons->data[((NI) 1)] = T148_;
					}
					goto LA143_;
					LA145_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T150_;
						T150_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T150_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, it, (flags | 4), ctx);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*n)._kind_6.sons->data[i_15] = T150_;
					}
					LA143_: ;
					i_16 += ((NI) 1);
				} LA142: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T152_;
		T152_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
		T152_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_17;
			NI colontmp__9;
			NI i_18;
			i_17 = (NI)0;
			colontmp__9 = (NI)0;
			colontmp__9 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_18 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T156_;
					if (!(i_18 < colontmp__9)) goto LA155;
					i_17 = i_18;
					T156_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T156_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[i_17], flags, ctx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_17] = T156_;
					i_18 += ((NI) 1);
				} LA155: ;
			}
		}
		closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T158_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T159_;
		T158_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
		T158_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T159_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T159_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[((NI) 0)], flags, ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T159_;
		{
			NI i_19;
			NI colontmp__10;
			NI i_20;
			i_19 = (NI)0;
			colontmp__10 = (NI)0;
			colontmp__10 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_20 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_3;
					NI T168_;
					NI T169_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T170_;
					if (!(i_20 < colontmp__10)) goto LA162;
					i_19 = i_20;
					a_3 = (*n)._kind_6.sons->data[i_19];
					checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a_3, ((NI) 1), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NI j;
						NI colontmp__11;
						NI T164_;
						NI i_21;
						j = (NI)0;
						colontmp__11 = (NI)0;
						T164_ = (NI)0;
						T164_ = len__P89cqdlERShb9alU3iC0yj8wast(a_3);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						colontmp__11 = (NI)(T164_ - ((NI) 1));
						i_21 = ((NI) 0);
						{
							while (1) {
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T167_;
								if (!(i_21 < colontmp__11)) goto LA166;
								j = i_21;
								T167_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T167_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*a_3)._kind_6.sons->data[j], flags, ctx);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*a_3)._kind_6.sons->data[j] = T167_;
								i_21 += ((NI) 1);
							} LA166: ;
						}
					}
					T168_ = (NI)0;
					T168_ = len__P89cqdlERShb9alU3iC0yj8wast(a_3);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T169_ = (NI)0;
					T169_ = len__P89cqdlERShb9alU3iC0yj8wast(a_3);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T170_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T170_ = semGenericStmtScope__aVtCjYVuHV1t3poDWh43wA_3(c, (*a_3)._kind_6.sons->data[(NI)(T169_ - ((NI) 1))], flags, ctx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*a_3)._kind_6.sons->data[(NI)(T168_ - ((NI) 1))] = T170_;
					i_20 += ((NI) 1);
				} LA162: ;
			}
		}
		closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 94):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T172_;
		NI T173_;
		NI T174_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T175_;
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T193_;
		NI T194_;
		NI T195_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T196_;
		T172_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
		T172_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T173_ = (NI)0;
		T173_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T174_ = (NI)0;
		T174_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T175_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T175_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[(NI)(T174_ - ((NI) 2))], flags, ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[(NI)(T173_ - ((NI) 2))] = T175_;
		{
			NI i_22;
			NI colontmp__12;
			NI T177_;
			NI i_23;
			i_22 = (NI)0;
			colontmp__12 = (NI)0;
			T177_ = (NI)0;
			T177_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp__12 = (NI)(T177_ - ((NI) 2));
			i_23 = ((NI) 0);
			{
				while (1) {
					if (!(i_23 < colontmp__12)) goto LA179;
					i_22 = i_23;
					{
						if (!((*(*n)._kind_6.sons->data[i_22]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA182_;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s_2;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp__13;
							s_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							colontmp__13 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							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__P89cqdlERShb9alU3iC0yj8w_2ast(colontmp__13);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								i_25 = ((NI) 0);
								{
									while (1) {
										if (!(i_25 < colontmp__14)) goto LA187;
										i_24 = i_25;
										s_2 = (*colontmp__13)._kind_6.sons->data[i_24];
										{
											if (!((*s_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA190_;
											addTempDecl__XjZLpvNqVUTx1J6TXREPBQ(c, s_2, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21));
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										LA190_: ;
										i_25 += ((NI) 1);
									} LA187: ;
								}
							}
						}
					}
					goto LA180_;
					LA182_: ;
					{
						addTempDecl__XjZLpvNqVUTx1J6TXREPBQ(c, (*n)._kind_6.sons->data[i_22], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA180_: ;
					i_23 += ((NI) 1);
				} LA179: ;
			}
		}
		T193_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
		T193_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T194_ = (NI)0;
		T194_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T195_ = (NI)0;
		T195_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T196_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T196_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[(NI)(T195_ - ((NI) 1))], flags, ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[(NI)(T194_ - ((NI) 1))] = T196_;
		closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 129):
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T198_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T203_;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T198_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
		T198_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA201_;
			addTempDecl__XjZLpvNqVUTx1J6TXREPBQ(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 22));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA201_: ;
		T203_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T203_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[((NI) 1)], flags, ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 1)] = T203_;
		closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T205_;
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T205_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T205_ = semGenericStmtScope__aVtCjYVuHV1t3poDWh43wA_3(c, (*n)._kind_6.sons->data[((NI) 0)], flags, ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T205_;
		{
			NI i_26;
			NI colontmp__15;
			NI i_27;
			i_26 = (NI)0;
			colontmp__15 = (NI)0;
			colontmp__15 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_27 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_4;
					tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T209_;
					NI T224_;
					NI T225_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T226_;
					if (!(i_27 < colontmp__15)) goto LA208;
					i_26 = i_27;
					a_4 = (*n)._kind_6.sons->data[i_26];
					checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a_4, ((NI) 1), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T209_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
					T209_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NI j_2;
						NI colontmp__16;
						NI T211_;
						NI i_28;
						j_2 = (NI)0;
						colontmp__16 = (NI)0;
						T211_ = (NI)0;
						T211_ = len__P89cqdlERShb9alU3iC0yj8wast(a_4);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						colontmp__16 = (NI)(T211_ - ((NI) 1));
						i_28 = ((NI) 0);
						{
							while (1) {
								if (!(i_28 < colontmp__16)) goto LA213;
								j_2 = i_28;
								{
									NIM_BOOL T216_;
									tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T219_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T220_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T221_;
									T216_ = (NIM_BOOL)0;
									T216_ = isInfixAs__CZaoTkWCFI9acor4BmYF3Yw((*a_4)._kind_6.sons->data[j_2]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									if (!T216_) goto LA217_;
									T219_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
									T219_ = c;
									T220_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T220_ = getIdentNode__7YxUILpPxooC5qqa89a54dw_8(c, (*(*a_4)._kind_6.sons->data[j_2])._kind_6.sons->data[((NI) 2)]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									addTempDecl__XjZLpvNqVUTx1J6TXREPBQ(T219_, T220_, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									T221_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T221_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*(*a_4)._kind_6.sons->data[j_2])._kind_6.sons->data[((NI) 1)], (flags | 2), ctx);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*(*a_4)._kind_6.sons->data[j_2])._kind_6.sons->data[((NI) 1)] = T221_;
								}
								goto LA214_;
								LA217_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T223_;
									T223_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T223_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*a_4)._kind_6.sons->data[j_2], (flags | 2), ctx);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*a_4)._kind_6.sons->data[j_2] = T223_;
								}
								LA214_: ;
								i_28 += ((NI) 1);
							} LA213: ;
						}
					}
					T224_ = (NI)0;
					T224_ = len__P89cqdlERShb9alU3iC0yj8wast(a_4);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T225_ = (NI)0;
					T225_ = len__P89cqdlERShb9alU3iC0yj8wast(a_4);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T226_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T226_ = semGenericStmtScope__aVtCjYVuHV1t3poDWh43wA_3(c, (*a_4)._kind_6.sons->data[(NI)(T225_ - ((NI) 1))], flags, ctx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*a_4)._kind_6.sons->data[(NI)(T224_ - ((NI) 1))] = T226_;
					closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_27 += ((NI) 1);
				} LA208: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		{
			NI i_29;
			NI colontmp__17;
			NI i_30;
			i_29 = (NI)0;
			colontmp__17 = (NI)0;
			colontmp__17 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_30 = ((NI) 0);
			{
				while (1) {
					if (!(i_30 < colontmp__17)) goto LA230;
					i_29 = i_30;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_5;
						NI T242_;
						NI T243_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T244_;
						NI T245_;
						NI T246_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T247_;
						a_5 = (*n)._kind_6.sons->data[i_29];
						{
							if (!((*a_5).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA234_;
							goto LA231;
						}
						LA234_: ;
						{
							NIM_BOOL T238_;
							T238_ = (NIM_BOOL)0;
							T238_ = !(((*a_5).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35)));
							if (!(T238_)) goto LA239_;
							T238_ = !(((*a_5).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36)));
							LA239_: ;
							if (!T238_) goto LA240_;
							illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a_5, (*(*c).graph).config);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA240_: ;
						checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a_5, ((NI) 3), (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T242_ = (NI)0;
						T242_ = len__P89cqdlERShb9alU3iC0yj8wast(a_5);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T243_ = (NI)0;
						T243_ = len__P89cqdlERShb9alU3iC0yj8wast(a_5);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T244_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T244_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*a_5)._kind_6.sons->data[(NI)(T243_ - ((NI) 2))], (flags | 2), ctx);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*a_5)._kind_6.sons->data[(NI)(T242_ - ((NI) 2))] = T244_;
						T245_ = (NI)0;
						T245_ = len__P89cqdlERShb9alU3iC0yj8wast(a_5);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T246_ = (NI)0;
						T246_ = len__P89cqdlERShb9alU3iC0yj8wast(a_5);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T247_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T247_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*a_5)._kind_6.sons->data[(NI)(T246_ - ((NI) 1))], flags, ctx);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*a_5)._kind_6.sons->data[(NI)(T245_ - ((NI) 1))] = T247_;
						{
							NI j_3;
							NI colontmp__18;
							NI T249_;
							NI i_31;
							j_3 = (NI)0;
							colontmp__18 = (NI)0;
							T249_ = (NI)0;
							T249_ = len__P89cqdlERShb9alU3iC0yj8wast(a_5);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							colontmp__18 = (NI)(T249_ - ((NI) 2));
							i_31 = ((NI) 0);
							{
								while (1) {
									tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T252_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T253_;
									if (!(i_31 < colontmp__18)) goto LA251;
									j_3 = i_31;
									T252_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
									T252_ = c;
									T253_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T253_ = getIdentNode__7YxUILpPxooC5qqa89a54dw_8(c, (*a_5)._kind_6.sons->data[j_3]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									addTempDecl__XjZLpvNqVUTx1J6TXREPBQ(T252_, T253_, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8));
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									i_31 += ((NI) 1);
								} LA251: ;
							}
						}
					} LA231: ;
					i_30 += ((NI) 1);
				} LA230: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75):
	{
		{
			NI i_32;
			NI colontmp__19;
			NI i_33;
			i_32 = (NI)0;
			colontmp__19 = (NI)0;
			colontmp__19 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_33 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_6;
					NI T262_;
					NI T263_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T264_;
					if (!(i_33 < colontmp__19)) goto LA257;
					i_32 = i_33;
					a_6 = (*n)._kind_6.sons->data[i_32];
					{
						if (!!(((*a_6).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35)))) goto LA260_;
						illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a_6, (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA260_: ;
					checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a_6, ((NI) 3), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T262_ = (NI)0;
					T262_ = len__P89cqdlERShb9alU3iC0yj8wast(a_6);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T263_ = (NI)0;
					T263_ = len__P89cqdlERShb9alU3iC0yj8wast(a_6);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T264_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T264_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*a_6)._kind_6.sons->data[(NI)(T263_ - ((NI) 2))], (flags | 2), ctx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*a_6)._kind_6.sons->data[(NI)(T262_ - ((NI) 2))] = T264_;
					{
						NI j_4;
						NI colontmp__20;
						NI T266_;
						NI i_34;
						j_4 = (NI)0;
						colontmp__20 = (NI)0;
						T266_ = (NI)0;
						T266_ = len__P89cqdlERShb9alU3iC0yj8wast(a_6);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						colontmp__20 = (NI)(T266_ - ((NI) 2));
						i_34 = ((NI) 0);
						{
							while (1) {
								tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T269_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T270_;
								if (!(i_34 < colontmp__20)) goto LA268;
								j_4 = i_34;
								T269_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
								T269_ = c;
								T270_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T270_ = getIdentNode__7YxUILpPxooC5qqa89a54dw_8(c, (*a_6)._kind_6.sons->data[j_4]);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								addTempDecl__XjZLpvNqVUTx1J6TXREPBQ(T269_, T270_, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								i_34 += ((NI) 1);
							} LA268: ;
						}
					}
					i_33 += ((NI) 1);
				} LA257: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
	{
		{
			NI i_35;
			NI colontmp__21;
			NI i_36;
			i_35 = (NI)0;
			colontmp__21 = (NI)0;
			colontmp__21 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_36 = ((NI) 0);
			{
				while (1) {
					if (!(i_36 < colontmp__21)) goto LA274;
					i_35 = i_36;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_7;
						tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T284_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T285_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T286_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T287_;
						a_7 = (*n)._kind_6.sons->data[i_35];
						{
							if (!((*a_7).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA278_;
							goto LA275;
						}
						LA278_: ;
						{
							if (!!(((*a_7).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102)))) goto LA282_;
							illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a_7, (*(*c).graph).config);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA282_: ;
						checkSonsLen__EezdXeDvu4rB7fR84AJZgw(a_7, ((NI) 3), (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T284_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
						T284_ = c;
						T285_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T285_ = getIdentNode__7YxUILpPxooC5qqa89a54dw_8(c, (*a_7)._kind_6.sons->data[((NI) 0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						addTempDecl__XjZLpvNqVUTx1J6TXREPBQ(T284_, T285_, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T286_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T286_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*a_7)._kind_6.sons->data[((NI) 1)], (flags | 2), ctx);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*a_7)._kind_6.sons->data[((NI) 1)] = T286_;
						T287_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T287_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*a_7)._kind_6.sons->data[((NI) 2)], flags, ctx);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*a_7)._kind_6.sons->data[((NI) 2)] = T287_;
					} LA275: ;
					i_36 += ((NI) 1);
				} LA274: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	{
		{
			NI i_37;
			NI colontmp__22;
			NI i_38;
			i_37 = (NI)0;
			colontmp__22 = (NI)0;
			colontmp__22 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_38 = ((NI) 0);
			{
				while (1) {
					if (!(i_38 < colontmp__22)) goto LA291;
					i_37 = i_38;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_8;
						tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T301_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T302_;
						a_8 = (*n)._kind_6.sons->data[i_37];
						{
							if (!((*a_8).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA295_;
							goto LA292;
						}
						LA295_: ;
						{
							if (!!(((*a_8).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103)))) goto LA299_;
							illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a_8, (*(*c).graph).config);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA299_: ;
						checkSonsLen__EezdXeDvu4rB7fR84AJZgw(a_8, ((NI) 3), (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T301_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
						T301_ = c;
						T302_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T302_ = getIdentNode__7YxUILpPxooC5qqa89a54dw_8(c, (*a_8)._kind_6.sons->data[((NI) 0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						addTempDecl__XjZLpvNqVUTx1J6TXREPBQ(T301_, T302_, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					} LA292: ;
					i_38 += ((NI) 1);
				} LA291: ;
			}
		}
		{
			NI i_39;
			NI colontmp__23;
			NI i_40;
			i_39 = (NI)0;
			colontmp__23 = (NI)0;
			colontmp__23 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_40 = ((NI) 0);
			{
				while (1) {
					if (!(i_40 < colontmp__23)) goto LA305;
					i_39 = i_40;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_9;
						a_9 = (*n)._kind_6.sons->data[i_39];
						{
							if (!((*a_9).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA309_;
							goto LA306;
						}
						LA309_: ;
						{
							if (!!(((*a_9).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103)))) goto LA313_;
							illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a_9, (*(*c).graph).config);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA313_: ;
						checkSonsLen__EezdXeDvu4rB7fR84AJZgw(a_9, ((NI) 3), (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T319_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T320_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T321_;
							if (!!(((*(*a_9)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA317_;
							T319_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
							T319_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T320_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T320_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*a_9)._kind_6.sons->data[((NI) 1)], flags, ctx);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*a_9)._kind_6.sons->data[((NI) 1)] = T320_;
							T321_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T321_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*a_9)._kind_6.sons->data[((NI) 2)], (flags | 2), ctx);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*a_9)._kind_6.sons->data[((NI) 2)] = T321_;
							closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA315_;
						LA317_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T323_;
							T323_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T323_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*a_9)._kind_6.sons->data[((NI) 2)], (flags | 2), ctx);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*a_9)._kind_6.sons->data[((NI) 2)] = T323_;
						}
						LA315_: ;
					} LA306: ;
					i_40 += ((NI) 1);
				} LA305: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150):
	{
		{
			NI T327_;
			T327_ = (NI)0;
			T327_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI) 0) < T327_)) goto LA328_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T334_;
				if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA332_;
				T334_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T334_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[((NI) 0)], (flags | 2), ctx);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 0)] = T334_;
			}
			LA332_: ;
			{
				NI i_41;
				NI colontmp__24;
				NI i_42;
				i_41 = (NI)0;
				colontmp__24 = (NI)0;
				colontmp__24 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_42 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_10;
						tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T341_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T342_;
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T343_;
						if (!(i_42 < colontmp__24)) goto LA337;
						i_41 = i_42;
						a_10 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						switch ((*(*n)._kind_6.sons->data[i_41]).kind) {
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 151):
						{
							a_10 = (*(*n)._kind_6.sons->data[i_41])._kind_6.sons->data[((NI) 0)];
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
						{
							a_10 = (*n)._kind_6.sons->data[i_41];
						}
						break;
						default:
						{
							illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						break;
						}
						T341_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
						T341_ = c;
						T342_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T342_ = getIdentNode__7YxUILpPxooC5qqa89a54dw_8(c, a_10);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T343_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
						T343_ = newSymS__z0Xq7x7aKOzONyxr8mX73A_2(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0), T342_, c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						addDecl__aPXKqZJT9c7r7gT8X3uZAHw(T341_, T343_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_42 += ((NI) 1);
					} LA337: ;
				}
			}
		}
		LA328_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 134):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 135):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76):
	{
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 1), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T350_;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA348_;
			T350_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T350_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[((NI) 0)], (flags | 2), ctx);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 0)] = T350_;
		}
		LA348_: ;
		{
			NI i_43;
			NI colontmp__25;
			NI i_44;
			i_43 = (NI)0;
			colontmp__25 = (NI)0;
			colontmp__25 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_44 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_11;
					NI T358_;
					NI T359_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T360_;
					NI T361_;
					NI T362_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T363_;
					if (!(i_44 < colontmp__25)) goto LA353;
					i_43 = i_44;
					a_11 = (*n)._kind_6.sons->data[i_43];
					{
						if (!!(((*a_11).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35)))) goto LA356_;
						illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a_11, (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA356_: ;
					checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a_11, ((NI) 3), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T358_ = (NI)0;
					T358_ = len__P89cqdlERShb9alU3iC0yj8wast(a_11);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T359_ = (NI)0;
					T359_ = len__P89cqdlERShb9alU3iC0yj8wast(a_11);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T360_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T360_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*a_11)._kind_6.sons->data[(NI)(T359_ - ((NI) 2))], (flags | 2), ctx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*a_11)._kind_6.sons->data[(NI)(T358_ - ((NI) 2))] = T360_;
					T361_ = (NI)0;
					T361_ = len__P89cqdlERShb9alU3iC0yj8wast(a_11);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T362_ = (NI)0;
					T362_ = len__P89cqdlERShb9alU3iC0yj8wast(a_11);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T363_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T363_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*a_11)._kind_6.sons->data[(NI)(T362_ - ((NI) 1))], flags, ctx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*a_11)._kind_6.sons->data[(NI)(T361_ - ((NI) 1))] = T363_;
					{
						NI j_5;
						NI colontmp__26;
						NI T365_;
						NI i_45;
						j_5 = (NI)0;
						colontmp__26 = (NI)0;
						T365_ = (NI)0;
						T365_ = len__P89cqdlERShb9alU3iC0yj8wast(a_11);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						colontmp__26 = (NI)(T365_ - ((NI) 2));
						i_45 = ((NI) 0);
						{
							while (1) {
								tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T368_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T369_;
								if (!(i_45 < colontmp__26)) goto LA367;
								j_5 = i_45;
								T368_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
								T368_ = c;
								T369_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T369_ = getIdentNode__7YxUILpPxooC5qqa89a54dw_8(c, (*a_11)._kind_6.sons->data[j_5]);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								addTempDecl__XjZLpvNqVUTx1J6TXREPBQ(T368_, T369_, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								i_45 += ((NI) 1);
							} LA367: ;
						}
					}
					i_44 += ((NI) 1);
				} LA353: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T377_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T378_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T391_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T404_;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 7), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T375_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T376_;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA373_;
			T375_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
			T375_ = c;
			T376_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T376_ = getIdentNode__7YxUILpPxooC5qqa89a54dw_8(c, (*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			addTempDecl__XjZLpvNqVUTx1J6TXREPBQ(T375_, T376_, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA373_: ;
		T377_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
		T377_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T378_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T378_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[((NI) 2)], flags, ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 2)] = T378_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T390_;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 3)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA381_;
			{
				tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T387_;
				tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T388_;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T389_;
				if (!!(((*(*(*n)._kind_6.sons->data[((NI) 3)])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA385_;
				T387_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
				T387_ = c;
				T388_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
				T388_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_95));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T389_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T389_ = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0), T388_, NIM_NIL, (*n).info, 0);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				addPrelimDecl__aPXKqZJT9c7r7gT8X3uZAHw_4(T387_, T389_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA385_: ;
			T390_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T390_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[((NI) 3)], flags, ctx);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 3)] = T390_;
		}
		LA381_: ;
		T391_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T391_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[((NI) 4)], flags, ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 4)] = T391_;
		body = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_3;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA394_;
			s_3 = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			{
				NIM_BOOL T398_;
				T398_ = (NIM_BOOL)0;
				T398_ = (((*s_3).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0);
				if (!(T398_)) goto LA399_;
				T398_ = ((*s_3).ast == NIM_NIL);
				LA399_: ;
				if (!T398_) goto LA400_;
				body = (*n)._kind_6.sons->data[((NI) 6)];
			}
			goto LA396_;
			LA400_: ;
			{
				body = (*(*s_3).ast)._kind_6.sons->data[((NI) 6)];
			}
			LA396_: ;
		}
		goto LA392_;
		LA394_: ;
		{
			body = (*n)._kind_6.sons->data[((NI) 6)];
		}
		LA392_: ;
		T404_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T404_ = semGenericStmtScope__aVtCjYVuHV1t3poDWh43wA_3(c, body, flags, ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 6)] = T404_;
		closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T407_;
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T407_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T407_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[((NI) 1)], flags, ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 1)] = T407_;
	}
	break;
	default:
	{
		{
			NI i_46;
			NI colontmp__27;
			NI i_47;
			i_46 = (NI)0;
			colontmp__27 = (NI)0;
			colontmp__27 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_47 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T412_;
					if (!(i_47 < colontmp__27)) goto LA411;
					i_46 = i_47;
					T412_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T412_ = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, (*n)._kind_6.sons->data[i_46], flags, ctx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result)._kind_6.sons->data[i_46] = T412_;
					i_47 += ((NI) 1);
				} LA411: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmt__7YxUILpPxooC5qqa89a54dw_7)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w ctx;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)(&ctx), sizeof(tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&ctx.toMixin));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&ctx.toBind));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, n, 0, (&ctx));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, addImplicitGeneric__PNQVBgqq1K3pEL9atJ4kfOw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeClass, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* typId, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, NimStringDesc* paramName) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* finalTypId;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T31_;
	NI T32_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (!(genericParams == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!((typId == NIM_NIL))) goto LA7_;
		finalTypId = typId;
	}
	goto LA5_;
	LA7_: ;
	{
		NimStringDesc* T10_;
		T10_ = (NimStringDesc*)0;
		T10_ = rawNewString((paramName ? paramName->Sup.len : 0) + 5);
appendString(T10_, paramName);
appendString(T10_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_125));
		finalTypId = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, T10_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(genericParams);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA13;
				i = i_2;
				{
					if (!((*(*(*(*genericParams)._kind_6.sons->data[i])._kind_4.sym).name).Sup.id == (*finalTypId).Sup.id)) goto LA16_;
					result = (*(*genericParams)._kind_6.sons->data[i]).typ;
					goto BeforeRet_;
				}
				LA16_: ;
				i_2 += ((NI) 1);
			} LA13: ;
		}
	}
	{
		if (!!(((*typeClass).sym == NIM_NIL))) goto LA20_;
		owner = (*typeClass).sym;
	}
	goto LA18_;
	LA20_: ;
	{
		owner = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA18_: ;
	s = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), finalTypId, owner, info, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(((*owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0)) goto LA25_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 23)) & 63);
	}
	LA25_: ;
	{
		if (!(typId == NIM_NIL)) goto LA29_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 33)) & 63);
	}
	LA29_: ;
	T31_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T31_ = linkTo__Lxy1G9c1I40y65cWkoPnssA(s, typeClass);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*typeClass).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 26)) & 63);
	T32_ = (NI)0;
	T32_ = len__P89cqdlERShb9alU3iC0yj8wast(genericParams);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*s).position = T32_;
	T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T33_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(genericParams, T33_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = typeClass;
	addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, instGenericContainer__sJO8n9aXqgecj24tOSPjmow)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* header, NIM_BOOL allowMetaTypes) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg cl;
	tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ* T5_;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T6_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* genericTyp;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NimStringDesc* argX60gensym161_;
		if (!!(((*header).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9)))) goto LA3_;
		argX60gensym161_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_132);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym161_, TM__rF9caJawfOjYTjsgLVUSGFA_132);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	nimZeroMem((void*)(&cl), sizeof(tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg));
	initIdTable__Z7fF0Wc4DSB4kCiKZ8rGfQ((&cl.symMap));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	initIdTable__Z7fF0Wc4DSB4kCiKZ8rGfQ((&cl.localCache));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T5_ = (tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ*)0;
	T5_ = (tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ*) newObj((&NTI__zSq8dodcWpSdfE0WaiBU9cw_), sizeof(tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ));
	cl.typeMap = T5_;
	initIdTable__Z7fF0Wc4DSB4kCiKZ8rGfQ((&(*cl.typeMap).topLayer));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	cl.info = info;
	cl.c = c;
	cl.allowMetaTypes = allowMetaTypes;
	T6_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T6_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	genericTyp = base__PfgI9ap7WOnsRfFV4znQ27w(header);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI T8_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T8_ = (NI)0;
		T8_ = len__5mJADrRYkP3r9auuiuDZN9cQast(genericTyp);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmp_ = (NI)(T8_ - ((NI) 1));
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* genParam;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
				if (!(i_2 < colontmp_)) goto LA10;
				i = i_2;
				genParam = (*genericTyp).sons->data[i];
				param = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				{
					if (!((*genParam).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA13_;
					param = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10), (*(*genParam).sym).name, (*genericTyp).sym, (*(*genParam).sym).info, 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*param).ast = (*(*header).sons->data[(NI)(i + ((NI) 1))]).n;
					(*param).typ = (*header).sons->data[(NI)(i + ((NI) 1))];
				}
				goto LA11_;
				LA13_: ;
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T16_;
					param = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), (*(*genParam).sym).name, (*genericTyp).sym, (*(*genParam).sym).info, 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T16_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T16_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(c, (*header).sons->data[(NI)(i + ((NI) 1))]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*param).typ = T16_;
				}
				LA11_: ;
				(*param).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, param);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA10: ;
		}
	}
	result = replaceTypeVarsT__cNsAY9aO2v1oTCPqZyHga1w((&cl), header);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, liftParamType__IED6yzEuxOVbtiDk639cvjw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw procKind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* paramType, NimStringDesc* paramName, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NIM_BOOL anon) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* paramTypId;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (!(paramType == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = !(anon);
		if (!(T7_)) goto LA8_;
		T7_ = !(((*paramType).sym == NIM_NIL));
		LA8_: ;
		if (!T7_) goto LA9_;
		paramTypId = (*(*paramType).sym).name;
	}
	goto LA5_;
	LA9_: ;
	{
		paramTypId = NIM_NIL;
	}
	LA5_: ;
	switch ((*paramType).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
	{
		tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T13_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
		T13_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
		T13_ = c;
		T14_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T14_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = addImplicitGeneric__PNQVBgqq1K3pEL9atJ4kfOw(T13_, T14_, NIM_NIL, info, genericParams, paramName);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* lifted;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T27_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
		tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T40_;
		tySequence__Ef05srmQTDulnBdXR4Ja6Q* T41_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T42_;
		{
			NIM_BOOL T18_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T19_;
			T18_ = (NIM_BOOL)0;
			T19_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T19_ = base__PfgI9ap7WOnsRfFV4znQ27w(paramType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T18_ = !(((*T19_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)));
			if (!(T18_)) goto LA20_;
			T18_ = !(((*paramType).n == NIM_NIL));
			LA20_: ;
			if (!T18_) goto LA21_;
			goto BeforeRet_;
		}
		LA21_: ;
		{
			if (!(((*paramType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0)) goto LA25_;
			goto BeforeRet_;
		}
		LA25_: ;
		T27_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T27_ = base__PfgI9ap7WOnsRfFV4znQ27w(paramType);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		lifted = liftParamType__IED6yzEuxOVbtiDk639cvjw(c, procKind, genericParams, T27_, paramName, info, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((lifted == NIM_NIL))) goto LA30_;
			base = lifted;
		}
		goto LA28_;
		LA30_: ;
		{
			base = base__PfgI9ap7WOnsRfFV4znQ27w(paramType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA28_: ;
		{
			NIM_BOOL T35_;
			NimStringDesc* T39_;
			T35_ = (NIM_BOOL)0;
			T35_ = isMetaType__aVxWxXLmf103vwE8uZ9cXRw(base);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T35_)) goto LA36_;
			T35_ = (procKind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
			LA36_: ;
			if (!T35_) goto LA37_;
			T39_ = (NimStringDesc*)0;
			T39_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_126), paramName);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T39_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_127, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA37_: ;
		T40_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
		T40_ = c;
		T41_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
		T41_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
		T41_->data[0] = base;
		T42_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T42_ = newTypeWithSons__7doBlU1jfuQUQdCuB7BM4Q(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), T41_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = addImplicitGeneric__PNQVBgqq1K3pEL9atJ4kfOw(T40_, T42_, paramTypId, info, genericParams, paramName);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((result == NIM_NIL))) goto LA45_;
			(*result).flags = ((*result).flags | 16777728);
		}
		LA45_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
			tySequence__Ef05srmQTDulnBdXR4Ja6Q* T65_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T66_;
			if (!!((((*paramType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0))) goto LA50_;
			{
				NIM_BOOL T54_;
				NIM_BOOL T55_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T56_;
				NIM_BOOL T59_;
				tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T60_;
				tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T62_;
				T54_ = (NIM_BOOL)0;
				T55_ = (NIM_BOOL)0;
				T56_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T56_ = base__PfgI9ap7WOnsRfFV4znQ27w(paramType);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T55_ = ((*T56_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0));
				if (!(T55_)) goto LA57_;
				T55_ = !((paramTypId == NIM_NIL));
				LA57_: ;
				T54_ = T55_;
				if (!(T54_)) goto LA58_;
				T59_ = (NIM_BOOL)0;
				T60_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
				T60_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T59_ = ((*paramTypId).Sup.id == (*T60_).Sup.id);
				if (T59_) goto LA61_;
				T62_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
				T62_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_129));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T59_ = ((*paramTypId).Sup.id == (*T62_).Sup.id);
				LA61_: ;
				T54_ = T59_;
				LA58_: ;
				if (!T54_) goto LA63_;
				paramTypId = NIM_NIL;
			}
			LA63_: ;
			T65_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
			T65_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
			T66_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T66_ = base__PfgI9ap7WOnsRfFV4znQ27w(paramType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T65_->data[0] = T66_;
			t = newTypeWithSons__7doBlU1jfuQUQdCuB7BM4Q(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8), T65_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
			result = addImplicitGeneric__PNQVBgqq1K3pEL9atJ4kfOw(c, t, paramTypId, info, genericParams, paramName);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA50_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
	{
		{
			NI T70_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T73_;
			T70_ = (NI)0;
			T70_ = len__5mJADrRYkP3r9auuiuDZN9cQast(paramType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T70_ == ((NI) 1))) goto LA71_;
			T73_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T73_ = base__PfgI9ap7WOnsRfFV4znQ27w(paramType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = liftParamType__IED6yzEuxOVbtiDk639cvjw(c, procKind, genericParams, T73_, paramName, info, NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA71_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T75_;
		T75_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T75_ = base__PfgI9ap7WOnsRfFV4znQ27w(paramType);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = liftParamType__IED6yzEuxOVbtiDk639cvjw(c, procKind, genericParams, T75_, paramName, info, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			NIM_BOOL T79_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T81_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
			tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T84_;
			tySequence__Ef05srmQTDulnBdXR4Ja6Q* T85_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T86_;
			T79_ = (NIM_BOOL)0;
			T79_ = ((*paramType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
			if (!(T79_)) goto LA80_;
			T81_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T81_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(paramType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T79_ = ((*T81_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0));
			LA80_: ;
			if (!T79_) goto LA82_;
			T84_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
			T84_ = c;
			T85_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
			T85_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
			T86_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T86_ = newTypeS__xb5E2cGIynZweqWlCP8Tig((*paramType).kind, c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T85_->data[0] = T86_;
			typ = newTypeWithSons__7doBlU1jfuQUQdCuB7BM4Q(T84_, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51), T85_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = addImplicitGeneric__PNQVBgqq1K3pEL9atJ4kfOw(c, typ, paramTypId, info, genericParams, paramName);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA77_;
		LA82_: ;
		{
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(paramType);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* lifted_2;
						if (!(i_2 < colontmp_)) goto LA90;
						i = i_2;
						{
							NimStringDesc* T95_;
							NimStringDesc* T96_;
							if (!((*paramType).sons->data[i] == paramType)) goto LA93_;
							T95_ = (NimStringDesc*)0;
							T95_ = typeToString__QlvraUan7WbHowhAbvDvdA(paramType, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T96_ = (NimStringDesc*)0;
							T96_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_130), T95_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T96_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_131, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA93_: ;
						lifted_2 = liftParamType__IED6yzEuxOVbtiDk639cvjw(c, procKind, genericParams, (*paramType).sons->data[i], paramName, info, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!!((lifted_2 == NIM_NIL))) goto LA99_;
							(*paramType).sons->data[i] = lifted_2;
							result = paramType;
						}
						LA99_: ;
						i_2 += ((NI) 1);
					} LA90: ;
				}
			}
		}
		LA77_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
		tySequence__Ef05srmQTDulnBdXR4Ja6Q* T118_;
		result = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, paramType, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_3;
			NI colontmp__2;
			NI T103_;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T103_ = (NI)0;
			T103_ = len__5mJADrRYkP3r9auuiuDZN9cQast(paramType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp__2 = (NI)(T103_ - ((NI) 1));
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA105;
					i_3 = i_4;
					{
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* staticCopy;
						if (!((*(*paramType).sons->data[i_3]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA108_;
						staticCopy = exactReplica__wG9cFX0BL4VD1hNwr4zEuwQ((*paramType).sons->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*staticCopy).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 27)) & 63);
						rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, staticCopy, NIM_TRUE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA106_;
					LA108_: ;
					{
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T111_;
						T111_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T111_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59), c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, T111_, NIM_TRUE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA106_: ;
					i_4 += ((NI) 1);
				} LA105: ;
			}
		}
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T114_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T117_;
			T114_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T114_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(paramType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((*T114_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52))) goto LA115_;
			(*result).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53);
			T117_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T117_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(paramType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, T117_, NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = addImplicitGeneric__PNQVBgqq1K3pEL9atJ4kfOw(c, result, paramTypId, info, genericParams, paramName);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		LA115_: ;
		x = instGenericContainer__sJO8n9aXqgecj24tOSPjmow(c, (*(*paramType).sym).info, result, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T118_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
		T118_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 2);
		T118_->data[0] = paramType;
		T118_->data[1] = x;
		result = newTypeWithSons__7doBlU1jfuQUQdCuB7BM4Q(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54), T118_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = addImplicitGeneric__PNQVBgqq1K3pEL9atJ4kfOw(c, result, paramTypId, info, genericParams, paramName);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* liftBody;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T139_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T122_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* cp;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T125_;
			T122_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T122_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(paramType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((*T122_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52))) goto LA123_;
			T125_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			T125_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			cp = copyType__4O4aYoscFPo2FRSh4rP9ayg(paramType, T125_, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*cp).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53);
			result = addImplicitGeneric__PNQVBgqq1K3pEL9atJ4kfOw(c, cp, paramTypId, info, genericParams, paramName);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		LA123_: ;
		{
			NI i_5;
			NI colontmp__3;
			NI T127_;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			T127_ = (NI)0;
			T127_ = len__5mJADrRYkP3r9auuiuDZN9cQast(paramType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp__3 = (NI)(T127_ - ((NI) 1));
			i_6 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* lifted_3;
					if (!(i_6 < colontmp__3)) goto LA129;
					i_5 = i_6;
					lifted_3 = liftParamType__IED6yzEuxOVbtiDk639cvjw(c, procKind, genericParams, (*paramType).sons->data[i_5], paramName, info, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!((lifted_3 == NIM_NIL))) goto LA132_;
						(*paramType).sons->data[i_5] = lifted_3;
						result = paramType;
						{
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T136_;
							NimStringDesc* argX60gensym1117_;
							T136_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T136_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(result);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!((((*T136_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 21))&63U)))!=0))) goto LA137_;
							argX60gensym1117_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_133);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym1117_, TM__rF9caJawfOjYTjsgLVUSGFA_133);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA137_: ;
					}
					LA132_: ;
					i_6 += ((NI) 1);
				} LA129: ;
			}
		}
		T139_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T139_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(paramType);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liftBody = liftParamType__IED6yzEuxOVbtiDk639cvjw(c, procKind, genericParams, T139_, paramName, info, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((liftBody == NIM_NIL))) goto LA142_;
			result = liftBody;
			(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 21)) & 63);
		}
		LA142_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* body;
		{
			NI i_7;
			NI colontmp__4;
			NI i_8;
			i_7 = (NI)0;
			colontmp__4 = (NI)0;
			colontmp__4 = len__5mJADrRYkP3r9auuiuDZN9cQast(paramType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_8 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* lifted_4;
					if (!(i_8 < colontmp__4)) goto LA147;
					i_7 = i_8;
					lifted_4 = liftParamType__IED6yzEuxOVbtiDk639cvjw(c, procKind, genericParams, (*paramType).sons->data[i_7], paramName, info, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!((lifted_4 == NIM_NIL))) goto LA150_;
						(*paramType).sons->data[i_7] = lifted_4;
					}
					LA150_: ;
					i_8 += ((NI) 1);
				} LA147: ;
			}
		}
		body = base__PfgI9ap7WOnsRfFV4znQ27w(paramType);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((IL64(1125900980584448) &((NU64)1<<((NU)((*body).kind)&63U)))!=0)) goto LA154_;
			goto BeforeRet_;
		}
		LA154_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T158_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* expanded;
			T158_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T158_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(body);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((*T158_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52))) goto LA159_;
			expanded = instGenericContainer__sJO8n9aXqgecj24tOSPjmow(c, info, paramType, NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = liftParamType__IED6yzEuxOVbtiDk639cvjw(c, procKind, genericParams, expanded, paramName, info, NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA159_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58):
	{
		tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T162_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T163_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T164_;
		T162_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
		T162_ = c;
		T163_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T163_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T164_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T164_ = copyType__4O4aYoscFPo2FRSh4rP9ayg(paramType, T163_, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = addImplicitGeneric__PNQVBgqq1K3pEL9atJ4kfOw(T162_, T164_, paramTypId, info, genericParams, paramName);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
	{
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*(*paramType).sym).info, (*paramType).sym);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(((*paramType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0)) goto LA168_;
			(*paramType).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30)) & 63));
			transitionGenericParamToType__EEixHgS5VK63cVXrrMe6Tw((*paramType).sym);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA168_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semProcTypeNode__ZVaxL1YkeVlGuk9csaO0Z2w)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, NIM_BOOL isType) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg check;
	NI counter;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* r;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 1), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newProcType__5gg5mq4XYRQKbAkdLMpzGA(c, (*n).info, prev);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&check));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	counter = ((NI) 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
					NIM_BOOL hasType;
					NI T15_;
					NIM_BOOL hasDefault;
					NI T16_;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35)))) goto LA7_;
						{
							NIM_BOOL T11_;
							T11_ = (NIM_BOOL)0;
							T11_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
							if (!(T11_)) goto LA12_;
							T11_ = (((*(*a)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2))&63U)))!=0);
							LA12_: ;
							if (!T11_) goto LA13_;
							goto LA4;
						}
						LA13_: ;
						illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a, (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA7_: ;
					checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a, ((NI) 3), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					typ = NIM_NIL;
					def = NIM_NIL;
					constraint = NIM_NIL;
					T15_ = (NI)0;
					T15_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					hasType = !(((*(*a)._kind_6.sons->data[(NI)(T15_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
					T16_ = (NI)0;
					T16_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					hasDefault = !(((*(*a)._kind_6.sons->data[(NI)(T16_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
					{
						NI T21_;
						if (!hasType) goto LA19_;
						T21_ = (NI)0;
						T21_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						typ = semParamType__JfIbex3lv6r6Ex7T9a9cADuw(c, (*a)._kind_6.sons->data[(NI)(T21_ - ((NI) 2))], &constraint);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							NIM_BOOL T24_;
							NIM_BOOL T26_;
							T24_ = (NIM_BOOL)0;
							T24_ = (kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
							if (!(T24_)) goto LA25_;
							T26_ = (NIM_BOOL)0;
							T26_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7));
							if (T26_) goto LA27_;
							T26_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
							LA27_: ;
							T24_ = T26_;
							LA25_: ;
							if (!T24_) goto LA28_;
							{
								tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T32_;
								NIM_BOOL T33_;
								NI T36_;
								NimStringDesc* T37_;
								T32_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
								T32_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T33_ = (NIM_BOOL)0;
								T33_ = isMagic__aafCJ57RxmXkzBZMJ1lSSQ(T32_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!!(T33_)) goto LA34_;
								T36_ = (NI)0;
								T36_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T37_ = (NimStringDesc*)0;
								T37_ = rawNewString(((*(*(*typ).sym).name).s ? (*(*(*typ).sym).name).s->Sup.len : 0) + 57);
appendString(T37_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114));
appendString(T37_, (*(*(*typ).sym).name).s);
appendString(T37_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_115));
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*a)._kind_6.sons->data[(NI)(T36_ - ((NI) 2))]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T37_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_116, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA34_: ;
						}
						LA28_: ;
					}
					LA19_: ;
					{
						NI T42_;
						if (!hasDefault) goto LA40_;
						T42_ = (NI)0;
						T42_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						def = (*a)._kind_6.sons->data[(NI)(T42_ - ((NI) 1))];
						{
							{
								NIM_BOOL T46_;
								NI T48_;
								T46_ = (NIM_BOOL)0;
								T46_ = !((genericParams == NIM_NIL));
								if (!(T46_)) goto LA47_;
								T48_ = (NI)0;
								T48_ = len__P89cqdlERShb9alU3iC0yj8wast(genericParams);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T46_ = (((NI) 0) < T48_);
								LA47_: ;
								if (!T46_) goto LA49_;
								def = semGenericStmt__7YxUILpPxooC5qqa89a54dw_7(c, def);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								{
									NIM_BOOL T53_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T56_;
									tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T57_;
									T53_ = (NIM_BOOL)0;
									T53_ = hasUnresolvedArgs__iY9a3KG6T9aTt3fJH8J6BrJQ(c, def);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									if (!T53_) goto LA54_;
									T56_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T56_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(def);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									T57_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
									T57_ = makeTypeFromExpr__D2YW7F23KYvdV39aTScM3IQ(c, T56_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*def).typ = T57_;
									goto LA43;
								}
								LA54_: ;
							}
							LA49_: ;
							def = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, def, 256);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T60_;
								NIM_BOOL T61_;
								T60_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
								T60_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T61_ = (NIM_BOOL)0;
								T61_ = referencesAnotherParam__cvWGVSvD9adrttq7iqjO7wA(def, T60_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!T61_) goto LA62_;
								(*def).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 19)) & 31);
							}
							LA62_: ;
						} LA43: ;
						{
							if (!(typ == NIM_NIL)) goto LA66_;
							typ = (*def).typ;
							{
								NIM_BOOL T70_;
								tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T73_;
								NimStringDesc* T74_;
								NimStringDesc* T75_;
								T70_ = (NIM_BOOL)0;
								T70_ = isEmptyContainer__YPjOkGV9axAnGR3UfLeWZ1g_4(typ);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!T70_) goto LA71_;
								T73_ = (*a).info;
								T74_ = (NimStringDesc*)0;
								T75_ = (NimStringDesc*)0;
								T75_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A((*a)._kind_6.sons->data[((NI) 0)]);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T74_ = rawNewString((T75_ ? T75_->Sup.len : 0) + 37);
appendString(T74_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_119));
appendString(T74_, T75_);
appendString(T74_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114));
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T73_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T74_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_120, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA71_: ;
							{
								tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T80_;
								tySequence__Ef05srmQTDulnBdXR4Ja6Q* T81_;
								tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T82_;
								if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA78_;
								T80_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
								T80_ = c;
								T81_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
								T81_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
								T82_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
								T82_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T81_->data[0] = T82_;
								typ = newTypeWithSons__7doBlU1jfuQUQdCuB7BM4Q(T80_, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8), T81_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
							}
							LA78_: ;
						}
						goto LA64_;
						LA66_: ;
						{
							{
								NIM_BOOL T86_;
								T86_ = (NIM_BOOL)0;
								T86_ = containsGenericType__YPjOkGV9axAnGR3UfLeWZ1g_2(typ);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!!(T86_)) goto LA87_;
								def = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, typ, def, (*def).info);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							goto LA84_;
							LA87_: ;
							{
								if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA90_;
								def = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, def);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								def = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, typ, def, (*def).info);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							goto LA84_;
							LA90_: ;
							LA84_: ;
						}
						LA64_: ;
					}
					LA40_: ;
					{
						NIM_BOOL T94_;
						T94_ = (NIM_BOOL)0;
						T94_ = !(hasType);
						if (!(T94_)) goto LA95_;
						T94_ = !(hasDefault);
						LA95_: ;
						if (!T94_) goto LA96_;
						{
							if (!isType) goto LA100_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_121), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_122, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA100_: ;
						{
							if (!((393216 &(1U<<((NU)(kind)&31U)))!=0)) goto LA104_;
							typ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6), c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA104_: ;
					}
					goto LA92_;
					LA96_: ;
					{
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T107_;
						T107_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T107_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(70368744179728));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!((*T107_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA108_;
						goto LA4;
					}
					goto LA92_;
					LA108_: ;
					LA92_: ;
					{
						NI j;
						NI colontmp__2;
						NI T111_;
						NI i_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T111_ = (NI)0;
						T111_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						colontmp__2 = (NI)(T111_ - ((NI) 2));
						i_3 = ((NI) 0);
						{
							while (1) {
								tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* arg;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T114_;
								tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* lifted;
								tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* finalType;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T151_;
								if (!(i_3 < colontmp__2)) goto LA113;
								j = i_3;
								T114_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								{
									if (!((*(*a)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA117_;
									T114_ = (*(*a)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 0)];
								}
								goto LA115_;
								LA117_: ;
								{
									T114_ = (*a)._kind_6.sons->data[j];
								}
								LA115_: ;
								arg = newSymG__z0Xq7x7aKOzONyxr8mX73A(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), T114_, c);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								{
									NIM_BOOL T122_;
									NIM_BOOL T123_;
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* 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 &(1U<<((NU)(kind)&31U)))!=0));
									LA125_: ;
									if (!T122_) goto LA126_;
									param = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ((*c).signatures, (*arg).name);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									{
										if (!!((param == NIM_NIL))) goto LA130_;
										typ = (*param).typ;
									}
									goto LA128_;
									LA130_: ;
									{
										liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_123), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_124, NIM_FALSE);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										typ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									LA128_: ;
								}
								LA126_: ;
								lifted = liftParamType__IED6yzEuxOVbtiDk639cvjw(c, kind, genericParams, typ, (*(*arg).name).s, (*arg).info, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								{
									if (!!((lifted == NIM_NIL))) goto LA135_;
									finalType = lifted;
								}
								goto LA133_;
								LA135_: ;
								{
									finalType = skipIntLit__PyQcLUUKkDYcpwke36Qpxgmagicsys(typ);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								LA133_: ;
								(*arg).typ = finalType;
								(*arg).position = counter;
								(*arg).constraint = constraint;
								counter += ((NI) 1);
								{
									NIM_BOOL T140_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T144_;
									T140_ = (NIM_BOOL)0;
									T140_ = !((def == NIM_NIL));
									if (!(T140_)) goto LA141_;
									T140_ = !(((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
									LA141_: ;
									if (!T140_) goto LA142_;
									T144_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T144_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(def);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*arg).ast = T144_;
								}
								LA142_: ;
								{
									NIM_BOOL T147_;
									NimStringDesc* T150_;
									T147_ = (NIM_BOOL)0;
									T147_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&check), (*(*arg).name).Sup.id);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									if (!T147_) goto LA148_;
									T150_ = (NimStringDesc*)0;
									T150_ = rawNewString(((*(*arg).name).s ? (*(*arg).name).s->Sup.len : 0) + 23);
appendString(T150_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_134));
appendString(T150_, (*(*arg).name).s);
appendString(T150_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114));
									liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T150_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_135, NIM_FALSE);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								LA148_: ;
								T151_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T151_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(arg);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								add__P8dDSotTW25BkfbyspojGg((*result).n, T151_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, finalType, NIM_TRUE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								addParamOrResult__pceuJlMM5di29a5a9cxxzXSQ(c, arg, kind);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								{
									if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA154_;
									nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, arg, (*arg).kind);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								LA154_: ;
								i_3 += ((NI) 1);
							} LA113: ;
						}
					}
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	r = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA158_;
		r = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA158_: ;
	{
		NIM_BOOL T162_;
		NIM_BOOL T163_;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
		T162_ = (NIM_BOOL)0;
		T163_ = (NIM_BOOL)0;
		T163_ = !((r == NIM_NIL));
		if (!(T163_)) goto LA164_;
		T163_ = ((393216 &(1U<<((NU)(kind)&31U)))!=0);
		LA164_: ;
		T162_ = T163_;
		if (!(T162_)) goto LA165_;
		T162_ = ((*r).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7));
		LA165_: ;
		if (!T162_) goto LA166_;
		info = (*(*n)._kind_6.sons->data[((NI) 0)]).info;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 16), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_136), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_137, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		r = NIM_NIL;
	}
	LA166_: ;
	{
		if (!!((r == NIM_NIL))) goto LA170_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T174_;
			tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw oldFlags;
			T174_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T174_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(r, IL64(70368744179728));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(((*T174_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63)))) goto LA175_;
			{
				NIM_BOOL T179_;
				NimStringDesc* T183_;
				NimStringDesc* T184_;
				T179_ = (NIM_BOOL)0;
				T179_ = !(((393216 &(1U<<((NU)(kind)&31U)))!=0));
				if (!(T179_)) goto LA180_;
				T179_ = ((192 &((NU64)1<<((NU)((*r).kind)&63U)))!=0);
				LA180_: ;
				if (!T179_) goto LA181_;
				T183_ = (NimStringDesc*)0;
				T184_ = (NimStringDesc*)0;
				T184_ = typeToString__QlvraUan7WbHowhAbvDvdA(r, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T183_ = rawNewString((T184_ ? T184_->Sup.len : 0) + 53);
appendString(T183_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_138));
appendString(T183_, T184_);
appendString(T183_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_139));
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T183_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_140, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA177_;
			LA181_: ;
			{
				if (!((*r).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59))) goto LA186_;
				r = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6), c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA177_;
			LA186_: ;
			{
				if (!((*r).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA189_;
			}
			goto LA177_;
			LA189_: ;
			{
				{
					NIM_BOOL T194_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* lifted_2;
					T194_ = (NIM_BOOL)0;
					T194_ = ((*r).sym == NIM_NIL);
					if (T194_) goto LA195_;
					T194_ = !((((*(*r).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 33))&63U)))!=0));
					LA195_: ;
					if (!T194_) goto LA196_;
					lifted_2 = liftParamType__IED6yzEuxOVbtiDk639cvjw(c, kind, genericParams, r, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_95), (*(*n)._kind_6.sons->data[((NI) 0)]).info, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!((lifted_2 == NIM_NIL))) goto LA200_;
						r = lifted_2;
						(*r).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 11)) & 63);
					}
					LA200_: ;
				}
				LA196_: ;
				r = skipIntLit__PyQcLUUKkDYcpwke36Qpxgmagicsys(r);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!(kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15))) goto LA204_;
					(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15)) & 63);
				}
				LA204_: ;
			}
			LA177_: ;
			(*result).sons->data[((NI) 0)] = r;
			oldFlags = (*result).flags;
			propagateToOwner__SzeWf39bw6SALsrL5NDJWbQ(result, r, NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!((oldFlags == (*result).flags))) goto LA208_;
				{
					if (!!(((oldFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 21))&63U)))!=0))) goto LA212_;
					(*result).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 21)) & 63));
				}
				LA212_: ;
			}
			LA208_: ;
			(*(*result).n).typ = r;
		}
		LA175_: ;
	}
	LA170_: ;
	{
		NIM_BOOL T216_;
		NI T218_;
		T216_ = (NIM_BOOL)0;
		T216_ = !((genericParams == NIM_NIL));
		if (!(T216_)) goto LA217_;
		T218_ = (NI)0;
		T218_ = len__P89cqdlERShb9alU3iC0yj8wast(genericParams);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T216_ = (((NI) 0) < T218_);
		LA217_: ;
		if (!T216_) goto LA219_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
			n_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_4;
				NI colontmp__3;
				NI i_5;
				i_4 = (NI)0;
				colontmp__3 = (NI)0;
				colontmp__3 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(genericParams);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_5 = ((NI) 0);
				{
					while (1) {
						if (!(i_5 < colontmp__3)) goto LA224;
						i_4 = i_5;
						n_2 = (*genericParams)._kind_6.sons->data[i_4];
						{
							if (!((IL64(8589934593) & (*(*n_2)._kind_4.sym).flags) == 0)) goto LA227_;
							(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)) & 63);
						}
						LA227_: ;
						{
							if (!(((*(*(*n_2)._kind_4.sym).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0)) goto LA231_;
							transitionGenericParamToType__EEixHgS5VK63cVXrrMe6Tw((*n_2)._kind_4.sym);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*(*(*n_2)._kind_4.sym).typ).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30)) & 63));
						}
						LA231_: ;
						i_5 += ((NI) 1);
					} LA224: ;
				}
			}
		}
	}
	LA219_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semParamList__HJ2sXcKFjirzvqsZjMcpTg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = semProcTypeNode__ZVaxL1YkeVlGuk9csaO0Z2w(c, n, genericParams, NIM_NIL, (*s).kind, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*s).typ = T1_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newParam__bk0oScE0sXzp15PuTrbg3w_2)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* x;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
	x = (*(*(*(*(*c).owner).typ).n)._kind_6.sons->data[(NI)((*s).position + ((NI) 1))])._kind_4.sym;
	result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(x, (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleSym__bk0oScE0sXzp15PuTrbg3w)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		if (!!((s == NIM_NIL))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = ((*s).owner == (*c).owner);
			if (!(T7_)) goto LA8_;
			T7_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			LA8_: ;
			if (!T7_) goto LA9_;
			result = newParam__bk0oScE0sXzp15PuTrbg3w_2(c, n, s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA5_;
		LA9_: ;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*c).toBind), (*s).Sup.id);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T12_) goto LA13_;
			result = symChoice__ce08GbPIDAcM29cbr3lVUxg((*c).c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA5_;
		LA13_: ;
		{
			NIM_BOOL T16_;
			NIM_BOOL T18_;
			NI T19_;
			tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* T23_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
			T16_ = (NIM_BOOL)0;
			T16_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18));
			if (!(T16_)) goto LA17_;
			T18_ = (NIM_BOOL)0;
			T19_ = (NI)0;
			T19_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*s).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T18_ = (T19_ == ((NI) 1));
			if (T18_) goto LA20_;
			T18_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
			LA20_: ;
			T16_ = T18_;
			LA17_: ;
			if (!T16_) goto LA21_;
			T23_ = (tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw*)0;
			T23_ = c;
			T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T24_ = semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog((*c).c, n, s, 8192);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = semPatternBody__DuioLh4uofptxEKissr2sw(T23_, T24_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA5_;
		LA21_: ;
		{
		}
		LA5_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, expectParam__DuioLh4uofptxEKissr2sw_2)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag((*c).c, n, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !((s == NIM_NIL));
		if (!(T4_)) goto LA5_;
		T4_ = ((*s).owner == (*c).owner);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
		LA6_: ;
		if (!T3_) goto LA7_;
		result = newParam__bk0oScE0sXzp15PuTrbg3w_2(c, n, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA7_: ;
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_141), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_144, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = n;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stupidStmtListExpr__OiccTa3ruRNl9anoSqZh2Sg_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmp_ = (NI)(T2_ - ((NI) 1));
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					if (!!(((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125)))) goto LA7_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA7_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPatternBody__DuioLh4uofptxEKissr2sw)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag((*c).c, n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = handleSym__bk0oScE0sXzp15PuTrbg3w(c, n, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122):
	{
		tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T3_;
		T3_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
		T3_ = (*c).c;
		result = semBindStmt__9askHuPxNsdv5Fi00VcmrXQ(T3_, n, (&(*c).toBind));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
	{
		{
			NI T8_;
			T8_ = (NI)0;
			T8_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!((T8_ == ((NI) 2)))) goto LA9_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_141), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_142, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA6_;
		LA9_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
			if (!((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA12_;
			T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T14_ = semPatternBody__DuioLh4uofptxEKissr2sw(c, (*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 0)] = T14_;
			T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T15_ = expectParam__DuioLh4uofptxEKissr2sw_2(c, (*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 1)] = T15_;
		}
		goto LA6_;
		LA12_: ;
		{
			NIM_BOOL T17_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* opr;
			T17_ = (NIM_BOOL)0;
			T17_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30));
			if (!(T17_)) goto LA18_;
			T17_ = ((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
			LA18_: ;
			if (!T17_) goto LA19_;
			opr = (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)];
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
				if (!eqStrings((*(*opr)._kind_5.ident).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_42))) goto LA23_;
				T25_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T25_ = semPatternBody__DuioLh4uofptxEKissr2sw(c, (*n)._kind_6.sons->data[((NI) 0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 0)] = T25_;
				T26_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T26_ = expectParam__DuioLh4uofptxEKissr2sw_2(c, (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)] = T26_;
			}
			goto LA21_;
			LA23_: ;
			{
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_141), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_145, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA21_: ;
		}
		goto LA6_;
		LA19_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_141), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_146, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		{
			NIM_BOOL T32_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
			T32_ = (NIM_BOOL)0;
			T32_ = stupidStmtListExpr__OiccTa3ruRNl9anoSqZh2Sg_3(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T32_) goto LA33_;
			T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T35_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = semPatternBody__DuioLh4uofptxEKissr2sw(c, T35_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA30_;
		LA33_: ;
		{
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T40_;
						if (!(i_2 < colontmp_)) goto LA39;
						i = i_2;
						T40_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T40_ = semPatternBody__DuioLh4uofptxEKissr2sw(c, (*n)._kind_6.sons->data[i]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*result)._kind_6.sons->data[i] = T40_;
						i_2 += ((NI) 1);
					} LA39: ;
				}
			}
		}
		LA30_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
		s_2 = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag((*c).c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((s_2 == NIM_NIL))) goto LA44_;
			{
				NIM_BOOL T48_;
				T48_ = (NIM_BOOL)0;
				T48_ = ((*s_2).owner == (*c).owner);
				if (!(T48_)) goto LA49_;
				T48_ = ((*s_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				LA49_: ;
				if (!T48_) goto LA50_;
			}
			goto LA46_;
			LA50_: ;
			{
				NIM_BOOL T53_;
				T53_ = (NIM_BOOL)0;
				T53_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*c).toBind), (*s_2).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T53_) goto LA54_;
			}
			goto LA46_;
			LA54_: ;
			{
				NIM_BOOL T57_;
				NIM_BOOL T59_;
				NI T60_;
				tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* T64_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T65_;
				T57_ = (NIM_BOOL)0;
				T57_ = ((*s_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18));
				if (!(T57_)) goto LA58_;
				T59_ = (NIM_BOOL)0;
				T60_ = (NI)0;
				T60_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*s_2).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T59_ = (T60_ == ((NI) 1));
				if (T59_) goto LA61_;
				T59_ = (((*s_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
				LA61_: ;
				T57_ = T59_;
				LA58_: ;
				if (!T57_) goto LA62_;
				T64_ = (tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw*)0;
				T64_ = c;
				T65_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T65_ = semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog((*c).c, n, s_2, 8192);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = semPatternBody__DuioLh4uofptxEKissr2sw(T64_, T65_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA46_;
			LA62_: ;
			LA46_: ;
		}
		LA44_: ;
		{
			NIM_BOOL T68_;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* id;
			T68_ = (NIM_BOOL)0;
			T68_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29));
			if (!(T68_)) goto LA69_;
			id = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw((*c).c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T68_ = !((id == NIM_NIL));
			LA69_: ;
			if (!T68_) goto LA70_;
			{
				NIM_BOOL T74_;
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T78_;
				NI T79_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T80_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T81_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T82_;
				T74_ = (NIM_BOOL)0;
				T74_ = eqStrings((*id).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_147));
				if (T74_) goto LA75_;
				T74_ = eqStrings((*id).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_148));
				LA75_: ;
				if (!T74_) goto LA76_;
				T78_ = (*n).info;
				T79_ = (NI)0;
				T79_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 153), T78_, T79_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T80_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T80_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(id, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[((NI) 0)] = T80_;
				T81_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T81_ = semPatternBody__DuioLh4uofptxEKissr2sw(c, (*n)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[((NI) 1)] = T81_;
				T82_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T82_ = expectParam__DuioLh4uofptxEKissr2sw_2(c, (*n)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[((NI) 2)] = T82_;
				goto BeforeRet_;
			}
			goto LA72_;
			LA76_: ;
			{
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T86_;
				NI T87_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T88_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T89_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T90_;
				if (!eqStrings((*id).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_42))) goto LA84_;
				T86_ = (*n).info;
				T87_ = (NI)0;
				T87_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 153), T86_, T87_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T88_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T88_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(id, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[((NI) 0)] = T88_;
				T89_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T89_ = semPatternBody__DuioLh4uofptxEKissr2sw(c, (*n)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[((NI) 1)] = T89_;
				T90_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T90_ = semPatternBody__DuioLh4uofptxEKissr2sw(c, (*n)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[((NI) 2)] = T90_;
				goto BeforeRet_;
			}
			goto LA72_;
			LA84_: ;
			LA72_: ;
		}
		LA70_: ;
		{
			NIM_BOOL T93_;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* id_2;
			T93_ = (NIM_BOOL)0;
			T93_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30));
			if (!(T93_)) goto LA94_;
			id_2 = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw((*c).c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T93_ = !((id_2 == NIM_NIL));
			LA94_: ;
			if (!T93_) goto LA95_;
			{
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T101_;
				NI T102_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T103_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T104_;
				if (!eqStrings((*id_2).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_149))) goto LA99_;
				T101_ = (*n).info;
				T102_ = (NI)0;
				T102_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 153), T101_, T102_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T103_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T103_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(id_2, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[((NI) 0)] = T103_;
				T104_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T104_ = semPatternBody__DuioLh4uofptxEKissr2sw(c, (*n)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[((NI) 1)] = T104_;
				goto BeforeRet_;
			}
			LA99_: ;
		}
		LA95_: ;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T108_;
					if (!(i_4 < colontmp__2)) goto LA107;
					i_3 = i_4;
					T108_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T108_ = semPatternBody__DuioLh4uofptxEKissr2sw(c, (*n)._kind_6.sons->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result)._kind_6.sons->data[i_3] = T108_;
					i_4 += ((NI) 1);
				} LA107: ;
			}
		}
	}
	break;
	default:
	{
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_3;
			s_3 = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag((*c).c, n, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!((s_3 == NIM_NIL))) goto LA113_;
				{
					NIM_BOOL T117_;
					T117_ = (NIM_BOOL)0;
					T117_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*c).toBind), (*s_3).Sup.id);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T117_) goto LA118_;
					result = symChoice__ce08GbPIDAcM29cbr3lVUxg((*c).c, n, s_3, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
				goto LA115_;
				LA118_: ;
				{
					result = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ((*s_3).name, (*n).info);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
				LA115_: ;
			}
			LA113_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
		{
			{
				NI T124_;
				T124_ = (NI)0;
				T124_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T124_ == ((NI) 1))) goto LA125_;
				result = semPatternBody__DuioLh4uofptxEKissr2sw(c, (*n)._kind_6.sons->data[((NI) 0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			LA125_: ;
		}
		break;
		default:
		{
		}
		break;
		}
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_6 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T131_;
					if (!(i_6 < colontmp__3)) goto LA130;
					i_5 = i_6;
					T131_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T131_ = semPatternBody__DuioLh4uofptxEKissr2sw(c, (*n)._kind_6.sons->data[i_5]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result)._kind_6.sons->data[i_5] = T131_;
					i_6 += ((NI) 1);
				} LA130: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPattern__7YxUILpPxooC5qqa89a54dw_9)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw ctx;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)(&ctx), sizeof(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&ctx.toBind));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&ctx.toMixin));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&ctx.toInject));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	ctx.c = c;
	T2_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T2_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	ctx.owner = T2_;
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = semPatternBody__DuioLh4uofptxEKissr2sw((&ctx), n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = flattenStmts__qsyX8NJX39ctdwAi4rC8W1g(T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA6_;
		{
			NI T10_;
			T10_ = (NI)0;
			T10_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T10_ == ((NI) 1))) goto LA11_;
			result = (*result)._kind_6.sons->data[((NI) 0)];
		}
		goto LA8_;
		LA11_: ;
		{
			NI T14_;
			T14_ = (NI)0;
			T14_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T14_ == ((NI) 0))) goto LA15_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_150), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_151, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA8_;
		LA15_: ;
		LA8_: ;
	}
	LA6_: ;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addGenericParamListToScope__NRIJDWZtATzMum7OEjYC2g_5)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75)))) goto LA3_;
		illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				if (!(i_2 < colontmp_)) goto LA7;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA10_;
					addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, (*a)._kind_4.sym);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA8_;
				LA10_: ;
				{
					illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a, (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA8_: ;
				i_2 += ((NI) 1);
			} LA7: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addParams__XjZLpvNqVUTx1J6TXREPBQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					if (!((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA6_;
					addParamOrResult__pceuJlMM5di29a5a9cxxzXSQ(c, (*(*n)._kind_6.sons->data[i])._kind_4.sym, kind);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA4_;
				LA6_: ;
				{
					illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, importantComments__TzsgO9bY9cwAf4hwmbs7dTmgoptions)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((16640 &(1U<<((NU)((*conf).cmd)&31U)))!=0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, canonType__ZcD0zNCGO9bcEV34hRXFEJA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA3_;
		result = (*(*c).graph).sysTypes[(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24))- 0];
	}
	goto LA1_;
	LA3_: ;
	{
		result = t;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, prevDestructor__ROJgPFH7qSpxtHsXsMs9bTg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prevOp, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* obj, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	NimStringDesc* msg;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = typeToString__QlvraUan7WbHowhAbvDvdA(obj, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = rawNewString(((*(*prevOp).name).s ? (*(*prevOp).name).s->Sup.len : 0) + (T2_ ? T2_->Sup.len : 0) + 27);
appendString(T1_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_164));
appendString(T1_, (*(*prevOp).name).s);
appendString(T1_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_165));
appendString(T1_, T2_);
	msg = T1_;
	{
		NimStringDesc* T7_;
		NimStringDesc* T8_;
		if (!!((((*prevOp).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0))) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T8_ = (NimStringDesc*)0;
		T8_ = dollar___aQsiZUvE4SFfnWyKx1JgKA((*(*c).graph).config, (*prevOp).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_ = rawNewString((T8_ ? T8_->Sup.len : 0) + 56);
appendString(T7_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_166));
appendString(T7_, T8_);
		msg = resizeString(msg, (T7_ ? T7_->Sup.len : 0) + 0);
appendString(msg, T7_);
	}
	goto LA3_;
	LA5_: ;
	{
		NimStringDesc* T10_;
		NimStringDesc* T11_;
		T10_ = (NimStringDesc*)0;
		T11_ = (NimStringDesc*)0;
		T11_ = dollar___aQsiZUvE4SFfnWyKx1JgKA((*(*c).graph).config, (*prevOp).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T10_ = rawNewString((T11_ ? T11_->Sup.len : 0) + 33);
appendString(T10_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_167));
appendString(T10_, T11_);
		msg = resizeString(msg, (T10_ ? T10_->Sup.len : 0) + 0);
appendString(msg, T10_);
	}
	LA3_: ;
	liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), msg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_168, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, bindTypeHook__tGevY34EeRmY9bzfs7irrbQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NIM_BOOL noError;
	NIM_BOOL cond;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	t = (*s).typ;
	noError = NIM_FALSE;
	{
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		NI T7_;
		if (!(op == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T7_ = (NI)0;
		T7_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = (T7_ == ((NI) 2));
		if (!(T6_)) goto LA8_;
		T6_ = ((*t).sons->data[((NI) 0)] == NIM_NIL);
		LA8_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA9_;
		T5_ = ((*(*t).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
		LA9_: ;
		cond = T5_;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T11_;
		NI T12_;
		T11_ = (NIM_BOOL)0;
		T12_ = (NI)0;
		T12_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T11_ = (((NI) 2) <= T12_);
		if (!(T11_)) goto LA13_;
		T11_ = ((*t).sons->data[((NI) 0)] == NIM_NIL);
		LA13_: ;
		cond = T11_;
	}
	LA1_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* obj;
		if (!cond) goto LA16_;
		obj = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 1)], 8388608);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			while (1) {
				(*obj).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31)) & 63);
				{
					if (!((3072 &((NU64)1<<((NU)((*obj).kind)&63U)))!=0)) goto LA22_;
					obj = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(obj);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA20_;
				LA22_: ;
				{
					if (!((*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA25_;
					obj = (*obj).sons->data[((NI) 0)];
				}
				goto LA20_;
				LA25_: ;
				{
					goto LA18;
				}
				LA20_: ;
			}
		} LA18: ;
		{
			if (!((285351936 &((NU64)1<<((NU)((*obj).kind)&63U)))!=0)) goto LA30_;
			obj = canonType__ZcD0zNCGO9bcEV34hRXFEJA(c, obj);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!((*obj).attachedOps[(op)- 0] == s)) goto LA34_;
			}
			goto LA32_;
			LA34_: ;
			{
				NIM_BOOL T37_;
				T37_ = (NIM_BOOL)0;
				T37_ = ((*obj).attachedOps[(op)- 0] == 0);
				if (!(T37_)) goto LA38_;
				T37_ = !((((*obj).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38))&63U)))!=0));
				LA38_: ;
				if (!T37_) goto LA39_;
				(*obj).attachedOps[(op)- 0] = s;
			}
			goto LA32_;
			LA39_: ;
			{
				prevDestructor__ROJgPFH7qSpxtHsXsMs9bTg(c, (*obj).attachedOps[(op)- 0], obj, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA32_: ;
			noError = NIM_TRUE;
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T44_;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T45_;
				NimStringDesc* T48_;
				NimStringDesc* T49_;
				T44_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T44_ = getModule__xfh8ar7fDxVX2A4OO9b5sqQ((*obj).owner);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T45_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T45_ = getModule__xfh8ar7fDxVX2A4OO9b5sqQ(s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!((T44_ == T45_))) goto LA46_;
				T48_ = (NimStringDesc*)0;
				T49_ = (NimStringDesc*)0;
				T49_ = typeToString__QlvraUan7WbHowhAbvDvdA(obj, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T48_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + (T49_ ? T49_->Sup.len : 0) + 79);
appendString(T48_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_169));
appendString(T48_, (*(*s).name).s);
appendString(T48_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_170));
appendString(T48_, T49_);
appendString(T48_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_69));
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T48_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_171, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA46_: ;
		}
		LA30_: ;
	}
	LA16_: ;
	{
		NIM_BOOL T52_;
		NimStringDesc* T56_;
		T52_ = (NIM_BOOL)0;
		T52_ = !(noError);
		if (!(T52_)) goto LA53_;
		T52_ = !((((*(*s).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0));
		LA53_: ;
		if (!T52_) goto LA54_;
		T56_ = (NimStringDesc*)0;
		T56_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 50);
appendString(T56_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_172));
appendString(T56_, (*(*s).name).s);
appendString(T56_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_173));
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T56_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_174, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA54_: ;
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34)) & 63);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, semOverride__8H5d8d9cPCfbpMuDrerQMeQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* name;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	name = nsuNormalize((*(*s).name).s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_157))) goto LA1_;
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_158))) goto LA2_;
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_159))) goto LA2_;
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_160))) goto LA3_;
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_161))) goto LA3_;
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_162))) goto LA4_;
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_163))) goto LA5_;
	goto LA6_;
	LA1_: ;
	{
		bindTypeHook__tGevY34EeRmY9bzfs7irrbQ(c, s, n, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA7_;
	LA2_: ;
	{
		{
			NIM_BOOL T12_;
			NIM_BOOL T13_;
			NI T14_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T16_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
			T12_ = (NIM_BOOL)0;
			T13_ = (NIM_BOOL)0;
			T14_ = (NI)0;
			T14_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*s).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T13_ = (T14_ == ((NI) 2));
			if (!(T13_)) goto LA15_;
			T16_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T16_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*s).typ).sons->data[((NI) 1)], IL64(36134350135273744));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T13_ = ((6291456 &((NU64)1<<((NU)((*T16_).kind)&63U)))!=0);
			LA15_: ;
			T12_ = T13_;
			if (!(T12_)) goto LA17_;
			T12_ = sameType__3isNyHKb0U1OCnClmflXSg((*(*s).typ).sons->data[((NI) 1)], (*(*s).typ).sons->data[((NI) 0)], 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA17_: ;
			if (!T12_) goto LA18_;
			T20_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T20_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*s).typ).sons->data[((NI) 1)], IL64(36134350135273744));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T21_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T21_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(T20_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T21_, IL64(36134350135273744));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				while (1) {
					{
						if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10))) goto LA26_;
						t = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA24_;
					LA26_: ;
					{
						if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA29_;
						t = (*t).sons->data[((NI) 0)];
					}
					goto LA24_;
					LA29_: ;
					{
						goto LA22;
					}
					LA24_: ;
				}
			} LA22: ;
			{
				if (!((285368320 &((NU64)1<<((NU)((*t).kind)&63U)))!=0)) goto LA34_;
				{
					if (!((*t).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 5))- 0] == 0)) goto LA38_;
					(*t).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 5))- 0] = s;
				}
				goto LA36_;
				LA38_: ;
				{
					NimStringDesc* T41_;
					NimStringDesc* T42_;
					T41_ = (NimStringDesc*)0;
					T42_ = (NimStringDesc*)0;
					T42_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T41_ = rawNewString((T42_ ? T42_->Sup.len : 0) + 35);
appendString(T41_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_175));
appendString(T41_, T42_);
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T41_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_176, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA36_: ;
			}
			goto LA32_;
			LA34_: ;
			{
				NimStringDesc* T44_;
				NimStringDesc* T45_;
				T44_ = (NimStringDesc*)0;
				T45_ = (NimStringDesc*)0;
				T45_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T44_ = rawNewString((T45_ ? T45_->Sup.len : 0) + 27);
appendString(T44_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_177));
appendString(T44_, T45_);
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T44_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_178, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA32_: ;
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T48_;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T49_;
				NimStringDesc* T52_;
				NimStringDesc* T53_;
				T48_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T48_ = getModule__xfh8ar7fDxVX2A4OO9b5sqQ((*t).owner);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T49_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T49_ = getModule__xfh8ar7fDxVX2A4OO9b5sqQ(s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!((T48_ == T49_))) goto LA50_;
				T52_ = (NimStringDesc*)0;
				T53_ = (NimStringDesc*)0;
				T53_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T52_ = rawNewString((name ? name->Sup.len : 0) + (T53_ ? T53_->Sup.len : 0) + 79);
appendString(T52_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_169));
appendString(T52_, name);
appendString(T52_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_170));
appendString(T52_, T53_);
appendString(T52_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_69));
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T52_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_179, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA50_: ;
		}
		goto LA10_;
		LA18_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_180), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_181, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA10_: ;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34)) & 63);
	}
	goto LA7_;
	LA3_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
		{
			if (!((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 7))) goto LA58_;
			goto BeforeRet_;
		}
		LA58_: ;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34)) & 63);
		t_2 = (*s).typ;
		{
			NIM_BOOL T62_;
			NIM_BOOL T63_;
			NI T64_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* obj;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objB;
			T62_ = (NIM_BOOL)0;
			T63_ = (NIM_BOOL)0;
			T64_ = (NI)0;
			T64_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T63_ = (T64_ == ((NI) 3));
			if (!(T63_)) goto LA65_;
			T63_ = ((*t_2).sons->data[((NI) 0)] == NIM_NIL);
			LA65_: ;
			T62_ = T63_;
			if (!(T62_)) goto LA66_;
			T62_ = ((*(*t_2).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
			LA66_: ;
			if (!T62_) goto LA67_;
			obj = (*(*t_2).sons->data[((NI) 1)]).sons->data[((NI) 0)];
			{
				while (1) {
					(*obj).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31)) & 63);
					{
						if (!((*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10))) goto LA73_;
						obj = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(obj);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA71_;
					LA73_: ;
					{
						if (!((*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA76_;
						obj = (*obj).sons->data[((NI) 0)];
					}
					goto LA71_;
					LA76_: ;
					{
						goto LA69;
					}
					LA71_: ;
				}
			} LA69: ;
			objB = (*t_2).sons->data[((NI) 2)];
			{
				while (1) {
					{
						if (!((*objB).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10))) goto LA83_;
						objB = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(objB);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA81_;
					LA83_: ;
					{
						if (!((2560 &((NU64)1<<((NU)((*objB).kind)&63U)))!=0)) goto LA86_;
						objB = (*objB).sons->data[((NI) 0)];
					}
					goto LA81_;
					LA86_: ;
					{
						goto LA79;
					}
					LA81_: ;
				}
			} LA79: ;
			{
				NIM_BOOL T91_;
				tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg k;
				T91_ = (NIM_BOOL)0;
				T91_ = ((285351936 &((NU64)1<<((NU)((*obj).kind)&63U)))!=0);
				if (!(T91_)) goto LA92_;
				T91_ = sameType__3isNyHKb0U1OCnClmflXSg(obj, objB, 0);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA92_: ;
				if (!T91_) goto LA93_;
				obj = canonType__ZcD0zNCGO9bcEV34hRXFEJA(c, obj);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_160))) goto LA97_;
					k = ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1);
				}
				goto LA95_;
				LA97_: ;
				{
					k = ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2);
				}
				LA95_: ;
				{
					if (!((*obj).attachedOps[(k)- 0] == s)) goto LA102_;
				}
				goto LA100_;
				LA102_: ;
				{
					NIM_BOOL T105_;
					T105_ = (NIM_BOOL)0;
					T105_ = ((*obj).attachedOps[(k)- 0] == 0);
					if (!(T105_)) goto LA106_;
					T105_ = !((((*obj).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38))&63U)))!=0));
					LA106_: ;
					if (!T105_) goto LA107_;
					(*obj).attachedOps[(k)- 0] = s;
				}
				goto LA100_;
				LA107_: ;
				{
					prevDestructor__ROJgPFH7qSpxtHsXsMs9bTg(c, (*obj).attachedOps[(k)- 0], obj, (*n).info);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA100_: ;
				{
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T112_;
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T113_;
					NimStringDesc* T116_;
					NimStringDesc* T117_;
					T112_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
					T112_ = getModule__xfh8ar7fDxVX2A4OO9b5sqQ((*obj).owner);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T113_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
					T113_ = getModule__xfh8ar7fDxVX2A4OO9b5sqQ(s);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!!((T112_ == T113_))) goto LA114_;
					T116_ = (NimStringDesc*)0;
					T117_ = (NimStringDesc*)0;
					T117_ = typeToString__QlvraUan7WbHowhAbvDvdA(obj, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T116_ = rawNewString((name ? name->Sup.len : 0) + (T117_ ? T117_->Sup.len : 0) + 79);
appendString(T116_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_169));
appendString(T116_, name);
appendString(T116_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_170));
appendString(T116_, T117_);
appendString(T116_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_69));
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T116_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_182, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA114_: ;
				goto BeforeRet_;
			}
			LA93_: ;
		}
		LA67_: ;
		{
			NimStringDesc* T122_;
			if (!!((((*(*s).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0))) goto LA120_;
			T122_ = (NimStringDesc*)0;
			T122_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 56);
appendString(T122_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_172));
appendString(T122_, (*(*s).name).s);
appendString(T122_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_183));
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T122_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_184, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA120_: ;
	}
	goto LA7_;
	LA4_: ;
	{
		bindTypeHook__tGevY34EeRmY9bzfs7irrbQ(c, s, n, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA7_;
	LA5_: ;
	{
		bindTypeHook__tGevY34EeRmY9bzfs7irrbQ(c, s, n, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA7_;
	LA6_: ;
	{
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0)) goto LA128_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_185), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_186, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA128_: ;
	}
	LA7_: ;
	}BeforeRet_: ;
}
static N_INLINE(NI, find__CWgb1wQSxTCKtdHVU5pCYQsystem)(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__MghwuKjQqmVLYE8A59cNGHgsystem)(NimStringDesc** a, NI aLen_0, NimStringDesc* item) {
	NIM_BOOL result;
	NI T1_;
{	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = find__CWgb1wQSxTCKtdHVU5pCYQsystem(a, aLen_0, item);
	result = (((NI) 0) <= T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cursorInProcAux__2z69cmDyuoRHwZ79bXIom4jw_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg T3_;
		T3_ = (tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg)0;
		T3_ = inCheckpoint__39cgIJElcz9arpbYiRwV2TVw((*n).info, (*conf).m.trackPos);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!((T3_ == ((tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg) 0)))) goto LA4_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA8;
				i = i_2;
				{
					NIM_BOOL T11_;
					T11_ = (NIM_BOOL)0;
					T11_ = cursorInProcAux__2z69cmDyuoRHwZ79bXIom4jw_2(conf, (*n)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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__2z69cmDyuoRHwZ79bXIom4jw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		if (!((*n).info.fileIndex == (*conf).m.trackPos.fileIndex)) goto LA3_;
		result = cursorInProcAux__2z69cmDyuoRHwZ79bXIom4jw_2(conf, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasObjParam__J1LR9bIUh18t4XFDmYEYBYw_2)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	t = (*s).typ;
	{
		NI col;
		NI colontmp_;
		NI i;
		col = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i = ((NI) 1);
		{
			while (1) {
				if (!(i < colontmp_)) goto LA3;
				col = i;
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
					T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T6_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[col], IL64(36275087638268176));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!((*T6_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA7_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA7_: ;
				i += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semMethodPrototype__8H5d8d9cPCfbpMuDrerQMeQ_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tt;
		NIM_BOOL foundObj;
		T3_ = (NIM_BOOL)0;
		T3_ = isGenericRoutine__uUQONnU7icBs9bdkKqJVqhA(s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		tt = (*s).typ;
		foundObj = NIM_FALSE;
		{
			NI col;
			NI colontmp_;
			NI i;
			col = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(tt);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i = ((NI) 1);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
					if (!(i < colontmp_)) goto LA8;
					col = i;
					t = (*tt).sons->data[col];
					{
						NIM_BOOL T11_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
						T11_ = (NIM_BOOL)0;
						T11_ = !((t == NIM_NIL));
						if (!(T11_)) goto LA12_;
						T11_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9));
						LA12_: ;
						if (!T11_) goto LA13_;
						x = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(246290619305488));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							NIM_BOOL T17_;
							NI T19_;
							NI T20_;
							tyTuple__zwpS6d6iewrdlBSTNFoyVA T23_;
							NI T24_;
							T17_ = (NIM_BOOL)0;
							T17_ = ((*x).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
							if (!(T17_)) goto LA18_;
							T19_ = (NI)0;
							T19_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T20_ = (NI)0;
							T20_ = len__P89cqdlERShb9alU3iC0yj8wast((*n)._kind_6.sons->data[((NI) 2)]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T17_ = ((NI)(T19_ - ((NI) 1)) == T20_);
							LA18_: ;
							if (!T17_) goto LA21_;
							foundObj = NIM_TRUE;
							nimZeroMem((void*)(&T23_), sizeof(tyTuple__zwpS6d6iewrdlBSTNFoyVA));
							T23_.Field0 = col;
							T23_.Field1 = s;
							(*x).methods = (tySequence__MvZmat48bhe9b6x9aUD58D5Q*) incrSeqV3((TGenericSeq*)((*x).methods), (&NTI__MvZmat48bhe9b6x9aUD58D5Q_));
							T24_ = (*x).methods->Sup.len++;
							(*x).methods->data[T24_].Field0 = T23_.Field0;
							(*x).methods->data[T24_].Field1 = T23_.Field1;
						}
						LA21_: ;
					}
					LA13_: ;
					i += ((NI) 1);
				} LA8: ;
			}
		}
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 16), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_199), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_200, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		{
			NIM_BOOL T28_;
			T28_ = (NIM_BOOL)0;
			T28_ = hasObjParam__J1LR9bIUh18t4XFDmYEYBYw_2(s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T28_) goto LA29_;
			methodDef__NKjYu87vB0uQmGRMfpDEBQ((*c).graph, s, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA26_;
		LA29_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_201), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_202, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA26_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pushProcCon__jWGpC0lY8vG9b1MhOYJ9cFiQ_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	rawPushProcCon__jWGpC0lY8vG9b1MhOYJ9cFiQ(c, owner);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	rawHandleSelf__jWGpC0lY8vG9b1MhOYJ9cFiQ_2(c, owner);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, typeAllowedCheck__OJXIxi4fH0HgKVBUkO49a7w)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tySet_tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw flags) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	t = typeAllowed__l66YrquEyj20orz2a4YbTw(typ, kind, flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringDesc* err;
		if (!!((t == NIM_NIL))) goto LA3_;
		err = (NimStringDesc*)0;
		{
			tyArray__Re75IspeoxXy2oCZHwcRrA T9_;
			NimStringDesc* T10_;
			NimStringDesc* T11_;
			if (!(t == typ)) goto LA7_;
			nimZeroMem((void*)T9_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T10_ = (NimStringDesc*)0;
			T10_ = typeToString__QlvraUan7WbHowhAbvDvdA(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T9_[0] = T10_;
			T11_ = (NimStringDesc*)0;
			T11_ = toHumanStr__QHyA5kxlk0TZf3p6IbMdtA(kind);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T9_[1] = T11_;
			err = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_203), T9_, 2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T14_;
				tyArray__nHXaesL0DJZHyVS07ARPRA T18_;
				NimStringDesc* T19_;
				NimStringDesc* T20_;
				T14_ = (NIM_BOOL)0;
				T14_ = ((1792 &(1U<<((NU)(kind)&31U)))!=0);
				if (!(T14_)) goto LA15_;
				T14_ = ((flags &(1U<<((NU)(((tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw) 5))&7U)))!=0);
				LA15_: ;
				if (!T14_) goto LA16_;
				nimZeroMem((void*)T18_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
				T19_ = (NimStringDesc*)0;
				T19_ = toHumanStr__QHyA5kxlk0TZf3p6IbMdtA((*(*typ).owner).kind);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T18_[0] = T19_;
				T20_ = (NimStringDesc*)0;
				T20_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_204), T18_, 1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				err = resizeString(err, (T20_ ? T20_->Sup.len : 0) + 0);
appendString(err, T20_);
			}
			LA16_: ;
		}
		goto LA5_;
		LA7_: ;
		{
			tyArray__24KAM9afIUgUaqBaEBB6r9bg T22_;
			NimStringDesc* T23_;
			NimStringDesc* T24_;
			NimStringDesc* T25_;
			nimZeroMem((void*)T22_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
			T23_ = (NimStringDesc*)0;
			T23_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T22_[0] = T23_;
			T24_ = (NimStringDesc*)0;
			T24_ = typeToString__QlvraUan7WbHowhAbvDvdA(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T22_[1] = T24_;
			T25_ = (NimStringDesc*)0;
			T25_ = toHumanStr__QHyA5kxlk0TZf3p6IbMdtA(kind);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T22_[2] = T25_;
			err = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_205), T22_, 3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA5_: ;
		liMessage__Q6JNH4uRwLyZrj0dJakHew(conf, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), err, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_206, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
static N_INLINE(void, paramsTypeCheck__X9cjeXk0ogla5nWLtx0FEkAsem)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	typeAllowedCheck__OJXIxi4fH0HgKVBUkO49a7w((*(*c).graph).config, (*(*typ).n).info, typ, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12), 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, activate__NRIJDWZtATzMum7OEjYC2g_6)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
}
static N_INLINE(NIM_BOOL, isArrayConstr__crbaOhZgTohCnKAdtWPkSQsem)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41));
	if (!(T1_)) goto LA2_;
	T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T3_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = ((*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16));
	LA2_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fixAbstractType__NRIJDWZtATzMum7OEjYC2g_7)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T6_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59));
					if (!(T6_)) goto LA7_;
					T8_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T8_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*it).typ, IL64(36275087632017680));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T6_ = !(((IL64(281475110928384) &((NU64)1<<((NU)((*T8_).kind)&63U)))!=0));
					LA7_: ;
					if (!T6_) goto LA9_;
					{
						NIM_BOOL T13_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* s;
						T13_ = (NIM_BOOL)0;
						T14_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T14_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*it)._kind_6.sons->data[((NI) 1)]).typ, IL64(36275087632017680));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T13_ = ((786464 &((NU64)1<<((NU)((*T14_).kind)&63U)))!=0);
						if (T13_) goto LA15_;
						T13_ = isArrayConstr__crbaOhZgTohCnKAdtWPkSQsem((*it)._kind_6.sons->data[((NI) 1)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						LA15_: ;
						if (!T13_) goto LA16_;
						s = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*it).typ, IL64(36275087632017680));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!!(((*s).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6)))) goto LA20_;
							changeType__sF9cXBCC3k8saS0PTBUB9b8A(c, (*it)._kind_6.sons->data[((NI) 1)], s, NIM_TRUE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA20_: ;
						(*n)._kind_6.sons->data[i] = (*it)._kind_6.sons->data[((NI) 1)];
					}
					LA16_: ;
				}
				LA9_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag, isAssignable__ASvZU4uIBad6J9b9cMoLNFvA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isUnsafeAddr) {
	tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag)0;
	result = isAssignable__H8ClJSBthN45fIRKmjWHMQ((*(*c).p).owner, n, isUnsafeAddr);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderNotLValue__vfKkxNGxagsG9czCdz2IAEQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NimStringDesc*)0;
	result = dollar___qX5C9b0n9bOP7jk69amC8dA7A(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA3_;
		n_2 = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		n_2 = n;
	}
	LA1_: ;
	{
		NIM_BOOL T8_;
		NI T10_;
		NimStringDesc* T13_;
		NimStringDesc* T14_;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
		if (!(T8_)) goto LA9_;
		T10_ = (NI)0;
		T10_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T8_ = (((NI) 1) < T10_);
		LA9_: ;
		if (!T8_) goto LA11_;
		T13_ = (NimStringDesc*)0;
		T14_ = (NimStringDesc*)0;
		T14_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A((*n_2)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T13_ = rawNewString((T14_ ? T14_->Sup.len : 0) + (result ? result->Sup.len : 0) + 2);
appendString(T13_, T14_);
appendString(T13_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_67));
appendString(T13_, result);
appendString(T13_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_69));
		result = T13_;
	}
	goto LA6_;
	LA11_: ;
	{
		NIM_BOOL T16_;
		NI T18_;
		NimStringDesc* T21_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T22_;
		NimStringDesc* T23_;
		T16_ = (NIM_BOOL)0;
		T16_ = ((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) || (*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59));
		if (!(T16_)) goto LA17_;
		T18_ = (NI)0;
		T18_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T16_ = (T18_ == ((NI) 2));
		LA17_: ;
		if (!T16_) goto LA19_;
		T21_ = (NimStringDesc*)0;
		T22_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T22_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n_2).typ, IL64(36275087632017680));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T23_ = (NimStringDesc*)0;
		T23_ = typeToString__QlvraUan7WbHowhAbvDvdA(T22_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T21_ = rawNewString((T23_ ? T23_->Sup.len : 0) + (result ? result->Sup.len : 0) + 2);
appendString(T21_, T23_);
appendString(T21_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_67));
appendString(T21_, result);
appendString(T21_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_69));
		result = T21_;
	}
	goto LA6_;
	LA19_: ;
	LA6_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newHiddenAddrTaken__7YxUILpPxooC5qqa89a54dw_14)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*(*(*c).graph).config).backend == ((tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g) 2));
		if (T5_) goto LA6_;
		T5_ = (((*(*c).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
		LA6_: ;
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA7_;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 1), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA7_: ;
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T10_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
		T10_ = (*n).info;
		T11_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T11_ = makeVarType__45x39aIZGLTdqqo59b4NHvLw(c, (*n).typ, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64), T10_, T11_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag T14_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T17_;
			NimStringDesc* T18_;
			NimStringDesc* T19_;
			T14_ = (tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag)0;
			T14_ = isAssignable__ASvZU4uIBad6J9b9cMoLNFvA(c, n, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(((6 &(1U<<((NU)(T14_)&7U)))!=0))) goto LA15_;
			T17_ = (*n).info;
			T18_ = (NimStringDesc*)0;
			T18_ = renderNotLValue__vfKkxNGxagsG9czCdz2IAEQ(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T19_ = (NimStringDesc*)0;
			T19_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_211), T18_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T17_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T19_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_215, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA15_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, analyseIfAddressTaken__7YxUILpPxooC5qqa89a54dw_13)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			NIM_BOOL T4_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
			T4_ = (NIM_BOOL)0;
			T4_ = !(((*(*n)._kind_4.sym).typ == NIM_NIL));
			if (!(T4_)) goto LA5_;
			T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T6_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_4.sym).typ, IL64(36134350135273488));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T4_ = !(((IL64(140737496743936) &((NU64)1<<((NU)((*T6_).kind)&63U)))!=0));
			LA5_: ;
			if (!T4_) goto LA7_;
			(*(*n)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 17)) & 63);
			result = newHiddenAddrTaken__7YxUILpPxooC5qqa89a54dw_14(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA12_;
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_216), TM__rF9caJawfOjYTjsgLVUSGFA_217);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		LA12_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T16_;
			T16_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T16_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).typ, IL64(36134350135273488));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(((IL64(140737496743936) &((NU64)1<<((NU)((*T16_).kind)&63U)))!=0))) goto LA17_;
			(*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 17)) & 63);
			result = newHiddenAddrTaken__7YxUILpPxooC5qqa89a54dw_14(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 1), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T22_;
			T22_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T22_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273488));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(((IL64(140737496743936) &((NU64)1<<((NU)((*T22_).kind)&63U)))!=0))) goto LA23_;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA27_;
				(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 17)) & 63);
			}
			LA27_: ;
			result = newHiddenAddrTaken__7YxUILpPxooC5qqa89a54dw_14(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA23_: ;
	}
	break;
	default:
	{
		result = newHiddenAddrTaken__7YxUILpPxooC5qqa89a54dw_14(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, analyseIfAddressTakenInCall__NRIJDWZtATzMum7OEjYC2g_8)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 1), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(70368744179728));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = ((TM__rF9caJawfOjYTjsgLVUSGFA_210[(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__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			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__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
						T12_ = (NIM_BOOL)0;
						T13_ = (NIM_BOOL)0;
						T14_ = (NI)0;
						T14_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T13_ = (i < T14_);
						if (!(T13_)) goto LA15_;
						T13_ = !(((*t).sons->data[i] == NIM_NIL));
						LA15_: ;
						T12_ = T13_;
						if (!(T12_)) goto LA16_;
						T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T17_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[i], IL64(36134350135273488));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T12_ = ((8388608 &((NU64)1<<((NU)((*T17_).kind)&63U)))!=0);
						LA16_: ;
						if (!T12_) goto LA18_;
						it = (*n)._kind_6.sons->data[i];
						{
							tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag T22_;
							T22_ = (tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag)0;
							T22_ = isAssignable__ASvZU4uIBad6J9b9cMoLNFvA(c, it, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(((6 &(1U<<((NU)(T22_)&7U)))!=0))) goto LA23_;
							{
								tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T29_;
								NimStringDesc* T30_;
								NimStringDesc* T31_;
								if (!!(((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64)))) goto LA27_;
								T29_ = (*it).info;
								T30_ = (NimStringDesc*)0;
								T30_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(it);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T31_ = (NimStringDesc*)0;
								T31_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_211), T30_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T29_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T31_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_212, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA27_: ;
						}
						LA23_: ;
					}
					LA18_: ;
					i_2 += ((NI) 1);
				} LA9: ;
			}
		}
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
			if (!((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 32) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 33) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 34))) goto LA34_;
			arg = (*n)._kind_6.sons->data[((NI) 1)];
			{
				if (!((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA38_;
				arg = (*arg)._kind_6.sons->data[((NI) 0)];
			}
			LA38_: ;
			{
				NIM_BOOL T42_;
				NIM_BOOL T43_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T46_;
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T49_;
				NimStringDesc* T50_;
				NimStringDesc* T51_;
				T42_ = (NIM_BOOL)0;
				T43_ = (NIM_BOOL)0;
				T43_ = ((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T43_)) goto LA44_;
				T43_ = ((*(*arg)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11));
				LA44_: ;
				T42_ = T43_;
				if (!(T42_)) goto LA45_;
				T46_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T46_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*arg).typ, IL64(36134350135273744));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T42_ = ((IL64(140737496743936) &((NU64)1<<((NU)((*T46_).kind)&63U)))!=0);
				LA45_: ;
				if (!T42_) goto LA47_;
				T49_ = (*n).info;
				T50_ = (NimStringDesc*)0;
				T50_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA((*n)._kind_6.sons->data[((NI) 1)], 4);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T51_ = (NimStringDesc*)0;
				T51_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_213), T50_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T49_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T51_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_214, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA47_: ;
		}
		LA34_: ;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NI i_3;
		NI colontmp__2;
		NI i_4;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_4 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
				if (!(i_4 < colontmp__2)) goto LA54;
				i_3 = i_4;
				{
					if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA57_;
					n_2 = (*n)._kind_6.sons->data[((NI) 0)];
				}
				goto LA55_;
				LA57_: ;
				{
					n_2 = n;
				}
				LA55_: ;
				{
					if (!((*(*n_2)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA62_;
					analyseIfAddressTakenInCall__NRIJDWZtATzMum7OEjYC2g_8(c, (*n_2)._kind_6.sons->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA62_: ;
				{
					NIM_BOOL T66_;
					NI T67_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T69_;
					T66_ = (NIM_BOOL)0;
					T67_ = (NI)0;
					T67_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T66_ = (i_3 < T67_);
					if (!(T66_)) goto LA68_;
					T69_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T69_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[i_3], IL64(36134350135273488));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T66_ = ((8388608 &((NU64)1<<((NU)((*T69_).kind)&63U)))!=0);
					LA68_: ;
					if (!T66_) goto LA70_;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T76_;
						if (!!(((*(*n_2)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64)))) goto LA74_;
						T76_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T76_ = analyseIfAddressTaken__7YxUILpPxooC5qqa89a54dw_13(c, (*n_2)._kind_6.sons->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*n_2)._kind_6.sons->data[i_3] = T76_;
					}
					LA74_: ;
				}
				LA70_: ;
				i_4 += ((NI) 1);
			} LA54: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAddrArg__kiPmghV1gaPm718CtGyhQw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isUnsafeAddr) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	x = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, n, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		(*(*x)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 17)) & 63);
	}
	LA3_: ;
	{
		tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag T7_;
		T7_ = (tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag)0;
		T7_ = isAssignable__ASvZU4uIBad6J9b9cMoLNFvA(c, x, isUnsafeAddr);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(((6 &(1U<<((NU)(T7_)&7U)))!=0))) goto LA8_;
		{
			if (!isUnsafeAddr) goto LA12_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_218), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_219, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA10_;
		LA12_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_221), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_222, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA10_: ;
	}
	LA8_: ;
	result = x;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTypeOf__7YxUILpPxooC5qqa89a54dw_15)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI64 m;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typExpr;
	tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ T11_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	m = IL64(1);
	{
		NI T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* mode;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 3))) goto LA4_;
		mode = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, (*n)._kind_6.sons->data[((NI) 2)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*mode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)))) goto LA8_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_224), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_225, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA6_;
		LA8_: ;
		{
			m = (*mode)._kind_1.intVal;
		}
		LA6_: ;
	}
	LA4_: ;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(m == IL64(1))) goto LA14_;
		T11_ = 4;
	}
	goto LA12_;
	LA14_: ;
	{
		T11_ = 0;
	}
	LA12_: ;
	typExpr = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 1)], T11_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, typExpr);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T17_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(c, (*typExpr).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = T17_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDeref__7YxUILpPxooC5qqa89a54dw_16)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 1), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 0)] = T1_;
	result = n;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(246290613012496));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n).typ = T3_;
	}
	break;
	default:
	{
		result = NIM_NIL;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semStaticType__DMAavRw02YcIRkO3yZ1XeQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* childNode, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, childNode, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	base = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T1_, 272);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, base, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 24)) & 63);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSymGenericInstantiation__aK9ce4VwkiusXxioJ5dzs5w)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, explicitGenericSym__aK9ce4VwkiusXxioJ5dzs5w_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* newInst;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	newCandidate__BdjBO3HF6dSjQEzna7SJ1A(c, s, NIM_NIL, ((NI) -1), (&m));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arg;
				tyEnum_TTypeRelation__1IMf5P083XuEtWGxYaIXyQ tm;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				formal = (*(*(*(*s).ast)._kind_6.sons->data[((NI) 2)])._kind_6.sons->data[(NI)(i - ((NI) 1))]).typ;
				arg = (*(*n)._kind_6.sons->data[i]).typ;
				{
					NIM_BOOL T6_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* evaluated;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
					if (!(T6_)) goto LA7_;
					T6_ = !(((*arg).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60)));
					LA7_: ;
					if (!T6_) goto LA8_;
					evaluated = (*c).semTryConstExpr(c, (*n)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!((evaluated == NIM_NIL))) goto LA12_;
						arg = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*arg).sons = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
						(*arg).sons->data[0] = (*evaluated).typ;
						(*arg).n = evaluated;
					}
					LA12_: ;
				}
				LA8_: ;
				tm = typeRel__3a3tkQB9aY8V2J9acM5cZ6nA((&m), formal, arg, 0);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!((3 &(1U<<((NU)(tm)&15U)))!=0)) goto LA16_;
					result = NIM_NIL;
					goto BeforeRet_;
				}
				LA16_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	newInst = generateInstance__Bbmaz5QjetnTaor7LYngPg(c, s, m.bindings, (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*newInst).typ).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)) & 63));
	info = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	markUsed__QlWTWY7567sCdiTkeUTTDA(c, info, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(newInst, info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, explicitGenericInstError__7YxUILpPxooC5qqa89a54dw_17)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T1_;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T2_;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = T1_;
	T3_ = (NimStringDesc*)0;
	T3_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T4_ = (NimStringDesc*)0;
	T4_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_78), T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T2_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T4_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_237, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = n;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, explicitGenericInstantiation__aK9ce4VwkiusXxioJ5dzs5w_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				e = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[i], 0);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
					if (!((*e).typ == NIM_NIL)) goto LA6_;
					T8_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T8_ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*(*n)._kind_6.sons->data[i]).typ = T8_;
				}
				goto LA4_;
				LA6_: ;
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
					T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T10_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, 256);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*(*n)._kind_6.sons->data[i]).typ = T10_;
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	s_2 = s;
	a = (*n)._kind_6.sons->data[((NI) 0)];
	{
		if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA13_;
		{
			NI T17_;
			NI T18_;
			NI expected;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T21_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T22_;
			NimStringDesc* T23_;
			NimStringDesc* T24_;
			NI T25_;
			NimStringDesc* T26_;
			NimStringDesc* T27_;
			T17_ = (NI)0;
			T17_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast((*(*s_2).ast)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T18_ = (NI)0;
			T18_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!((T17_ == (NI)(T18_ - ((NI) 1))))) goto LA19_;
			expected = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast((*(*s_2).ast)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T21_ = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T22_ = T21_;
			T23_ = (NimStringDesc*)0;
			T24_ = (NimStringDesc*)0;
			T24_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T25_ = (NI)0;
			T25_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T26_ = (NimStringDesc*)0;
			T26_ = nimIntToStr((NI)(T25_ - ((NI) 1)));
			T27_ = (NimStringDesc*)0;
			T27_ = nimIntToStr(expected);
			T23_ = rawNewString((T24_ ? T24_->Sup.len : 0) + (T26_ ? T26_->Sup.len : 0) + (T27_ ? T27_->Sup.len : 0) + 52);
appendString(T23_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_232));
appendString(T23_, T24_);
appendString(T23_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_233));
appendString(T23_, T26_);
appendString(T23_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_234));
appendString(T23_, T27_);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T22_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T23_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_235, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = n;
			goto BeforeRet_;
		}
		LA19_: ;
		result = explicitGenericSym__aK9ce4VwkiusXxioJ5dzs5w_3(c, n, s_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(result == NIM_NIL)) goto LA30_;
			result = explicitGenericInstError__7YxUILpPxooC5qqa89a54dw_17(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA30_: ;
	}
	goto LA11_;
	LA13_: ;
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T35_;
		if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57))) goto LA33_;
		T35_ = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg((*a).kind, T35_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(a);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* candidate;
					if (!(i_4 < colontmp__2)) goto LA38;
					i_3 = i_4;
					candidate = (*(*a)._kind_6.sons->data[i_3])._kind_4.sym;
					{
						if (!((126976 &(1U<<((NU)((*candidate).kind)&31U)))!=0)) goto LA41_;
						{
							NI T45_;
							NI T46_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
							T45_ = (NI)0;
							T45_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast((*(*candidate).ast)._kind_6.sons->data[((NI) 2)]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T46_ = (NI)0;
							T46_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!(T45_ == (NI)(T46_ - ((NI) 1)))) goto LA47_;
							x = explicitGenericSym__aK9ce4VwkiusXxioJ5dzs5w_3(c, n, candidate);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								if (!!((x == NIM_NIL))) goto LA51_;
								add__P8dDSotTW25BkfbyspojGg(result, x);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA51_: ;
						}
						LA47_: ;
					}
					LA41_: ;
					i_4 += ((NI) 1);
				} LA38: ;
			}
		}
		{
			NIM_BOOL T55_;
			NI T56_;
			T55_ = (NIM_BOOL)0;
			T56_ = (NI)0;
			T56_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T55_ = (T56_ == ((NI) 1));
			if (!(T55_)) goto LA57_;
			T55_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56));
			LA57_: ;
			if (!T55_) goto LA58_;
			result = (*result)._kind_6.sons->data[((NI) 0)];
		}
		goto LA53_;
		LA58_: ;
		{
			NI T61_;
			T61_ = (NI)0;
			T61_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T61_ == ((NI) 0))) goto LA62_;
			result = explicitGenericInstError__7YxUILpPxooC5qqa89a54dw_17(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA53_;
		LA62_: ;
		LA53_: ;
	}
	goto LA11_;
	LA33_: ;
	{
		result = explicitGenericInstError__7YxUILpPxooC5qqa89a54dw_17(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA11_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, symFromType__xO2UfktRDKCUWUorFz9cLYA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T5_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		if (!!(((*t).sym == NIM_NIL))) goto LA3_;
		result = (*t).sym;
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T5_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_238));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), T5_, (*t).owner, info, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 33)) & 63);
	(*result).typ = t;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, symNodeFromType__MpkaQE9aiK11PxY8aspzYDw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = symFromType__xO2UfktRDKCUWUorFz9cLYA(c, t, info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(T1_, info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(c, t);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = T2_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSubscript__vJZwz9bfROKrfrtM50y74CQ_9)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 1))) goto LA4_;
		x = semDeref__7YxUILpPxooC5qqa89a54dw_16(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(x == NIM_NIL)) goto LA8_;
			result = NIM_NIL;
			goto BeforeRet_;
		}
		LA8_: ;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47), (*x).info, (*x).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, (*x)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA4_: ;
	checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T10_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 0)], 16384);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 0)] = T10_;
	arr = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(9253489874044944));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!((*arr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA13_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
			T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T17_ = base__PfgI9ap7WOnsRfFV4znQ27w(arr);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((*T17_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA18_;
			result = n;
			T20_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T20_ = semStaticType__DMAavRw02YcIRkO3yZ1XeQ(c, (*n)._kind_6.sons->data[((NI) 1)], NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T20_;
			goto BeforeRet_;
		}
		goto LA15_;
		LA18_: ;
		{
			if (!!(((*arr).n == NIM_NIL))) goto LA22_;
			result = semSubscript__vJZwz9bfROKrfrtM50y74CQ_9(c, (*arr).n, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA15_;
		LA22_: ;
		{
			arr = base__PfgI9ap7WOnsRfFV4znQ27w(arr);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA15_: ;
	}
	LA13_: ;
	switch ((*arr).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
		{
			NI T28_;
			T28_ = (NI)0;
			T28_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!((T28_ == ((NI) 2)))) goto LA29_;
			result = NIM_NIL;
			goto BeforeRet_;
		}
		LA29_: ;
		T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T31_ = makeDeref__wWBimsBS4M6UZBvTRDlQTQ((*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T31_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
					if (!(i_2 < colontmp_)) goto LA34;
					i = i_2;
					T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T35_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[i], (flags & 260));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i] = T35_;
					i_2 += ((NI) 1);
				} LA34: ;
			}
		}
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* indexType;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T40_;
			if (!((*arr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA38_;
			indexType = (*arr).sons->data[((NI) 0)];
			T40_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T40_ = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
			arg = indexTypesMatch__8llRCFM4VdmgY27XJn2sRA(c, indexType, T40_, (*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T45_;
				if (!!((arg == NIM_NIL))) goto LA43_;
				(*n)._kind_6.sons->data[((NI) 1)] = arg;
				result = n;
				T45_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T45_ = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(arr);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).typ = T45_;
			}
			LA43_: ;
		}
		goto LA36_;
		LA38_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T47_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T50_;
			T47_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T47_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350136314128));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((IL64(34151432454144) &((NU64)1<<((NU)((*T47_).kind)&63U)))!=0)) goto LA48_;
			result = n;
			T50_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T50_ = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(arr);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T50_;
		}
		goto LA36_;
		LA48_: ;
		LA36_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
	{
		tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T52_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T53_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T54_;
		result = n;
		T52_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
		T52_ = c;
		T53_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T53_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, n, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T54_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T54_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(T52_, T53_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T54_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T61_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T62_;
		{
			NI T58_;
			T58_ = (NI)0;
			T58_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!((T58_ == ((NI) 2)))) goto LA59_;
			result = NIM_NIL;
			goto BeforeRet_;
		}
		LA59_: ;
		T61_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T61_ = makeDeref__wWBimsBS4M6UZBvTRDlQTQ((*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T61_;
		T62_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T62_ = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 1)] = T62_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T65_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA idx;
			T65_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T65_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(70368745261072));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((IL64(66571993088) &((NU64)1<<((NU)((*T65_).kind)&63U)))!=0)) goto LA66_;
			idx = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ((*n)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_229);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T70_;
				NI T72_;
				NI T75_;
				T70_ = (NIM_BOOL)0;
				T70_ = lteq___xL5gyZrjbGMarSdRAXOo9ag(IL64(0), idx);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T70_)) goto LA71_;
				T72_ = (NI)0;
				T72_ = len__5mJADrRYkP3r9auuiuDZN9cQast(arr);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T70_ = lt___nr9cP9b0OL9cabygV9bo19cJgZA_3(idx, ((NI64) (T72_)));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA71_: ;
				if (!T70_) goto LA73_;
				T75_ = (NI)0;
				T75_ = toInt__TIX0sFuRf3uBpOBltYp7bw(idx);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n).typ = (*arr).sons->data[T75_];
			}
			goto LA68_;
			LA73_: ;
			{
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_230), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_231, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA68_: ;
			result = n;
		}
		goto LA63_;
		LA66_: ;
		{
			result = NIM_NIL;
		}
		LA63_: ;
	}
	break;
	default:
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA81_;
			s = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		}
		goto LA79_;
		LA81_: ;
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57))) goto LA84_;
			s = (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		}
		goto LA79_;
		LA84_: ;
		{
			s = NIM_NIL;
		}
		LA79_: ;
		{
			if (!!((s == NIM_NIL))) goto LA89_;
			switch ((*s).kind) {
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T92_;
				T92_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T92_ = semSymGenericInstantiation__aK9ce4VwkiusXxioJ5dzs5w(c, (*n)._kind_6.sons->data[((NI) 0)], s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 0)] = T92_;
				result = explicitGenericInstantiation__aK9ce4VwkiusXxioJ5dzs5w_2(c, n, s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T97_;
					if (!(result == n)) goto LA95_;
					T97_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T97_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(result);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[((NI) 0)] = T97_;
				}
				goto LA93_;
				LA95_: ;
				{
					(*n)._kind_6.sons->data[((NI) 0)] = result;
				}
				LA93_: ;
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
			{
				{
					if (!((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 15))&31U)))!=0)) goto LA102_;
					result = n;
				}
				goto LA100_;
				LA102_: ;
				{
					transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 27));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					switch ((*s).kind) {
					case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
					{
						result = semMacroExpr__GFpnqBAgGBu4p8rc0WsOTw(c, n, n, s, flags);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					break;
					case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
					{
						result = semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog(c, n, s, flags);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					break;
					default:
					{
					}
					break;
					}
				}
				LA100_: ;
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
			{
				tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T109_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T110_;
				T109_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
				T109_ = c;
				T110_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T110_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, n, NIM_NIL);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = symNodeFromType__MpkaQE9aiK11PxY8aspzYDw(T109_, T110_, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			default:
			{
			}
			break;
			}
		}
		LA89_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, effectProblem__3uc8nf1Yi57kIzOPCNU9caA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* f, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, NimStringDesc** result, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T3_)) goto LA4_;
		T3_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 7))&63U)))!=0);
			if (!(T9_)) goto LA10_;
			T9_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 7))&63U)))!=0));
			LA10_: ;
			if (!T9_) goto LA11_;
			(*result) = resizeString((*result), 103);
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_260));
		}
		goto LA7_;
		LA11_: ;
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0);
			if (!(T14_)) goto LA15_;
			T14_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0));
			LA15_: ;
			if (!T14_) goto LA16_;
			(*result) = resizeString((*result), 116);
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_261));
		}
		goto LA7_;
		LA16_: ;
		{
			tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ T19_;
			T19_ = (tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ)0;
			T19_ = compatibleEffects__jMDzK5tLgCQpWKRW9azac5w(f, a);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			switch (T19_) {
			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 0):
			{
			}
			break;
			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 1):
			{
				(*result) = resizeString((*result), 37);
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262));
			}
			break;
			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 2):
			{
				(*result) = resizeString((*result), 110);
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_263));
			}
			break;
			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 3):
			{
				(*result) = resizeString((*result), 35);
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_264));
			}
			break;
			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 4):
			{
				(*result) = resizeString((*result), 106);
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_265));
			}
			break;
			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 5):
			{
				(*result) = resizeString((*result), 107);
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_266));
			}
			break;
			}
		}
		LA7_: ;
	}
	LA5_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, presentFailedCandidates__DzsD9bOR72VurwdjRilOhmA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__0dpGN6F4ocevqUQGsaf41w* errors, tyTuple__ZtAk5YtH0VW1iPowvxePrg* Result) {
	tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer;
	NimStringDesc* proto;
	NIM_BOOL filterOnlyFirst;
	NIM_BOOL maybeWrongSpace;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* candidatesAll;
	NimStringDesc* candidates;
	NI skipped;
	tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw colontmp__2;
	NimStringDesc* colontmp__3;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	prefer = ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0);
	proto = describeArgs__cCrxh8TxJsIrMINltM1ovw(c, n, ((NI) 1), ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ* err;
		NI i;
		NI L;
		NI T2_;
		err = (tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ*)0;
		i = ((NI) 0);
		T2_ = (errors ? errors->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NimStringDesc* errProto;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
				if (!(i < L)) goto LA4;
				err = (&errors->data[i]);
				errProto = ((NimStringDesc*) NIM_NIL);
				n_2 = (*(*(*err).sym).typ).n;
				{
					NI i_2;
					NI colontmp_;
					NI i_3;
					i_2 = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_3 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
							if (!(i_3 < colontmp_)) goto LA7;
							i_2 = i_3;
							p = (*n_2)._kind_6.sons->data[i_2];
							{
								NimStringDesc* T12_;
								if (!((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA10_;
								T12_ = (NimStringDesc*)0;
								T12_ = typeToString__QlvraUan7WbHowhAbvDvdA((*(*p)._kind_4.sym).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								errProto = resizeString(errProto, (T12_ ? T12_->Sup.len : 0) + 0);
appendString(errProto, T12_);
								{
									NI T15_;
									T15_ = (NI)0;
									T15_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									if (!!((i_2 == (NI)(T15_ - ((NI) 1))))) goto LA16_;
									errProto = resizeString(errProto, 2);
appendString(errProto, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_68));
								}
								LA16_: ;
							}
							LA10_: ;
							i_3 += ((NI) 1);
						} LA7: ;
					}
				}
				{
					if (!eqStrings(errProto, proto)) goto LA20_;
					prefer = ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 3);
					goto LA1;
				}
				LA20_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	} LA1: ;
	filterOnlyFirst = NIM_FALSE;
	{
		if (!!((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 32))&63U)))!=0))) goto LA24_;
		{
			tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ* err_2;
			NI i_4;
			NI L_2;
			NI T27_;
			err_2 = (tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ*)0;
			i_4 = ((NI) 0);
			T27_ = (errors ? errors->Sup.len : 0);
			L_2 = T27_;
			{
				while (1) {
					if (!(i_4 < L_2)) goto LA29;
					err_2 = (&errors->data[i_4]);
					{
						if (!(((NI) 1) < (*err_2).firstMismatch.arg)) goto LA32_;
						filterOnlyFirst = NIM_TRUE;
						goto LA26;
					}
					LA32_: ;
					i_4 += ((NI) 1);
				} LA29: ;
			}
		} LA26: ;
	}
	LA24_: ;
	maybeWrongSpace = NIM_FALSE;
	candidatesAll = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)0;
	candidates = ((NimStringDesc*) NIM_NIL);
	skipped = ((NI) 0);
	{
		tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ* err_3;
		NI i_5;
		NI L_3;
		NI T35_;
		err_3 = (tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ*)0;
		i_5 = ((NI) 0);
		T35_ = (errors ? errors->Sup.len : 0);
		L_3 = T35_;
		{
			while (1) {
				if (!(i_5 < L_3)) goto LA37;
				err_3 = (&errors->data[i_5]);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nArg;
					NimStringDesc* nameParam;
					NI T128_;
					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 &(1U<<((NU)((*(*err_3).sym).kind)&31U)))!=0);
						if (!(T47_)) goto LA48_;
						T47_ = !(((*(*err_3).sym).ast == NIM_NIL));
						LA48_: ;
						if (!T47_) goto LA49_;
						T51_ = (NimStringDesc*)0;
						T51_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA((*(*err_3).sym).ast, 22);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						candidates = resizeString(candidates, (T51_ ? T51_->Sup.len : 0) + 0);
appendString(candidates, T51_);
					}
					goto LA45_;
					LA49_: ;
					{
						NimStringDesc* T53_;
						T53_ = (NimStringDesc*)0;
						T53_ = getProcHeader__bRG2xX9ar5tfMW3c7xo9ccKQ((*(*c).graph).config, (*err_3).sym, prefer, NIM_TRUE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						candidates = resizeString(candidates, (T53_ ? T53_->Sup.len : 0) + 0);
appendString(candidates, T53_);
					}
					LA45_: ;
					candidates = resizeString(candidates, 1);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_244));
					{
						NI T56_;
						T56_ = (NI)0;
						T56_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!((*err_3).firstMismatch.arg < T56_)) goto LA57_;
						nArg = (*n)._kind_6.sons->data[(*err_3).firstMismatch.arg];
					}
					goto LA54_;
					LA57_: ;
					{
						nArg = NIM_NIL;
					}
					LA54_: ;
					{
						if (!!(((*err_3).firstMismatch.formal == 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__P89cqdlERShb9alU3iC0yj8wast(n);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!(((NI) 1) < T67_)) goto LA68_;
						T70_ = (NimStringDesc*)0;
						T71_ = (NimStringDesc*)0;
						T71_ = nimIntToStr((*err_3).firstMismatch.arg);
						T70_ = rawNewString((T71_ ? T71_->Sup.len : 0) + 35);
appendString(T70_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_245));
appendString(T70_, T71_);
						candidates = resizeString(candidates, (T70_ ? T70_->Sup.len : 0) + 0);
appendString(candidates, T70_);
						switch ((*err_3).firstMismatch.kind) {
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 2):
						{
							{
								if (!(nArg == NIM_NIL)) goto LA75_;
								candidates = resizeString(candidates, 26);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_246));
							}
							goto LA73_;
							LA75_: ;
							{
								NimStringDesc* T78_;
								NimStringDesc* T79_;
								T78_ = (NimStringDesc*)0;
								T79_ = (NimStringDesc*)0;
								T79_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A((*nArg)._kind_6.sons->data[((NI) 0)]);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T78_ = rawNewString((T79_ ? T79_->Sup.len : 0) + 28);
appendString(T78_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_247));
appendString(T78_, T79_);
								candidates = resizeString(candidates, (T78_ ? T78_->Sup.len : 0) + 0);
appendString(candidates, T78_);
							}
							LA73_: ;
						}
						break;
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 1):
						{
							NimStringDesc* T81_;
							NimStringDesc* T82_;
							T81_ = (NimStringDesc*)0;
							T82_ = (NimStringDesc*)0;
							T82_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A((*nArg)._kind_6.sons->data[((NI) 0)]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T81_ = rawNewString((T82_ ? T82_->Sup.len : 0) + 33);
appendString(T81_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_248));
appendString(T81_, T82_);
							candidates = resizeString(candidates, (T81_ ? T81_->Sup.len : 0) + 0);
appendString(candidates, T81_);
						}
						break;
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 7):
						{
							candidates = resizeString(candidates, 52);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_249));
						}
						break;
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 6):
						{
							candidates = resizeString(candidates, 23);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_250));
						}
						break;
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 5):
						{
							NimStringDesc* T86_;
							T86_ = (NimStringDesc*)0;
							T86_ = rawNewString((nameParam ? nameParam->Sup.len : 0) + 22);
appendString(T86_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_251));
appendString(T86_, nameParam);
							candidates = resizeString(candidates, (T86_ ? T86_->Sup.len : 0) + 0);
appendString(candidates, T86_);
						}
						break;
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 3):
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 4):
						{
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* wanted;
							NimStringDesc* T96_;
							NimStringDesc* T97_;
							{
								if (!!(!((nArg == NIM_NIL)))) goto LA90_;
								failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_252));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA90_: ;
							wanted = (*(*err_3).firstMismatch.formal).typ;
							{
								if (!!(!(((*err_3).firstMismatch.formal == NIM_NIL)))) goto LA94_;
								failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_253));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA94_: ;
							T96_ = (NimStringDesc*)0;
							T96_ = rawNewString((nameParam ? nameParam->Sup.len : 0) + 23);
appendString(T96_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_254));
appendString(T96_, nameParam);
appendString(T96_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_255));
							candidates = resizeString(candidates, (T96_ ? T96_->Sup.len : 0) + 0);
appendString(candidates, T96_);
							T97_ = (NimStringDesc*)0;
							T97_ = typeToString__QlvraUan7WbHowhAbvDvdA(wanted, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							candidates = resizeString(candidates, (T97_ ? T97_->Sup.len : 0) + 0);
appendString(candidates, T97_);
							candidates = resizeString(candidates, 19);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_256));
							{
								NimStringDesc* T102_;
								if (!((*err_3).firstMismatch.kind == ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 4))) goto LA100_;
								T102_ = (NimStringDesc*)0;
								T102_ = renderNotLValue__vfKkxNGxagsG9czCdz2IAEQ(nArg);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								candidates = resizeString(candidates, (T102_ ? T102_->Sup.len : 0) + 0);
appendString(candidates, T102_);
								candidates = resizeString(candidates, 25);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_257));
							}
							goto LA98_;
							LA100_: ;
							{
								NimStringDesc* T104_;
								tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* got;
								NimStringDesc* T105_;
								T104_ = (NimStringDesc*)0;
								T104_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(nArg, 0);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								candidates = resizeString(candidates, (T104_ ? T104_->Sup.len : 0) + 0);
appendString(candidates, T104_);
								candidates = resizeString(candidates, 14);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_258));
								got = (*nArg).typ;
								T105_ = (NimStringDesc*)0;
								T105_ = typeToString__QlvraUan7WbHowhAbvDvdA(got, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								candidates = resizeString(candidates, (T105_ ? T105_->Sup.len : 0) + 0);
appendString(candidates, T105_);
								{
									if (!!(!((wanted == NIM_NIL)))) goto LA108_;
									failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_259));
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								LA108_: ;
								{
									if (!!((got == NIM_NIL))) goto LA112_;
									effectProblem__3uc8nf1Yi57kIzOPCNU9caA(wanted, got, (&candidates), c);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								LA112_: ;
							}
							LA98_: ;
						}
						break;
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 0):
						{
						}
						break;
						}
						candidates = resizeString(candidates, 1);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_244));
						{
							NIM_BOOL T117_;
							NIM_BOOL T118_;
							T117_ = (NIM_BOOL)0;
							T118_ = (NIM_BOOL)0;
							T118_ = ((*err_3).firstMismatch.arg == ((NI) 1));
							if (!(T118_)) goto LA119_;
							T118_ = ((*nArg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160));
							LA119_: ;
							T117_ = T118_;
							if (!(T117_)) goto LA120_;
							T117_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26));
							LA120_: ;
							if (!T117_) goto LA121_;
							maybeWrongSpace = NIM_TRUE;
						}
						LA121_: ;
					}
					LA68_: ;
					{
						NimStringDesc** diag;
						NI i_6;
						NI L_4;
						NI T124_;
						diag = (NimStringDesc**)0;
						i_6 = ((NI) 0);
						T124_ = ((*err_3).diagnostics ? (*err_3).diagnostics->Sup.len : 0);
						L_4 = T124_;
						{
							while (1) {
								NimStringDesc* T127_;
								if (!(i_6 < L_4)) goto LA126;
								diag = (&(*err_3).diagnostics->data[i_6]);
								T127_ = (NimStringDesc*)0;
								T127_ = rawNewString(((*diag) ? (*diag)->Sup.len : 0) + 1);
appendString(T127_, (*diag));
appendString(T127_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_244));
								candidates = resizeString(candidates, (T127_ ? T127_->Sup.len : 0) + 0);
appendString(candidates, T127_);
								i_6 += ((NI) 1);
							} LA126: ;
						}
					}
					candidatesAll = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(candidatesAll), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
					T128_ = candidatesAll->Sup.len++;
					candidatesAll->data[T128_] = copyString(candidates);
				} LA38: ;
				i_5 += ((NI) 1);
			} LA37: ;
		}
	}
	sort__QeVk9c1PKgtuLn69cFZt89cSg(candidatesAll->data, (candidatesAll ? candidatesAll->Sup.len : 0), ((tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	candidates = nsuJoinSep(candidatesAll->data, (candidatesAll ? candidatesAll->Sup.len : 0), ((NimStringDesc*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringDesc* T133_;
		NimStringDesc* T134_;
		if (!(((NI) 0) < skipped)) goto LA131_;
		T133_ = (NimStringDesc*)0;
		T134_ = (NimStringDesc*)0;
		T134_ = nimIntToStr(skipped);
		T133_ = rawNewString((T134_ ? T134_->Sup.len : 0) + 97);
appendString(T133_, T134_);
appendString(T133_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_267));
		candidates = resizeString(candidates, (T133_ ? T133_->Sup.len : 0) + 0);
appendString(candidates, T133_);
	}
	LA131_: ;
	{
		NimStringDesc* T139_;
		NimStringDesc* T140_;
		if (!maybeWrongSpace) goto LA137_;
		T139_ = (NimStringDesc*)0;
		T140_ = (NimStringDesc*)0;
		T140_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA((*n)._kind_6.sons->data[((NI) 0)], 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T139_ = rawNewString((T140_ ? T140_->Sup.len : 0) + 40);
appendString(T139_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_268));
appendString(T139_, T140_);
appendString(T139_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_269));
		candidates = resizeString(candidates, (T139_ ? T139_->Sup.len : 0) + 0);
appendString(candidates, T139_);
	}
	LA137_: ;
	colontmp__2 = prefer;
	colontmp__3 = copyString(candidates);
	(*Result).Field0 = colontmp__2;
	(*Result).Field1 = copyString(colontmp__3);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, notFoundError__3yYIcS0VQPQvrknpxFc7TQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__0dpGN6F4ocevqUQGsaf41w* errors) {
	tyTuple__ZtAk5YtH0VW1iPowvxePrg T13_;
	tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer;
	NimStringDesc* candidates;
	NimStringDesc* result;
	NimStringDesc* T14_;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T20_;
	NimStringDesc* T21_;
	NimStringDesc* T22_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!((*(*(*c).graph).config).m.errorOutputs == 0)) goto LA3_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_29), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_241, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NI T7_;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T10_;
		NimStringDesc* T11_;
		NimStringDesc* T12_;
		T7_ = (errors ? errors->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		T10_ = (*n).info;
		T11_ = (NimStringDesc*)0;
		T11_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA((*n)._kind_6.sons->data[((NI) 0)], 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T12_ = (NimStringDesc*)0;
		T12_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_242), T11_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T10_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T12_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_243, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA8_: ;
	nimZeroMem((void*)(&T13_), sizeof(tyTuple__ZtAk5YtH0VW1iPowvxePrg));
	presentFailedCandidates__DzsD9bOR72VurwdjRilOhmA(c, n, errors, (&T13_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	prefer = (tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw)0;
	prefer = T13_.Field0;
	candidates = (NimStringDesc*)0;
	candidates = T13_.Field1;
	result = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_270));
	T14_ = (NimStringDesc*)0;
	T14_ = describeArgs__cCrxh8TxJsIrMINltM1ovw(c, n, ((NI) 1), prefer);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = resizeString(result, (T14_ ? T14_->Sup.len : 0) + 0);
appendString(result, T14_);
	result = addChar(result, 62);
	{
		NimStringDesc* T19_;
		if (!!(((candidates ? candidates->Sup.len : 0) == 0))) goto LA17_;
		T19_ = (NimStringDesc*)0;
		T19_ = rawNewString((candidates ? candidates->Sup.len : 0) + 23);
appendString(T19_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_271));
appendString(T19_, candidates);
		result = resizeString(result, (T19_ ? T19_->Sup.len : 0) + 0);
appendString(result, T19_);
	}
	LA17_: ;
	T20_ = (*n).info;
	T21_ = (NimStringDesc*)0;
	T22_ = (NimStringDesc*)0;
	T22_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T21_ = rawNewString((result ? result->Sup.len : 0) + (T22_ ? T22_->Sup.len : 0) + 13);
appendString(T21_, result);
appendString(T21_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_272));
appendString(T21_, T22_);
	liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T20_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_273, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, bracketNotFoundError__NRIJDWZtATzMum7OEjYC2g_9)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tySequence__0dpGN6F4ocevqUQGsaf41w* errors;
	tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* symx;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	errors = NIM_NIL;
	nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
	headSymbol = (*n)._kind_6.sons->data[((NI) 0)];
	symx = initOverloadIter__yTTeeqtnENsm0xyCro9a61w((&o), c, headSymbol);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		while (1) {
			if (!!((symx == NIM_NIL))) goto LA2;
			{
				tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ T7_;
				NI T8_;
				if (!((520192 &(1U<<((NU)((*symx).kind)&31U)))!=0)) goto LA5_;
				nimZeroMem((void*)(&T7_), sizeof(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ));
				nimZeroMem((void*)(&T7_), sizeof(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ));
				T7_.sym = symx;
				nimZeroMem((void*)(&T7_.firstMismatch), sizeof(tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ));
				T7_.diagnostics = NIM_NIL;
				T7_.enabled = NIM_FALSE;
				errors = (tySequence__0dpGN6F4ocevqUQGsaf41w*) incrSeqV3((TGenericSeq*)(errors), (&NTI__0dpGN6F4ocevqUQGsaf41w_));
				T8_ = errors->Sup.len++;
				errors->data[T8_].sym = T7_.sym;
				errors->data[T8_].firstMismatch.kind = T7_.firstMismatch.kind;
				errors->data[T8_].firstMismatch.arg = T7_.firstMismatch.arg;
				errors->data[T8_].firstMismatch.formal = T7_.firstMismatch.formal;
				genericSeqAssign((&errors->data[T8_].diagnostics), T7_.diagnostics, (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
				errors->data[T8_].enabled = T7_.enabled;
			}
			LA5_: ;
			symx = nextOverloadIter__yTTeeqtnENsm0xyCro9a61w_2((&o), c, headSymbol);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA2: ;
	}
	{
		NI T11_;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T14_;
		NimStringDesc* T15_;
		NimStringDesc* T16_;
		T11_ = (errors ? errors->Sup.len : 0);
		if (!(T11_ == ((NI) 0))) goto LA12_;
		T14_ = (*n).info;
		T15_ = (NimStringDesc*)0;
		T16_ = (NimStringDesc*)0;
		T16_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T15_ = rawNewString((T16_ ? T16_->Sup.len : 0) + 19);
appendString(T15_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_239));
appendString(T15_, T16_);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T14_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T15_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_240, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA9_;
	LA12_: ;
	{
		notFoundError__3yYIcS0VQPQvrknpxFc7TQ(c, n, errors);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA9_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrGet__vJZwz9bfROKrfrtM50y74CQ_8)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	result = semSubscript__vJZwz9bfROKrfrtM50y74CQ_9(c, result, flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T8_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		if (!(result == 0)) goto LA6_;
		x = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T8_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T8_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T9_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T8_, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*x)._kind_6.sons->data[((NI) 0)] = T9_;
		bracketNotFoundError__NRIJDWZtATzMum7OEjYC2g_9(c, x);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = n;
	}
	LA6_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipAddr__7hiIf9cX1T4l9amfLkdHBowAast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		result = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		result = n;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrPut__vJZwz9bfROKrfrtM50y74CQ_10)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	b = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = skipAddr__7hiIf9cX1T4l9amfLkdHBowAast((*n)._kind_6.sons->data[((NI) 1)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(b, T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmp_ = (NI)(T3_ - ((NI) 1));
		i_2 = ((NI) 2);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA5;
				i = i_2;
				add__P8dDSotTW25BkfbyspojGg(b, (*n)._kind_6.sons->data[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA5: ;
		}
	}
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*n).info, ((NI) 2));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_6.sons->data[((NI) 0)] = b;
	T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T6_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_6.sons->data[((NI) 1)] = T6_;
	result = semAsgn__mkzYzG9avRzHz5NmIFyZdRg(c, result, ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsgnOpr__7YxUILpPxooC5qqa89a54dw_18)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*n).info, ((NI) 2));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_6.sons->data[((NI) 0)] = (*n)._kind_6.sons->data[((NI) 1)];
	(*result)._kind_6.sons->data[((NI) 1)] = (*n)._kind_6.sons->data[((NI) 2)];
	result = semAsgn__mkzYzG9avRzHz5NmIFyZdRg(c, result, ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 2));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semShallowCopy__vJZwz9bfROKrfrtM50y74CQ_11)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 3))) goto LA4_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[((NI) 2)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semAsgn__mkzYzG9avRzHz5NmIFyZdRg(c, result, ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		result = semDirectOp__vJZwz9bfROKrfrtM50y74CQ_6(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIsPartOf__vJZwz9bfROKrfrtM50y74CQ_12)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w r;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (*n)._kind_6.sons->data[((NI) 1)];
	r = isPartOf__1otDDZAmvFsmbqPyFytXFg(T1_, (*n)._kind_6.sons->data[((NI) 2)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = toInt128__161i7kexvUAISxPtGBRWYw(r);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newIntNodeT__NzFGf0r9bOfRvVQjkvApbgQ(T2_, n, (*c).graph);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, toNode__pidBpg4XuuDNdF3NVODN6A)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q i) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), i, t);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getTypeDescNode__PDBS7GU6I7t8evrM8dmPkA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* resType;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	resType = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8), sym);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(resType, typ, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = toNode__pidBpg4XuuDNdF3NVODN6A(resType, info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, uninstantiate__9cRlRlKvV58Tq3YoHJJi1Rw_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	{
		result = t;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
	{
		result = base__PfgI9ap7WOnsRfFV4znQ27w(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
	{
		result = uninstantiate__9cRlRlKvV58Tq3YoHJJi1Rw_2((*t).sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = t;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalTypeTrait__J9a21UTKN4zETETiDQaaUMw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* traitCall, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* operand, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* context) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* trait;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* operand_2;
	NimStringDesc* s;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	trait = (*traitCall)._kind_6.sons->data[((NI) 0)];
	{
		NimStringDesc* argX60gensym3919_;
		if (!!(((*trait).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA3_;
		argX60gensym3919_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_275);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym3919_, TM__rF9caJawfOjYTjsgLVUSGFA_275);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	operand_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(operand, IL64(70368744177936));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T7_;
		NIM_BOOL T9_;
		NI T10_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*operand_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12));
		if (T7_) goto LA8_;
		T9_ = (NIM_BOOL)0;
		T10_ = (NI)0;
		T10_ = len__P89cqdlERShb9alU3iC0yj8wast(traitCall);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T9_ = (((NI) 2) < T10_);
		if (!(T9_)) goto LA11_;
		T12_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T12_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*traitCall)._kind_6.sons->data[((NI) 2)]).typ, 256);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T9_ = ((*T12_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12));
		LA11_: ;
		T7_ = T9_;
		LA8_: ;
		if (!T7_) goto LA13_;
		result = traitCall;
		goto BeforeRet_;
	}
	LA13_: ;
	s = (*(*(*trait)._kind_4.sym).name).s;
	switch (hashString(s) & 15) {
	case 0: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_281))) goto LA19_;
break;
	case 1: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_283))) goto LA21_;
break;
	case 3: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_42))) goto LA15_;
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_282))) goto LA20_;
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_286))) goto LA24_;
break;
	case 4: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_280))) goto LA19_;
break;
	case 5: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_278))) goto LA17_;
break;
	case 7: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_279))) goto LA18_;
break;
	case 9: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_288))) goto LA26_;
break;
	case 10: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_276))) goto LA15_;
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_287))) goto LA25_;
break;
	case 11: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_285))) goto LA23_;
break;
	case 13: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_284))) goto LA22_;
break;
	case 14: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_277))) goto LA16_;
break;
	}
	goto LA27_;
	LA15_: ;
	{
		tySequence__Ef05srmQTDulnBdXR4Ja6Q* T30_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T31_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T32_;
		T30_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
		T30_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 2);
		T30_->data[0] = operand_2;
		T31_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T31_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*traitCall)._kind_6.sons->data[((NI) 2)]).typ, 256);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T30_->data[1] = T31_;
		T32_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T32_ = newTypeWithSons__aSykZlHQuGR9almJ1ehcUew(context, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57), T30_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = toNode__pidBpg4XuuDNdF3NVODN6A(T32_, (*traitCall).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	goto LA28_;
	LA16_: ;
	{
		tySequence__Ef05srmQTDulnBdXR4Ja6Q* T34_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T35_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T36_;
		T34_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
		T34_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 2);
		T34_->data[0] = operand_2;
		T35_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T35_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*traitCall)._kind_6.sons->data[((NI) 2)]).typ, 256);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T34_->data[1] = T35_;
		T36_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T36_ = newTypeWithSons__aSykZlHQuGR9almJ1ehcUew(context, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56), T34_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = toNode__pidBpg4XuuDNdF3NVODN6A(T36_, (*traitCall).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	goto LA28_;
	LA17_: ;
	{
		tySequence__Ef05srmQTDulnBdXR4Ja6Q* T38_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T39_;
		T38_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
		T38_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
		T38_->data[0] = operand_2;
		T39_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T39_ = newTypeWithSons__aSykZlHQuGR9almJ1ehcUew(context, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58), T38_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = toNode__pidBpg4XuuDNdF3NVODN6A(T39_, (*traitCall).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	goto LA28_;
	LA18_: ;
	{
		tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer;
		NimStringDesc* T46_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T47_;
		prefer = ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 5);
		{
			NI T43_;
			NimStringDesc* preferStr;
			T43_ = (NI)0;
			T43_ = len__P89cqdlERShb9alU3iC0yj8wast(traitCall);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI) 2) <= T43_)) goto LA44_;
			preferStr = (*(*traitCall)._kind_6.sons->data[((NI) 2)])._kind_3.strVal;
			prefer = parseEnum__ASE7k7bSFM18MJ5iPda8rQ(preferStr);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA44_: ;
		T46_ = (NimStringDesc*)0;
		T46_ = typeToString__QlvraUan7WbHowhAbvDvdA(operand_2, prefer);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newStrNode__zLcHGdlEbBYFtoCoan9agkg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), T46_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T47_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T47_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*(*traitCall)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T47_;
		(*result).info = (*traitCall).info;
	}
	goto LA28_;
	LA19_: ;
	{
		NimStringDesc* T49_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T50_;
		T49_ = (NimStringDesc*)0;
		T49_ = typeToString__QlvraUan7WbHowhAbvDvdA(operand_2, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 5));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newStrNode__zLcHGdlEbBYFtoCoan9agkg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), T49_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T50_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T50_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*(*traitCall)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T50_;
		(*result).info = (*traitCall).info;
	}
	goto LA28_;
	LA20_: ;
	{
		NI T52_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T53_;
		T52_ = (NI)0;
		T52_ = len__5mJADrRYkP3r9auuiuDZN9cQast(operand_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((NI)(T52_ - ((*operand_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25))))));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T53_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T53_ = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31), context);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T53_;
		(*result).info = (*traitCall).info;
	}
	goto LA28_;
	LA21_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arg;
		arg = operand_2;
		switch ((*arg).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T56_;
			T56_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T56_ = base__PfgI9ap7WOnsRfFV4znQ27w(arg);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = getTypeDescNode__PDBS7GU6I7t8evrM8dmPkA(T56_, (*operand_2).owner, (*traitCall).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		default:
		{
			tyArray__Re75IspeoxXy2oCZHwcRrA T58_;
			NimStringDesc* T59_;
			NimStringDesc* T60_;
			NimStringDesc* T61_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T62_;
			nimZeroMem((void*)T58_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T59_ = (NimStringDesc*)0;
			T59_ = toHumanStr__8clA3iQh1Lbc5cnapppbXQ((*arg).kind);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T58_[0] = T59_;
			T60_ = (NimStringDesc*)0;
			T60_ = typeToString__QlvraUan7WbHowhAbvDvdA(operand_2, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T58_[1] = T60_;
			T61_ = (NimStringDesc*)0;
			T61_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_289), T58_, 2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*traitCall).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T61_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_290, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T62_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T62_ = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), context);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = toNode__pidBpg4XuuDNdF3NVODN6A(T62_, (*traitCall).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		}
	}
	goto LA28_;
	LA22_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T64_;
		T64_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T64_ = uninstantiate__9cRlRlKvV58Tq3YoHJJi1Rw_2(operand_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = toNode__pidBpg4XuuDNdF3NVODN6A(T64_, (*traitCall).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA28_;
	LA23_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		NIM_BOOL complexObj;
		NIM_BOOL T66_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T68_;
		t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(operand_2, IL64(36239903259887632));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T66_ = (NIM_BOOL)0;
		T66_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (T66_) goto LA67_;
		T66_ = !(((IL64(2147483664) & (*t).flags) == 0));
		LA67_: ;
		complexObj = T66_;
		T68_ = toInt128__161i7kexvUAISxPtGBRWYw(!(complexObj));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newIntNodeT__NzFGf0r9bOfRvVQjkvApbgQ(T68_, traitCall, (*c).graph);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA28_;
	LA24_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* operand_3;
		NIM_BOOL cond;
		NIM_BOOL T70_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T72_;
		operand_3 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(operand_2, 2048);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T70_ = (NIM_BOOL)0;
		T70_ = ((*operand_3).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		if (!(T70_)) goto LA71_;
		T70_ = !(((*operand_3).n == NIM_NIL));
		LA71_: ;
		cond = T70_;
		T72_ = toInt128__161i7kexvUAISxPtGBRWYw(cond);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newIntNodeT__NzFGf0r9bOfRvVQjkvApbgQ(T72_, traitCall, (*c).graph);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA28_;
	LA25_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* operand_4;
		NI T74_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T75_;
		operand_4 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(operand_2, 2048);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T74_ = (NI)0;
		T74_ = len__5mJADrRYkP3r9auuiuDZN9cQast(operand_4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T75_ = toInt128__161i7kexvUAISxPtGBRWYw(T74_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newIntNodeT__NzFGf0r9bOfRvVQjkvApbgQ(T75_, traitCall, (*c).graph);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA28_;
	LA26_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arg_2;
		arg_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(operand_2, 2048);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*arg_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA79_;
			{
				while (1) {
					if (!((*arg_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA82;
					arg_2 = base__PfgI9ap7WOnsRfFV4znQ27w(arg_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					arg_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(arg_2, IL64(70368744179984));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA82: ;
			}
			result = getTypeDescNode__PDBS7GU6I7t8evrM8dmPkA(arg_2, (*operand_2).owner, (*traitCall).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA77_;
		LA79_: ;
		{
			NimStringDesc* T84_;
			NimStringDesc* T85_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T86_;
			T84_ = (NimStringDesc*)0;
			T85_ = (NimStringDesc*)0;
			T85_ = typeToString__QlvraUan7WbHowhAbvDvdA(operand_2, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T84_ = rawNewString((T85_ ? T85_->Sup.len : 0) + 69);
appendString(T84_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_291));
appendString(T84_, T85_);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*traitCall).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T84_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_292, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T86_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T86_ = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), context);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = toNode__pidBpg4XuuDNdF3NVODN6A(T86_, (*traitCall).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA77_: ;
	}
	goto LA28_;
	LA27_: ;
	{
		NimStringDesc* T88_;
		T88_ = (NimStringDesc*)0;
		T88_ = rawNewString((s ? s->Sup.len : 0) + 15);
appendString(T88_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_293));
appendString(T88_, s);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*traitCall).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T88_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_294, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*traitCall).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA28_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTypeTraits__7YxUILpPxooC5qqa89a54dw_19)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	t = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	{
		NIM_BOOL T3_;
		NimStringDesc* argX60gensym3955_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((t == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		argX60gensym3955_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_274);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym3955_, TM__rF9caJawfOjYTjsgLVUSGFA_274);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	{
		NI T9_;
		tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T12_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T13_;
		T9_ = (NI)0;
		T9_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(((NI) 0) < T9_)) goto LA10_;
		T12_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
		T12_ = c;
		T13_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T13_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = evalTypeTrait__J9a21UTKN4zETETiDQaaUMw(T12_, n, t, T13_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA7_;
	LA10_: ;
	{
		result = n;
	}
	LA7_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, expectIntLit__a4cQxFar9atOGMK9b4U0EEVA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	x = (*c).semConstExpr(c, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch ((*x).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10):
	{
		result = ((NI) ((*x)._kind_1.intVal));
	}
	break;
	default:
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_295), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_296, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, toLinenumber__6D4Rmpw7LpcRI1j7CMqEsAmsgs)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	NI result;
	result = (NI)0;
	result = ((NI) (info.line));
	return result;
}
static N_INLINE(NI, toColumn__6D4Rmpw7LpcRI1j7CMqEsA_2msgs)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	NI result;
	result = (NI)0;
	result = ((NI) (info.col));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semInstantiationInfo__7YxUILpPxooC5qqa89a54dw_20)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI idx;
	NI useFullPaths;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* filename;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* line;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T21_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T22_;
	NI T23_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* column;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T24_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
	NI T26_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T27_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T29_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T31_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), (*n).info, (*n).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	idx = expectIntLit__a4cQxFar9atOGMK9b4U0EEVA(c, (*n)._kind_6.sons->data[((NI) 1)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	useFullPaths = expectIntLit__a4cQxFar9atOGMK9b4U0EEVA(c, (*n)._kind_6.sons->data[((NI) 2)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	info = getInfoContext__TXxF2CG3kwLqptPWf0kC9aQ((*(*c).graph).config, idx);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (*n).info;
	T2_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	filename = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), T1_, T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringDesc* T7_;
		if (!!((useFullPaths == ((NI) 0)))) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T7_ = toFullPath__VW1RaR1l9c9bPnJxr1KuvIrg((*(*c).graph).config, info.fileIndex);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*filename)._kind_3.strVal = T7_;
	}
	goto LA3_;
	LA5_: ;
	{
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = (info.fileIndex < ((NI32) 0));
			if (T11_) goto LA12_;
			T11_ = ((*(*c).graph).config == NIM_NIL);
			LA12_: ;
			if (!T11_) goto LA13_;
			{
				if (!(info.fileIndex == ((NI32) -3))) goto LA17_;
				(*filename)._kind_3.strVal = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_297));
			}
			goto LA15_;
			LA17_: ;
			{
				(*filename)._kind_3.strVal = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_298));
			}
			LA15_: ;
		}
		goto LA9_;
		LA13_: ;
		{
			(*filename)._kind_3.strVal = copyString((*(*(*c).graph).config).m.fileInfos->data[info.fileIndex].shortName);
		}
		LA9_: ;
	}
	LA3_: ;
	T21_ = (*n).info;
	T22_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T22_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	line = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), T21_, T22_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T23_ = (NI)0;
	T23_ = toLinenumber__6D4Rmpw7LpcRI1j7CMqEsAmsgs(info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*line)._kind_1.intVal = ((NI64) (T23_));
	T24_ = (*n).info;
	T25_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T25_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	column = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), T24_, T25_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T26_ = (NI)0;
	T26_ = toColumn__6D4Rmpw7LpcRI1j7CMqEsA_2msgs(info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*column)._kind_1.intVal = ((NI64) (T26_));
	nimZeroMem((void*)T27_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T27_[0] = (*(*(*n).typ).n)._kind_6.sons->data[((NI) 0)];
	T27_[1] = filename;
	T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T28_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34), T27_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, T28_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T29_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T29_[0] = (*(*(*n).typ).n)._kind_6.sons->data[((NI) 1)];
	T29_[1] = line;
	T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T30_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34), T29_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, T30_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T31_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T31_[0] = (*(*(*n).typ).n)._kind_6.sons->data[((NI) 2)];
	T31_[1] = column;
	T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T32_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34), T31_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, T32_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOrd__7YxUILpPxooC5qqa89a54dw_21)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* parType;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	parType = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA(parType, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
	}
	goto LA1_;
	LA4_: ;
	{
		NI64 a;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T9_;
		NI64 b;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T10_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
		if (!((*parType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19))) goto LA7_;
		T9_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*c).graph).config, parType);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		a = toInt64__1szweXXq3RBN50owrYu2Xw(T9_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T10_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*c).graph).config, parType);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		b = toInt64__1szweXXq3RBN50owrYu2Xw(T10_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T11_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T11_ = makeRangeType__Jrbal1EnVldk9cZ2EZVjuLQ(c, a, b, (*n).info, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T11_;
	}
	goto LA1_;
	LA7_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_299), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_300, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T13_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOf__7YxUILpPxooC5qqa89a54dw_22)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T42_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* y;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 3))) goto LA4_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 1)] = T6_;
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 2)], 256);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 2)] = T7_;
		a = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36275087638309136));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		b = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 2)]).typ, IL64(36275087638309136));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		x = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36275087638308880));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		y = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 2)]).typ, IL64(36275087638308880));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*x).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			if (T10_) goto LA11_;
			T10_ = !(((*y).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)));
			LA11_: ;
			if (!T10_) goto LA12_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_301), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_302, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA8_;
		LA12_: ;
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = !(((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)));
			if (T15_) goto LA16_;
			T15_ = !(((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)));
			LA16_: ;
			if (!T15_) goto LA17_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_301), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_303, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA8_;
		LA17_: ;
		{
			NI diff;
			diff = inheritanceDiff__1dM2iQB5qStJfnn3684ijQ_2(a, b);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T24_;
				NimStringDesc* T25_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
				if (!(diff <= ((NI) 0))) goto LA22_;
				T24_ = (*n).info;
				T25_ = (NimStringDesc*)0;
				T25_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T24_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 66), T25_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_304, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).info = (*n).info;
				T26_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T26_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).typ = T26_;
				goto BeforeRet_;
			}
			goto LA20_;
			LA22_: ;
			{
				if (!(diff == ((NI) IL64(9223372036854775807)))) goto LA28_;
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T32_;
					NimStringDesc* T35_;
					NimStringDesc* T36_;
					T32_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T32_ = commonSuperclass__CFsXKWHnV1O9asJrtw08whA(a, b);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!(T32_ == NIM_NIL)) goto LA33_;
					T35_ = (NimStringDesc*)0;
					T35_ = typeToString__QlvraUan7WbHowhAbvDvdA(a, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T36_ = (NimStringDesc*)0;
					T36_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_305), T35_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T36_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_306, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA30_;
				LA33_: ;
				{
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T38_;
					NimStringDesc* T39_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T40_;
					T38_ = (*n).info;
					T39_ = (NimStringDesc*)0;
					T39_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T38_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 67), T39_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_307, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(0));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result).info = (*n).info;
					T40_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T40_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result).typ = T40_;
				}
				LA30_: ;
			}
			goto LA20_;
			LA28_: ;
			LA20_: ;
		}
		LA8_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_308), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_309, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	T42_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T42_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n).typ = T42_;
	result = n;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semLowHigh__7e8kUc3a9a4gEAcnG7wUcyQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI T3_;
		NimStringDesc* T6_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_310), opToStr__x47hvY2ezR4p9cvQjupSCVQ[(m)- 8]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_313, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 1)], 256);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 1)] = T8_;
		typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(45141549399451920));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		switch ((*typ).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
			T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T10_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n).typ = T10_;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			(*n).typ = (*typ).sons->data[((NI) 0)];
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 38):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
			T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T13_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, 256);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n).typ = T13_;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T16_;
			T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T15_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T16_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T16_ = makeTypeFromExpr__D2YW7F23KYvdV39aTScM3IQ(c, T15_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n).typ = T16_;
		}
		break;
		default:
		{
			NimStringDesc* T18_;
			T18_ = (NimStringDesc*)0;
			T18_ = rawNewString((opToStr__x47hvY2ezR4p9cvQjupSCVQ[(m)- 8] ? opToStr__x47hvY2ezR4p9cvQjupSCVQ[(m)- 8]->Sup.len : 0) + 22);
appendString(T18_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_314));
appendString(T18_, opToStr__x47hvY2ezR4p9cvQjupSCVQ[(m)- 8]);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T18_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_315, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		}
	}
	LA1_: ;
	result = n;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isCompileTimeProc__Ye2MiAptq3GrXxTQeyXNeA_2ast)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((12288 &(1U<<((NU)((*s).kind)&31U)))!=0);
	if (!(T3_)) goto LA4_;
	T3_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBindSym__7YxUILpPxooC5qqa89a54dw_23)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sl;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* isMixin;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* id;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T13_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[((NI) 0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	sl = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, (*n)._kind_6.sons->data[((NI) 1)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((*sl).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) || (*sl).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 21) || (*sl).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22)))) goto LA3_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_316), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_317, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA3_: ;
	isMixin = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, (*n)._kind_6.sons->data[((NI) 2)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = !(((*isMixin).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)));
		if (T8_) goto LA9_;
		T8_ = ((*isMixin)._kind_1.intVal < IL64(0));
		LA9_: ;
		T7_ = T8_;
		if (T7_) goto LA10_;
		T7_ = (IL64(2) < (*isMixin)._kind_1.intVal);
		LA10_: ;
		if (!T7_) goto LA11_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 2)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_318), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_319, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA11_: ;
	T13_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T13_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, (*sl)._kind_3.strVal);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	id = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T13_, (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag(c, id, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sc;
		if (!!((s == NIM_NIL))) goto LA16_;
		sc = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, id, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) ((*isMixin)._kind_1.intVal)), NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T20_;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T22_;
			T20_ = (NIM_BOOL)0;
			T20_ = (((NI) 0) < (*c).inStaticContext);
			if (T20_) goto LA21_;
			T22_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			T22_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T20_ = isCompileTimeProc__Ye2MiAptq3GrXxTQeyXNeA_2ast(T22_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA21_: ;
			if (!!(T20_)) goto LA23_;
			result = sc;
			goto BeforeRet_;
		}
		LA23_: ;
		add__P8dDSotTW25BkfbyspojGg(result, sc);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA14_;
	LA16_: ;
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T26_;
		T26_ = (*(*n)._kind_6.sons->data[((NI) 1)]).info;
		errorUndeclaredIdentifier__2jJM9bqw5w9caMyqez0JSuZw(c, T26_, (*sl)._kind_3.strVal);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA14_: ;
	}BeforeRet_: ;
	return result;
}
static N_NIMCALL(void, Marker_tyRef__IqGNbqKVyQ9b9an5n9bN8QJsQ)(void* p, NI op) {
	tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg* a;
	a = (tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg*)p;
	nimGCvisit((void*)(*a).c1, op);
	nimGCvisit((void*)(*a).scope2, op);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, opBindSym__WI1aMJFzyk8ggPo9bdhAVJw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI isMixin, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* id;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* tmpScope;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 21) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2)))) goto LA3_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*info).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_322), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_323, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		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__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*info).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_318), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_324, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA9_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA13_;
		id = n;
	}
	goto LA11_;
	LA13_: ;
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T16_;
		T16_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T16_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, (*n)._kind_3.strVal);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		id = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T16_, (*info).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA11_: ;
	tmpScope = (*c).currentScope;
	(*c).currentScope = scope;
	s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag(c, id, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((s == NIM_NIL))) goto LA19_;
		result = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, id, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) (isMixin)), NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA17_;
	LA19_: ;
	{
		NimStringDesc* T22_;
		T22_ = (NimStringDesc*)0;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA25_;
			T22_ = copyString((*(*n)._kind_5.ident).s);
		}
		goto LA23_;
		LA25_: ;
		{
			T22_ = copyString((*n)._kind_3.strVal);
		}
		LA23_: ;
		errorUndeclaredIdentifier__2jJM9bqw5w9caMyqez0JSuZw(c, (*info).info, T22_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA17_: ;
	(*c).currentScope = tmpScope;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_CLOSURE(void, bindSymWrapper__Yigy4cCtqH652LhibVuvOA)(tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* a, void* ClE_0) {
	tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg* colonenvP_;
	tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	NI64 T4_;
	NI T5_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colonenvP_ = (tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg*) ClE_0;
	nimZeroMem((void*)(&T1_), sizeof(tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA));
	nimCopyMem((void*)(&T1_), (NIM_CONST void*)a, sizeof(T1_));
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = getNode__DuJnnnM0aSaXeDv118rkUw(a, ((NI) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = T2_;
	T4_ = (NI64)0;
	T4_ = getInt__VJ5Unk9bDoOAoLiZLdhb9b1Q(a, ((NI) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T5_ = (NI)0;
	T5_ = ((NI) (T4_));
	T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T6_ = getNode__DuJnnnM0aSaXeDv118rkUw(a, ((NI) 2));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T7_ = opBindSym__WI1aMJFzyk8ggPo9bdhAVJw((*colonenvP_).c1, (*colonenvP_).scope2, T3_, T5_, T6_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	setResult__Adyk89aSgmLp9bDuSV0Va03A((&T1_), T7_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDynamicBindSym__7YxUILpPxooC5qqa89a54dw_24)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg* colonenv_;
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* vm;
	NI idx;
	tyProc__5QC9cKfPJmKuW0XbCTd8ylA T12_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* idxNode;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T13_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	colonenv_ = (tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg*)0;
	colonenv_ = (tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg*) newObj((&NTI__IqGNbqKVyQ9b9an5n9bN8QJsQ_), sizeof(tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg));
	(*colonenv_).Sup.m_type = (&NTI__LF0eKAnygFo4etNDdpTetg_);
	(*colonenv_).c1 = c;
	{
		NIM_BOOL T3_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) < (*(*colonenv_).c1).inStaticContext);
		if (T3_) goto LA4_;
		T5_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T5_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w((*colonenv_).c1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = isCompileTimeProc__Ye2MiAptq3GrXxTQeyXNeA_2ast(T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA4_: ;
		if (!!(T3_)) goto LA6_;
		result = semBindSym__7YxUILpPxooC5qqa89a54dw_23((*colonenv_).c1, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA6_: ;
	{
		if (!((*(*(*colonenv_).c1).graph).vm == 0)) goto LA10_;
		setupGlobalCtx__41qwP9bj6cfy3VehAu9aAFvw((*(*colonenv_).c1).module, (*(*colonenv_).c1).graph);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA10_: ;
	vm = (*((tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw**) (&((*(*(*colonenv_).c1).graph).vm))));
	(*colonenv_).scope2 = (*(*colonenv_).c1).currentScope;
	nimZeroMem((void*)(&T12_), sizeof(tyProc__5QC9cKfPJmKuW0XbCTd8ylA));
	T12_.ClP_0 = bindSymWrapper__Yigy4cCtqH652LhibVuvOA; T12_.ClE_0 = colonenv_;
	idx = registerCallback__KnNoqgKj9bmG2p3f4SLNFqA(vm, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_321), T12_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)(&T13_), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	T14_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T14_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*colonenv_).c1).graph, T13_, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	idxNode = newIntTypeNode__9azVbThnGagKx8BBa5Ph9cDw(((NI64) (idx)), T14_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA18;
					i = i_2;
					x = (*n)._kind_6.sons->data[i];
					add__P8dDSotTW25BkfbyspojGg(result, x);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI) 1);
				} LA18: ;
			}
		}
	}
	add__P8dDSotTW25BkfbyspojGg(result, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, idxNode);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, whereToBindTypeHook__ZcD0zNCGO9bcEV34hRXFEJA_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = t;
	{
		while (1) {
			{
				if (!((3072 &((NU64)1<<((NU)((*result).kind)&63U)))!=0)) goto LA5_;
				result = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(result);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA3_;
			LA5_: ;
			{
				if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA8_;
				result = (*result).sons->data[((NI) 0)];
			}
			goto LA3_;
			LA8_: ;
			{
				goto LA1;
			}
			LA3_: ;
		}
	} LA1: ;
	{
		if (!((285351936 &((NU64)1<<((NU)((*result).kind)&63U)))!=0)) goto LA13_;
		result = canonType__ZcD0zNCGO9bcEV34hRXFEJA(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA13_: ;
	}BeforeRet_: ;
	return result;
}
static N_NIMCALL(void, Marker_tyRef__NaDYkbcAjZXYRP9arR0vzYg)(void* p, NI op) {
	tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg* a;
	a = (tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg*)p;
	nimGCvisit((void*)(*a).orig1, op);
}
N_LIB_PRIVATE N_CLOSURE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transform__jpL3B9a76sXjWDD2lkGF2ew)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* procSym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* old, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* fresh, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* oldParam, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* newParam, void* ClE_0) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg* colonenvP_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	colonenvP_ = (tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg*) ClE_0;
	result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTypeOrNil__3isNyHKb0U1OCnClmflXSg_2((*n).typ, old, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		(*result).typ = fresh;
	}
	LA4_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA8_;
		{
			if (!((*n)._kind_4.sym == oldParam)) goto LA12_;
			(*result)._kind_4.sym = newParam;
		}
		goto LA10_;
		LA12_: ;
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T17_;
			if (!((*(*n)._kind_4.sym).owner == (*colonenvP_).orig1)) goto LA15_;
			T17_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			T17_ = copySym__lIu8wX6Beq6dBJgESOFFjg((*n)._kind_4.sym);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result)._kind_4.sym = T17_;
			(*(*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__P89cqdlERShb9alU3iC0yj8w_2ast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyProc__ZB008LFGdRYy2vj1OH1xuQ T21_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
				if (!(i_2 < colontmp_)) goto LA20;
				i = i_2;
				nimZeroMem((void*)(&T21_), sizeof(tyProc__ZB008LFGdRYy2vj1OH1xuQ));
				T21_.ClP_0 = transform__jpL3B9a76sXjWDD2lkGF2ew; T21_.ClE_0 = colonenvP_;
				T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T22_ = T21_.ClE_0? T21_.ClP_0(procSym, (*n)._kind_6.sons->data[i], old, fresh, oldParam, newParam, T21_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_330)(T21_.ClP_0))(procSym, (*n)._kind_6.sons->data[i], old, fresh, oldParam, newParam);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[i] = T22_;
				i_2 += ((NI) 1);
			} LA20: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, turnFinalizerIntoDestructor__ZI4mbm59aB4PCl4xGhxV09bw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* orig, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg* colonenv_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origParamType;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* newParamType;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* oldParam;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* newParam;
	tyProc__ZB008LFGdRYy2vj1OH1xuQ T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	colonenv_ = (tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg*)0;
	colonenv_ = (tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg*) newObj((&NTI__NaDYkbcAjZXYRP9arR0vzYg_), sizeof(tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg));
	(*colonenv_).Sup.m_type = (&NTI__UaUb9bgQbqCS7gyXItZuJNg_);
	(*colonenv_).orig1 = orig;
	result = copySym__lIu8wX6Beq6dBJgESOFFjg((*colonenv_).orig1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).info = info;
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2)) & 63);
	(*result).owner = (*colonenv_).orig1;
	origParamType = (*(*(*colonenv_).orig1).typ).sons->data[((NI) 1)];
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(origParamType, IL64(36275087638309136));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	newParamType = makeVarType__1XhuXEO6E22P9aDkvWkNrHQ(result, T1_, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	oldParam = (*(*(*(*(*colonenv_).orig1).typ).n)._kind_6.sons->data[((NI) 1)])._kind_4.sym;
	newParam = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), (*oldParam).name, result, (*result).info, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*newParam).typ = newParamType;
	nimZeroMem((void*)(&T2_), sizeof(tyProc__ZB008LFGdRYy2vj1OH1xuQ));
	T2_.ClP_0 = transform__jpL3B9a76sXjWDD2lkGF2ew; T2_.ClE_0 = colonenv_;
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = T2_.ClE_0? T2_.ClP_0(result, (*(*colonenv_).orig1).ast, origParamType, newParamType, oldParam, newParam, T2_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_331)(T2_.ClP_0))(result, (*(*colonenv_).orig1).ast, origParamType, newParamType, oldParam, newParam);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).ast = T3_;
	T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T4_ = newProcType__9bgJAAoskVeu3l1AHMmz9adg((*result).info, result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = T4_;
	addParam__MnxL8SpIj0v6dB7M1prhCw((*result).typ, newParam);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, unownedType__ZcD0zNCGO9bcEV34hRXFEJA_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		tySequence__Ef05srmQTDulnBdXR4Ja6Q* elems;
		NI T2_;
		NIM_BOOL someChange;
		T2_ = (NI)0;
		T2_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		elems = newSeq__g2qIn6210g4boJ9cN37Mg3Q(((NI) (T2_)));
		someChange = NIM_FALSE;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
					if (!(i_2 < colontmp_)) goto LA5;
					i = i_2;
					T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T6_ = unownedType__ZcD0zNCGO9bcEV34hRXFEJA_3(c, (*t).sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					elems->data[i] = T6_;
					{
						if (!!((elems->data[i] == (*t).sons->data[i]))) goto LA9_;
						someChange = NIM_TRUE;
					}
					LA9_: ;
					i_2 += ((NI) 1);
				} LA5: ;
			}
		}
		{
			if (!someChange) goto LA13_;
			result = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18), (*t).owner);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ** e;
				NI i_3;
				NI L;
				NI T16_;
				e = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ**)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__LW9aGb2JfjdMXhDZwQYa5xg(result, (*e), NIM_TRUE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_3 += ((NI) 1);
					} LA18: ;
				}
			}
		}
		goto LA11_;
		LA13_: ;
		{
			result = t;
		}
		LA11_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		result = (*t).sons->data[((NI) 0)];
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b;
		NI T22_;
		T22_ = (NI)0;
		T22_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		b = unownedType__ZcD0zNCGO9bcEV34hRXFEJA_3(c, (*t).sons->data[(NI)(T22_ - ((NI) 1))]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI T25_;
			NI T28_;
			T25_ = (NI)0;
			T25_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!((b == (*t).sons->data[(NI)(T25_ - ((NI) 1))]))) goto LA26_;
			result = copyType__4O4aYoscFPo2FRSh4rP9ayg(t, (*t).owner, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T28_ = (NI)0;
			T28_ = len__5mJADrRYkP3r9auuiuDZN9cQast(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).sons->data[(NI)(T28_ - ((NI) 1))] = b;
			(*result).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4)) & 63));
		}
		goto LA23_;
		LA26_: ;
		{
			result = t;
		}
		LA23_: ;
	}
	break;
	default:
	{
		result = t;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semUnown__7YxUILpPxooC5qqa89a54dw_25)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*n)._kind_6.sons->data[((NI) 1)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = unownedType__ZcD0zNCGO9bcEV34hRXFEJA_3(c, (*result).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = T1_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semQuantifier__7YxUILpPxooC5qqa89a54dw_26)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* args;
	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T25_;
	NI T26_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg((*n).kind, (*n).info, (*n).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[((NI) 0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	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__P89cqdlERShb9alU3iC0yj8wast(args);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmp_ = (NI)(T3_ - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NIM_BOOL valid;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				it = (*args)._kind_6.sons->data[i];
				valid = NIM_FALSE;
				{
					tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* op;
					if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29))) goto LA8_;
					op = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*it)._kind_6.sons->data[((NI) 0)], NIM_NIL);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* domain;
						tyArray__T6RKPw8xfAeNaoei9aZGzXg T18_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
						if (!((*op).Sup.id == ((NI) 31))) goto LA12_;
						v = newSymS__z0Xq7x7aKOzONyxr8mX73A_2(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21), (*it)._kind_6.sons->data[((NI) 1)], c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA16_;
							nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*v).info, v, (*v).kind);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA16_: ;
						domain = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*it)._kind_6.sons->data[((NI) 2)], 2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*v).typ = (*domain).typ;
						valid = NIM_TRUE;
						addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, v);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						nimZeroMem((void*)T18_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
						T18_[0] = (*it)._kind_6.sons->data[((NI) 0)];
						T19_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T19_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(v);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T18_[1] = T19_;
						T18_[2] = domain;
						T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T20_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), T18_, 3);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						add__P8dDSotTW25BkfbyspojGg(result, T20_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA12_: ;
				}
				LA8_: ;
				{
					if (!!(valid)) goto LA23_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_332), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_333, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA23_: ;
				res += ((NI) 1);
			} LA5: ;
		}
	}
	T25_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
	T25_ = c;
	T26_ = (NI)0;
	T26_ = len__P89cqdlERShb9alU3iC0yj8wast(args);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T27_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*args)._kind_6.sons->data[(NI)(T26_ - ((NI) 1))], 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T28_ = forceBool__7YxUILpPxooC5qqa89a54dw_4(T25_, T27_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, T28_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOld__7YxUILpPxooC5qqa89a54dw_27)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA3_;
		(*n)._kind_6.sons->data[((NI) 1)] = (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)];
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T7_) goto LA8_;
		T7_ = !(((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
		LA8_: ;
		if (!T7_) goto LA9_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_334), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_335, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA5_;
	LA9_: ;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T12_;
		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T15_;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T16_;
		NimStringDesc* T17_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T18_;
		T12_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T12_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).owner == T12_))) goto LA13_;
		T15_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
		T15_ = (*(*c).graph).config;
		T16_ = (*(*n)._kind_6.sons->data[((NI) 1)]).info;
		T17_ = (NimStringDesc*)0;
		T18_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T18_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T17_ = 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) + ((*(*T18_).name).s ? (*(*T18_).name).s->Sup.len : 0) + 20);
appendString(T17_, (*(*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).name).s);
appendString(T17_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_336));
appendString(T17_, (*(*T18_).name).s);
		liMessage__Q6JNH4uRwLyZrj0dJakHew(T15_, T16_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T17_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_337, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA5_;
	LA13_: ;
	LA5_: ;
	result = n;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, magicsAfterOverloadResolution__vJZwz9bfROKrfrtM50y74CQ_7)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 16):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = n;
		T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T2_ = (*n)._kind_6.sons->data[((NI) 1)];
		T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T3_ = semAddrArg__kiPmghV1gaPm718CtGyhQw(c, T2_, eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_223)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 1)] = T3_;
		T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = makePtrType__PDWeh9cjpi22xXdNggYvsWA(c, (*(*result)._kind_6.sons->data[((NI) 1)]).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T4_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 18):
	{
		result = semTypeOf__7YxUILpPxooC5qqa89a54dw_15(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 10):
	{
		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* configX60gensym4087_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nodeX60gensym4087_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typX60gensym4087_;
		NI64 sizeX60gensym4087_;
		configX60gensym4087_ = (*(*c).graph).config;
		nodeX60gensym4087_ = n;
		typX60gensym4087_ = (*(*nodeX60gensym4087_)._kind_6.sons->data[((NI) 1)]).typ;
		computeSizeAlign__Nur2IEN9ayDXYT9aVdBUPsYQ(configX60gensym4087_, typX60gensym4087_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		sizeX60gensym4087_ = (*typX60gensym4087_).size;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resX60gensym4087_;
			if (!(IL64(0) <= sizeX60gensym4087_)) goto LA9_;
			resX60gensym4087_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), sizeX60gensym4087_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*resX60gensym4087_).info = (*nodeX60gensym4087_).info;
			(*resX60gensym4087_).typ = (*nodeX60gensym4087_).typ;
			result = resX60gensym4087_;
		}
		goto LA7_;
		LA9_: ;
		{
			result = n;
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 11):
	{
		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* configX60gensym4091_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nodeX60gensym4091_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typX60gensym4091_;
		NI16 alignX60gensym4091_;
		configX60gensym4091_ = (*(*c).graph).config;
		nodeX60gensym4091_ = n;
		typX60gensym4091_ = (*(*nodeX60gensym4091_)._kind_6.sons->data[((NI) 1)]).typ;
		computeSizeAlign__Nur2IEN9ayDXYT9aVdBUPsYQ(configX60gensym4091_, typX60gensym4091_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		alignX60gensym4091_ = (*typX60gensym4091_).align;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resX60gensym4091_;
			if (!(((NI16) 0) <= alignX60gensym4091_)) goto LA15_;
			resX60gensym4091_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (alignX60gensym4091_)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*resX60gensym4091_).info = (*nodeX60gensym4091_).info;
			(*resX60gensym4091_).typ = (*nodeX60gensym4091_).typ;
			result = resX60gensym4091_;
		}
		goto LA13_;
		LA15_: ;
		{
			result = n;
		}
		LA13_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 12):
	{
		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* configX60gensym4095_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nodeX60gensym4095_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dotExprX60gensym4095_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* valueX60gensym4095_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* memberX60gensym4095_;
		NI offsetX60gensym4095_;
		configX60gensym4095_ = (*(*c).graph).config;
		nodeX60gensym4095_ = n;
		dotExprX60gensym4095_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			{
				if (!((*(*nodeX60gensym4095_)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA22_;
				dotExprX60gensym4095_ = (*nodeX60gensym4095_)._kind_6.sons->data[((NI) 1)];
			}
			goto LA20_;
			LA22_: ;
			{
				if (!((*(*nodeX60gensym4095_)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA25_;
				dotExprX60gensym4095_ = (*(*nodeX60gensym4095_)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)];
			}
			goto LA20_;
			LA25_: ;
			{
				liMessage__Q6JNH4uRwLyZrj0dJakHew(configX60gensym4095_, (*nodeX60gensym4095_).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_226), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_227, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA20_: ;
		}
		valueX60gensym4095_ = (*dotExprX60gensym4095_)._kind_6.sons->data[((NI) 0)];
		memberX60gensym4095_ = (*dotExprX60gensym4095_)._kind_6.sons->data[((NI) 1)];
		computeSizeAlign__Nur2IEN9ayDXYT9aVdBUPsYQ(configX60gensym4095_, (*valueX60gensym4095_).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		offsetX60gensym4095_ = (*(*memberX60gensym4095_)._kind_4.sym).offset;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym4095_;
			if (!(((NI) 0) <= offsetX60gensym4095_)) goto LA30_;
			tmpX60gensym4095_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (offsetX60gensym4095_)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*tmpX60gensym4095_).info = (*nodeX60gensym4095_).info;
			(*tmpX60gensym4095_).typ = (*nodeX60gensym4095_).typ;
			result = tmpX60gensym4095_;
		}
		goto LA28_;
		LA30_: ;
		{
			result = n;
		}
		LA28_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 5):
	{
		result = semArrGet__vJZwz9bfROKrfrtM50y74CQ_8(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 6):
	{
		result = semArrPut__vJZwz9bfROKrfrtM50y74CQ_10(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 7):
	{
		{
			if (!eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_160))) goto LA38_;
			result = semAsgnOpr__7YxUILpPxooC5qqa89a54dw_18(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA36_;
		LA38_: ;
		{
			result = semShallowCopy__vJZwz9bfROKrfrtM50y74CQ_11(c, n, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA36_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 139):
	{
		result = semIsPartOf__vJZwz9bfROKrfrtM50y74CQ_12(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 13):
	{
		result = semTypeTraits__7YxUILpPxooC5qqa89a54dw_19(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 140):
	{
		NimStringDesc* T44_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T45_;
		T44_ = (NimStringDesc*)0;
		T44_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA((*n)._kind_6.sons->data[((NI) 1)], 4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newStrNodeT__9cl7myBS6dfbP30fsccozTQ(T44_, n, (*c).graph);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T45_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T45_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T45_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 256):
	{
		result = semInstantiationInfo__7YxUILpPxooC5qqa89a54dw_20(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 31):
	{
		result = semOrd__7YxUILpPxooC5qqa89a54dw_21(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 15):
	{
		result = semOf__7YxUILpPxooC5qqa89a54dw_22(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 9):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 8):
	{
		result = semLowHigh__7e8kUc3a9a4gEAcnG7wUcyQ(c, n, (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 21):
	{
		result = semShallowCopy__vJZwz9bfROKrfrtM50y74CQ_11(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 246):
	{
		{
			if (!!((((*c).features &(1U<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 6))&15U)))!=0))) goto LA54_;
			result = semBindSym__7YxUILpPxooC5qqa89a54dw_23(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA52_;
		LA54_: ;
		{
			result = semDynamicBindSym__7YxUILpPxooC5qqa89a54dw_24(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA52_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 199):
	{
		result = n;
		(*result).typ = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 127):
	{
		result = n;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 19):
	{
		tyProc__RcJNn9bSvWdJgUmA1O6sbHA plugin;
		plugin = getPlugin__CPe4POy5nrj1aG8wD32ycw((*c).cache, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T64_;
			NimStringDesc* T65_;
			if (!(plugin == 0)) goto LA62_;
			T64_ = (*n).info;
			T65_ = (NimStringDesc*)0;
			T65_ = 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(T65_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_325));
appendString(T65_, (*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T64_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T65_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_326, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = n;
		}
		goto LA60_;
		LA62_: ;
		{
			result = plugin(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA60_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 33):
	{
		{
			NIM_BOOL T70_;
			NI T71_;
			NI T73_;
			T70_ = (NIM_BOOL)0;
			T71_ = (NI)0;
			T71_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T70_ = ((*(*n)._kind_6.sons->data[(NI)(T71_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T70_)) goto LA72_;
			T73_ = (NI)0;
			T73_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T70_ = !(((12288 &(1U<<((NU)((*(*(*n)._kind_6.sons->data[(NI)(T73_ - ((NI) 1))])._kind_4.sym).kind)&31U)))!=0));
			LA72_: ;
			if (!T70_) goto LA74_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_327), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_328, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA68_;
		LA74_: ;
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fin;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T87_;
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 41))&63U)))!=0)) goto LA77_;
			{
				NI T81_;
				NI T84_;
				T81_ = (NI)0;
				T81_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!((*(*n)._kind_6.sons->data[(NI)(T81_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51))) goto LA82_;
				T84_ = (NI)0;
				T84_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				fin = (*(*(*n)._kind_6.sons->data[(NI)(T84_ - ((NI) 1))])._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			}
			goto LA79_;
			LA82_: ;
			{
				NI T86_;
				T86_ = (NI)0;
				T86_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				fin = (*(*n)._kind_6.sons->data[(NI)(T86_ - ((NI) 1))])._kind_4.sym;
			}
			LA79_: ;
			T87_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T87_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*fin).typ).sons->data[((NI) 1)], IL64(36134350139468048));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			t = whereToBindTypeHook__ZcD0zNCGO9bcEV34hRXFEJA_2(c, T87_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T90_;
				NIM_BOOL T91_;
				T90_ = (NIM_BOOL)0;
				T91_ = (NIM_BOOL)0;
				T91_ = !((t == NIM_NIL));
				if (!(T91_)) goto LA92_;
				T91_ = !(((*t).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0] == NIM_NIL));
				LA92_: ;
				T90_ = T91_;
				if (!(T90_)) goto LA93_;
				T90_ = ((*(*t).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).owner == fin);
				LA93_: ;
				if (!T90_) goto LA94_;
			}
			goto LA88_;
			LA94_: ;
			{
				tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T97_;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T98_;
				T97_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
				T97_ = c;
				T98_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T98_ = turnFinalizerIntoDestructor__ZI4mbm59aB4PCl4xGhxV09bw(c, fin, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				bindTypeHook__tGevY34EeRmY9bzfs7irrbQ(T97_, T98_, n, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA88_: ;
		}
		goto LA68_;
		LA77_: ;
		LA68_: ;
		result = n;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 150):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
		result = n;
		t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36275087632017680));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T104_;
			if (!!(((*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0] == NIM_NIL))) goto LA102_;
			T104_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T104_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result)._kind_6.sons->data[((NI) 0)] = T104_;
		}
		LA102_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 152):
	{
		result = semUnown__7YxUILpPxooC5qqa89a54dw_25(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 113):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 114):
	{
		result = semQuantifier__7YxUILpPxooC5qqa89a54dw_26(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115):
	{
		result = semOld__7YxUILpPxooC5qqa89a54dw_27(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 138):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqType;
		result = n;
		seqType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*result)._kind_6.sons->data[((NI) 1)]).typ, IL64(9112752385689616));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T111_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T113_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T116_;
			NimStringDesc* T117_;
			T111_ = (NIM_BOOL)0;
			T111_ = ((*seqType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
			if (!(T111_)) goto LA112_;
			T113_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T113_ = base__PfgI9ap7WOnsRfFV4znQ27w(seqType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T111_ = !((((*T113_).flags & 393216) == 0));
			LA112_: ;
			if (!T111_) goto LA114_;
			T116_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T116_ = base__PfgI9ap7WOnsRfFV4znQ27w(seqType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T117_ = (NimStringDesc*)0;
			T117_ = typeToString__QlvraUan7WbHowhAbvDvdA(T116_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 32), T117_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_338, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA114_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 151):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* constructed;
		result = n;
		{
			NimStringDesc* argX60gensym4157_;
			if (!!(((*(*(*result)._kind_6.sons->data[((NI) 1)]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)))) goto LA121_;
			argX60gensym4157_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_339);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym4157_, TM__rF9caJawfOjYTjsgLVUSGFA_339);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA121_: ;
		constructed = base__PfgI9ap7WOnsRfFV4znQ27w((*(*result)._kind_6.sons->data[((NI) 1)]).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NimStringDesc* T127_;
			if (!!((((*constructed).flags & 393216) == 0))) goto LA125_;
			T127_ = (NimStringDesc*)0;
			T127_ = typeToString__QlvraUan7WbHowhAbvDvdA(constructed, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 33), T127_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_340, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA125_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 153):
	{
		{
			NIM_BOOL T131_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T134_;
			NimStringDesc* T135_;
			NimStringDesc* T136_;
			T131_ = (NIM_BOOL)0;
			T131_ = checkIsolate__ZXNCKm9cN9beZ9cx11s9c1Qypw((*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T131_)) goto LA132_;
			T134_ = (*n).info;
			T135_ = (NimStringDesc*)0;
			T136_ = (NimStringDesc*)0;
			T136_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A((*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T135_ = rawNewString((T136_ ? T136_->Sup.len : 0) + 31);
appendString(T135_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_341));
appendString(T135_, T136_);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T134_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T135_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_342, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA132_: ;
		result = n;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T140_;
			T140_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T140_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350135273744));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((IL64(34084860461056) &((NU64)1<<((NU)((*T140_).kind)&63U)))!=0)) goto LA141_;
			(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic = ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 66);
		}
		LA141_: ;
		result = n;
	}
	break;
	default:
	{
		result = n;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasCycle__OiccTa3ruRNl9anoSqZh2Sg_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 0)) & 31);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		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 &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 0))&31U)))!=0);
					if (T6_) goto LA7_;
					T6_ = hasCycle__OiccTa3ruRNl9anoSqZh2Sg_4((*n)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					LA7_: ;
					if (!T6_) goto LA8_;
					result = NIM_TRUE;
					goto LA1;
				}
				LA8_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	} LA1: ;
	(*n).flags &= ~(((NU32)1) << ((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 0)) & 31));
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fixupTypeAfterEval__uWNSz7p50zmqqN864XaVBA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* evaluated, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eOrig) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((448 &((NU64)1<<((NU)((*(*eOrig).typ).kind)&63U)))!=0)) goto LA3_;
		result = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, evaluated, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* expectedType;
		result = evaluated;
		expectedType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*eOrig).typ, IL64(1152921504606846976));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = hasCycle__OiccTa3ruRNl9anoSqZh2Sg_4(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T8_) goto LA9_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*eOrig).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_346), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_347, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, eOrig);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA6_;
		LA9_: ;
		{
			annotateType__zBoL79cc9cORdBkTIEpbntbg(result, expectedType, (*(*c).graph).config);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA6_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalAtCompileTime__7YxUILpPxooC5qqa89a54dw_28)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* callee;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)));
		if (T3_) goto LA4_;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	callee = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = !(((*n).typ == NIM_NIL));
		if (!(T9_)) goto LA10_;
		T9_ = (((*(*n).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 33))&63U)))!=0);
		LA10_: ;
		if (!T9_) goto LA11_;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		NIM_BOOL T15_;
		NIM_BOOL T16_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
		NIM_BOOL allConst;
		T15_ = (NIM_BOOL)0;
		T16_ = (NIM_BOOL)0;
		T16_ = !(((*callee).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)));
		if (!(T16_)) goto LA17_;
		T16_ = ((TM__rF9caJawfOjYTjsgLVUSGFA_343[(NU)((*callee).magic)>>3] &(1U<<((NU)((*callee).magic)&7U)))!=0);
		LA17_: ;
		T15_ = T16_;
		if (!(T15_)) goto LA18_;
		T15_ = !(((*n).typ == NIM_NIL));
		LA18_: ;
		if (!T15_) goto LA19_;
		call = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, (*n).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(call, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		allConst = NIM_TRUE;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					if (!(i_2 < colontmp_)) goto LA23;
					i = i_2;
					a = getConstExpr__A7gcXCy5E3uGBy5F37NoHA((*c).module, (*n)._kind_6.sons->data[i], (*c).graph);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!(a == NIM_NIL)) goto LA26_;
						allConst = NIM_FALSE;
						a = (*n)._kind_6.sons->data[i];
						{
							if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58))) goto LA30_;
							a = (*a)._kind_6.sons->data[((NI) 1)];
						}
						LA30_: ;
					}
					LA26_: ;
					add__P8dDSotTW25BkfbyspojGg(call, a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI) 1);
				} LA23: ;
			}
		}
		{
			if (!allConst) goto LA34_;
			result = getConstExpr__A7gcXCy5E3uGBy5F37NoHA((*c).module, call, (*c).graph);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!(result == 0)) goto LA38_;
				result = n;
			}
			goto LA36_;
			LA38_: ;
			{
				goto BeforeRet_;
			}
			LA36_: ;
		}
		LA34_: ;
	}
	LA19_: ;
	{
		{
			NI T44_;
			tySequence__Ef05srmQTDulnBdXR4Ja6Q* T58_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T59_;
			T44_ = (NI)0;
			T44_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			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__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_4 = ((NI) 1);
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA49;
						i_3 = i_4;
						{
							NIM_BOOL T52_;
							NIM_BOOL T53_;
							T52_ = (NIM_BOOL)0;
							T53_ = (NIM_BOOL)0;
							T53_ = ((*(*n)._kind_6.sons->data[i_3]).typ == 0);
							if (T53_) goto LA54_;
							T53_ = !(((*(*(*n)._kind_6.sons->data[i_3]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60)));
							LA54_: ;
							T52_ = T53_;
							if (T52_) goto LA55_;
							T52_ = !((((*(*(*n)._kind_6.sons->data[i_3]).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0));
							LA55_: ;
							if (!T52_) goto LA56_;
							goto LA41;
						}
						LA56_: ;
						i_4 += ((NI) 1);
					} LA49: ;
				}
			}
			T58_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
			T58_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
			T58_->data[0] = (*n).typ;
			T59_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T59_ = newTypeWithSons__7doBlU1jfuQUQdCuB7BM4Q(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), T58_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n).typ = T59_;
			(*(*n).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)) & 63);
		}
		LA45_: ;
	} LA41: ;
	{
		NIM_BOOL T62_;
		NIM_BOOL T64_;
		NIM_BOOL T65_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call_2;
		T62_ = (NIM_BOOL)0;
		T62_ = ((*callee).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10));
		if (T62_) goto LA63_;
		T64_ = (NIM_BOOL)0;
		T65_ = (NIM_BOOL)0;
		T65_ = !(((134221824 & (*callee).flags) == 0));
		if (!(T65_)) goto LA66_;
		T65_ = ((80 & (*callee).flags) == 0);
		LA66_: ;
		T64_ = T65_;
		if (!(T64_)) goto LA67_;
		T64_ = !(((*n).typ == NIM_NIL));
		LA67_: ;
		T62_ = T64_;
		LA63_: ;
		if (!T62_) goto LA68_;
		{
			NIM_BOOL T72_;
			NIM_BOOL T73_;
			T72_ = (NIM_BOOL)0;
			T73_ = (NIM_BOOL)0;
			T73_ = !(((*callee).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10)));
			if (!(T73_)) goto LA74_;
			T73_ = !((((*callee).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0));
			LA74_: ;
			T72_ = T73_;
			if (!(T72_)) goto LA75_;
			T72_ = !((((*(*(*c).graph).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 22))&31U)))!=0));
			LA75_: ;
			if (!T72_) goto LA76_;
			goto BeforeRet_;
		}
		LA76_: ;
		{
			if (!!(((TM__rF9caJawfOjYTjsgLVUSGFA_343[(NU)((*callee).magic)>>3] &(1U<<((NU)((*callee).magic)&7U)))!=0))) goto LA80_;
			goto BeforeRet_;
		}
		LA80_: ;
		{
			NIM_BOOL T84_;
			T84_ = (NIM_BOOL)0;
			T84_ = !(((78848 &(1U<<((NU)((*callee).kind)&31U)))!=0));
			if (T84_) goto LA85_;
			T84_ = isGenericRoutine__uUQONnU7icBs9bdkKqJVqhA(callee);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA85_: ;
			if (!T84_) goto LA86_;
			goto BeforeRet_;
		}
		LA86_: ;
		{
			NIM_BOOL T90_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T92_;
			T90_ = (NIM_BOOL)0;
			T90_ = !(((*n).typ == NIM_NIL));
			if (!(T90_)) goto LA91_;
			T92_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T92_ = typeAllowed__l66YrquEyj20orz2a4YbTw((*n).typ, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10), 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T90_ = !((T92_ == NIM_NIL));
			LA91_: ;
			if (!T90_) goto LA93_;
			goto BeforeRet_;
		}
		LA93_: ;
		call_2 = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, (*n).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(call_2, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_6 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
					if (!(i_6 < colontmp__3)) goto LA97;
					i_5 = i_6;
					a_2 = getConstExpr__A7gcXCy5E3uGBy5F37NoHA((*c).module, (*n)._kind_6.sons->data[i_5], (*c).graph);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!(a_2 == NIM_NIL)) goto LA100_;
						result = n;
						goto BeforeRet_;
					}
					LA100_: ;
					add__P8dDSotTW25BkfbyspojGg(call_2, a_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_6 += ((NI) 1);
				} LA97: ;
			}
		}
		{
			NIM_BOOL T104_;
			T104_ = (NIM_BOOL)0;
			T104_ = ((*c).inStaticContext == ((NI) 0));
			if (T104_) goto LA105_;
			T104_ = (((*callee).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0);
			LA105_: ;
			if (!T104_) goto LA106_;
			{
				if (!(((*callee).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0)) goto LA110_;
				result = evalStaticExpr__ajRaPV9aInq6ZNnUYn0DaVw((*c).module, (*c).graph, call_2, (*(*c).p).owner);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NimStringDesc* T116_;
					NimStringDesc* T117_;
					if (!(result == 0)) goto LA114_;
					T116_ = (NimStringDesc*)0;
					T116_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(call_2, 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T117_ = (NimStringDesc*)0;
					T117_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_344), T116_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T117_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_345, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA112_;
				LA114_: ;
				{
					result = fixupTypeAfterEval__uWNSz7p50zmqqN864XaVBA(c, result, n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA112_: ;
			}
			goto LA108_;
			LA110_: ;
			{
				result = evalConstExpr__P8uF2QSxl7YdNpBnl0Ybqg((*c).module, (*c).graph, call_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!(result == 0)) goto LA122_;
					result = n;
				}
				goto LA120_;
				LA122_: ;
				{
					result = fixupTypeAfterEval__uWNSz7p50zmqqN864XaVBA(c, result, n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA120_: ;
			}
			LA108_: ;
		}
		goto LA102_;
		LA106_: ;
		{
			result = n;
		}
		LA102_: ;
	}
	LA68_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, afterCallActions__Qn3T9bt6Cg4I7XaYRMg219aw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* callee;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	callee = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	switch ((*callee).kind) {
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
	{
		result = semMacroExpr__GFpnqBAgGBu4p8rc0WsOTw(c, result, orig, callee, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
	{
		result = semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog(c, result, callee, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		semFinishOperands__wb6KhAx6bZ5NV37kY4bXJw_3(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		activate__NRIJDWZtATzMum7OEjYC2g_6(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		fixAbstractType__NRIJDWZtATzMum7OEjYC2g_7(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		analyseIfAddressTakenInCall__NRIJDWZtATzMum7OEjYC2g_8(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*callee).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)))) goto LA6_;
			result = magicsAfterOverloadResolution__vJZwz9bfROKrfrtM50y74CQ_7(c, result, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA6_: ;
	}
	break;
	}
	{
		if (!((*c).matchedConcept == NIM_NIL)) goto LA10_;
		result = evalAtCompileTime__7YxUILpPxooC5qqa89a54dw_28(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA10_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDirectOp__vJZwz9bfROKrfrtM50y74CQ_6)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nOrig = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = semOverloadedCallAnalyseEffects__9b1JieByYAFP9bIuFhYqD8AA(c, n, nOrig, flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((result == NIM_NIL))) goto LA3_;
		result = afterCallActions__Qn3T9bt6Cg4I7XaYRMg219aw(c, result, nOrig, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		result = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalPattern__bbosmif5uBCIMfZ0A73vOQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NimStringDesc* rule;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NimStringDesc* argX60gensym74_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27));
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		argX60gensym74_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_209);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym74_, TM__rF9caJawfOjYTjsgLVUSGFA_209);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	rule = (NimStringDesc*)0;
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = hasHint__6vRFaWMeJsly8QVCeazPQA_2((*(*c).graph).config, ((tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA) 69));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T9_) goto LA10_;
		rule = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA10_: ;
	s = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	switch ((*s).kind) {
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
	{
		result = semMacroExpr__GFpnqBAgGBu4p8rc0WsOTw(c, n, orig, s, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
	{
		result = semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog(c, n, s, 65536);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = semDirectOp__vJZwz9bfROKrfrtM50y74CQ_6(c, n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	{
		NIM_BOOL T17_;
		NimStringDesc* T20_;
		NimStringDesc* T21_;
		T17_ = (NIM_BOOL)0;
		T17_ = hasHint__6vRFaWMeJsly8QVCeazPQA_2((*(*c).graph).config, ((tyEnum_TMsgKind__2KKSM6ZBSQgjWsy4q169bgA) 69));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T17_) goto LA18_;
		T20_ = (NimStringDesc*)0;
		T21_ = (NimStringDesc*)0;
		T21_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(result, 4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T20_ = rawNewString((rule ? rule->Sup.len : 0) + (T21_ ? T21_->Sup.len : 0) + 7);
appendString(T20_, rule);
appendString(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_348));
appendString(T20_, T21_);
appendString(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114));
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*orig).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 69), T20_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_349, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA18_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyPatterns__7YxUILpPxooC5qqa89a54dw_12)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	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__JpsEh5i1AcKChGYbg7aV4w* pattern;
				if (!(((NI) 0) <= res)) goto LA4;
				i = res;
				pattern = (*c).patterns->data[i];
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
					if (!!((pattern == 0))) goto LA7_;
					x = applyRule__ZQ863YHaqTVgTAf1B1grTA(c, pattern, result);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!((x == 0))) goto LA11_;
						(*(*(*c).graph).config).evalTemplateCounter += ((NI) 1);
						{
							if (!(((NI) 1000) < (*(*(*c).graph).config).evalTemplateCounter)) goto LA15_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_13), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_207, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA15_: ;
						(*c).patterns->data[i] = NIM_NIL;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
							if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA19_;
							T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T21_ = evalPattern__bbosmif5uBCIMfZ0A73vOQ(c, (*x)._kind_6.sons->data[((NI) 1)], result);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*x)._kind_6.sons->data[((NI) 1)] = T21_;
							result = flattenStmts__qsyX8NJX39ctdwAi4rC8W1g(x);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA17_;
						LA19_: ;
						{
							result = evalPattern__bbosmif5uBCIMfZ0A73vOQ(c, x, result);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA17_: ;
						(*(*(*c).graph).config).evalTemplateCounter -= ((NI) 1);
						(*c).patterns->data[i] = pattern;
					}
					LA11_: ;
				}
				LA7_: ;
				res -= ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, hlo__7YxUILpPxooC5qqa89a54dw_11)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	(*c).hloLoopDetector += ((NI) 1);
	{
		if (!(((NI) 300) < (*c).hloLoopDetector)) goto LA3_;
		result = n;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		result = n;
	}
	break;
	default:
	{
		{
			NIM_BOOL T9_;
			NIM_BOOL T10_;
			T9_ = (NIM_BOOL)0;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36));
			if (!(T10_)) goto LA11_;
			T10_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			LA11_: ;
			T9_ = T10_;
			if (!(T9_)) goto LA12_;
			T9_ = ((2056 & (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags) == 2056);
			LA12_: ;
			if (!T9_) goto LA13_;
			result = n;
			goto BeforeRet_;
		}
		LA13_: ;
		result = applyPatterns__7YxUILpPxooC5qqa89a54dw_12(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(result == n)) goto LA17_;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(result);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* h;
						if (!(i_2 < colontmp_)) goto LA21;
						i = i_2;
						a = (*result)._kind_6.sons->data[i];
						h = hlo__7YxUILpPxooC5qqa89a54dw_11(c, a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!!((h == a))) goto LA24_;
							(*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__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T29_)) goto LA30_;
				T29_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*result).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA30_: ;
				if (!T29_) goto LA31_;
			}
			goto LA27_;
			LA31_: ;
			{
				result = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, (*n).typ, result, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA27_: ;
			result = commonOptimizations__0A2Fu3iOZ9aCzHX2sVSYlhg((*c).graph, (*c).module, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = hlo__7YxUILpPxooC5qqa89a54dw_11(c, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = commonOptimizations__0A2Fu3iOZ9aCzHX2sVSYlhg((*c).graph, (*c).module, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA15_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, hloBody__7YxUILpPxooC5qqa89a54dw_10)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		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 &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 23))&31U)))!=0));
		LA5_: ;
		if (!T3_) goto LA6_;
		result = n;
		goto BeforeRet_;
	}
	LA6_: ;
	(*c).hloLoopDetector = ((NI) 0);
	result = hlo__7YxUILpPxooC5qqa89a54dw_11(c, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, popProcCon__SjrsaPFXVDopDGJmDQUKewsemdata)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	(*c).p = (*(*c).p).next;
}
N_LIB_PRIVATE N_NIMCALL(void, fixupInstantiatedSymbols__PSSiITp8zAUcZ8z1k5AMLA_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		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__JpsEh5i1AcKChGYbg7aV4w* oldPrc;
					tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T9_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
					if (!((*(*c).generics->data[i].genericSym).Sup.id == (*s).Sup.id)) goto LA7_;
					oldPrc = (*(*c).generics->data[i].inst).sym;
					pushProcCon__jWGpC0lY8vG9b1MhOYJ9cFiQ_3(c, oldPrc);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					pushOwner__AqgO9b89aLwRYAgSHN9aBrlHQ(c, oldPrc);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					pushInfoContext__uDLK9aoAOWwwFTev4NOwF7Q((*(*c).graph).config, (*oldPrc).info, ((NimStringDesc*) NIM_NIL));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T9_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
					T9_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					n = (*oldPrc).ast;
					T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T10_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*(*s).ast)._kind_6.sons->data[((NI) 6)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[((NI) 6)] = T10_;
					instantiateBody__6k2yIpmfdYEOM5RXDFvgYQ(c, n, (*(*oldPrc).typ).n, oldPrc, s);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					popInfoContext__O9arH9bYenXLOr27ZSmcQnEw((*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					popOwner__9aY89b9aR25iMJ8fPdM84CvQg_2(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					popProcCon__SjrsaPFXVDopDGJmDQUKewsemdata(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA7_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, searchForBorrowProc__4pWHBKQGe6fnkUK3uFl6xQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* startScope, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fn) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
	NIM_BOOL hasDistinct;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	call = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*fn).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	hasDistinct = NIM_FALSE;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ((*fn).name, (*fn).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(call, T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast((*(*fn).typ).n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* param;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				param = (*(*(*fn).typ).n)._kind_6.sons->data[i];
				t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*param).typ, IL64(36275087632009232));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13));
					if (T7_) goto LA8_;
					T7_ = ((*(*param).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13));
					LA8_: ;
					if (!T7_) goto LA9_;
					hasDistinct = NIM_TRUE;
				}
				LA9_: ;
				x = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
					if (!((*(*param).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA13_;
					x = newTypeS__xb5E2cGIynZweqWlCP8Tig((*(*param).typ).kind, c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T15_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T15_ = baseOfDistinct__PfgI9ap7WOnsRfFV4znQ27w_4(t);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(x, T15_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA11_;
				LA13_: ;
				{
					x = baseOfDistinct__PfgI9ap7WOnsRfFV4znQ27w_4(t);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA11_: ;
				T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T17_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*fn).info, x);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(call, T17_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resolved;
		if (!hasDistinct) goto LA20_;
		{
			if (!((12288 &(1U<<((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__pBkKnME6t9c8v6khuDD76Fg(c, call, call, filter, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((resolved == NIM_NIL))) goto LA29_;
			result = (*(*resolved)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			{
				NIM_BOOL T33_;
				T33_ = (NIM_BOOL)0;
				T33_ = compareTypes__oyXq5u7iL4RjsT9bovvTE9cg((*(*result).typ).sons->data[((NI) 0)], (*(*fn).typ).sons->data[((NI) 0)], ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 1), 0);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!(T33_)) goto LA34_;
				result = NIM_NIL;
			}
			goto LA31_;
			LA34_: ;
			{
				if (!((*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 6) || (*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 5))) goto LA37_;
				result = NIM_NIL;
			}
			goto LA31_;
			LA37_: ;
			LA31_: ;
		}
		LA29_: ;
	}
	LA20_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semBorrow__OGQY86R2SObbzHiM7l0Jxg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	b = searchForBorrowProc__4pWHBKQGe6fnkUK3uFl6xQ(c, (*(*c).currentScope).parent, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!!((b == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 6)] = T5_;
		(*s).magic = (*b).magic;
	}
	goto LA1_;
	LA3_: ;
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_354), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_355, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sideEffectsCheck__PSSiITp8zAUcZ8z1k5AMLA_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProcAux__HtuGXsziiAueY6wARBVVAA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas, tyEnum_TProcCompilationSteps__2LY1MARGn5z4Y5kU8eJFMg phase) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	NIM_BOOL typeIsDetermined;
	NIM_BOOL isAnon;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* oldScope;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T19_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* proto;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = semProcAnnotation__Uz9bZ6N7ZeTxuwI9b9cYeOeYw(c, n, validPragmas);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((result == NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	result = n;
	checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 7), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	s = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	typeIsDetermined = NIM_FALSE;
	isAnon = NIM_FALSE;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA7_;
		{
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T13_;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T14_;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA11_;
			T13_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T13_ = (*(*c).cache).idAnon;
			T14_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			T14_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			s = newSym__IXbidcxhXTQGZY9abN63Cxg(kind, T13_, T14_, (*n).info, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
			isAnon = NIM_TRUE;
		}
		goto LA9_;
		LA11_: ;
		{
			s = semIdentDef__L2b79bZBCkiyCHeJkLWxPlQ(c, (*n)._kind_6.sons->data[((NI) 0)], kind);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
		T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T16_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T16_;
		(*s).ast = n;
	}
	goto LA5_;
	LA7_: ;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T18_;
		s = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		T18_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T18_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s).owner = T18_;
		typeIsDetermined = ((*s).typ == NIM_NIL);
		(*s).ast = n;
	}
	LA5_: ;
	(*s).options = (*(*(*c).graph).config).options;
	oldScope = (*c).currentScope;
	pushOwner__AqgO9b89aLwRYAgSHN9aBrlHQ(c, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T19_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T19_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	gp = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA22_;
		gp = setGenericParamsMisc__7YxUILpPxooC5qqa89a54dw_6(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA20_;
	LA22_: ;
	{
		gp = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA20_: ;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 3)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA27_;
		semParamList__HJ2sXcKFjirzvqsZjMcpTg(c, (*n)._kind_6.sons->data[((NI) 3)], gp, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI T31_;
			T31_ = (NI)0;
			T31_ = len__P89cqdlERShb9alU3iC0yj8wast(gp);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI) 0) < T31_)) goto LA32_;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA36_;
				(*n)._kind_6.sons->data[((NI) 2)] = gp;
			}
			LA36_: ;
		}
		LA32_: ;
	}
	goto LA25_;
	LA27_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T39_;
		T39_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T39_ = newProcType__5gg5mq4XYRQKbAkdLMpzGA(c, (*n).info, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s).typ = T39_;
	}
	LA25_: ;
	{
		if (!(((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 33))&63U)))!=0)) goto LA42_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27)) & 63);
	}
	LA42_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T48_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA46_;
		T48_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T48_ = semPattern__7YxUILpPxooC5qqa89a54dw_9(c, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 1)] = T48_;
	}
	LA46_: ;
	{
		if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15))) goto LA51_;
		(*(*s).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15)) & 63);
	}
	goto LA49_;
	LA51_: ;
	{
		if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13))) goto LA54_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 12)) & 63);
		(*(*s).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1)) & 63);
	}
	goto LA49_;
	LA54_: ;
	LA49_: ;
	{
		if (!isAnon) goto LA58_;
		proto = NIM_NIL;
	}
	goto LA56_;
	LA58_: ;
	{
		proto = searchForProc__WIQjdZgnZBgByteqPM0pPw(c, oldScope, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA56_: ;
	{
		NIM_BOOL T63_;
		T63_ = (NIM_BOOL)0;
		T63_ = (proto == NIM_NIL);
		if (!(T63_)) goto LA64_;
		T63_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0);
		LA64_: ;
		if (!T63_) goto LA65_;
		proto = s;
	}
	LA65_: ;
	{
		if (!(proto == NIM_NIL)) goto LA69_;
		{
			if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15))) goto LA73_;
			{
				if (!!(((*(*s).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9)))) goto LA77_;
				{
					if (!isAnon) goto LA81_;
					(*(*s).typ).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9);
				}
				goto LA79_;
				LA81_: ;
				{
					(*(*s).typ).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 5);
				}
				LA79_: ;
			}
			LA77_: ;
		}
		goto LA71_;
		LA73_: ;
		{
			tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w* T85_;
			T85_ = (tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w*)0;
			T85_ = lastOptionEntry__SQasfuhUR9aUpH0EyW9aFezg_2(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*(*s).typ).callConv = (*T85_).defaultCC;
		}
		LA71_: ;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0)) goto LA88_;
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T94_;
				if (!((*s).owner == NIM_NIL)) goto LA92_;
				T94_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T94_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*s).owner = T94_;
			}
			LA92_: ;
		}
		goto LA86_;
		LA88_: ;
		{
			if (!((520256 &(1U<<((NU)(kind)&31U)))!=0)) goto LA96_;
			{
				if (!!(typeIsDetermined)) goto LA100_;
				addInterfaceOverloadableSymAt__HcojHyPBYsbchSQtmBqThg(c, oldScope, s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA100_: ;
		}
		goto LA86_;
		LA96_: ;
		{
			{
				if (!!(typeIsDetermined)) goto LA105_;
				addInterfaceDeclAt__HcojHyPBYsbchSQtmBqThg_2(c, oldScope, s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA105_: ;
		}
		LA86_: ;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA109_;
			pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, s, (*n)._kind_6.sons->data[((NI) 4)], validPragmas, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA107_;
		LA109_: ;
		{
			implicitPragmas__3fUSuAmLz4H9aPTbK4rPERw(c, s, n, validPragmas);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA107_: ;
		{
			if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA114_;
			nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*s).info, s, (*s).kind);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA114_: ;
	}
	goto LA67_;
	LA69_: ;
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T141_;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA119_;
			pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, s, (*n)._kind_6.sons->data[((NI) 4)], validPragmas, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T123_;
				tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T127_;
				NimStringDesc* T128_;
				NimStringDesc* T129_;
				NimStringDesc* T130_;
				T123_ = (NIM_BOOL)0;
				T123_ = !(((*(*proto).typ).callConv == (*(*s).typ).callConv));
				if (T123_) goto LA124_;
				T123_ = ((((*(*proto).typ).flags & ~ (*(*s).typ).flags)==0)&&((*(*proto).typ).flags != (*(*s).typ).flags));
				LA124_: ;
				if (!T123_) goto LA125_;
				T127_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
				T127_ = (*(*c).graph).config;
				T128_ = (NimStringDesc*)0;
				T129_ = (NimStringDesc*)0;
				T129_ = dollar___aQsiZUvE4SFfnWyKx1JgKA((*(*c).graph).config, (*proto).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T128_ = rawNewString(((*(*proto).name).s ? (*(*proto).name).s->Sup.len : 0) + (T129_ ? T129_->Sup.len : 0) + 8);
appendString(T128_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114));
appendString(T128_, (*(*proto).name).s);
appendString(T128_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_153));
appendString(T128_, T129_);
				T130_ = (NimStringDesc*)0;
				T130_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_152), T128_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew(T127_, (*(*n)._kind_6.sons->data[((NI) 4)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T130_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_154, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA125_: ;
		}
		LA119_: ;
		{
			if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA133_;
			nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*s).info, s, (*s).kind);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA133_: ;
		{
			NIM_BOOL T137_;
			T137_ = (NIM_BOOL)0;
			T137_ = !((((*proto).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0));
			if (!(T137_)) goto LA138_;
			T137_ = ((*proto).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
			LA138_: ;
			if (!T137_) goto LA139_;
			wrongRedefinition__m38oZS3DB39a2RtTLWidA5w(c, (*n).info, (*(*proto).name).s, (*proto).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA139_: ;
		(*proto).flags &= ~(((NU64)1) << ((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4)) & 63));
		(*proto).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 5)) & 63);
		closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T141_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
		T141_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*(*(*proto).ast)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA144_;
			addGenericParamListToScope__NRIJDWZtATzMum7OEjYC2g_5(c, (*(*proto).ast)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA144_: ;
		addParams__XjZLpvNqVUTx1J6TXREPBQ_2(c, (*(*proto).typ).n, (*proto).kind);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*proto).info = (*s).info;
		(*proto).options = (*s).options;
		s = proto;
		(*n)._kind_6.sons->data[((NI) 2)] = (*(*proto).ast)._kind_6.sons->data[((NI) 2)];
		(*n)._kind_6.sons->data[((NI) 3)] = (*(*proto).ast)._kind_6.sons->data[((NI) 3)];
		(*n)._kind_6.sons->data[((NI) 4)] = (*(*proto).ast)._kind_6.sons->data[((NI) 4)];
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA148_;
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_155), TM__rF9caJawfOjYTjsgLVUSGFA_156);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA148_: ;
		(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym = proto;
		{
			NIM_BOOL T152_;
			T152_ = (NIM_BOOL)0;
			T152_ = importantComments__TzsgO9bY9cwAf4hwmbs7dTmgoptions((*(*c).graph).config);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T152_)) goto LA153_;
			T152_ = (((NI) 0) < ((*(*proto).ast).comment ? (*(*proto).ast).comment->Sup.len : 0));
			LA153_: ;
			if (!T152_) goto LA154_;
			(*n).comment = copyString((*(*proto).ast).comment);
		}
		LA154_: ;
		(*proto).ast = n;
		popOwner__9aY89b9aR25iMJ8fPdM84CvQg_2(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		pushOwner__AqgO9b89aLwRYAgSHN9aBrlHQ(c, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA67_: ;
	{
		NIM_BOOL T158_;
		T158_ = (NIM_BOOL)0;
		T158_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0);
		if (T158_) goto LA159_;
		T158_ = ((NU8)((*(*s).name).s->data[((NI) 0)]) == (NU8)(61));
		LA159_: ;
		if (!T158_) goto LA160_;
		semOverride__8H5d8d9cPCfbpMuDrerQMeQ_2(c, s, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA160_: ;
	{
		if (!(((NU8)((*(*s).name).s->data[((NI) 0)])) == ((NU8)(46)) || ((NU8)((*(*s).name).s->data[((NI) 0)])) == ((NU8)(40)))) goto LA164_;
		{
			NIM_BOOL T168_;
			NimStringDesc* T172_;
			T168_ = (NIM_BOOL)0;
			T168_ = contains__MghwuKjQqmVLYE8A59cNGHgsystem(TM__rF9caJawfOjYTjsgLVUSGFA_187, 3, (*(*s).name).s);
			if (!(T168_)) goto LA169_;
			T168_ = ((18 & (*c).features) == 0);
			LA169_: ;
			if (!T168_) goto LA170_;
			T172_ = (NimStringDesc*)0;
			T172_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 80);
appendString(T172_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_191));
appendString(T172_, (*(*s).name).s);
appendString(T172_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_192));
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T172_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_193, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA166_;
		LA170_: ;
		{
			NIM_BOOL T174_;
			NimStringDesc* T178_;
			T174_ = (NIM_BOOL)0;
			T174_ = eqStrings((*(*s).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_194));
			if (!(T174_)) goto LA175_;
			T174_ = !((((*c).features &(1U<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 2))&15U)))!=0));
			LA175_: ;
			if (!T174_) goto LA176_;
			T178_ = (NimStringDesc*)0;
			T178_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 80);
appendString(T178_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_191));
appendString(T178_, (*(*s).name).s);
appendString(T178_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_195));
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T178_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_196, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA166_;
		LA176_: ;
		LA166_: ;
	}
	LA164_: ;
	{
		NIM_BOOL T181_;
		NIM_BOOL usePseudoGenerics;
		T181_ = (NIM_BOOL)0;
		T181_ = !(((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		if (!(T181_)) goto LA182_;
		T181_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0));
		LA182_: ;
		if (!T181_) goto LA183_;
		{
			NimStringDesc* T189_;
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 30))&63U)))!=0)) goto LA187_;
			T189_ = (NimStringDesc*)0;
			T189_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_197), (*(*s).name).s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 6)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T189_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_198, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA187_: ;
		usePseudoGenerics = ((393216 &(1U<<((NU)(kind)&31U)))!=0);
		{
			NIM_BOOL T192_;
			NIM_BOOL T193_;
			NIM_BOOL T196_;
			T192_ = (NIM_BOOL)0;
			T193_ = (NIM_BOOL)0;
			T193_ = !(usePseudoGenerics);
			if (!(T193_)) goto LA194_;
			T193_ = ((6 &(1U<<((NU)((*(*(*c).graph).config).ideCmd)&15U)))!=0);
			LA194_: ;
			T192_ = T193_;
			if (!(T192_)) goto LA195_;
			T196_ = (NIM_BOOL)0;
			T196_ = cursorInProc__2z69cmDyuoRHwZ79bXIom4jw((*(*c).graph).config, (*n)._kind_6.sons->data[((NI) 6)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T192_ = !(T196_);
			LA195_: ;
			if (!T192_) goto LA197_;
			{
				if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14))) goto LA201_;
				semMethodPrototype__8H5d8d9cPCfbpMuDrerQMeQ_3(c, s, n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA201_: ;
		}
		goto LA190_;
		LA197_: ;
		{
			pushProcCon__jWGpC0lY8vG9b1MhOYJ9cFiQ_3(c, s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T206_;
				tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T216_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T217_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T218_;
				T206_ = (NIM_BOOL)0;
				T206_ = ((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
				if (T206_) goto LA207_;
				T206_ = usePseudoGenerics;
				LA207_: ;
				if (!T206_) goto LA208_;
				{
					NIM_BOOL T212_;
					T212_ = (NIM_BOOL)0;
					T212_ = !(usePseudoGenerics);
					if (!(T212_)) goto LA213_;
					T212_ = ((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
					LA213_: ;
					if (!T212_) goto LA214_;
					paramsTypeCheck__X9cjeXk0ogla5nWLtx0FEkAsem(c, (*s).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA214_: ;
				maybeAddResult__8H5d8d9cPCfbpMuDrerQMeQ(c, s, n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T216_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
				T216_ = c;
				T217_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T217_ = semProcBody__7YxUILpPxooC5qqa89a54dw_5(c, (*n)._kind_6.sons->data[((NI) 6)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T218_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T218_ = hloBody__7YxUILpPxooC5qqa89a54dw_10(T216_, T217_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*(*s).ast)._kind_6.sons->data[((NI) 6)] = T218_;
				trackProc__P9bJkIGwY9beKGfhhcBedbpg(c, s, (*(*s).ast)._kind_6.sons->data[((NI) 6)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14))) goto LA221_;
					semMethodPrototype__8H5d8d9cPCfbpMuDrerQMeQ_3(c, s, n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA221_: ;
			}
			goto LA204_;
			LA208_: ;
			{
				tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T235_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T236_;
				{
					NIM_BOOL T226_;
					NIM_BOOL T227_;
					tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T232_;
					tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T233_;
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T234_;
					T226_ = (NIM_BOOL)0;
					T227_ = (NIM_BOOL)0;
					T227_ = !(((*(*s).typ).sons->data[((NI) 0)] == NIM_NIL));
					if (!(T227_)) goto LA228_;
					T227_ = !((kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15)));
					LA228_: ;
					T226_ = T227_;
					if (T226_) goto LA229_;
					T226_ = (kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
					LA229_: ;
					if (!T226_) goto LA230_;
					T232_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
					T232_ = c;
					T233_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
					T233_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_95));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T234_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
					T234_ = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0), T233_, NIM_NIL, (*n).info, 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					addDecl__aPXKqZJT9c7r7gT8X3uZAHw(T232_, T234_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA230_: ;
				T235_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
				T235_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T236_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T236_ = semGenericStmt__7YxUILpPxooC5qqa89a54dw_7(c, (*n)._kind_6.sons->data[((NI) 6)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 6)] = T236_;
				closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0))) goto LA239_;
					fixupInstantiatedSymbols__PSSiITp8zAUcZ8z1k5AMLA_2(c, s);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA239_: ;
				{
					if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14))) goto LA243_;
					semMethodPrototype__8H5d8d9cPCfbpMuDrerQMeQ_3(c, s, n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA243_: ;
			}
			LA204_: ;
			{
				if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0)) goto LA247_;
			}
			LA247_: ;
			popProcCon__SjrsaPFXVDopDGJmDQUKewsemdata(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA190_: ;
	}
	goto LA179_;
	LA183_: ;
	{
		{
			NIM_BOOL T252_;
			NIM_BOOL T253_;
			T252_ = (NIM_BOOL)0;
			T253_ = (NIM_BOOL)0;
			T253_ = ((12288 &(1U<<((NU)((*s).kind)&31U)))!=0);
			if (!(T253_)) goto LA254_;
			T253_ = !(((*(*s).typ).sons->data[((NI) 0)] == NIM_NIL));
			LA254_: ;
			T252_ = T253_;
			if (!(T252_)) goto LA255_;
			T252_ = ((*(*(*s).typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
			LA255_: ;
			if (!T252_) goto LA256_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*(*n)._kind_6.sons->data[((NI) 3)])._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_350), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_351, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA256_: ;
		{
			if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14))) goto LA260_;
			semMethodPrototype__8H5d8d9cPCfbpMuDrerQMeQ_3(c, s, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA260_: ;
		{
			NimStringDesc* T266_;
			if (!!((proto == NIM_NIL))) goto LA264_;
			T266_ = (NimStringDesc*)0;
			T266_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_352), (*(*proto).name).s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T266_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_353, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA264_: ;
		{
			NIM_BOOL T269_;
			T269_ = (NIM_BOOL)0;
			T269_ = ((1090519104 & (*s).flags) == 0);
			if (!(T269_)) goto LA270_;
			T269_ = ((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
			LA270_: ;
			if (!T269_) goto LA271_;
			(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4)) & 63);
			(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 5)) & 63);
		}
		goto LA267_;
		LA271_: ;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 30))&63U)))!=0)) goto LA274_;
			semBorrow__OGQY86R2SObbzHiM7l0Jxg(c, n, s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA267_;
		LA274_: ;
		LA267_: ;
	}
	LA179_: ;
	sideEffectsCheck__PSSiITp8zAUcZ8z1k5AMLA_3(c, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	popOwner__9aY89b9aR25iMJ8fPdM84CvQg_2(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI T280_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA278_;
		(*c).patterns = (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*c).patterns), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_));
		T280_ = (*c).patterns->Sup.len++;
		(*c).patterns->data[T280_] = s;
	}
	LA278_: ;
	{
		if (!isAnon) goto LA283_;
		transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 51));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = (*s).typ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T289_;
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA287_;
			T289_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T289_ = makeVarType__45x39aIZGLTdqqo59b4NHvLw(c, (*result).typ, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T289_;
		}
		LA287_: ;
	}
	LA283_: ;
	{
		NIM_BOOL T292_;
		NIM_BOOL T293_;
		T292_ = (NIM_BOOL)0;
		T293_ = (NIM_BOOL)0;
		T293_ = isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T293_)) goto LA294_;
		T293_ = !(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15)));
		LA294_: ;
		T292_ = T293_;
		if (!(T292_)) goto LA295_;
		T292_ = ((*(*s).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
		LA295_: ;
		if (!T292_) goto LA296_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*s).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_356), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_357, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA296_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, determineType__PSSiITp8zAUcZ8z1k5AMLA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!!(((*s).typ == NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T5_ = semProcAux__HtuGXsziiAueY6wARBVVAA(c, (*s).ast, (*s).kind, TM__rF9caJawfOjYTjsgLVUSGFA_358, ((tyEnum_TProcCompilationSteps__2LY1MARGn5z4Y5kU8eJFMg) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(void)(T5_);
	}BeforeRet_: ;
}
static N_NIMCALL(void, Marker_tySequence__P9bWebqKHkrGHwy9aZW9bw0TA)(void* p, NI op) {
	tySequence__P9bWebqKHkrGHwy9aZW9bw0TA* a;
	NI T1_;
	a = (tySequence__P9bWebqKHkrGHwy9aZW9bw0TA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field0, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(tySequence__P9bWebqKHkrGHwy9aZW9bw0TA*, initCandidateSymbols__6M9chcVQEVQseAfXvR9bENIw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initialBinding, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* best, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* alt, tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ* o, NIM_BOOL diagnostics) {
	tySequence__P9bWebqKHkrGHwy9aZW9bw0TA* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* symx;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tySequence__P9bWebqKHkrGHwy9aZW9bw0TA*)0;
	result = NIM_NIL;
	symx = initOverloadIter__yTTeeqtnENsm0xyCro9a61w(o, c, headSymbol);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		while (1) {
			if (!!((symx == NIM_NIL))) goto LA2;
			{
				tyTuple__K9bYwLtGKmFQYg8TwmqoG3Q T7_;
				NI T8_;
				NI T9_;
				if (!((filter &(1U<<((NU)((*symx).kind)&31U)))!=0)) goto LA5_;
				nimZeroMem((void*)(&T7_), sizeof(tyTuple__K9bYwLtGKmFQYg8TwmqoG3Q));
				T7_.Field0 = symx;
				T8_ = (NI)0;
				T8_ = lastOverloadScope__8ksyNJM57vm1Sx3GOp09acw((&(*o)));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T7_.Field1 = T8_;
				result = (tySequence__P9bWebqKHkrGHwy9aZW9bw0TA*) incrSeqV3((TGenericSeq*)(result), (&NTI__P9bWebqKHkrGHwy9aZW9bw0TA_));
				T9_ = result->Sup.len++;
				result->data[T9_].Field0 = T7_.Field0;
				result->data[T9_].Field1 = T7_.Field1;
			}
			LA5_: ;
			symx = nextOverloadIter__yTTeeqtnENsm0xyCro9a61w_2(o, c, headSymbol);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA2: ;
	}
	{
		NI T12_;
		T12_ = (result ? result->Sup.len : 0);
		if (!(((NI) 0) < T12_)) goto LA13_;
		initCandidate__KpVjtqarjr9c7ddovPDNqvA(c, best, result->data[((NI) 0)].Field0, initialBinding, result->data[((NI) 0)].Field1, diagnostics);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		initCandidate__KpVjtqarjr9c7ddovPDNqvA(c, alt, result->data[((NI) 0)].Field0, initialBinding, result->data[((NI) 0)].Field1, diagnostics);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*best).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
	}
	LA13_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pickBestCandidate__IETBO4nA4t9bpyaJXqQ9aSTg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initialBinding, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* best, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* alt, tySequence__0dpGN6F4ocevqUQGsaf41w** errors, NIM_BOOL diagnosticsFlag, NIM_BOOL errorsEnabled) {
	tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
	NI scope;
	NI counterInitial;
	tySequence__P9bWebqKHkrGHwy9aZW9bw0TA* syms;
	NIM_BOOL noSyms;
	NI nextSymIndex;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA z;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
	sym = initOverloadIter__yTTeeqtnENsm0xyCro9a61w((&o), c, headSymbol);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	scope = lastOverloadScope__8ksyNJM57vm1Sx3GOp09acw((&o));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	counterInitial = (*(*c).currentScope).symbols.counter;
	syms = (tySequence__P9bWebqKHkrGHwy9aZW9bw0TA*)0;
	noSyms = NIM_TRUE;
	nextSymIndex = ((NI) 0);
	{
		while (1) {
			if (!!((sym == NIM_NIL))) goto LA2;
			{
				if (!((filter &(1U<<((NU)((*sym).kind)&31U)))!=0)) goto LA5_;
				initCandidate__KpVjtqarjr9c7ddovPDNqvA(c, best, sym, initialBinding, scope, diagnosticsFlag);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				initCandidate__KpVjtqarjr9c7ddovPDNqvA(c, alt, sym, initialBinding, scope, diagnosticsFlag);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*best).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
				goto LA1;
			}
			goto LA3_;
			LA5_: ;
			{
				sym = nextOverloadIter__yTTeeqtnENsm0xyCro9a61w_2((&o), c, headSymbol);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				scope = lastOverloadScope__8ksyNJM57vm1Sx3GOp09acw((&o));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA3_: ;
		} LA2: ;
	} LA1: ;
	nimZeroMem((void*)(&z), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	{
		while (1) {
			if (!!((sym == NIM_NIL))) goto LA9;
			{
				{
					if (!!(((filter &(1U<<((NU)((*sym).kind)&31U)))!=0))) goto LA13_;
					sym = nextOverloadIter__yTTeeqtnENsm0xyCro9a61w_2((&o), c, headSymbol);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					scope = lastOverloadScope__8ksyNJM57vm1Sx3GOp09acw((&o));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto LA10;
				}
				LA13_: ;
				determineType__PSSiITp8zAUcZ8z1k5AMLA(c, sym);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				initCandidate__KpVjtqarjr9c7ddovPDNqvA(c, (&z), sym, initialBinding, scope, diagnosticsFlag);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					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__BxEsf1Gt7Hq3usrwPERzyA_2(c, n, orig, (&z));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!(z.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1))) goto LA24_;
						{
							if (!((*sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15))) goto LA28_;
							z.exactMatches += ((NI) 200);
						}
						LA28_: ;
						switch ((*best).state) {
						case ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 0):
						case ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2):
						{
							genericAssign((void*)(&(*best)), (void*)(&z), (&NTI__B8Gf2sSWgQ79bLZ9bYWrLHaA_));
						}
						break;
						case ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1):
						{
							NI cmp;
							cmp = cmpCandidates__K2h4nBXAyIEnS4gvLx162g((&(*best)), (&z));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								if (!(cmp < ((NI) 0))) goto LA34_;
								genericAssign((void*)(&(*best)), (void*)(&z), (&NTI__B8Gf2sSWgQ79bLZ9bYWrLHaA_));
							}
							goto LA32_;
							LA34_: ;
							{
								if (!(cmp == ((NI) 0))) goto LA37_;
								genericAssign((void*)(&(*alt)), (void*)(&z), (&NTI__B8Gf2sSWgQ79bLZ9bYWrLHaA_));
							}
							goto LA32_;
							LA37_: ;
							LA32_: ;
						}
						break;
						}
					}
					goto LA22_;
					LA24_: ;
					{
						NIM_BOOL T40_;
						tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ T44_;
						NI T45_;
						T40_ = (NIM_BOOL)0;
						T40_ = errorsEnabled;
						if (T40_) goto LA41_;
						T40_ = z.diagnosticsEnabled;
						LA41_: ;
						if (!T40_) goto LA42_;
						nimZeroMem((void*)(&T44_), sizeof(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ));
						nimZeroMem((void*)(&T44_), sizeof(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ));
						T44_.sym = sym;
						T44_.firstMismatch.kind = z.firstMismatch.kind;
						T44_.firstMismatch.arg = z.firstMismatch.arg;
						T44_.firstMismatch.formal = z.firstMismatch.formal;
						genericSeqAssign((&T44_.diagnostics), z.diagnostics, (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
						(*errors) = (tySequence__0dpGN6F4ocevqUQGsaf41w*) incrSeqV3((TGenericSeq*)((*errors)), (&NTI__0dpGN6F4ocevqUQGsaf41w_));
						T45_ = (*errors)->Sup.len++;
						(*errors)->data[T45_].sym = T44_.sym;
						(*errors)->data[T45_].firstMismatch.kind = T44_.firstMismatch.kind;
						(*errors)->data[T45_].firstMismatch.arg = T44_.firstMismatch.arg;
						(*errors)->data[T45_].firstMismatch.formal = T44_.firstMismatch.formal;
						genericSeqAssign((&(*errors)->data[T45_].diagnostics), T44_.diagnostics, (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
						(*errors)->data[T45_].enabled = T44_.enabled;
					}
					goto LA22_;
					LA42_: ;
					LA22_: ;
				}
				goto LA15_;
				LA20_: ;
				{
					syms = initCandidateSymbols__6M9chcVQEVQseAfXvR9bENIw(c, headSymbol, initialBinding, filter, best, alt, (&o), diagnosticsFlag);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					noSyms = NIM_FALSE;
				}
				LA15_: ;
				{
					if (!noSyms) goto LA49_;
					sym = nextOverloadIter__yTTeeqtnENsm0xyCro9a61w_2((&o), c, headSymbol);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					scope = lastOverloadScope__8ksyNJM57vm1Sx3GOp09acw((&o));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA47_;
				LA49_: ;
				{
					NI T52_;
					T52_ = (syms ? syms->Sup.len : 0);
					if (!(nextSymIndex < T52_)) goto LA53_;
					sym = syms->data[nextSymIndex].Field0;
					scope = syms->data[nextSymIndex].Field1;
					nextSymIndex += ((NI) 1);
				}
				goto LA47_;
				LA53_: ;
				{
					goto LA8;
				}
				LA47_: ;
			} LA10: ;
		} LA9: ;
	} LA8: ;
	}BeforeRet_: ;
}
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b) {
	tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	result.a = a;
	result.b = b;
	return result;
}
static N_INLINE(NimStringDesc*, X5BX5D___ogYTOKbgqbjPfyC123US1gsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x) {
	NimStringDesc* result;
	NI a;
	NI L;
	result = (NimStringDesc*)0;
	a = x.a;
	L = (NI)((NI)((NI)((s ? s->Sup.len : 0) - x.b) - a) + ((NI) 1));
	result = mnewString(((NI) (L)));
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < L)) goto LA3;
				i = i_2;
				result->data[i] = s->data[(NI)(i + a)];
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___xNR8BVBMWzS9bXXNMikmyLgsystem)(NI a, NI b) {
	tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	result.a = a;
	result.b = b;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getMsgDiagnostic__9a9cj3QUHlIK9ah21FZrVSRgw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f) {
	NimStringDesc* result;
	NimStringDesc* ident;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T12_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NimStringDesc*)0;
	{
		if (!(((NI) 0) < (*c).compilesContextId)) goto LA3_;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
		nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
		sym = initOverloadIter__yTTeeqtnENsm0xyCro9a61w((&o), c, f);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			while (1) {
				tyArray__Re75IspeoxXy2oCZHwcRrA T8_;
				NimStringDesc* T9_;
				NimStringDesc* T10_;
				NimStringDesc* T11_;
				if (!!((sym == NIM_NIL))) goto LA7;
				nimZeroMem((void*)T8_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
				T9_ = (NimStringDesc*)0;
				T9_ = getSymRepr__q0Idm3DQlYmoqr1FN0Wn2g((*(*c).graph).config, sym);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T8_[0] = T9_;
				T10_ = (NimStringDesc*)0;
				T10_ = toHumanStr__QHyA5kxlk0TZf3p6IbMdtA((*sym).kind);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T8_[1] = T10_;
				T11_ = (NimStringDesc*)0;
				T11_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_361), T8_, 2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = resizeString(result, (T11_ ? T11_->Sup.len : 0) + 0);
appendString(result, T11_);
				sym = nextOverloadIter__yTTeeqtnENsm0xyCro9a61w_2((&o), c, f);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA7: ;
		}
	}
	LA1_: ;
	T12_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T12_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, f, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	ident = (*T12_).s;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym_2;
		NimStringDesc* typeHint;
		NimStringDesc* T24_;
		NimStringDesc* T25_;
		if (!((2560 & (*n).flags) == 512)) goto LA15_;
		sym_2 = (*(*(*n)._kind_6.sons->data[((NI) 1)]).typ).sym;
		typeHint = ((NimStringDesc*) NIM_NIL);
		{
			if (!(sym_2 == NIM_NIL)) goto LA19_;
		}
		goto LA17_;
		LA19_: ;
		{
			NimStringDesc* T22_;
			NimStringDesc* T23_;
			T22_ = (NimStringDesc*)0;
			T23_ = (NimStringDesc*)0;
			T23_ = getProcHeader__bRG2xX9ar5tfMW3c7xo9ccKQ((*(*c).graph).config, sym_2, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T22_ = rawNewString((T23_ ? T23_->Sup.len : 0) + 10);
appendString(T22_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_362));
appendString(T22_, T23_);
			typeHint = T22_;
		}
		LA17_: ;
		T24_ = (NimStringDesc*)0;
		T25_ = (NimStringDesc*)0;
		T25_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_363), ident);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T24_ = rawNewString((T25_ ? T25_->Sup.len : 0) + (typeHint ? typeHint->Sup.len : 0) + (result ? result->Sup.len : 0) + 1);
appendString(T24_, T25_);
appendString(T24_, typeHint);
appendString(T24_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_364));
appendString(T24_, result);
		result = T24_;
	}
	goto LA13_;
	LA15_: ;
	{
		{
			if (!((result ? result->Sup.len : 0) == ((NI) 0))) goto LA29_;
			result = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_365), ident);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA27_;
		LA29_: ;
		{
			tyArray__Re75IspeoxXy2oCZHwcRrA T32_;
			nimZeroMem((void*)T32_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T32_[0] = copyString(ident);
			T32_[1] = copyString(result);
			result = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_366), T32_, 2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA27_: ;
	}
	LA13_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameMethodDispatcher__J29brquhJ05YcB0AjRLYFEg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	result = NIM_FALSE;
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aa;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bb;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*a).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14));
		if (!(T3_)) goto LA4_;
		T3_ = ((*b).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14));
		LA4_: ;
		if (!T3_) goto LA5_;
		aa = lastSon__UPSW0jLTX5qJL51YMUAHgw((*a).ast);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		bb = lastSon__UPSW0jLTX5qJL51YMUAHgw((*b).ast);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*aa).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T9_)) goto LA10_;
			T9_ = ((*bb).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			LA10_: ;
			if (!T9_) goto LA11_;
			{
				if (!((*aa)._kind_4.sym == (*bb)._kind_4.sym)) goto LA15_;
				result = NIM_TRUE;
			}
			LA15_: ;
		}
		goto LA7_;
		LA11_: ;
		{
		}
		LA7_: ;
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, resolveOverloads__deoiEhU508ju9btmg2AXeFw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags, tySequence__0dpGN6F4ocevqUQGsaf41w** errors, NIM_BOOL errorsEnabled, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initialBinding;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA alt;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f;
	tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg overloadsState;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)(&alt), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	f = (*n)._kind_6.sons->data[((NI) 0)];
	{
		if (!((*f).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42))) goto LA3_;
		semOpAux__NRIJDWZtATzMum7OEjYC2g_4(c, f);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		initialBinding = f;
		f = (*f)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		initialBinding = NIM_NIL;
	}
	LA1_: ;
	pickBestCandidate__IETBO4nA4t9bpyaJXqQ9aSTg(c, f, n, orig, initialBinding, filter, Result, (&alt), errors, ((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 9))&31U)))!=0), errorsEnabled);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	overloadsState = (*Result).state;
	{
		if (!!((overloadsState == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA8_;
		{
			NIM_BOOL T12_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* hiddenArg;
			T12_ = (NIM_BOOL)0;
			T12_ = !(((*c).p == NIM_NIL));
			if (!(T12_)) goto LA13_;
			T12_ = !(((*(*c).p).selfSym == NIM_NIL));
			LA13_: ;
			if (!T12_) goto LA14_;
			hiddenArg = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*(*c).p).selfSym);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*hiddenArg).typ = NIM_NIL;
			insert__k2dh9aOATKmq7LxvapyA7CA((&(*n)._kind_6.sons), hiddenArg, ((NI) 1));
			insert__k2dh9aOATKmq7LxvapyA7CA((&(*orig)._kind_6.sons), hiddenArg, ((NI) 1));
			pickBestCandidate__IETBO4nA4t9bpyaJXqQ9aSTg(c, f, n, orig, initialBinding, filter, Result, (&alt), errors, ((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 9))&31U)))!=0), errorsEnabled);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!(((*Result).state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA18_;
				delete__TgBXLpGAm0rF5SZ3bkKUbg((&(*n)._kind_6.sons), ((NI) 1));
				delete__TgBXLpGAm0rF5SZ3bkKUbg((&(*orig)._kind_6.sons), ((NI) 1));
				(*n).flags &= ~(((NU32)1) << ((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 12)) & 31));
			}
			goto LA16_;
			LA18_: ;
			{
				goto BeforeRet_;
			}
			LA16_: ;
		}
		LA14_: ;
		{
			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T32_;
			tyArray__T6RKPw8xfAeNaoei9aZGzXg T33_;
			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T34_;
			tyArray__T6RKPw8xfAeNaoei9aZGzXg T35_;
			if (!(((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 9))&31U)))!=0)) goto LA23_;
			{
				NIM_BOOL T27_;
				NI T29_;
				NimStringDesc* argX60gensym311_;
				T27_ = (NIM_BOOL)0;
				T27_ = ((*f).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
				if (!(T27_)) goto LA28_;
				T29_ = (NI)0;
				T29_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T27_ = (((NI) 2) <= T29_);
				LA28_: ;
				if (!!(T27_)) goto LA30_;
				argX60gensym311_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_360);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym311_, TM__rF9caJawfOjYTjsgLVUSGFA_360);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA30_: ;
			T32_ = dotdot___BokNSDrKN1xmV1nA01G9brAsystem(((NI) 0), ((NI) 1));
			nimZeroMem((void*)T33_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
			T33_[0] = NIM_NIL;
			T33_[1] = (*n)._kind_6.sons->data[((NI) 1)];
			T33_[2] = f;
			X5BX5Deq___txCax6HTxTvaDY9bSHIRipg((&(*n)._kind_6.sons), T32_, T33_, 3);
			T34_ = dotdot___BokNSDrKN1xmV1nA01G9brAsystem(((NI) 0), ((NI) 1));
			nimZeroMem((void*)T35_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
			T35_[0] = NIM_NIL;
			T35_[1] = (*orig)._kind_6.sons->data[((NI) 1)];
			T35_[2] = f;
			X5BX5Deq___txCax6HTxTvaDY9bSHIRipg((&(*orig)._kind_6.sons), T34_, T35_, 3);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* opX60gensym316_;
				tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T40_;
				if (!(((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 11))&31U)))!=0)) goto LA38_;
				T40_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
				T40_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_189));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				opX60gensym316_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T40_, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 0)] = opX60gensym316_;
				(*orig)._kind_6.sons->data[((NI) 0)] = opX60gensym316_;
				pickBestCandidate__IETBO4nA4t9bpyaJXqQ9aSTg(c, opX60gensym316_, n, orig, initialBinding, filter, Result, (&alt), errors, ((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 9))&31U)))!=0), errorsEnabled);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA38_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* opX60gensym322_;
				tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T45_;
				if (!((5 &(1U<<((NU)((*Result).state)&7U)))!=0)) goto LA43_;
				T45_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
				T45_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_188));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				opX60gensym322_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T45_, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 0)] = opX60gensym322_;
				(*orig)._kind_6.sons->data[((NI) 0)] = opX60gensym322_;
				pickBestCandidate__IETBO4nA4t9bpyaJXqQ9aSTg(c, opX60gensym322_, n, orig, initialBinding, filter, Result, (&alt), errors, ((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 9))&31U)))!=0), errorsEnabled);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA43_: ;
		}
		goto LA21_;
		LA23_: ;
		{
			NIM_BOOL T47_;
			NIM_BOOL T48_;
			NI T51_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* calleeName;
			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T54_;
			NimStringDesc* T55_;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T56_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* callOp;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T57_;
			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T58_;
			tyArray__T6RKPw8xfAeNaoei9aZGzXg T59_;
			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T60_;
			tyArray__T6RKPw8xfAeNaoei9aZGzXg T61_;
			T47_ = (NIM_BOOL)0;
			T48_ = (NIM_BOOL)0;
			T48_ = (((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 10))&31U)))!=0);
			if (!(T48_)) goto LA49_;
			T48_ = ((*f).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
			LA49_: ;
			T47_ = T48_;
			if (!(T47_)) goto LA50_;
			T51_ = (NI)0;
			T51_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T47_ = (T51_ == ((NI) 3));
			LA50_: ;
			if (!T47_) goto LA52_;
			T54_ = dotdot___xNR8BVBMWzS9bXXNMikmyLgsystem(((NI) 0), ((NI) 2));
			T55_ = (NimStringDesc*)0;
			T55_ = X5BX5D___ogYTOKbgqbjPfyC123US1gsystem((*(*f)._kind_5.ident).s, T54_);
			T56_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T56_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, T55_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			calleeName = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T56_, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T57_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T57_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_190));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			callOp = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T57_, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T58_ = dotdot___BokNSDrKN1xmV1nA01G9brAsystem(((NI) 0), ((NI) 1));
			nimZeroMem((void*)T59_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
			T59_[0] = callOp;
			T59_[1] = (*n)._kind_6.sons->data[((NI) 1)];
			T59_[2] = calleeName;
			X5BX5Deq___txCax6HTxTvaDY9bSHIRipg((&(*n)._kind_6.sons), T58_, T59_, 3);
			T60_ = dotdot___BokNSDrKN1xmV1nA01G9brAsystem(((NI) 0), ((NI) 1));
			nimZeroMem((void*)T61_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
			T61_[0] = callOp;
			T61_[1] = (*orig)._kind_6.sons->data[((NI) 1)];
			T61_[2] = calleeName;
			X5BX5Deq___txCax6HTxTvaDY9bSHIRipg((&(*orig)._kind_6.sons), T60_, T61_, 3);
			pickBestCandidate__IETBO4nA4t9bpyaJXqQ9aSTg(c, callOp, n, orig, initialBinding, filter, Result, (&alt), errors, ((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 9))&31U)))!=0), errorsEnabled);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA21_;
		LA52_: ;
		LA21_: ;
		{
			NIM_BOOL T64_;
			T64_ = (NIM_BOOL)0;
			T64_ = (overloadsState == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 0));
			if (!(T64_)) goto LA65_;
			T64_ = ((*Result).state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 0));
			LA65_: ;
			if (!T64_) goto LA66_;
			{
				tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T72_;
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T73_;
				NimStringDesc* T74_;
				if (!!(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 18))&31U)))!=0))) goto LA70_;
				T72_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
				T72_ = (*(*c).graph).config;
				T73_ = (*n).info;
				T74_ = (NimStringDesc*)0;
				T74_ = getMsgDiagnostic__9a9cj3QUHlIK9ah21FZrVSRgw(c, flags, n, f);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew(T72_, T73_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T74_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_367, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA70_: ;
			goto BeforeRet_;
		}
		goto LA62_;
		LA66_: ;
		{
			if (!!(((*Result).state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA76_;
			{
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T82_;
				NimStringDesc* T83_;
				NimStringDesc* T84_;
				if (!(((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 12))&31U)))!=0)) goto LA80_;
				T82_ = (*n).info;
				T83_ = (NimStringDesc*)0;
				T83_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 4);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T84_ = (NimStringDesc*)0;
				T84_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_242), T83_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T82_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T84_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_368, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA78_;
			LA80_: ;
			{
				{
					if (!!(((1536 & (*n).flags) == 0))) goto LA88_;
					delete__TgBXLpGAm0rF5SZ3bkKUbg((&(*n)._kind_6.sons), ((NI) 2));
					(*n)._kind_6.sons->data[((NI) 0)] = f;
				}
				LA88_: ;
			}
			LA78_: ;
			goto BeforeRet_;
		}
		goto LA62_;
		LA76_: ;
		LA62_: ;
	}
	LA8_: ;
	{
		NIM_BOOL T92_;
		NIM_BOOL T93_;
		NI T95_;
		NIM_BOOL T97_;
		T92_ = (NIM_BOOL)0;
		T93_ = (NIM_BOOL)0;
		T93_ = (alt.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1));
		if (!(T93_)) goto LA94_;
		T95_ = (NI)0;
		T95_ = cmpCandidates__K2h4nBXAyIEnS4gvLx162g(Result, (&alt));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T93_ = (T95_ == ((NI) 0));
		LA94_: ;
		T92_ = T93_;
		if (!(T92_)) goto LA96_;
		T97_ = (NIM_BOOL)0;
		T97_ = sameMethodDispatcher__J29brquhJ05YcB0AjRLYFEg((*Result).calleeSym, alt.calleeSym);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T92_ = !(T97_);
		LA96_: ;
		if (!T92_) goto LA98_;
		{
			NimStringDesc* argX60gensym346_;
			if (!!(((*Result).state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA102_;
			argX60gensym346_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_369);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym346_, TM__rF9caJawfOjYTjsgLVUSGFA_369);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA102_: ;
		{
			if (!((*(*(*c).graph).config).m.errorOutputs == 0)) goto LA106_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_370), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_371, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA104_;
		LA106_: ;
		{
			NimStringDesc* args;
			tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T119_;
			tyArray__24KAM9afIUgUaqBaEBB6r9bg T120_;
			NimStringDesc* T121_;
			NimStringDesc* T122_;
			NimStringDesc* T123_;
			if (!((*(*(*c).graph).config).errorCounter == ((NI) 0))) goto LA109_;
			args = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_67));
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 1);
				{
					while (1) {
						NimStringDesc* T118_;
						if (!(i_2 < colontmp_)) goto LA113;
						i = i_2;
						{
							if (!(((NI) 1) < i)) goto LA116_;
							args = resizeString(args, 2);
appendString(args, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_68));
						}
						LA116_: ;
						T118_ = (NimStringDesc*)0;
						T118_ = typeToString__QlvraUan7WbHowhAbvDvdA((*(*n)._kind_6.sons->data[i]).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						args = resizeString(args, (T118_ ? T118_->Sup.len : 0) + 0);
appendString(args, T118_);
						i_2 += ((NI) 1);
					} LA113: ;
				}
			}
			args = resizeString(args, 1);
appendString(args, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_69));
			T119_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
			T119_ = (*(*c).graph).config;
			nimZeroMem((void*)T120_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
			T121_ = (NimStringDesc*)0;
			T121_ = getProcHeader__bRG2xX9ar5tfMW3c7xo9ccKQ((*(*c).graph).config, (*Result).calleeSym, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T120_[0] = T121_;
			T122_ = (NimStringDesc*)0;
			T122_ = getProcHeader__bRG2xX9ar5tfMW3c7xo9ccKQ((*(*c).graph).config, alt.calleeSym, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T120_[1] = T122_;
			T120_[2] = copyString(args);
			T123_ = (NimStringDesc*)0;
			T123_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_372), T120_, 3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew(T119_, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T123_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_373, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA104_;
		LA109_: ;
		LA104_: ;
	}
	LA98_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, instGenericConvertersSons__DyVfh0xLvP9cQgsc36rPgEA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* x) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!(*x).genericConverter) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					instGenericConvertersArg__OiEXsRRJbWjgfYLWIAKYYQ(c, (*n)._kind_6.sons->data[i], x);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, updateDefaultParams__eSEQYRkB13fhZ9c33IzktDQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* calleeParams;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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__P89cqdlERShb9alU3iC0yj8wast(call);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
					if (!(((*(*call)._kind_6.sons->data[i]).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 18))&31U)))!=0)) goto LA6_;
					def = (*(*(*calleeParams)._kind_6.sons->data[i])._kind_4.sym).ast;
					{
						if (!(((*def).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 19))&31U)))!=0)) goto LA10_;
						(*call).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 19)) & 31);
					}
					LA10_: ;
					(*call)._kind_6.sons->data[i] = def;
				}
				LA6_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semResolvedCall__tI9alV34Tv2MGPKAeQ6xsmw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* finalCallee;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T92_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T93_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	finalCallee = (*x).calleeSym;
	info = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	markUsed__QlWTWY7567sCdiTkeUTTDA(c, info, finalCallee);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		if (!!(((*x).fauxMatch == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)))) goto LA3_;
		result = (*x).call;
		T5_ = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag((*result)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(finalCallee, T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 0)] = T6_;
		{
			NIM_BOOL T9_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
			T9_ = (NIM_BOOL)0;
			T9_ = containsGenericType__YPjOkGV9axAnGR3UfLeWZ1g_2((*result).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T9_) goto LA10_;
			T9_ = ((*x).fauxMatch == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61));
			LA10_: ;
			if (!T9_) goto LA11_;
			T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T13_ = newTypeS__xb5E2cGIynZweqWlCP8Tig((*x).fauxMatch, c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T13_;
			{
				if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50))) goto LA16_;
				(*(*result).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
			}
			LA16_: ;
		}
		LA11_: ;
		goto BeforeRet_;
	}
	LA3_: ;
	gp = (*(*finalCallee).ast)._kind_6.sons->data[((NI) 2)];
	{
		if (!!(((*gp).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA20_;
		{
			if (!!(((393216 &(1U<<((NU)((*(*x).calleeSym).kind)&31U)))!=0))) goto LA24_;
			{
				if (!((*(*x).calleeSym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 5) || (*(*x).calleeSym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 6))) goto LA28_;
				finalCallee = (*x).calleeSym;
			}
			goto LA26_;
			LA28_: ;
			{
				finalCallee = generateInstance__Bbmaz5QjetnTaor7LYngPg(c, (*x).calleeSym, (*x).bindings, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA26_: ;
		}
		goto LA22_;
		LA24_: ;
		{
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
				s = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				{
					NimStringDesc* argX60gensym124_;
					if (!!(((*gp).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75)))) goto LA35_;
					argX60gensym124_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_76);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym124_, TM__rF9caJawfOjYTjsgLVUSGFA_76);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA35_: ;
				{
					NI i;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					i = (NI)0;
					a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					{
						NI i_2;
						NI colontmp_;
						NI i_3;
						i_2 = (NI)0;
						colontmp_ = (NI)0;
						colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(gp);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_3 = ((NI) 0);
						{
							while (1) {
								if (!(i_3 < colontmp_)) goto LA40;
								i_2 = i_3;
								i = i_2;
								a = (*gp)._kind_6.sons->data[i_2];
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* q;
									tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind;
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T55_;
									tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
									tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA* T56_;
									RootObj* T57_;
									{
										NimStringDesc* argX60gensym127_;
										if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA44_;
										argX60gensym127_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_77);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym127_, TM__rF9caJawfOjYTjsgLVUSGFA_77);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									LA44_: ;
									q = (*a)._kind_4.sym;
									{
										if (!!(((IL64(2267562412381049088) &((NU64)1<<((NU)((*(*q).typ).kind)&63U)))!=0))) goto LA48_;
										goto LA41;
									}
									LA48_: ;
									{
										if (!((*(*q).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA52_;
										symKind = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10);
									}
									goto LA50_;
									LA52_: ;
									{
										symKind = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7);
									}
									LA50_: ;
									T55_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
									T55_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									s_2 = newSym__IXbidcxhXTQGZY9abN63Cxg(symKind, (*q).name, T55_, (*q).info, 0);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*s_2).flags = ((*s_2).flags | 5);
									T56_ = (tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA*)0;
									T56_ = &(*q).typ->Sup;
									T57_ = (RootObj*)0;
									T57_ = idTableGet__K5M5T7J9c0H7M5ahfeRl8xw((*x).bindings, T56_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									t = ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) (T57_));
									{
										if (!(t == NIM_NIL)) goto LA60_;
										{
											if (!(((*(*q).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 11))&63U)))!=0)) goto LA64_;
											t = (*q).typ;
										}
										goto LA62_;
										LA64_: ;
										{
											NimStringDesc* T67_;
											T67_ = (NimStringDesc*)0;
											T67_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_78), (*(*s_2).name).s);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T67_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_79, NIM_FALSE);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											t = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										LA62_: ;
									}
									goto LA58_;
									LA60_: ;
									{
										NimStringDesc* T71_;
										if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA69_;
										T71_ = (NimStringDesc*)0;
										T71_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_78), (*(*q).name).s);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T71_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_80, NIM_FALSE);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										t = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									goto LA58_;
									LA69_: ;
									{
										if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA73_;
										t = generateTypeInstance__ab5BITmU2P8zKztV9cfNtsg(c, (*x).bindings, (*a).info, t);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									goto LA58_;
									LA73_: ;
									LA58_: ;
									(*s_2).typ = t;
									{
										if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA77_;
										(*s_2).ast = (*t).n;
									}
									LA77_: ;
									s = s_2;
									switch ((*s).kind) {
									case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10):
									{
										{
											if (!!(((*s).ast == 0))) goto LA82_;
											add__P8dDSotTW25BkfbyspojGg((*x).call, (*s).ast);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										goto LA80_;
										LA82_: ;
										{
											add__P8dDSotTW25BkfbyspojGg((*x).call, (*(*c).graph).emptyNode);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										LA80_: ;
									}
									break;
									case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T86_;
										T86_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
										T86_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										add__P8dDSotTW25BkfbyspojGg((*x).call, T86_);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									break;
									default:
									{
										{
											NimStringDesc* argX60gensym399_;
											if (!NIM_TRUE) goto LA90_;
											argX60gensym399_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_376);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym399_, TM__rF9caJawfOjYTjsgLVUSGFA_376);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										LA90_: ;
									}
									break;
									}
								} LA41: ;
								i_3 += ((NI) 1);
							} LA40: ;
						}
					}
				}
			}
		}
		LA22_: ;
	}
	LA20_: ;
	result = (*x).call;
	instGenericConvertersSons__DyVfh0xLvP9cQgsc36rPgEA(c, result, x);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T92_ = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag((*result)._kind_6.sons->data[((NI) 0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T93_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T93_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(finalCallee, T92_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_6.sons->data[((NI) 0)] = T93_;
	(*result).typ = (*(*finalCallee).typ).sons->data[((NI) 0)];
	updateDefaultParams__eSEQYRkB13fhZ9c33IzktDQ(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, canDeref__crbaOhZgTohCnKAdtWPkSQ_2sem)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NIM_BOOL T4_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NI)0;
	T2_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (((NI) 2) <= T2_);
	if (!(T1_)) goto LA3_;
	t = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	T4_ = (NIM_BOOL)0;
	T4_ = !((t == NIM_NIL));
	if (!(T4_)) goto LA5_;
	T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T6_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(70368744179728));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T4_ = ((6291456 &((NU64)1<<((NU)((*T6_).kind)&63U)))!=0);
	LA5_: ;
	T1_ = T4_;
	LA3_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryDeref__wWBimsBS4M6UZBvTRDlQTQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = (*T1_).sons->data[((NI) 0)];
	add__P8dDSotTW25BkfbyspojGg(result, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOverloadedCall__pBkKnME6t9c8v6khuDD76Fg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tySequence__0dpGN6F4ocevqUQGsaf41w* errors;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA r;
	tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	errors = NIM_NIL;
	nimZeroMem((void*)(&r), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	T1_ = flags;
	resolveOverloads__deoiEhU508ju9btmg2AXeFw(c, n, nOrig, filter, T1_, (&errors), ((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 9))&31U)))!=0), (&r));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(r.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1))) goto LA4_;
		{
			NI T8_;
			tyTuple__ZtAk5YtH0VW1iPowvxePrg T11_;
			tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw _;
			NimStringDesc* candidates;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T12_;
			NimStringDesc* T13_;
			NimStringDesc* T14_;
			T8_ = (errors ? errors->Sup.len : 0);
			if (!(((NI) 0) < T8_)) goto LA9_;
			nimZeroMem((void*)(&T11_), sizeof(tyTuple__ZtAk5YtH0VW1iPowvxePrg));
			presentFailedCandidates__DzsD9bOR72VurwdjRilOhmA(c, n, errors, (&T11_));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			_ = (tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw)0;
			_ = T11_.Field0;
			candidates = (NimStringDesc*)0;
			candidates = T11_.Field1;
			T12_ = (*n).info;
			T13_ = (NimStringDesc*)0;
			T14_ = (NimStringDesc*)0;
			T14_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T13_ = rawNewString((T14_ ? T14_->Sup.len : 0) + (candidates ? candidates->Sup.len : 0) + 29);
appendString(T13_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_374));
appendString(T13_, T14_);
appendString(T13_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_244));
appendString(T13_, candidates);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T12_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 80), T13_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_375, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
		result = semResolvedCall__tI9alV34Tv2MGPKAeQ6xsmw(c, (&r), n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA2_;
	LA4_: ;
	{
		NIM_BOOL T16_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA r_2;
		tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ T21_;
		T16_ = (NIM_BOOL)0;
		T16_ = (((*c).features &(1U<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 0))&15U)))!=0);
		if (!(T16_)) goto LA17_;
		T16_ = canDeref__crbaOhZgTohCnKAdtWPkSQ_2sem(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA17_: ;
		if (!T16_) goto LA18_;
		T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T20_ = tryDeref__wWBimsBS4M6UZBvTRDlQTQ_2((*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 1)] = T20_;
		nimZeroMem((void*)(&r_2), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
		T21_ = flags;
		resolveOverloads__deoiEhU508ju9btmg2AXeFw(c, n, nOrig, filter, T21_, (&errors), ((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 9))&31U)))!=0), (&r_2));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(r_2.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1))) goto LA24_;
			result = semResolvedCall__tI9alV34Tv2MGPKAeQ6xsmw(c, (&r_2), n, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA22_;
		LA24_: ;
		{
			(*n)._kind_6.sons->data[((NI) 1)] = (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)];
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
				if (!!(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 9))&31U)))!=0))) goto LA29_;
				T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T31_ = semOverloadedCall__pBkKnME6t9c8v6khuDD76Fg(c, n, nOrig, filter, (flags | 512));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(void)(T31_);
			}
			goto LA27_;
			LA29_: ;
			{
				if (!!(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 18))&31U)))!=0))) goto LA33_;
				notFoundError__3yYIcS0VQPQvrknpxFc7TQ(c, n, errors);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA27_;
			LA33_: ;
			LA27_: ;
		}
		LA22_: ;
	}
	goto LA2_;
	LA18_: ;
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T40_;
			if (!!(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 9))&31U)))!=0))) goto LA38_;
			T40_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T40_ = semOverloadedCall__pBkKnME6t9c8v6khuDD76Fg(c, n, nOrig, filter, (flags | 512));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(void)(T40_);
		}
		goto LA36_;
		LA38_: ;
		{
			if (!!(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 18))&31U)))!=0))) goto LA42_;
			notFoundError__3yYIcS0VQPQvrknpxFc7TQ(c, n, errors);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA36_;
		LA42_: ;
		LA36_: ;
	}
	LA2_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOverloadedCallAnalyseEffects__9b1JieByYAFP9bIuFhYqD8AA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!!(((flags & 6) == 0))) goto LA3_;
		result = semOverloadedCall__pBkKnME6t9c8v6khuDD76Fg(c, n, nOrig, 520192, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		result = semOverloadedCall__pBkKnME6t9c8v6khuDD76Fg(c, n, nOrig, 487424, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* callee;
		if (!!((result == NIM_NIL))) goto LA8_;
		{
			if (!!(((*(*result)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA12_;
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_377), TM__rF9caJawfOjYTjsgLVUSGFA_378);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		LA12_: ;
		callee = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		switch ((*callee).kind) {
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
		{
		}
		break;
		default:
		{
			{
				NIM_BOOL T18_;
				NimStringDesc* T22_;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T23_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
				T18_ = (NIM_BOOL)0;
				T18_ = ((*callee).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15));
				if (!(T18_)) goto LA19_;
				T18_ = ((*callee).Sup.id == (*(*(*c).p).owner).Sup.id);
				LA19_: ;
				if (!T18_) goto LA20_;
				T22_ = (NimStringDesc*)0;
				T22_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_379), (*(*callee).name).s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T22_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_380, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T23_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T23_ = errorSym__CLMmoDuBHkJLvNsKvljGNw(c, n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T24_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T23_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[((NI) 0)] = T24_;
			}
			LA20_: ;
		}
		break;
		}
	}
	LA8_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, propertyWriteAccess__LlYuhVuv4UT9crSsgDzV0sQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* id;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* setterId;
	NimStringDesc* T1_;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aOrig;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T3_;
	tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* T4_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig;
	tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	id = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*a)._kind_6.sons->data[((NI) 1)], a);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (NimStringDesc*)0;
	T1_ = rawNewString(((*id).s ? (*id).s->Sup.len : 0) + 1);
appendString(T1_, (*id).s);
appendChar(T1_, 61);
	T2_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T2_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	setterId = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T2_, (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	aOrig = (*nOrig)._kind_6.sons->data[((NI) 0)];
	T3_ = (*n).info;
	T4_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
	T4_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) newSeq((&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_), 3);
	T4_->data[0] = setterId;
	T4_->data[1] = (*a)._kind_6.sons->data[((NI) 0)];
	T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T5_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T4_->data[2] = T5_;
	result = newNode__duw0Uu9cIFXmCAaunQWIP0g(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T3_, T4_, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 10)) & 31);
	T6_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
	T6_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) newSeq((&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_), 3);
	T6_->data[0] = setterId;
	T6_->data[1] = (*aOrig)._kind_6.sons->data[((NI) 0)];
	T6_->data[2] = (*nOrig)._kind_6.sons->data[((NI) 1)];
	orig = newNode__duw0Uu9cIFXmCAaunQWIP0g(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, T6_, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = semOverloadedCallAnalyseEffects__9b1JieByYAFP9bIuFhYqD8AA(c, result, orig, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((result == NIM_NIL))) goto LA9_;
		result = afterCallActions__Qn3T9bt6Cg4I7XaYRMg219aw(c, result, nOrig, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA9_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isSymChoice__crbaOhZgTohCnKAdtWPkSQ_3sem)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, dotTransformation__7YxUILpPxooC5qqa89a54dw_29)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isSymChoice__crbaOhZgTohCnKAdtWPkSQ_3sem((*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 25), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T6_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* i;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		i = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*n)._kind_6.sons->data[((NI) 1)], n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 25), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 9)) & 31);
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(i, (*(*n)._kind_6.sons->data[((NI) 1)]).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T8_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T9_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T9_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildOverloadedSubscripts__nefR35PSczfhlx6FSH1N7w)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(ident, (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
		s = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA5;
					i = i_2;
					s = (*n)._kind_6.sons->data[i];
					add__P8dDSotTW25BkfbyspojGg(result, s);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI) 1);
				} LA5: ;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getRoot__WJ80zbTOky5IFknpruSGag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL followDeref) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		while (1) {
			switch ((*result).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
			{
				{
					if (!followDeref) goto LA6_;
					result = (*result)._kind_6.sons->data[((NI) 0)];
				}
				goto LA4_;
				LA6_: ;
				{
					goto LA1;
				}
				LA4_: ;
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
			{
				result = (*result)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
			{
				result = (*result)._kind_6.sons->data[((NI) 1)];
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	return result;
}
static N_INLINE(NIM_BOOL, scopedLifetime__Ht8IGDD0esJjGANh4G2DZwsem)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NIM_BOOL T4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	n = getRoot__WJ80zbTOky5IFknpruSGag(ri, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*ri).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) && (*ri).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32) || (*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T4_ = (NIM_BOOL)0;
	T4_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T4_)) goto LA5_;
	T4_ = ((*(*n)._kind_4.sym).owner == (*(*c).p).owner);
	LA5_: ;
	T3_ = T4_;
	if (!(T3_)) goto LA6_;
	T3_ = !(((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11)));
	LA6_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, escapes__cZ8gUfmyb9cMvgwP1Q5K9bbAsem)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	NIM_BOOL T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	n = getRoot__WJ80zbTOky5IFknpruSGag(le, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	T1_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
	LA2_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, borrowCheck__J1O6ZLf1JD7YcSRxfw8Usg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T6_ = !(((*ri).typ == NIM_NIL));
		if (!(T6_)) goto LA7_;
		T8_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T8_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*ri).typ, IL64(36099165763184912));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = ((*T8_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
		LA7_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA9_;
		T5_ = !(((*le).typ == NIM_NIL));
		LA9_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA10_;
		T11_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T11_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*le).typ, IL64(36099165763184912));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = !(((*T11_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
		LA10_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA12_;
		T3_ = scopedLifetime__Ht8IGDD0esJjGANh4G2DZwsem(c, ri);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA12_: ;
		if (!T3_) goto LA13_;
		{
			NIM_BOOL T17_;
			NimStringDesc* T21_;
			NimStringDesc* T22_;
			T17_ = (NIM_BOOL)0;
			T17_ = ((*le).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T17_)) goto LA18_;
			T17_ = ((*(*le)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11));
			LA18_: ;
			if (!T17_) goto LA19_;
			T21_ = (NimStringDesc*)0;
			T22_ = (NimStringDesc*)0;
			T22_ = typeToString__QlvraUan7WbHowhAbvDvdA((*le).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T21_ = rawNewString((T22_ ? T22_->Sup.len : 0) + 86);
appendString(T21_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_386));
appendString(T21_, T22_);
appendString(T21_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_387));
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_388, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA15_;
		LA19_: ;
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = escapes__cZ8gUfmyb9cMvgwP1Q5K9bbAsem(c, le);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T24_) goto LA25_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_389), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_390, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA15_;
		LA25_: ;
		LA15_: ;
	}
	LA13_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, goodLineInfo__eFiXGzEcaqcZ648kwvI9a9ag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	{
		NIM_BOOL T3_;
		NI T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126));
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = len__P89cqdlERShb9alU3iC0yj8wast(arg);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (((NI) 0) < T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = len__P89cqdlERShb9alU3iC0yj8wast(arg);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = goodLineInfo__eFiXGzEcaqcZ648kwvI9a9ag((*arg)._kind_6.sons->data[(NI)(T8_ - ((NI) 1))]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA6_: ;
	{
		result = (*arg).info;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, takeImplicitAddr__x3K9b1cKzX9bI8nPJA1N22wQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isLent) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* root;
	tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag valid;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T50_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T51_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	root = exprRoot__XD7qSmhHQJchscUPfXW57g(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((root == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = ((*root).owner == (*(*c).p).owner);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T9_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T13_;
			tyArray__24KAM9afIUgUaqBaEBB6r9bg T14_;
			NimStringDesc* T15_;
			NimStringDesc* T16_;
			NimStringDesc* T17_;
			T9_ = (NIM_BOOL)0;
			T9_ = ((800 &(1U<<((NU)((*root).kind)&31U)))!=0);
			if (!(T9_)) goto LA10_;
			T9_ = !((((*root).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0));
			LA10_: ;
			if (!T9_) goto LA11_;
			T13_ = (*n).info;
			nimZeroMem((void*)T14_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
			T14_[0] = copyString((*(*root).name).s);
			T15_ = (NimStringDesc*)0;
			T15_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T14_[1] = T15_;
			T16_ = (NimStringDesc*)0;
			T16_ = createDocLink__pWiLD3R2s41obcTDlPhj9cA(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_392));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T14_[2] = T16_;
			T17_ = (NimStringDesc*)0;
			T17_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_391), T14_, 3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T13_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T17_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_393, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA7_;
		LA11_: ;
		{
			NIM_BOOL T19_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T23_;
			tyArray__24KAM9afIUgUaqBaEBB6r9bg T24_;
			NimStringDesc* T25_;
			NimStringDesc* T26_;
			NimStringDesc* T27_;
			T19_ = (NIM_BOOL)0;
			T19_ = ((*root).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			if (!(T19_)) goto LA20_;
			T19_ = !(((*root).position == ((NI) 0)));
			LA20_: ;
			if (!T19_) goto LA21_;
			T23_ = (*n).info;
			nimZeroMem((void*)T24_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
			T24_[0] = copyString((*(*root).name).s);
			T25_ = (NimStringDesc*)0;
			T25_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T24_[1] = T25_;
			T26_ = (NimStringDesc*)0;
			T26_ = createDocLink__pWiLD3R2s41obcTDlPhj9cA(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_392));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T24_[2] = T26_;
			T27_ = (NimStringDesc*)0;
			T27_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_394), T24_, 3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T23_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T27_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_395, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA7_;
		LA21_: ;
		LA7_: ;
	}
	LA5_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
	{
		result = n;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	{
		result = (*n)._kind_6.sons->data[((NI) 0)];
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		{
			NI T33_;
			T33_ = (NI)0;
			T33_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T33_ == ((NI) 1))) goto LA34_;
			result = (*n)._kind_6.sons->data[((NI) 0)];
			goto BeforeRet_;
		}
		LA34_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
	}
	break;
	default:
	{
	}
	break;
	}
	valid = isAssignable__ASvZU4uIBad6J9b9cMoLNFvA(c, n, isLent);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((valid == ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1)))) goto LA40_;
		{
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T46_;
			NimStringDesc* T47_;
			NimStringDesc* T48_;
			if (!(valid == ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 2))) goto LA44_;
			T46_ = (*n).info;
			T47_ = (NimStringDesc*)0;
			T47_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T48_ = (NimStringDesc*)0;
			T48_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_213), T47_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T46_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T48_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_396, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA42_;
		LA44_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_218), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_397, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA42_: ;
	}
	LA40_: ;
	T50_ = (*n).info;
	T51_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T51_ = makePtrType__PDWeh9cjpi22xXdNggYvsWA(c, (*n).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64), T50_, T51_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, asgnToResultVar__h9b9cHg6rgpKzNHniS8pqoyAsem)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		if (!((*le).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA3_;
		x = (*le)._kind_6.sons->data[((NI) 0)];
		{
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T8_ = ((IL64(140737496743936) &((NU64)1<<((NU)((*(*x).typ).kind)&63U)))!=0);
			if (!(T8_)) goto LA9_;
			T8_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			LA9_: ;
			T7_ = T8_;
			if (!(T7_)) goto LA10_;
			T7_ = ((*(*x)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11));
			LA10_: ;
			if (!T7_) goto LA11_;
			(*n)._kind_6.sons->data[((NI) 0)] = x;
			T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T13_ = takeImplicitAddr__x3K9b1cKzX9bI8nPJA1N22wQ(c, ri, ((*(*x).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 1)] = T13_;
			(*(*x).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20)) & 63);
		}
		LA11_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsgn__mkzYzG9avRzHz5NmIFyZdRg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* le;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	a = (*n)._kind_6.sons->data[((NI) 0)];
	switch ((*a).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig;
		nOrig = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		a = builtinFieldAccess__vJZwz9bfROKrfrtM50y74CQ_5(c, a, 1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(a == NIM_NIL)) goto LA4_;
			a = propertyWriteAccess__LlYuhVuv4UT9crSsgDzV0sQ(c, n, nOrig, (*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!((a == NIM_NIL))) goto LA8_;
				result = a;
				goto BeforeRet_;
			}
			LA8_: ;
			a = dotTransformation__7YxUILpPxooC5qqa89a54dw_29(c, (*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 25))) goto LA12_;
				transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(a, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 27));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				a = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, a, 1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA12_: ;
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		a = semSubscript__vJZwz9bfROKrfrtM50y74CQ_9(c, a, 1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T19_;
			if (!(a == NIM_NIL)) goto LA17_;
			T19_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T19_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_118));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = buildOverloadedSubscripts__nefR35PSczfhlx6FSH1N7w((*n)._kind_6.sons->data[((NI) 0)], T19_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!(mode == ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 1))) goto LA22_;
				bracketNotFoundError__NRIJDWZtATzMum7OEjYC2g_9(c, result);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = n;
				goto BeforeRet_;
			}
			goto LA20_;
			LA22_: ;
			{
				result = semExprNoType__7YxUILpPxooC5qqa89a54dw_2(c, result);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			LA20_: ;
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T26_;
		T26_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T26_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_117));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = buildOverloadedSubscripts__nefR35PSczfhlx6FSH1N7w((*n)._kind_6.sons->data[((NI) 0)], T26_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semExprNoType__7YxUILpPxooC5qqa89a54dw_2(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		{
			NI T30_;
			tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T33_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T34_;
			T30_ = (NI)0;
			T30_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI) 2) <= T30_)) goto LA31_;
			T33_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
			T33_ = c;
			T34_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T34_ = lowerTupleUnpackingForAsgn__8A4G64HByteFanrMUexmNw_3((*c).graph, n, (*(*c).p).owner);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = semStmt__vJZwz9bfROKrfrtM50y74CQ_4(T33_, T34_, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA28_;
		LA31_: ;
		{
			a = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, a, 1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA28_: ;
	}
	break;
	default:
	{
		a = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, a, 1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	(*n)._kind_6.sons->data[((NI) 0)] = a;
	le = (*a).typ;
	{
		if (!(le == NIM_NIL)) goto LA39_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_381), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_382, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA37_;
	LA39_: ;
	{
		NIM_BOOL T42_;
		NIM_BOOL T43_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T44_;
		tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag T46_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T48_;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T51_;
		NimStringDesc* T52_;
		NimStringDesc* T53_;
		T42_ = (NIM_BOOL)0;
		T43_ = (NIM_BOOL)0;
		T44_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T44_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(le, IL64(70368744179728));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T43_ = !(((8388608 &((NU64)1<<((NU)((*T44_).kind)&63U)))!=0));
		if (!(T43_)) goto LA45_;
		T46_ = (tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag)0;
		T46_ = isAssignable__ASvZU4uIBad6J9b9cMoLNFvA(c, a, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T43_ = ((17 &(1U<<((NU)(T46_)&7U)))!=0);
		LA45_: ;
		T42_ = T43_;
		if (T42_) goto LA47_;
		T48_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T48_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(le, IL64(36275087632017680));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T42_ = ((IL64(281475110928384) &((NU64)1<<((NU)((*T48_).kind)&63U)))!=0);
		LA47_: ;
		if (!T42_) goto LA49_;
		T51_ = (*a).info;
		T52_ = (NimStringDesc*)0;
		T52_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(a, 4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T53_ = (NimStringDesc*)0;
		T53_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_383), T52_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T51_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T53_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_384, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA37_;
	LA49_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lhs;
		NIM_BOOL lhsIsResult;
		NIM_BOOL T55_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* rhs;
		tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ T57_;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T91_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T92_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T93_;
		lhs = (*n)._kind_6.sons->data[((NI) 0)];
		T55_ = (NIM_BOOL)0;
		T55_ = ((*lhs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T55_)) goto LA56_;
		T55_ = ((*(*lhs)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11));
		LA56_: ;
		lhsIsResult = T55_;
		{
			if (!lhsIsResult) goto LA60_;
			T57_ = 1024;
		}
		goto LA58_;
		LA60_: ;
		{
			T57_ = 0;
		}
		LA58_: ;
		rhs = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 1)], T57_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!lhsIsResult) goto LA65_;
			(*n).typ = (*c).enforceVoidContext;
			{
				NIM_BOOL T69_;
				NIM_BOOL T71_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rhsTyp;
				T69_ = (NIM_BOOL)0;
				T69_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17)));
				if (!(T69_)) goto LA70_;
				T71_ = (NIM_BOOL)0;
				T71_ = isMetaType__aVxWxXLmf103vwE8uZ9cXRw((*(*lhs)._kind_4.sym).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T71_)) goto LA72_;
				T71_ = !(((*(*(*lhs)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)));
				LA72_: ;
				T69_ = T71_;
				LA70_: ;
				if (!T69_) goto LA73_;
				rhsTyp = (*rhs).typ;
				{
					NIM_BOOL T77_;
					T77_ = (NIM_BOOL)0;
					T77_ = ((IL64(13510798882111488) &((NU64)1<<((NU)((*rhsTyp).kind)&63U)))!=0);
					if (!(T77_)) goto LA78_;
					T77_ = (((*rhsTyp).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
					LA78_: ;
					if (!T77_) goto LA79_;
					rhsTyp = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(rhsTyp);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA79_: ;
				{
					tyEnum_TTypeRelation__1IMf5P083XuEtWGxYaIXyQ T83_;
					T83_ = (tyEnum_TTypeRelation__1IMf5P083XuEtWGxYaIXyQ)0;
					T83_ = cmpTypes__6LyhcPFOyQXLaZFXoqJM1w(c, (*lhs).typ, rhsTyp);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!((1280 &(1U<<((NU)(T83_)&15U)))!=0)) goto LA84_;
					{
						NimStringDesc* argX60gensym4544_;
						if (!!(!(((*(*c).p).resultSym == NIM_NIL)))) goto LA88_;
						argX60gensym4544_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_385);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym4544_, TM__rF9caJawfOjYTjsgLVUSGFA_385);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA88_: ;
					typeAllowedCheck__OJXIxi4fH0HgKVBUkO49a7w((*(*c).graph).config, (*n).info, rhsTyp, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11), 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*lhs).typ = rhsTyp;
					(*(*(*c).p).resultSym).typ = rhsTyp;
					(*(*(*(*c).p).owner).typ).sons->data[((NI) 0)] = rhsTyp;
				}
				goto LA81_;
				LA84_: ;
				{
					typeMismatch__1xxyFIws27lai2cG4n31Ow((*(*c).graph).config, (*n).info, (*lhs).typ, rhsTyp);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA81_: ;
			}
			LA73_: ;
		}
		LA65_: ;
		borrowCheck__J1O6ZLf1JD7YcSRxfw8Usg(c, n, lhs, rhs);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T91_ = goodLineInfo__eFiXGzEcaqcZ648kwvI9a9ag((*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T92_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T92_ = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, le, rhs, T91_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 1)] = T92_;
		fixAbstractType__NRIJDWZtATzMum7OEjYC2g_7(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T93_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T93_ = (*n)._kind_6.sons->data[((NI) 0)];
		asgnToResultVar__h9b9cHg6rgpKzNHniS8pqoyAsem(c, n, T93_, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA37_: ;
	result = n;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProcBody__7YxUILpPxooC5qqa89a54dw_5)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, n, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T4_;
		NIM_BOOL T6_;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*(*c).p).resultSym == NIM_NIL));
		if (!(T4_)) goto LA5_;
		T6_ = (NIM_BOOL)0;
		T6_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*result).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = !(T6_);
		LA5_: ;
		if (!T4_) goto LA7_;
		{
			if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA11_;
			(*result).typ = NIM_NIL;
		}
		goto LA9_;
		LA11_: ;
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = ((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126));
			if (!(T14_)) goto LA15_;
			T14_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5));
			LA15_: ;
			if (!T14_) goto LA16_;
			fixNilType__NRIJDWZtATzMum7OEjYC2g_3(c, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA9_;
		LA16_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
			a = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*n).info, ((NI) 2));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T19_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T19_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*(*c).p).resultSym);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*a)._kind_6.sons->data[((NI) 0)] = T19_;
			(*a)._kind_6.sons->data[((NI) 1)] = result;
			result = semAsgn__mkzYzG9avRzHz5NmIFyZdRg(c, a, ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
	}
	goto LA2_;
	LA7_: ;
	{
		discardCheck__tp7yV6CFb40nVuGT1TBFpw(c, result, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA2_: ;
	{
		NIM_BOOL T23_;
		NIM_BOOL T24_;
		T23_ = (NIM_BOOL)0;
		T24_ = (NIM_BOOL)0;
		T24_ = !(((393216 &(1U<<((NU)((*(*(*c).p).owner).kind)&31U)))!=0));
		if (!(T24_)) goto LA25_;
		T24_ = !(((*(*c).p).resultSym == NIM_NIL));
		LA25_: ;
		T23_ = T24_;
		if (!(T23_)) goto LA26_;
		T23_ = isMetaType__aVxWxXLmf103vwE8uZ9cXRw((*(*(*c).p).resultSym).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA26_: ;
		if (!T23_) goto LA27_;
		{
			NIM_BOOL T31_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T34_;
			T31_ = (NIM_BOOL)0;
			T31_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*result).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T31_) goto LA32_;
			T34_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T34_ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*(*(*c).p).resultSym).typ = T34_;
			(*(*(*(*c).p).owner).typ).sons->data[((NI) 0)] = NIM_NIL;
		}
		goto LA29_;
		LA32_: ;
		{
			tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T36_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T37_;
			NimStringDesc* T38_;
			T36_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
			T36_ = (*(*c).graph).config;
			T37_ = (*(*(*c).p).resultSym).info;
			T38_ = (NimStringDesc*)0;
			T38_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_398), (*(*(*(*c).p).owner).name).s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew(T36_, T37_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T38_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_399, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA29_: ;
	}
	LA27_: ;
	{
		NIM_BOOL T41_;
		NIM_BOOL T42_;
		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T47_;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T48_;
		NimStringDesc* T49_;
		T41_ = (NIM_BOOL)0;
		T42_ = (NIM_BOOL)0;
		T42_ = isInlineIterator__EhCVbB6PynSh7XFAFVMiJAast((*(*(*c).p).owner).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T42_)) goto LA43_;
		T42_ = !(((*(*(*(*c).p).owner).typ).sons->data[((NI) 0)] == NIM_NIL));
		LA43_: ;
		T41_ = T42_;
		if (!(T41_)) goto LA44_;
		T41_ = ((*(*(*(*(*c).p).owner).typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
		LA44_: ;
		if (!T41_) goto LA45_;
		T47_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
		T47_ = (*(*c).graph).config;
		T48_ = (*(*(*c).p).owner).info;
		T49_ = (NimStringDesc*)0;
		T49_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_398), (*(*(*(*c).p).owner).name).s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew(T47_, T48_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T49_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_400, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA45_: ;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, instantiateBody__6k2yIpmfdYEOM5RXDFvgYQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* orig) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* procParams;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q symMap;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		procParams = (*(*result).typ).n;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(procParams);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, (*(*procParams)._kind_6.sons->data[i])._kind_4.sym);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
		maybeAddResult__8H5d8d9cPCfbpMuDrerQMeQ(c, result, (*result).ast);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*c).inGenericInst += ((NI) 1);
		b = (*n)._kind_6.sons->data[((NI) 6)];
		nimZeroMem((void*)(&symMap), sizeof(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q));
		initIdTable__Z7fF0Wc4DSB4kCiKZ8rGfQ((&symMap));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((params == NIM_NIL))) goto LA10_;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(params);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_4 = ((NI) 1);
				{
					while (1) {
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
						if (!(i_4 < colontmp__2)) goto LA14;
						i_3 = i_4;
						param = (*(*params)._kind_6.sons->data[i_3])._kind_4.sym;
						{
							tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA* T19_;
							tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA* T20_;
							RootObj* T21_;
							if (!(((*param).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0)) goto LA17_;
							T19_ = (tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA*)0;
							T19_ = &(*(*params)._kind_6.sons->data[i_3])._kind_4.sym->Sup;
							T20_ = (tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA*)0;
							T20_ = T19_;
							T21_ = (RootObj*)0;
							T21_ = &(*(*(*(*result).typ).n)._kind_6.sons->data[(NI)((*param).position + ((NI) 1))])._kind_4.sym->Sup.Sup;
							idTablePut__anELyz7VLsjbCIoxLpxbfQ((&symMap), T20_, T21_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA17_: ;
						i_4 += ((NI) 1);
					} LA14: ;
				}
			}
		}
		LA10_: ;
		freshGenSyms__sniSZ3lXmsiJXk4n7qLgPw(b, result, orig, (&symMap));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		b = semProcBody__7YxUILpPxooC5qqa89a54dw_5(c, b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T22_ = hloBody__7YxUILpPxooC5qqa89a54dw_10(c, b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*(*result).ast)._kind_6.sons->data[((NI) 6)] = T22_;
		trackProc__P9bJkIGwY9beKGfhhcBedbpg(c, result, (*(*result).ast)._kind_6.sons->data[((NI) 6)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).flags &= ~(((NU64)1) << ((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4)) & 63));
		(*c).inGenericInst -= ((NI) 1);
	}
	LA3_: ;
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, pop__sJkHMuFHoY5Elz2ZDxz78Asystem)(tySequence__DfgJFJEYoj4YBAHLZPl5lQ** s) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	NI L;
	NI T1_;
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	L = (NI)(T1_ - ((NI) 1));
	result = (*s)->data[L];
	(*s) = (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) setLengthSeqV2(&((*s))->Sup, (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_), ((NI) (L)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, finishMethod__PSSiITp8zAUcZ8z1k5AMLA_4)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasObjParam__J1LR9bIUh18t4XFDmYEYBYw_2(s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		methodDef__NKjYu87vB0uQmGRMfpDEBQ((*c).graph, s, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, generateInstance__Bbmaz5QjetnTaor7LYngPg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T9_;
	NI T10_;
	tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* oldMatchedConcept;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* oldScope;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T14_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
	tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* entry;
	NI i;
	NI T20_;
	NI T21_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* oldPrc;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T101_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		NimStringDesc* argX60gensym204_;
		if (!!(!(((393216 &(1U<<((NU)((*fn).kind)&31U)))!=0)))) goto LA3_;
		argX60gensym204_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_70);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym204_, TM__rF9caJawfOjYTjsgLVUSGFA_70);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((NI) 50) < (*c).instCounter)) goto LA7_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_73), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_74, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA7_: ;
	(*c).instCounter += ((NI) 1);
	n = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*fn).ast);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T9_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T9_ = getModule__xfh8ar7fDxVX2A4OO9b5sqQ(fn);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*c).friendModules = (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*c).friendModules), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_));
	T10_ = (*c).friendModules->Sup.len++;
	(*c).friendModules->data[T10_] = T9_;
	oldMatchedConcept = (*c).matchedConcept;
	(*c).matchedConcept = NIM_NIL;
	oldScope = (*c).currentScope;
	{
		while (1) {
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T13_)) goto LA12;
			(*c).currentScope = (*(*c).currentScope).parent;
		} LA12: ;
	}
	result = copySym__lIu8wX6Beq6dBJgESOFFjg(fn);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2)) & 63);
	(*result).owner = fn;
	(*result).ast = n;
	pushOwner__AqgO9b89aLwRYAgSHN9aBrlHQ(c, result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T14_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T14_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	gp = (*n)._kind_6.sons->data[((NI) 2)];
	{
		NimStringDesc* argX60gensym213_;
		if (!!(!(((*gp).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))))) goto LA17_;
		argX60gensym213_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_75);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym213_, TM__rF9caJawfOjYTjsgLVUSGFA_75);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA17_: ;
	T19_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T19_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 0)] = T19_;
	pushInfoContext__uDLK9aoAOWwwFTev4NOwF7Q((*(*c).graph).config, info, (*(*fn).name).s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	entry = new__BiEKflRN9azaxRNwAA9br7uA();
	(*entry).sym = result;
	i = ((NI) 0);
	T20_ = (NI)0;
	T20_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*fn).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T21_ = (NI)0;
	T21_ = len__P89cqdlERShb9alU3iC0yj8wast(gp);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*entry).concreteTypes = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), ((NI) ((NI)((NI)(T20_ + T21_) - ((NI) 1)))));
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		s = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		{
			NimStringDesc* argX60gensym124_;
			if (!!(((*gp).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75)))) goto LA25_;
			argX60gensym124_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_76);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym124_, TM__rF9caJawfOjYTjsgLVUSGFA_76);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA25_: ;
		{
			NI i_2;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			i_2 = (NI)0;
			a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_3;
				NI colontmp_;
				NI i_4;
				i_3 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(gp);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_4 = ((NI) 0);
				{
					while (1) {
						if (!(i_4 < colontmp_)) goto LA30;
						i_3 = i_4;
						i_2 = i_3;
						a = (*gp)._kind_6.sons->data[i_3];
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* q;
							tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind;
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T45_;
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
							tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA* T46_;
							RootObj* T47_;
							{
								NimStringDesc* argX60gensym127_;
								if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA34_;
								argX60gensym127_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_77);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym127_, TM__rF9caJawfOjYTjsgLVUSGFA_77);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA34_: ;
							q = (*a)._kind_4.sym;
							{
								if (!!(((IL64(2267562412381049088) &((NU64)1<<((NU)((*(*q).typ).kind)&63U)))!=0))) goto LA38_;
								goto LA31;
							}
							LA38_: ;
							{
								if (!((*(*q).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA42_;
								symKind = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10);
							}
							goto LA40_;
							LA42_: ;
							{
								symKind = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7);
							}
							LA40_: ;
							T45_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
							T45_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							s_2 = newSym__IXbidcxhXTQGZY9abN63Cxg(symKind, (*q).name, T45_, (*q).info, 0);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*s_2).flags = ((*s_2).flags | 5);
							T46_ = (tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA*)0;
							T46_ = &(*q).typ->Sup;
							T47_ = (RootObj*)0;
							T47_ = idTableGet__K5M5T7J9c0H7M5ahfeRl8xw(pt, T46_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							t = ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) (T47_));
							{
								if (!(t == NIM_NIL)) goto LA50_;
								{
									if (!(((*(*q).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 11))&63U)))!=0)) goto LA54_;
									t = (*q).typ;
								}
								goto LA52_;
								LA54_: ;
								{
									NimStringDesc* T57_;
									T57_ = (NimStringDesc*)0;
									T57_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_78), (*(*s_2).name).s);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T57_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_79, NIM_FALSE);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									t = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								LA52_: ;
							}
							goto LA48_;
							LA50_: ;
							{
								NimStringDesc* T61_;
								if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA59_;
								T61_ = (NimStringDesc*)0;
								T61_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_78), (*(*q).name).s);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T61_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_80, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								t = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							goto LA48_;
							LA59_: ;
							{
								if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA63_;
								t = generateTypeInstance__ab5BITmU2P8zKztV9cfNtsg(c, pt, (*a).info, t);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							goto LA48_;
							LA63_: ;
							LA48_: ;
							(*s_2).typ = t;
							{
								if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA67_;
								(*s_2).ast = (*t).n;
							}
							LA67_: ;
							s = s_2;
							addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, s);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*entry).concreteTypes->data[i] = (*s).typ;
							i += ((NI) 1);
						} LA31: ;
						i_4 += ((NI) 1);
					} LA30: ;
				}
			}
		}
	}
	rawPushProcCon__jWGpC0lY8vG9b1MhOYJ9cFiQ(c, result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	instantiateProcType__1PhCjyNxyOAJRoRgfsrJDQ(c, pt, result, info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI j;
		NI colontmp__2;
		NI i_5;
		j = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__5mJADrRYkP3r9auuiuDZN9cQast((*result).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_5 = ((NI) 1);
		{
			while (1) {
				if (!(i_5 < colontmp__2)) goto LA71;
				j = i_5;
				(*entry).concreteTypes->data[i] = (*(*result).typ).sons->data[j];
				i += ((NI) 1);
				i_5 += ((NI) 1);
			} LA71: ;
		}
	}
	{
		if (!(((*(*result).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 33))&63U)))!=0)) goto LA74_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27)) & 63);
	}
	LA74_: ;
	(*n)._kind_6.sons->data[((NI) 2)] = (*(*c).graph).emptyNode;
	oldPrc = genericCacheGet__yrVWUjVCLM4qNMOOOoQryQ(fn, (*entry), (*c).compilesContextId);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI T80_;
		tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ T81_;
		NI T82_;
		if (!(oldPrc == NIM_NIL)) goto LA78_;
		rawHandleSelf__jWGpC0lY8vG9b1MhOYJ9cFiQ_2(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*entry).compilesId = (*c).compilesContextId;
		(*fn)._kind_2.procInstCache = (tySequence__DXS6mEo7PVUFJkirsQ9bNQA*) incrSeqV3((TGenericSeq*)((*fn)._kind_2.procInstCache), (&NTI__DXS6mEo7PVUFJkirsQ9bNQA_));
		T80_ = (*fn)._kind_2.procInstCache->Sup.len++;
		(*fn)._kind_2.procInstCache->data[T80_] = entry;
		nimZeroMem((void*)(&T81_), sizeof(tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ));
		makeInstPair__OBM04JqIpDFmR9bhgy9ckD3w(fn, entry, (&T81_));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*c).generics = (tySequence__jWKvSdankQPoT5bw9cBU9aiw*) incrSeqV3((TGenericSeq*)((*c).generics), (&NTI__jWKvSdankQPoT5bw9cBU9aiw_));
		T82_ = (*c).generics->Sup.len++;
		(*c).generics->data[T82_].genericSym = T81_.genericSym;
		(*c).generics->data[T82_].inst = T81_.inst;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA85_;
			pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, result, (*n)._kind_6.sons->data[((NI) 4)], TM__rF9caJawfOjYTjsgLVUSGFA_93, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA85_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T91_;
			if (!((*n)._kind_6.sons->data[((NI) 6)] == 0)) goto LA89_;
			T91_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T91_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*(*fn).ast)._kind_6.sons->data[((NI) 6)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 6)] = T91_;
		}
		LA89_: ;
		{
			if (!((*c).inGenericContext == ((NI) 0))) goto LA94_;
			instantiateBody__6k2yIpmfdYEOM5RXDFvgYQ(c, n, (*(*fn).typ).n, result, fn);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA94_: ;
		sideEffectsCheck__PSSiITp8zAUcZ8z1k5AMLA_3(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 126) || (*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 18)))) goto LA98_;
			paramsTypeCheck__X9cjeXk0ogla5nWLtx0FEkAsem(c, (*result).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA98_: ;
	}
	goto LA76_;
	LA78_: ;
	{
		result = oldPrc;
	}
	LA76_: ;
	popProcCon__SjrsaPFXVDopDGJmDQUKewsemdata(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	popInfoContext__O9arH9bYenXLOr27ZSmcQnEw((*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	popOwner__9aY89b9aR25iMJ8fPdM84CvQg_2(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*c).currentScope = oldScope;
	T101_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T101_ = pop__sJkHMuFHoY5Elz2ZDxz78Asystem((&(*c).friendModules));
	(void)(T101_);
	(*c).instCounter -= ((NI) 1);
	(*c).matchedConcept = oldMatchedConcept;
	{
		if (!((*result).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14))) goto LA104_;
		finishMethod__PSSiITp8zAUcZ8z1k5AMLA_4(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA104_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, instGenericConvertersArg__OiEXsRRJbWjgfYLWIAKYYQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* x) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA3_;
		a_2 = (*a)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		a_2 = a;
	}
	LA1_: ;
	{
		NIM_BOOL T8_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*a_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
		if (!(T8_)) goto LA9_;
		T8_ = ((*(*a_2)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		LA9_: ;
		if (!T8_) goto LA10_;
		s = (*(*a_2)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		{
			NIM_BOOL T14_;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* finalCallee;
			T14_ = (NIM_BOOL)0;
			T14_ = !(((*s).ast == NIM_NIL));
			if (!(T14_)) goto LA15_;
			T14_ = !(((*(*(*s).ast)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
			LA15_: ;
			if (!T14_) goto LA16_;
			finalCallee = generateInstance__Bbmaz5QjetnTaor7LYngPg(c, s, (*x).bindings, (*a_2).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*(*a_2)._kind_6.sons->data[((NI) 0)])._kind_4.sym = finalCallee;
			(*(*a_2)._kind_6.sons->data[((NI) 0)]).typ = (*finalCallee).typ;
		}
		LA16_: ;
	}
	LA10_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, indexTypesMatch__8llRCFM4VdmgY27XJn2sRA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* f, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	newCandidate__rFFaxk6TYVlvnKNibvVmkg(c, f, (&m));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = paramTypesMatch__MkZIYaWSL2Febv66liB9aIA((&m), f, a, arg, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = m.genericConverter;
		if (!(T3_)) goto LA4_;
		T3_ = !((result == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA5_;
		instGenericConvertersArg__OiEXsRRJbWjgfYLWIAKYYQ(c, result, (&m));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitNode__3gQ9buvlr7tPLmWwfmGV7fw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T5_;
		NimStringDesc* T6_;
		NimStringDesc* T7_;
		if (!((*arg).typ == 0)) goto LA3_;
		T5_ = (*arg).info;
		T6_ = (NimStringDesc*)0;
		T7_ = (NimStringDesc*)0;
		T7_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(arg, 4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = rawNewString((T7_ ? T7_->Sup.len : 0) + 24);
appendString(T6_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_65));
appendString(T6_, T7_);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T5_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_66, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(arg);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = formal;
	}
	goto LA1_;
	LA3_: ;
	{
		result = indexTypesMatch__8llRCFM4VdmgY27XJn2sRA(c, formal, (*arg).typ, arg);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(result == NIM_NIL)) goto LA11_;
			typeMismatch__1xxyFIws27lai2cG4n31Ow((*(*c).graph).config, info, formal, (*arg).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(arg);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = formal;
		}
		goto LA9_;
		LA11_: ;
		{
			result = fitNodePostMatch__t9cW9ai7WILQBcTRPAW4swfA(c, formal, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, forceBool__7YxUILpPxooC5qqa89a54dw_4)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
	T1_ = c;
	T2_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(T1_, T2_, n, (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(result == NIM_NIL)) goto LA5_;
		result = n;
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConstBoolExpr__7YxUILpPxooC5qqa89a54dw_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
	T1_ = c;
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = forceBool__7YxUILpPxooC5qqa89a54dw_4(T1_, T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)))) goto LA5_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_318), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_401, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isRange__ZcP19cH3pVINjK9ckLU2rBeQtrees)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* callee;
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA3_;
		callee = (*n)._kind_6.sons->data[((NI) 0)];
		{
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			NIM_BOOL T9_;
			NIM_BOOL T12_;
			NIM_BOOL T15_;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*callee).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
			if (!(T9_)) goto LA10_;
			T9_ = ((*(*callee)._kind_5.ident).Sup.id == ((NI) 71));
			LA10_: ;
			T8_ = T9_;
			if (T8_) goto LA11_;
			T12_ = (NIM_BOOL)0;
			T12_ = ((*callee).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T12_)) goto LA13_;
			T12_ = ((*(*(*callee)._kind_4.sym).name).Sup.id == ((NI) 71));
			LA13_: ;
			T8_ = T12_;
			LA11_: ;
			T7_ = T8_;
			if (T7_) goto LA14_;
			T15_ = (NIM_BOOL)0;
			T15_ = ((*callee).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*callee).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57));
			if (!(T15_)) goto LA16_;
			T15_ = ((*(*(*(*callee)._kind_6.sons->data[((NI) 1)])._kind_4.sym).name).Sup.id == ((NI) 71));
			LA16_: ;
			T7_ = T15_;
			LA14_: ;
			if (!T7_) goto LA17_;
			result = NIM_TRUE;
		}
		LA17_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBranchRange__j3LbHf9bqKk6Mw4S3FFgkVQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ac;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bc;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* at;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bt;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(t, ((NI) 1), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	ac = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, a);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	bc = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, b);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, (*(*t)._kind_6.sons->data[((NI) 0)]).typ, ac, (*ac).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	at = skipConvTakeType__BH9abOhPX8pH0DnEWlRxmlw_4(T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, (*(*t)._kind_6.sons->data[((NI) 0)]).typ, bc, (*bc).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	bt = skipConvTakeType__BH9abOhPX8pH0DnEWlRxmlw_4(T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44), (*a).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, at);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, bt);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = emptyRange__tlIBRycg3YyKwtO2aPbGGg_2(ac, bc);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T5_) goto LA6_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*b).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_27), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_411, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA3_;
	LA6_: ;
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T9_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T10_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T11_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T12_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T13_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T14_;
		T9_ = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ(bc, TM__rF9caJawfOjYTjsgLVUSGFA_229);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T10_ = plus___Sp7OcCEIFoBYolB6PB1fAg((*covered), T9_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T11_ = plus___hiijuMqvH9aC9aKmwIYuqUAA_2(T10_, IL64(1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T12_ = T11_;
		T13_ = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ(ac, TM__rF9caJawfOjYTjsgLVUSGFA_229);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimZeroMem((void*)(&T14_), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
		T14_ = minus___Sp7OcCEIFoBYolB6PB1fAg_2(T12_, T13_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*covered) = T14_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCaseBranchRange__0knXB2kLqr5zutyOXWu8Rg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(b, ((NI) 3), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (*b)._kind_6.sons->data[((NI) 1)];
	result = semBranchRange__j3LbHf9bqKk6Mw4S3FFgkVQ(c, t, T1_, (*b)._kind_6.sons->data[((NI) 2)], covered);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCaseBranchSetElem__0knXB2kLqr5zutyOXWu8Rg_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isRange__ZcP19cH3pVINjK9ckLU2rBeQtrees(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(b, ((NI) 3), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = (*b)._kind_6.sons->data[((NI) 1)];
		result = semBranchRange__j3LbHf9bqKk6Mw4S3FFgkVQ(c, t, T6_, (*b)._kind_6.sons->data[((NI) 2)], covered);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
		if (!((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA8_;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(b, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T10_ = (*b)._kind_6.sons->data[((NI) 0)];
		result = semBranchRange__j3LbHf9bqKk6Mw4S3FFgkVQ(c, t, T10_, (*b)._kind_6.sons->data[((NI) 1)], covered);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA8_: ;
	{
		result = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, (*(*t)._kind_6.sons->data[((NI) 0)]).typ, b, (*b).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		inc__Glh2geFlMs9aE78UZ1JZGAA(covered, ((NU32) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkForOverlap__72gDnaHzi4O4sp9av09bP7vw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, NI currentEx, NI branchIndex) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	ex = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*(*t)._kind_6.sons->data[branchIndex])._kind_6.sons->data[currentEx]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		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__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					colontmp_ = (NI)(T5_ - ((NI) 1));
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA7;
							j = i_2;
							{
								NIM_BOOL T10_;
								T10_ = (NIM_BOOL)0;
								T10_ = (i == branchIndex);
								if (!(T10_)) goto LA11_;
								T10_ = (j == currentEx);
								LA11_: ;
								if (!T10_) goto LA12_;
								goto LA4;
							}
							LA12_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
								NIM_BOOL T17_;
								T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T16_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T17_ = (NIM_BOOL)0;
								T17_ = overlap__tlIBRycg3YyKwtO2aPbGGg(T16_, ex);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!T17_) goto LA18_;
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*ex).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_412), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_413, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA18_: ;
							i_2 += ((NI) 1);
						} LA7: ;
					}
				} LA4: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, semCaseBranch__v9aNPEhC9bTKfOzSbulyV4jw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch, NI branchIndex, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered) {
	NI lastIndex;
	NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (NI)0;
	T1_ = len__P89cqdlERShb9alU3iC0yj8wast(branch);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	lastIndex = (NI)(T1_ - ((NI) 2));
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
				if (!(res <= lastIndex)) goto LA4;
				i = res;
				b = (*branch)._kind_6.sons->data[i];
				{
					if (!((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA7_;
					(*branch)._kind_6.sons->data[i] = b;
				}
				goto LA5_;
				LA7_: ;
				{
					NIM_BOOL T10_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
					T10_ = (NIM_BOOL)0;
					T10_ = isRange__ZcP19cH3pVINjK9ckLU2rBeQtrees(b);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T10_) goto LA11_;
					T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T13_ = semCaseBranchRange__0knXB2kLqr5zutyOXWu8Rg(c, t, b, covered);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*branch)._kind_6.sons->data[i] = T13_;
				}
				goto LA5_;
				LA11_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r;
					r = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, b);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NIM_BOOL T17_;
						NIM_BOOL T18_;
						NI T20_;
						NI T22_;
						T17_ = (NIM_BOOL)0;
						T18_ = (NIM_BOOL)0;
						T18_ = ((*r).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39) || (*r).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41));
						if (!(T18_)) goto LA19_;
						T20_ = (NI)0;
						T20_ = len__P89cqdlERShb9alU3iC0yj8wast(r);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T18_ = (T20_ == ((NI) 0));
						LA19_: ;
						T17_ = T18_;
						if (!(T17_)) goto LA21_;
						T22_ = (NI)0;
						T22_ = len__P89cqdlERShb9alU3iC0yj8wast(branch);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T17_ = (T22_ == ((NI) 2));
						LA21_: ;
						if (!T17_) goto LA23_;
						delSon__oU9bKATaboy8iUhv0r9bMBPw(branch, ((NI) 0));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
					goto LA15_;
					LA23_: ;
					{
						NIM_BOOL T26_;
						NI T28_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
						T26_ = (NIM_BOOL)0;
						T26_ = !(((*r).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39) || (*r).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41)));
						if (T26_) goto LA27_;
						T28_ = (NI)0;
						T28_ = len__P89cqdlERShb9alU3iC0yj8wast(r);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T26_ = (T28_ == ((NI) 0));
						LA27_: ;
						if (!T26_) goto LA29_;
						checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(t, ((NI) 1), (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						tmp = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, (*(*t)._kind_6.sons->data[((NI) 0)]).typ, r, (*r).info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!((*tmp).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA33_;
							tmp = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, tmp);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA33_: ;
						T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T35_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw(tmp);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*branch)._kind_6.sons->data[i] = T35_;
						inc__Glh2geFlMs9aE78UZ1JZGAA(covered, ((NU32) 1));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA15_;
					LA29_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T41_;
						{
							if (!((*r).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39))) goto LA39_;
							r = deduplicate__npqksG7nXsyGRBfJK1db1g((*(*c).graph).config, r);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA39_: ;
						T41_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T41_ = semCaseBranchSetElem__0knXB2kLqr5zutyOXWu8Rg_2(c, t, (*r)._kind_6.sons->data[((NI) 0)], covered);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*branch)._kind_6.sons->data[i] = T41_;
						{
							NI j;
							NI colontmp_;
							NI i_2;
							j = (NI)0;
							colontmp_ = (NI)0;
							colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(r);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							i_2 = ((NI) 1);
							{
								while (1) {
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T45_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T46_;
									NI T47_;
									NI T48_;
									if (!(i_2 < colontmp_)) goto LA44;
									j = i_2;
									T45_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T45_ = semCaseBranchSetElem__0knXB2kLqr5zutyOXWu8Rg_2(c, t, (*r)._kind_6.sons->data[j], covered);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									add__P8dDSotTW25BkfbyspojGg(branch, T45_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									T46_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T47_ = (NI)0;
									T47_ = len__P89cqdlERShb9alU3iC0yj8wast(branch);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									T48_ = (NI)0;
									T48_ = len__P89cqdlERShb9alU3iC0yj8wast(branch);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									T46_ = (*branch)._kind_6.sons->data[(NI)(T47_ - ((NI) 2))];
									(*branch)._kind_6.sons->data[(NI)(T47_ - ((NI) 2))] = (*branch)._kind_6.sons->data[(NI)(T48_ - ((NI) 1))];
									(*branch)._kind_6.sons->data[(NI)(T48_ - ((NI) 1))] = T46_;
									i_2 += ((NI) 1);
								} LA44: ;
							}
						}
					}
					LA15_: ;
				}
				LA5_: ;
				checkForOverlap__72gDnaHzi4O4sp9av09bP7vw(c, t, i, branchIndex);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NI i_3;
		NI colontmp__2;
		NI colontmp__3;
		NI T50_;
		NI i_4;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__2 = (NI)(lastIndex + ((NI) 1));
		T50_ = (NI)0;
		T50_ = len__P89cqdlERShb9alU3iC0yj8wast(branch);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmp__3 = (NI)(T50_ - ((NI) 1));
		i_4 = colontmp__2;
		{
			while (1) {
				if (!(i_4 < colontmp__3)) goto LA52;
				i_3 = i_4;
				checkForOverlap__72gDnaHzi4O4sp9av09bP7vw(c, t, i_3, branchIndex);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_4 += ((NI) 1);
			} LA52: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toCover__VyVU6SDhkTqKxSsQUZSePg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	t2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350144710672));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		NI T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
		if (!(T3_)) goto LA4_;
		T3_ = enumHasHoles__YPjOkGV9axAnGR3UfLeWZ1g_3(t2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NI)0;
		T7_ = len__P89cqdlERShb9alU3iC0yj8wast((*t2).n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = toInt128__161i7kexvUAISxPtGBRWYw(T7_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
		t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36275087632017424));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T13_;
			if (!((IL64(17626545782784) &((NU64)1<<((NU)((*t_2).kind)&63U)))!=0)) goto LA11_;
			T13_ = toInt128__161i7kexvUAISxPtGBRWYw(((NI) 1));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = shl__al6Zjboz2CA0pIDMg9a9cJFw(T13_, ((NI) 64));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA9_;
		LA11_: ;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T17_;
			if (!((IL64(1101659111424) &((NU64)1<<((NU)((*t_2).kind)&63U)))!=0)) goto LA15_;
			T17_ = toInt128__161i7kexvUAISxPtGBRWYw(((NI) 1));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = shl__al6Zjboz2CA0pIDMg9a9cJFw(T17_, (NI)((*(*(*c).graph).config).target.intSize * ((NI) 8)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA9_;
		LA15_: ;
		{
			result = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*c).graph).config, t_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(NI, len__litHeZeW9bpJugmXT0ufvwgintsets)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* 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_Trunk__ul49aWfv9aes8cutmeltT3gQ* r;
				r = (*s).head;
				{
					while (1) {
						NI i_3;
						if (!!((r == 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___dgYAo7RfdUVVpvkfKDym8wsystem((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__jONWMAXSsSmnBgUvyxg7Hw)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* vals, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NimStringDesc* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
	NI enumSymOffset;
	NI i;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NimStringDesc*)0;
	result = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_416));
	t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350136322320));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	enumSymOffset = ((NI) 0);
	i = ((NI) 0);
	{
		NI val;
		val = (NI)0;
		{
			if (!((*vals).elems <= ((NI) 34))) goto LA4_;
			{
				NI i_2;
				NI i_3;
				i_2 = (NI)0;
				i_3 = ((NI) 0);
				{
					while (1) {
						if (!(i_3 < (*vals).elems)) goto LA8;
						i_2 = i_3;
						val = (*vals).a[(i_2)- 0];
						{
							if (!(((NI) 1) < (result ? result->Sup.len : 0))) goto LA11_;
							result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_68));
						}
						LA11_: ;
						switch ((*t_2).kind) {
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
						{
							{
								while (1) {
									if (!((*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).position < val)) goto LA15;
									enumSymOffset += ((NI) 1);
								} LA15: ;
							}
							result = resizeString(result, ((*(*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).name).s ? (*(*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).name).s->Sup.len : 0) + 0);
appendString(result, (*(*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).name).s);
						}
						break;
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
						{
							addQuoted__Jx9cyf9byen4PwchGOyl5LUg((&result), ((NIM_CHAR) (val)));
						}
						break;
						default:
						{
							{
								NI T22_;
								NimStringDesc* T23_;
								NimStringDesc* T24_;
								if (!(i == ((NI) 64))) goto LA20_;
								T22_ = (NI)0;
								T22_ = len__litHeZeW9bpJugmXT0ufvwgintsets(vals);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T23_ = (NimStringDesc*)0;
								T23_ = nimIntToStr((NI)(T22_ - i));
								T24_ = (NimStringDesc*)0;
								T24_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_417), T23_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								result = resizeString(result, (T24_ ? T24_->Sup.len : 0) + 0);
appendString(result, T24_);
								goto LA1;
							}
							goto LA18_;
							LA20_: ;
							{
								NimStringDesc* T26_;
								T26_ = (NimStringDesc*)0;
								T26_ = nimIntToStr(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_Trunk__ul49aWfv9aes8cutmeltT3gQ* r;
			r = (*vals).head;
			{
				while (1) {
					NI i_4;
					if (!!((r == 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___dgYAo7RfdUVVpvkfKDym8wsystem((NI)((NU64)(i_4) << (NU64)(((NI) 6))), j);
										val = (NI)((NI)((NU64)((*r).key) << (NU64)(((NI) 9))) | T38_);
										{
											if (!(((NI) 1) < (result ? result->Sup.len : 0))) goto LA41_;
											result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_68));
										}
										LA41_: ;
										switch ((*t_2).kind) {
										case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
										case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
										{
											{
												while (1) {
													if (!((*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).position < val)) goto LA45;
													enumSymOffset += ((NI) 1);
												} LA45: ;
											}
											result = resizeString(result, ((*(*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).name).s ? (*(*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).name).s->Sup.len : 0) + 0);
appendString(result, (*(*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).name).s);
										}
										break;
										case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
										{
											addQuoted__Jx9cyf9byen4PwchGOyl5LUg((&result), ((NIM_CHAR) (val)));
										}
										break;
										default:
										{
											{
												NI T52_;
												NimStringDesc* T53_;
												NimStringDesc* T54_;
												if (!(i == ((NI) 64))) goto LA50_;
												T52_ = (NI)0;
												T52_ = len__litHeZeW9bpJugmXT0ufvwgintsets(vals);
												if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
												T53_ = (NimStringDesc*)0;
												T53_ = nimIntToStr((NI)(T52_ - i));
												T54_ = (NimStringDesc*)0;
												T54_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_417), T53_);
												if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
												result = resizeString(result, (T54_ ? T54_->Sup.len : 0) + 0);
appendString(result, T54_);
												goto LA1;
											}
											goto LA48_;
											LA50_: ;
											{
												NimStringDesc* T56_;
												T56_ = (NimStringDesc*)0;
												T56_ = nimIntToStr(val);
												result = resizeString(result, (T56_ ? T56_->Sup.len : 0) + 0);
appendString(result, T56_);
											}
											LA48_: ;
										}
										break;
										}
										i += ((NI) 1);
									}
									LA36_: ;
									j += ((NI) 1);
									w = (NU)((NU64)(w) >> (NU64)(((NI) 1)));
								} LA33: ;
							}
							i_4 += ((NI) 1);
						} LA31: ;
					}
					r = (*r).next;
				} LA29: ;
			}
		}
		LA2_: ;
	} LA1: ;
	result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_418));
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, minus___LSsT9adsoi9bg6Vh4SNYfeQQintsets)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s1, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s2, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* Result) {
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&T1_), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	difference__jhF9cCHu5ggiDdc87e1wx3g(s1, s2, (&T1_));
	nimCopyMem((void*)Result, (NIM_CONST void*)(&T1_), sizeof((*Result)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, getIntSetOfType__uLhVC3evuQrv7q9aBGOuzeQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* Result) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q(Result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
		T3_ = (NIM_BOOL)0;
		T3_ = enumHasHoles__YPjOkGV9axAnGR3UfLeWZ1g_3(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350136322320));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** field;
			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
			NI i;
			NI L;
			NI T7_;
			field = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
			colontmp_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
			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__jENnK9c9bPE73pKmo2vYjpqg(Result, (*(*(*field))._kind_4.sym).position);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i += ((NI) 1);
				} LA9: ;
			}
		}
	}
	goto LA1_;
	LA4_: ;
	{
		{
			NI64 i_2;
			NI64 colontmp__2;
			NI64 colontmp__3;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T12_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T13_;
			NI64 res;
			i_2 = (NI64)0;
			colontmp__2 = (NI64)0;
			colontmp__3 = (NI64)0;
			T12_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*c).graph).config, t);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp__2 = toInt64__1szweXXq3RBN50owrYu2Xw(T12_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T13_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*c).graph).config, t);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp__3 = toInt64__1szweXXq3RBN50owrYu2Xw(T13_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			res = colontmp__2;
			{
				while (1) {
					if (!(res <= colontmp__3)) goto LA15;
					i_2 = res;
					incl__jENnK9c9bPE73pKmo2vYjpqg(Result, ((NI) (i_2)));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					res += ((NI) 1);
				} LA15: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, formatMissingEnums__zUJc3JNayUkQ8i11jOQJeQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* result;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg coveredCases;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg T23_;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg T24_;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg T25_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NimStringDesc*)0;
	nimZeroMem((void*)(&coveredCases), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&coveredCases));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NI val;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp__2;
					val = (NI)0;
					colontmp__2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					colontmp__2 = (*n)._kind_6.sons->data[i];
					{
						if (!((*colontmp__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA7_;
						{
							NI i_3;
							NI colontmp__3;
							NI T10_;
							NI i_4;
							i_3 = (NI)0;
							colontmp__3 = (NI)0;
							T10_ = (NI)0;
							T10_ = len__P89cqdlERShb9alU3iC0yj8wast(colontmp__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							colontmp__3 = (NI)(T10_ - ((NI) 1));
							i_4 = ((NI) 0);
							{
								while (1) {
									if (!(i_4 < colontmp__3)) goto LA12;
									i_3 = i_4;
									{
										if (!((*(*colontmp__2)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) || (*(*colontmp__2)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5))) goto LA15_;
										val = ((NI) ((*(*colontmp__2)._kind_6.sons->data[i_3])._kind_1.intVal));
										incl__jENnK9c9bPE73pKmo2vYjpqg((&coveredCases), val);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									goto LA13_;
									LA15_: ;
									{
										if (!((*(*colontmp__2)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA18_;
										{
											NI64 i_5;
											NI64 colontmp__4;
											NI64 colontmp__5;
											NI64 res;
											i_5 = (NI64)0;
											colontmp__4 = (NI64)0;
											colontmp__5 = (NI64)0;
											colontmp__4 = (*(*(*colontmp__2)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 0)])._kind_1.intVal;
											colontmp__5 = (*(*(*colontmp__2)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 1)])._kind_1.intVal;
											res = colontmp__4;
											{
												while (1) {
													if (!(res <= colontmp__5)) goto LA22;
													i_5 = res;
													val = ((NI) (i_5));
													incl__jENnK9c9bPE73pKmo2vYjpqg((&coveredCases), val);
													if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
													res += ((NI) 1);
												} LA22: ;
											}
										}
									}
									goto LA13_;
									LA18_: ;
									LA13_: ;
									i_4 += ((NI) 1);
								} LA12: ;
							}
						}
					}
					LA7_: ;
				}
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	nimZeroMem((void*)(&T23_), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	getIntSetOfType__uLhVC3evuQrv7q9aBGOuzeQ(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ, (&T23_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)(&T24_), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	minus___LSsT9adsoi9bg6Vh4SNYfeQQintsets((&T23_), (&coveredCases), (&T24_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)(&T25_), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	nimCopyMem((void*)(&T25_), (NIM_CONST void*)(&T24_), sizeof(T25_));
	result = renderAsType__jONWMAXSsSmnBgUvyxg7Hw((&T25_), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semRecordCase__b2sT4Mx5xMcD0WzRKPqmPA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check, NI* pos, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rectype) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA covered;
	NIM_BOOL chckCovered;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	a = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	semRecordNodeAux__xnbsksR9alpM9axWraQlPoDQ(c, (*n)._kind_6.sons->data[((NI) 0)], check, pos, a, rectype, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((*(*a)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA3_;
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_402), TM__rF9caJawfOjYTjsgLVUSGFA_403);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA3_: ;
	(*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 20)) & 63);
	covered = toInt128__161i7kexvUAISxPtGBRWYw(((NI) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	chckCovered = NIM_FALSE;
	typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*a)._kind_6.sons->data[((NI) 0)]).typ, IL64(36275087632017424));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43):
	{
		chckCovered = NIM_TRUE;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
	{
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
			T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T10_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*typ).sons->data[((NI) 0)], IL64(36134350135273744));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((IL64(16559246426118) &((NU64)1<<((NU)((*T10_).kind)&63U)))!=0)) goto LA11_;
			chckCovered = NIM_TRUE;
		}
		LA11_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30):
	{
		errorUndeclaredIdentifier__2jJM9bqw5w9caMyqez0JSuZw(c, (*(*n)._kind_6.sons->data[((NI) 0)]).info, (*(*(*typ).sym).name).s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA(typ, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T17_)) goto LA18_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_404), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_405, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA18_: ;
	}
	break;
	}
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T22_;
		NIM_BOOL T23_;
		NimStringDesc* T26_;
		T22_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*c).graph).config, typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T23_ = (NIM_BOOL)0;
		T23_ = eqeq___nr9cP9b0OL9cabygV9bo19cJgZA_2(T22_, IL64(0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T23_)) goto LA24_;
		T26_ = (NimStringDesc*)0;
		T26_ = rawNewString(((*(*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s ? (*(*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s->Sup.len : 0) + 32);
appendString(T26_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_406));
appendString(T26_, (*(*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s);
appendString(T26_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_407));
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T26_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_408, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA20_;
	LA24_: ;
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T28_;
		NIM_BOOL T29_;
		NimStringDesc* T32_;
		T28_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*c).graph).config, typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T29_ = (NIM_BOOL)0;
		T29_ = lt___xL5gyZrjbGMarSdRAXOo9ag_3(IL64(32767), T28_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T29_) goto LA30_;
		T32_ = (NimStringDesc*)0;
		T32_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_409), (*(*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T32_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_410, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA20_;
	LA30_: ;
	LA20_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T46_;
				NI T47_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T48_;
				if (!(i_2 < colontmp_)) goto LA35;
				i = i_2;
				b = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*n)._kind_6.sons->data[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(a, b);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				switch ((*(*n)._kind_6.sons->data[i]).kind) {
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
				{
					checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(b, ((NI) 2), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					semCaseBranch__v9aNPEhC9bTKfOzSbulyV4jw(c, a, b, i, (&covered));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
				{
					checkSonsLen__EezdXeDvu4rB7fR84AJZgw(b, ((NI) 1), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NIM_BOOL T40_;
						tyObject_Int128__9a9axPfb75jdWY25AamJewkA T42_;
						T40_ = (NIM_BOOL)0;
						T40_ = chckCovered;
						if (!(T40_)) goto LA41_;
						T42_ = toCover__VyVU6SDhkTqKxSsQUZSePg(c, (*(*a)._kind_6.sons->data[((NI) 0)]).typ);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T40_ = eqeq___7c5Zw7H31uJfWmmhZe9aEqw(covered, T42_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						LA41_: ;
						if (!T40_) goto LA43_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*b).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 37), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_414, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA43_: ;
					chckCovered = NIM_FALSE;
				}
				break;
				default:
				{
					illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				break;
				}
				T46_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T46_ = b;
				T47_ = (NI)0;
				T47_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				delSon__oU9bKATaboy8iUhv0r9bMBPw(T46_, (NI)(T47_ - ((NI) 1)));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T48_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T48_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*n)._kind_6.sons->data[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				semRecordNodeAux__xnbsksR9alpM9axWraQlPoDQ(c, T48_, check, pos, b, rectype, NIM_TRUE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA35: ;
		}
	}
	{
		NIM_BOOL T51_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T53_;
		NIM_BOOL T54_;
		T51_ = (NIM_BOOL)0;
		T51_ = chckCovered;
		if (!(T51_)) goto LA52_;
		T53_ = toCover__VyVU6SDhkTqKxSsQUZSePg(c, (*(*a)._kind_6.sons->data[((NI) 0)]).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T54_ = (NIM_BOOL)0;
		T54_ = eqeq___7c5Zw7H31uJfWmmhZe9aEqw(covered, T53_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T51_ = !(T54_);
		LA52_: ;
		if (!T51_) goto LA55_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T59_;
			tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T62_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T63_;
			NimStringDesc* T64_;
			NimStringDesc* T65_;
			T59_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T59_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*a)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350136322320));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((*T59_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14))) goto LA60_;
			T62_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
			T62_ = (*(*c).graph).config;
			T63_ = (*a).info;
			T64_ = (NimStringDesc*)0;
			T64_ = formatMissingEnums__zUJc3JNayUkQ8i11jOQJeQ(c, a);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T65_ = (NimStringDesc*)0;
			T65_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_415), T64_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew(T62_, T63_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T65_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_419, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA57_;
		LA60_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_420), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_421, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA57_: ;
	}
	LA55_: ;
	add__P8dDSotTW25BkfbyspojGg(father, a);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, semRecordNodeAux__xnbsksR9alpM9axWraQlPoDQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check, NI* pos, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rectype, NIM_BOOL hasCaseFields) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!(n == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 140):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
		branch = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					NI idx;
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					it = (*n)._kind_6.sons->data[i];
					{
						if (!(it == NIM_NIL)) goto LA11_;
						illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA11_: ;
					idx = ((NI) 1);
					switch ((*it).kind) {
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
					{
						checkSonsLen__EezdXeDvu4rB7fR84AJZgw(it, ((NI) 2), (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
							if (!((*c).inGenericContext == ((NI) 0))) goto LA16_;
							e = semConstBoolExpr__7YxUILpPxooC5qqa89a54dw_3(c, (*it)._kind_6.sons->data[((NI) 0)]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								if (!!(((*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)))) goto LA20_;
							}
							goto LA18_;
							LA20_: ;
							{
								NIM_BOOL T23_;
								T23_ = (NIM_BOOL)0;
								T23_ = !(((*e)._kind_1.intVal == IL64(0)));
								if (!(T23_)) goto LA24_;
								T23_ = (branch == NIM_NIL);
								LA24_: ;
								if (!T23_) goto LA25_;
								branch = (*it)._kind_6.sons->data[((NI) 1)];
							}
							goto LA18_;
							LA25_: ;
							LA18_: ;
						}
						goto LA14_;
						LA16_: ;
						{
							tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T28_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
							T28_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
							T28_ = c;
							T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T29_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*it)._kind_6.sons->data[((NI) 0)], 0);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T30_ = forceBool__7YxUILpPxooC5qqa89a54dw_4(T28_, T29_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*it)._kind_6.sons->data[((NI) 0)] = T30_;
						}
						LA14_: ;
					}
					break;
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						checkSonsLen__EezdXeDvu4rB7fR84AJZgw(it, ((NI) 1), (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!(branch == NIM_NIL)) goto LA34_;
							branch = (*it)._kind_6.sons->data[((NI) 0)];
						}
						LA34_: ;
						idx = ((NI) 0);
					}
					break;
					default:
					{
						illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					break;
					}
					{
						tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg newCheck;
						NI newPos;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newf;
						if (!(((NI) 0) < (*c).inGenericContext)) goto LA39_;
						nimZeroMem((void*)(&newCheck), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
						assign__9aeoXSYLtfdHDeDWcO9bHVbg((&newCheck), (&(*check)));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						newPos = (*pos);
						newf = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						semRecordNodeAux__xnbsksR9alpM9axWraQlPoDQ(c, (*it)._kind_6.sons->data[idx], (&newCheck), (&newPos), newf, rectype, hasCaseFields);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							NI T43_;
							T43_ = (NI)0;
							T43_ = len__P89cqdlERShb9alU3iC0yj8wast(newf);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!(T43_ == ((NI) 1))) goto LA44_;
							(*it)._kind_6.sons->data[idx] = (*newf)._kind_6.sons->data[((NI) 0)];
						}
						goto LA41_;
						LA44_: ;
						{
							(*it)._kind_6.sons->data[idx] = newf;
						}
						LA41_: ;
					}
					LA39_: ;
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
		{
			if (!(((NI) 0) < (*c).inGenericContext)) goto LA49_;
			add__P8dDSotTW25BkfbyspojGg(father, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA47_;
		LA49_: ;
		{
			if (!!((branch == NIM_NIL))) goto LA52_;
			semRecordNodeAux__xnbsksR9alpM9axWraQlPoDQ(c, branch, check, pos, father, rectype, hasCaseFields);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA47_;
		LA52_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T57_;
			if (!((*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88) || (*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA55_;
			T57_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T57_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(father, T57_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA47_;
		LA55_: ;
		LA47_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		semRecordCase__b2sT4Mx5xMcD0WzRKPqmPA(c, n, check, pos, father, rectype);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T64_;
			if (!!(((*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138)))) goto LA62_;
			T64_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T64_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(father, T64_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA62_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		{
			if (!((*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138))) goto LA68_;
			a = father;
		}
		goto LA66_;
		LA68_: ;
		{
			a = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA66_: ;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA73;
					i_3 = i_4;
					semRecordNodeAux__xnbsksR9alpM9axWraQlPoDQ(c, (*n)._kind_6.sons->data[i_3], check, pos, a, rectype, hasCaseFields);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_4 += ((NI) 1);
				} LA73: ;
			}
		}
		{
			if (!!((a == father))) goto LA76_;
			add__P8dDSotTW25BkfbyspojGg(father, a);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA76_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fieldOwner;
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 3), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		a_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NIM_BOOL T81_;
			NI T83_;
			T81_ = (NIM_BOOL)0;
			T81_ = !(((*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138)));
			if (!(T81_)) goto LA82_;
			T83_ = (NI)0;
			T83_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T81_ = (((NI) 4) <= T83_);
			LA82_: ;
			if (!T81_) goto LA84_;
			a_2 = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA79_;
		LA84_: ;
		{
			a_2 = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA79_: ;
		{
			NI T89_;
			NI T92_;
			T89_ = (NI)0;
			T89_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(((*(*n)._kind_6.sons->data[(NI)(T89_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA90_;
			T92_ = (NI)0;
			T92_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[(NI)(T92_ - ((NI) 1))]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_422), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_423, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA90_: ;
		typ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		{
			NI T95_;
			T95_ = (NI)0;
			T95_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((*(*n)._kind_6.sons->data[(NI)(T95_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA96_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_424, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			typ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA93_;
		LA96_: ;
		{
			NI T99_;
			T99_ = (NI)0;
			T99_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			typ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[(NI)(T99_ - ((NI) 2))], NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			propagateToOwner__SzeWf39bw6SALsrL5NDJWbQ(rectype, typ, NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA93_: ;
		{
			if (!(((NI) 0) < (*c).inGenericContext)) goto LA102_;
			fieldOwner = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA100_;
		LA102_: ;
		{
			fieldOwner = (*rectype).sym;
		}
		LA100_: ;
		{
			NI i_5;
			NI colontmp__3;
			NI T106_;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			T106_ = (NI)0;
			T106_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp__3 = (NI)(T106_ - ((NI) 2));
			i_6 = ((NI) 0);
			{
				while (1) {
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* f;
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
					tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T114_;
					if (!(i_6 < colontmp__3)) goto LA108;
					i_5 = i_6;
					f = semIdentWithPragma__gSt4lwrAK8GOXOIIBgGsog(c, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19), (*n)._kind_6.sons->data[i_5], 2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!((*(*n)._kind_6.sons->data[i_5]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31))) goto LA111_;
						info = (*(*(*n)._kind_6.sons->data[i_5])._kind_6.sons->data[((NI) 1)]).info;
					}
					goto LA109_;
					LA111_: ;
					{
						info = (*(*n)._kind_6.sons->data[i_5]).info;
					}
					LA109_: ;
					T114_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
					T114_ = (*(*c).graph).config;
					suggestSym__c4UsAt49bYALbZKCjgqOrCQsigmatch(T114_, info, f, &(*(*c).graph).usageSym, NIM_TRUE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*f).typ = typ;
					(*f).position = (*pos);
					(*f).options = (*(*(*c).graph).config).options;
					{
						NIM_BOOL T117_;
						NIM_BOOL T118_;
						NIM_BOOL T119_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T125_;
						T117_ = (NIM_BOOL)0;
						T118_ = (NIM_BOOL)0;
						T119_ = (NIM_BOOL)0;
						T119_ = !((fieldOwner == NIM_NIL));
						if (!(T119_)) goto LA120_;
						T119_ = !(((192 & (*fieldOwner).flags) == 0));
						LA120_: ;
						T118_ = T119_;
						if (!(T118_)) goto LA121_;
						T118_ = !(hasCaseFields);
						LA121_: ;
						T117_ = T118_;
						if (!(T117_)) goto LA122_;
						T117_ = ((*f).loc.r == NIM_NIL);
						LA122_: ;
						if (!T117_) goto LA123_;
						T125_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T125_ = rope__yShmEg9cffWxI7s5XzEKBow((*(*f).name).s);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*f).loc.r = T125_;
						(*f).flags = ((*f).flags | (192 & (*fieldOwner).flags));
					}
					LA123_: ;
					(*pos) += ((NI) 1);
					{
						NIM_BOOL T128_;
						NimStringDesc* T131_;
						T128_ = (NIM_BOOL)0;
						T128_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg(check, (*(*f).name).Sup.id);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T128_) goto LA129_;
						T131_ = (NimStringDesc*)0;
						T131_ = rawNewString(((*(*f).name).s ? (*(*f).name).s->Sup.len : 0) + 23);
appendString(T131_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_134));
appendString(T131_, (*(*f).name).s);
appendString(T131_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114));
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T131_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_425, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA129_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T136_;
						if (!((*a_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA134_;
						T136_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T136_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(f);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						add__P8dDSotTW25BkfbyspojGg(father, T136_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA132_;
					LA134_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T138_;
						T138_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T138_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(f);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						add__P8dDSotTW25BkfbyspojGg(a_2, T138_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA132_: ;
					{
						if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA141_;
						nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*f).info, f, (*f).kind);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA141_: ;
					i_6 += ((NI) 1);
				} LA108: ;
			}
		}
		{
			if (!!(((*a_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA145_;
			add__P8dDSotTW25BkfbyspojGg(father, a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA145_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			NIM_BOOL T150_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T153_;
			NimStringDesc* T154_;
			T150_ = (NIM_BOOL)0;
			T150_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg(check, (*(*(*n)._kind_4.sym).name).Sup.id);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T150_) goto LA151_;
			T153_ = (*n).info;
			T154_ = (NimStringDesc*)0;
			T154_ = rawNewString(((*(*(*n)._kind_4.sym).name).s ? (*(*(*n)._kind_4.sym).name).s->Sup.len : 0) + 23);
appendString(T154_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_134));
appendString(T154_, (*(*(*n)._kind_4.sym).name).s);
appendString(T154_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114));
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T153_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T154_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_426, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA151_: ;
		add__P8dDSotTW25BkfbyspojGg(father, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	{
		{
			if (!((*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88) || (*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA158_;
			add__P8dDSotTW25BkfbyspojGg(father, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA158_: ;
	}
	break;
	default:
	{
		illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initConstrContext__RYPHxM9aTf8uWaAnZ0rNc2A)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* Result) {
	unsureAsgnRef((void**)&(*Result).typ, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).initExpr, NIM_NIL);
	(*Result).needsFullInit = 0;
	unsureAsgnRef((void**)&(*Result).missingFields, NIM_NIL);
	(*Result).typ = t;
	(*Result).initExpr = initExpr;
	(*Result).needsFullInit = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0);
}
N_LIB_PRIVATE N_NIMCALL(void, mergeInitStatus__P9cKs45sta9alE9cK9aOiS7Rhw)(tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ* existing, tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ newStatus) {
	switch (newStatus) {
	case ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 4):
	{
		(*existing) = newStatus;
	}
	break;
	case ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 2):
	{
		{
			if (!((11 &(1U<<((NU)((*existing))&7U)))!=0)) goto LA5_;
			(*existing) = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 2);
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3):
	{
		{
			if (!((*existing) == ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 0))) goto LA10_;
			(*existing) = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3);
		}
		goto LA8_;
		LA10_: ;
		{
			if (!((*existing) == ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 1))) goto LA13_;
			(*existing) = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 2);
		}
		goto LA8_;
		LA13_: ;
		LA8_: ;
	}
	break;
	case ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 1):
	{
		{
			if (!((*existing) == ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 0))) goto LA18_;
			(*existing) = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 1);
		}
		goto LA16_;
		LA18_: ;
		{
			if (!((*existing) == ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3))) goto LA21_;
			(*existing) = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 2);
		}
		goto LA16_;
		LA21_: ;
		LA16_: ;
	}
	break;
	case ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 0):
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, invalidObjConstr__NRIJDWZtATzMum7OEjYC2g_10)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29));
		if (!(T4_)) goto LA5_;
		T4_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = ((NU8)((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s->data[((NI) 0)]) == (NU8)(58));
		LA6_: ;
		if (!T3_) goto LA7_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_431), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_432, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA7_: ;
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_433), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_434, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, locateFieldInInitExpr__3B9cY0H3QtrZxUpHxV7SvKg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI fieldId;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	fieldId = (*(*field).name).Sup.id;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(initExpr);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* assignment;
					assignment = (*initExpr)._kind_6.sons->data[i];
					{
						if (!!(((*assignment).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34)))) goto LA7_;
						invalidObjConstr__NRIJDWZtATzMum7OEjYC2g_10(c, assignment);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto LA4;
					}
					LA7_: ;
					{
						tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T11_;
						T11_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
						T11_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*assignment)._kind_6.sons->data[((NI) 0)], NIM_NIL);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!(fieldId == (*T11_).Sup.id)) goto LA12_;
						result = assignment;
						goto BeforeRet_;
					}
					LA12_: ;
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, fieldsPresentInInitExpr__fAlP9cVEHopuX8Pfr9b5rx9cw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsRecList, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr) {
	NimStringDesc* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NimStringDesc*)0;
	result = ((NimStringDesc*) NIM_NIL);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
		field = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			if (!((*fieldsRecList).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA4_;
			field = fieldsRecList;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
				NimStringDesc* T15_;
				T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T8_ = locateFieldInInitExpr__3B9cY0H3QtrZxUpHxV7SvKg(c, (*field)._kind_4.sym, initExpr);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!((T8_ == NIM_NIL))) goto LA9_;
				{
					if (!!(((result ? result->Sup.len : 0) == ((NI) 0)))) goto LA13_;
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_68));
				}
				LA13_: ;
				T15_ = (NimStringDesc*)0;
				T15_ = rawNewString(((*(*(*field)._kind_4.sym).name).s ? (*(*(*field)._kind_4.sym).name).s->Sup.len : 0) + 2);
appendString(T15_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114));
appendString(T15_, (*(*(*field)._kind_4.sym).name).s);
appendString(T15_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114));
				result = resizeString(result, (T15_ ? T15_->Sup.len : 0) + 0);
appendString(result, T15_);
			}
			LA9_: ;
		}
		goto LA2_;
		LA4_: ;
		{
			{
				if (!!(((*fieldsRecList).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138)))) goto LA19_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_435));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA19_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field_2;
				field_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(fieldsRecList);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA24;
							i = i_2;
							field_2 = (*fieldsRecList)._kind_6.sons->data[i];
							{
								{
									if (!!(((*field_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA28_;
									goto LA25;
								}
								LA28_: ;
								field = field_2;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
									NimStringDesc* T39_;
									T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T32_ = locateFieldInInitExpr__3B9cY0H3QtrZxUpHxV7SvKg(c, (*field)._kind_4.sym, initExpr);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									if (!!((T32_ == NIM_NIL))) goto LA33_;
									{
										if (!!(((result ? result->Sup.len : 0) == ((NI) 0)))) goto LA37_;
										result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_68));
									}
									LA37_: ;
									T39_ = (NimStringDesc*)0;
									T39_ = rawNewString(((*(*(*field)._kind_4.sym).name).s ? (*(*(*field)._kind_4.sym).name).s->Sup.len : 0) + 2);
appendString(T39_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114));
appendString(T39_, (*(*(*field)._kind_4.sym).name).s);
appendString(T39_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114));
									result = resizeString(result, (T39_ ? T39_->Sup.len : 0) + 0);
appendString(result, T39_);
								}
								LA33_: ;
							} LA25: ;
							i_2 += ((NI) 1);
						} LA24: ;
					}
				}
			}
		}
		LA2_: ;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
	Exception* result;
	result = (Exception*)0;
	result = currException__9bVPeDJlYTi9bQApZpfH8wjg;
	return result;
}
static N_INLINE(void, popCurrentException)(void) {
	currException__9bVPeDJlYTi9bQApZpfH8wjg = (*currException__9bVPeDJlYTi9bQApZpfH8wjg).up;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryConstExpr__7YxUILpPxooC5qqa89a54dw_30)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
	NI oldErrorCount;
	NI oldErrorMax;
	tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA oldErrorOutputs;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	e = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, n, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(e == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	result = getConstExpr__A7gcXCy5E3uGBy5F37NoHA((*c).module, e, (*c).graph);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((result == 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));
	T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T10_ = evalConstExpr__P8uF2QSxl7YdNpBnl0Ybqg((*c).module, (*c).graph, e);
	if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
	result = T10_;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = (result == NIM_NIL);
		if (T13_) goto LA14_;
		T13_ = ((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		LA14_: ;
		if (!T13_) goto LA15_;
		result = NIM_NIL;
	}
	goto LA11_;
	LA15_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
		T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T18_ = fixupTypeAfterEval__uWNSz7p50zmqqN864XaVBA(c, result, e);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		result = T18_;
	}
	LA11_: ;
	if (NIM_UNLIKELY(*nimErr_)) {
		LA9_:;
		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTI__IxbcvonC7TQkv166Uvdu1g_))) {
			*nimErr_ = NIM_FALSE;
			result = NIM_NIL;
			popCurrentException();
			LA20_:;
		}
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*(*c).graph).config).errorCounter = oldErrorCount;
	(*(*(*c).graph).config).errorMax = oldErrorMax;
	(*(*(*c).graph).config).m.errorOutputs = oldErrorOutputs;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprFlagDispatched__vJZwz9bfROKrfrtM50y74CQ_13)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 3))&31U)))!=0)) goto LA3_;
		{
			if (!((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 5))&31U)))!=0)) goto LA7_;
			result = tryConstExpr__7YxUILpPxooC5qqa89a54dw_30(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA5_;
		LA7_: ;
		{
			result = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* evaluated;
			if (!((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 4))&31U)))!=0)) goto LA13_;
			evaluated = getConstExpr__A7gcXCy5E3uGBy5F37NoHA((*c).module, result, (*c).graph);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!((evaluated == NIM_NIL))) goto LA17_;
				result = evaluated;
				goto BeforeRet_;
			}
			LA17_: ;
			evaluated = evalAtCompileTime__7YxUILpPxooC5qqa89a54dw_28(c, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!((evaluated == NIM_NIL))) goto LA21_;
				result = evaluated;
				goto BeforeRet_;
			}
			LA21_: ;
		}
		LA13_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConstrField__dYxITD6gRULNORUNQ6Cc9cg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* assignment;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	assignment = locateFieldInInitExpr__3B9cY0H3QtrZxUpHxV7SvKg(c, field, initExpr);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initValue;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
		if (!!((assignment == NIM_NIL))) goto LA3_;
		{
			if (!(((*assignment).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7))&31U)))!=0)) goto LA7_;
			result = (*assignment)._kind_6.sons->data[((NI) 1)];
			goto BeforeRet_;
		}
		LA7_: ;
		{
			NIM_BOOL T11_;
			tyArray__nHXaesL0DJZHyVS07ARPRA T14_;
			NimStringDesc* T15_;
			T11_ = (NIM_BOOL)0;
			T11_ = fieldVisible__9bfgTfDbdDjqc3nAFjdnkKwsigmatch(c, field);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T11_)) goto LA12_;
			nimZeroMem((void*)T14_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
			T14_[0] = copyString((*(*field).name).s);
			T15_ = (NimStringDesc*)0;
			T15_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_438), T14_, 1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*initExpr).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T15_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_439, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		LA12_: ;
		initValue = semExprFlagDispatched__vJZwz9bfROKrfrtM50y74CQ_13(c, (*assignment)._kind_6.sons->data[((NI) 1)], flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((initValue == NIM_NIL))) goto LA18_;
			initValue = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, (*field).typ, initValue, (*assignment).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA18_: ;
		T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T20_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(field);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*assignment)._kind_6.sons->data[((NI) 0)] = T20_;
		(*assignment)._kind_6.sons->data[((NI) 1)] = initValue;
		(*assignment).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7)) & 31);
		result = initValue;
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, findUsefulCaseContext__0hNT3646PPGbJcsdagLbHg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* discrimator, tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw* Result) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	unsureAsgnRef((void**)&(*Result).Field0, NIM_NIL);
	(*Result).Field1 = 0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (((*(*c).p).caseContext ? (*(*c).p).caseContext->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = colontmp_;
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseNode;
				NI index;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* skipped;
				if (!(((NI) 0) <= res)) goto LA4;
				i = res;
				caseNode = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				caseNode = (*(*c).p).caseContext->data[i].Field0;
				index = (NI)0;
				index = (*(*c).p).caseContext->data[i].Field1;
				skipped = skipHidden__BH9abOhPX8pH0DnEWlRxmlw_3((*caseNode)._kind_6.sons->data[((NI) 0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T7_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp__2;
					NI colontmp__3;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*skipped).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					if (!(T7_)) goto LA8_;
					T7_ = ((*skipped)._kind_4.sym == (*discrimator)._kind_4.sym);
					LA8_: ;
					if (!T7_) goto LA9_;
					colontmp__2 = caseNode;
					colontmp__3 = index;
					(*Result).Field0 = colontmp__2;
					(*Result).Field1 = colontmp__3;
					goto BeforeRet_;
				}
				LA9_: ;
				res -= ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, branchVals__XK56AwQllxmCRE7fuCvRCQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseNode, NI caseIdx, NIM_BOOL isStmtBranch, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* Result) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!((*(*caseNode)._kind_6.sons->data[caseIdx]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA3_;
		initIntSet__n8oDZMn19bEdodSnrBQB9a1Q(Result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI val;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp_;
			val = (NI)0;
			colontmp_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			colontmp_ = (*caseNode)._kind_6.sons->data[caseIdx];
			{
				if (!((*colontmp_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA8_;
				{
					NI i;
					NI colontmp__2;
					NI T11_;
					NI i_2;
					i = (NI)0;
					colontmp__2 = (NI)0;
					T11_ = (NI)0;
					T11_ = len__P89cqdlERShb9alU3iC0yj8wast(colontmp_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					colontmp__2 = (NI)(T11_ - ((NI) 1));
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp__2)) goto LA13;
							i = i_2;
							{
								if (!((*(*colontmp_)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) || (*(*colontmp_)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5))) goto LA16_;
								val = ((NI) ((*(*colontmp_)._kind_6.sons->data[i])._kind_1.intVal));
								incl__jENnK9c9bPE73pKmo2vYjpqg(Result, val);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							goto LA14_;
							LA16_: ;
							{
								if (!((*(*colontmp_)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA19_;
								{
									NI64 i_3;
									NI64 colontmp__3;
									NI64 colontmp__4;
									NI64 res;
									i_3 = (NI64)0;
									colontmp__3 = (NI64)0;
									colontmp__4 = (NI64)0;
									colontmp__3 = (*(*(*colontmp_)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)])._kind_1.intVal;
									colontmp__4 = (*(*(*colontmp_)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)])._kind_1.intVal;
									res = colontmp__3;
									{
										while (1) {
											if (!(res <= colontmp__4)) goto LA23;
											i_3 = res;
											val = ((NI) (i_3));
											incl__jENnK9c9bPE73pKmo2vYjpqg(Result, val);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											res += ((NI) 1);
										} LA23: ;
									}
								}
							}
							goto LA14_;
							LA19_: ;
							LA14_: ;
							i_2 += ((NI) 1);
						} LA13: ;
					}
				}
			}
			LA8_: ;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		getIntSetOfType__uLhVC3evuQrv7q9aBGOuzeQ(c, (*(*caseNode)._kind_6.sons->data[((NI) 0)]).typ, Result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_4;
			NI colontmp__5;
			NI T26_;
			NI i_5;
			i_4 = (NI)0;
			colontmp__5 = (NI)0;
			T26_ = (NI)0;
			T26_ = len__P89cqdlERShb9alU3iC0yj8wast(caseNode);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp__5 = (NI)(T26_ - ((NI) 1));
			i_5 = ((NI) 1);
			{
				while (1) {
					if (!(i_5 < colontmp__5)) goto LA28;
					i_4 = i_5;
					{
						NI val_2;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp__6;
						val_2 = (NI)0;
						colontmp__6 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						colontmp__6 = (*caseNode)._kind_6.sons->data[i_4];
						{
							if (!((*colontmp__6).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA32_;
							{
								NI i_6;
								NI colontmp__7;
								NI T35_;
								NI i_7;
								i_6 = (NI)0;
								colontmp__7 = (NI)0;
								T35_ = (NI)0;
								T35_ = len__P89cqdlERShb9alU3iC0yj8wast(colontmp__6);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								colontmp__7 = (NI)(T35_ - ((NI) 1));
								i_7 = ((NI) 0);
								{
									while (1) {
										if (!(i_7 < colontmp__7)) goto LA37;
										i_6 = i_7;
										{
											if (!((*(*colontmp__6)._kind_6.sons->data[i_6]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) || (*(*colontmp__6)._kind_6.sons->data[i_6]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5))) goto LA40_;
											val_2 = ((NI) ((*(*colontmp__6)._kind_6.sons->data[i_6])._kind_1.intVal));
											excl__jENnK9c9bPE73pKmo2vYjpqg_2(Result, val_2);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										goto LA38_;
										LA40_: ;
										{
											if (!((*(*colontmp__6)._kind_6.sons->data[i_6]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA43_;
											{
												NI64 i_8;
												NI64 colontmp__8;
												NI64 colontmp__9;
												NI64 res_2;
												i_8 = (NI64)0;
												colontmp__8 = (NI64)0;
												colontmp__9 = (NI64)0;
												colontmp__8 = (*(*(*colontmp__6)._kind_6.sons->data[i_6])._kind_6.sons->data[((NI) 0)])._kind_1.intVal;
												colontmp__9 = (*(*(*colontmp__6)._kind_6.sons->data[i_6])._kind_6.sons->data[((NI) 1)])._kind_1.intVal;
												res_2 = colontmp__8;
												{
													while (1) {
														if (!(res_2 <= colontmp__9)) goto LA47;
														i_8 = res_2;
														val_2 = ((NI) (i_8));
														excl__jENnK9c9bPE73pKmo2vYjpqg_2(Result, val_2);
														if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
														res_2 += ((NI) 1);
													} LA47: ;
												}
											}
										}
										goto LA38_;
										LA43_: ;
										LA38_: ;
										i_7 += ((NI) 1);
									} LA37: ;
								}
							}
						}
						LA32_: ;
					}
					i_5 += ((NI) 1);
				} LA28: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, caseBranchMatchesExpr__2m1qzNtSRcrBCjT714EGTA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* matched) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__P89cqdlERShb9alU3iC0yj8wast(branch);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmp_ = (NI)(T2_ - ((NI) 1));
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					if (!((*(*branch)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA7_;
					{
						NIM_BOOL T11_;
						T11_ = (NIM_BOOL)0;
						T11_ = overlap__tlIBRycg3YyKwtO2aPbGGg((*branch)._kind_6.sons->data[i], matched);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T11_) goto LA12_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA12_: ;
				}
				goto LA5_;
				LA7_: ;
				{
					NIM_BOOL T15_;
					T15_ = (NIM_BOOL)0;
					T15_ = exprStructuralEquivalent__E1mnSzj2NONtG7h9cR3AuFA((*branch)._kind_6.sons->data[i], matched, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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__R8ignHxUaQZzB8x7tzNkEg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsRecList, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* constrCtx) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r;
		r = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			if (!((*fieldsRecList).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA4_;
			r = fieldsRecList;
			{
				NIM_BOOL T8_;
				NIM_BOOL T9_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* assignment;
				T8_ = (NIM_BOOL)0;
				T9_ = (NIM_BOOL)0;
				T9_ = (*constrCtx).needsFullInit;
				if (T9_) goto LA10_;
				T9_ = (((*(*r)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 21))&63U)))!=0);
				LA10_: ;
				T8_ = T9_;
				if (T8_) goto LA11_;
				T8_ = !((((*(*(*r)._kind_4.sym).typ).flags & 393216) == 0));
				LA11_: ;
				if (!T8_) goto LA12_;
				assignment = locateFieldInInitExpr__3B9cY0H3QtrZxUpHxV7SvKg(c, (*r)._kind_4.sym, (*constrCtx).initExpr);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NI T18_;
					if (!(assignment == NIM_NIL)) goto LA16_;
					(*constrCtx).missingFields = (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*constrCtx).missingFields), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_));
					T18_ = (*constrCtx).missingFields->Sup.len++;
					(*constrCtx).missingFields->data[T18_] = (*r)._kind_4.sym;
				}
				LA16_: ;
			}
			LA12_: ;
		}
		goto LA2_;
		LA4_: ;
		{
			{
				if (!!(((*fieldsRecList).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138)))) goto LA22_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_435));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA22_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
				field = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(fieldsRecList);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA27;
							i = i_2;
							field = (*fieldsRecList)._kind_6.sons->data[i];
							{
								{
									if (!!(((*field).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA31_;
									goto LA28;
								}
								LA31_: ;
								r = field;
								{
									NIM_BOOL T35_;
									NIM_BOOL T36_;
									tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw T39_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* assignment_2;
									T35_ = (NIM_BOOL)0;
									T36_ = (NIM_BOOL)0;
									T36_ = (*constrCtx).needsFullInit;
									if (T36_) goto LA37_;
									T36_ = (((*(*r)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 21))&63U)))!=0);
									LA37_: ;
									T35_ = T36_;
									if (T35_) goto LA38_;
									T39_ = 0;
									T35_ = !((((*(*(*r)._kind_4.sym).typ).flags & 393216) == T39_));
									LA38_: ;
									if (!T35_) goto LA40_;
									assignment_2 = locateFieldInInitExpr__3B9cY0H3QtrZxUpHxV7SvKg(c, (*r)._kind_4.sym, (*constrCtx).initExpr);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									{
										NI T46_;
										if (!(assignment_2 == NIM_NIL)) goto LA44_;
										(*constrCtx).missingFields = (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*constrCtx).missingFields), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_));
										T46_ = (*constrCtx).missingFields->Sup.len++;
										(*constrCtx).missingFields->data[T46_] = (*r)._kind_4.sym;
									}
									LA44_: ;
								}
								LA40_: ;
							} LA28: ;
							i_2 += ((NI) 1);
						} LA27: ;
					}
				}
			}
		}
		LA2_: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pickCaseBranch__XwTdxP6ATUC1LHA9bBiTnDA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseExpr, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* matched) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL endsWithElse;
	NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (NI)0;
	T1_ = len__P89cqdlERShb9alU3iC0yj8wast(caseExpr);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	endsWithElse = ((*(*caseExpr)._kind_6.sons->data[(NI)(T1_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(caseExpr);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		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__2m1qzNtSRcrBCjT714EGTA((*caseExpr)._kind_6.sons->data[i], matched);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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__P89cqdlERShb9alU3iC0yj8wast(caseExpr);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = (*caseExpr)._kind_6.sons->data[(NI)(T15_ - ((NI) 1))];
		goto BeforeRet_;
	}
	LA13_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ, semConstructFields__uWuMnWjhYSs5k358Hz7X7w)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* constrCtx, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ)0;
	result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 0);
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
			field = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 0);
				{
					while (1) {
						tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ status;
						if (!(i_2 < colontmp_)) goto LA5;
						i = i_2;
						field = (*n)._kind_6.sons->data[i];
						status = semConstructFields__uWuMnWjhYSs5k358Hz7X7w(c, field, constrCtx, flags);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						mergeInitStatus__P9cKs45sta9alE9cK9aOiS7Rhw((&result), status);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_2 += ((NI) 1);
					} LA5: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* discriminator;
		NI selectedBranch;
		discriminator = (*n)._kind_6.sons->data[((NI) 0)];
		{
			NimStringDesc* argX60gensym4955_;
			if (!!(((*discriminator).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA9_;
			argX60gensym4955_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_429);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym4955_, TM__rF9caJawfOjYTjsgLVUSGFA_429);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
		selectedBranch = ((NI) -1);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* innerRecords;
					NI T14_;
					tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ status_2;
					if (!(i_4 < colontmp__2)) goto LA13;
					i_3 = i_4;
					T14_ = (NI)0;
					T14_ = len__P89cqdlERShb9alU3iC0yj8wast((*n)._kind_6.sons->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					innerRecords = (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[(NI)(T14_ - ((NI) 1))];
					status_2 = semConstructFields__uWuMnWjhYSs5k358Hz7X7w(c, innerRecords, constrCtx, flags);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!(((9 &(1U<<((NU)(status_2)&7U)))!=0))) goto LA17_;
						mergeInitStatus__P9cKs45sta9alE9cK9aOiS7Rhw((&result), status_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							NimStringDesc* prevFields;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym4963_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym4963_;
							NI T23_;
							NimStringDesc* currentFields;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym4968_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym4968_;
							NI T24_;
							tyArray__Re75IspeoxXy2oCZHwcRrA T25_;
							NimStringDesc* T26_;
							if (!!((selectedBranch == ((NI) -1)))) goto LA21_;
							branchX60gensym4963_ = (*n)._kind_6.sons->data[selectedBranch];
							T23_ = (NI)0;
							T23_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym4963_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							fieldsX60gensym4963_ = (*branchX60gensym4963_)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))];
							prevFields = fieldsPresentInInitExpr__fAlP9cVEHopuX8Pfr9b5rx9cw(c, fieldsX60gensym4963_, (*constrCtx).initExpr);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							branchX60gensym4968_ = (*n)._kind_6.sons->data[i_3];
							T24_ = (NI)0;
							T24_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym4968_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							fieldsX60gensym4968_ = (*branchX60gensym4968_)._kind_6.sons->data[(NI)(T24_ - ((NI) 1))];
							currentFields = fieldsPresentInInitExpr__fAlP9cVEHopuX8Pfr9b5rx9cw(c, fieldsX60gensym4968_, (*constrCtx).initExpr);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							nimZeroMem((void*)T25_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
							T25_[0] = copyString(prevFields);
							T25_[1] = copyString(currentFields);
							T26_ = (NimStringDesc*)0;
							T26_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_436), T25_, 2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*constrCtx).initExpr).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T26_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_437, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 4);
						}
						goto LA19_;
						LA21_: ;
						{
							selectedBranch = i_3;
						}
						LA19_: ;
					}
					LA17_: ;
					i_4 += ((NI) 1);
				} LA13: ;
			}
		}
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchNode;
			tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags_2;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* discriminatorVal;
			if (!!((selectedBranch == ((NI) -1)))) goto LA30_;
			branchNode = (*n)._kind_6.sons->data[selectedBranch];
			flags_2 = ((flags & 1024) | 48);
			discriminatorVal = semConstrField__dYxITD6gRULNORUNQ6Cc9cg(c, flags_2, (*discriminator)._kind_4.sym, (*constrCtx).initExpr);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!((discriminatorVal == NIM_NIL))) goto LA34_;
				discriminatorVal = skipHidden__BH9abOhPX8pH0DnEWlRxmlw_3(discriminatorVal);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T38_;
					NIM_BOOL T40_;
					NIM_BOOL T41_;
					NIM_BOOL T42_;
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T44_;
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T46_;
					T38_ = (NIM_BOOL)0;
					T38_ = !(((*discriminatorVal).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*discriminatorVal).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22)));
					if (!(T38_)) goto LA39_;
					T40_ = (NIM_BOOL)0;
					T41_ = (NIM_BOOL)0;
					T42_ = (NIM_BOOL)0;
					T42_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA((*discriminatorVal).typ, NIM_TRUE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T41_ = !(T42_);
					if (T41_) goto LA43_;
					T44_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*c).graph).config, (*discriminatorVal).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T41_ = lt___xL5gyZrjbGMarSdRAXOo9ag_3(IL64(65536), T44_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					LA43_: ;
					T40_ = T41_;
					if (T40_) goto LA45_;
					T46_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T40_ = lt___xL5gyZrjbGMarSdRAXOo9ag_3(IL64(65536), T46_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					LA45_: ;
					T38_ = T40_;
					LA39_: ;
					if (!T38_) goto LA47_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_440), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_441, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA47_: ;
			}
			LA34_: ;
			{
				NimStringDesc* fieldsX60gensym4988_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym4989_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym4989_;
				NI T53_;
				tyArray__Re75IspeoxXy2oCZHwcRrA T54_;
				NimStringDesc* T55_;
				if (!(discriminatorVal == NIM_NIL)) goto LA51_;
				branchX60gensym4989_ = (*n)._kind_6.sons->data[selectedBranch];
				T53_ = (NI)0;
				T53_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym4989_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				fieldsX60gensym4989_ = (*branchX60gensym4989_)._kind_6.sons->data[(NI)(T53_ - ((NI) 1))];
				fieldsX60gensym4988_ = fieldsPresentInInitExpr__fAlP9cVEHopuX8Pfr9b5rx9cw(c, fieldsX60gensym4989_, (*constrCtx).initExpr);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				nimZeroMem((void*)T54_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
				T54_[0] = copyString(fieldsX60gensym4988_);
				T54_[1] = copyString((*(*(*discriminator)._kind_4.sym).name).s);
				T55_ = (NimStringDesc*)0;
				T55_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_442), T54_, 2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*constrCtx).initExpr).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T55_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_443, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				mergeInitStatus__P9cKs45sta9alE9cK9aOiS7Rhw((&result), ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA49_;
			LA51_: ;
			{
				tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw T59_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ctorCase;
				NI ctorIdx;
				if (!((*discriminatorVal).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA57_;
				nimZeroMem((void*)(&T59_), sizeof(tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw));
				findUsefulCaseContext__0hNT3646PPGbJcsdagLbHg(c, discriminatorVal, (&T59_));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				ctorCase = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				ctorCase = T59_.Field0;
				ctorIdx = (NI)0;
				ctorIdx = T59_.Field1;
				{
					if (!(ctorCase == NIM_NIL)) goto LA62_;
					{
						tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg rangeVals;
						tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg recBranchVals;
						tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg diff;
						tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg T68_;
						if (!((*(*discriminatorVal).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20))) goto LA66_;
						nimZeroMem((void*)(&rangeVals), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
						getIntSetOfType__uLhVC3evuQrv7q9aBGOuzeQ(c, (*discriminatorVal).typ, (&rangeVals));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						nimZeroMem((void*)(&recBranchVals), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
						branchVals__XK56AwQllxmCRE7fuCvRCQ(c, n, selectedBranch, NIM_FALSE, (&recBranchVals));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						nimZeroMem((void*)(&diff), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
						nimZeroMem((void*)(&T68_), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
						minus___LSsT9adsoi9bg6Vh4SNYfeQQintsets((&rangeVals), (&recBranchVals), (&T68_));
						nimCopyMem((void*)(&diff), (NIM_CONST void*)(&T68_), sizeof(diff));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							NI T71_;
							tyArray__Re75IspeoxXy2oCZHwcRrA T74_;
							NimStringDesc* T75_;
							NimStringDesc* T76_;
							T71_ = (NI)0;
							T71_ = len__litHeZeW9bpJugmXT0ufvwgintsets((&diff));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!((T71_ == ((NI) 0)))) goto LA72_;
							nimZeroMem((void*)T74_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
							T74_[0] = nimIntToStr(selectedBranch);
							T75_ = (NimStringDesc*)0;
							T75_ = renderAsType__jONWMAXSsSmnBgUvyxg7Hw((&diff), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T74_[1] = T75_;
							T76_ = (NimStringDesc*)0;
							T76_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_444), T74_, 2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T76_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_445, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA72_: ;
					}
					goto LA64_;
					LA66_: ;
					{
						NimStringDesc* fieldsX60gensym5003_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym5004_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5004_;
						NI T78_;
						tyArray__Re75IspeoxXy2oCZHwcRrA T79_;
						NimStringDesc* T80_;
						branchX60gensym5004_ = (*n)._kind_6.sons->data[selectedBranch];
						T78_ = (NI)0;
						T78_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym5004_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						fieldsX60gensym5004_ = (*branchX60gensym5004_)._kind_6.sons->data[(NI)(T78_ - ((NI) 1))];
						fieldsX60gensym5003_ = fieldsPresentInInitExpr__fAlP9cVEHopuX8Pfr9b5rx9cw(c, fieldsX60gensym5004_, (*constrCtx).initExpr);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						nimZeroMem((void*)T79_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
						T79_[0] = copyString(fieldsX60gensym5003_);
						T79_[1] = copyString((*(*(*discriminator)._kind_4.sym).name).s);
						T80_ = (NimStringDesc*)0;
						T80_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_442), T79_, 2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*constrCtx).initExpr).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T80_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_443, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						mergeInitStatus__P9cKs45sta9alE9cK9aOiS7Rhw((&result), ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA64_: ;
				}
				goto LA60_;
				LA62_: ;
				{
					NIM_BOOL T82_;
					T82_ = (NIM_BOOL)0;
					T82_ = !(((520 &(1U<<((NU)((*(*discriminatorVal)._kind_4.sym).kind)&31U)))!=0));
					if (T82_) goto LA83_;
					T82_ = ((8388608 &((NU64)1<<((NU)((*(*(*discriminatorVal)._kind_4.sym).typ).kind)&63U)))!=0);
					LA83_: ;
					if (!T82_) goto LA84_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_446), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_447, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA60_;
				LA84_: ;
				{
					if (!((*(*ctorCase)._kind_6.sons->data[ctorIdx]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86))) goto LA87_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_448), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_449, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA60_;
				LA87_: ;
				{
					tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg ctorBranchVals;
					tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg recBranchVals_2;
					tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg branchValsDiff;
					nimZeroMem((void*)(&ctorBranchVals), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
					branchVals__XK56AwQllxmCRE7fuCvRCQ(c, ctorCase, ctorIdx, NIM_TRUE, (&ctorBranchVals));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					nimZeroMem((void*)(&recBranchVals_2), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
					branchVals__XK56AwQllxmCRE7fuCvRCQ(c, n, selectedBranch, NIM_FALSE, (&recBranchVals_2));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					nimZeroMem((void*)(&branchValsDiff), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
					minus___LSsT9adsoi9bg6Vh4SNYfeQQintsets((&ctorBranchVals), (&recBranchVals_2), (&branchValsDiff));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NI T92_;
						tyArray__Re75IspeoxXy2oCZHwcRrA T95_;
						NimStringDesc* T96_;
						NimStringDesc* T97_;
						T92_ = (NI)0;
						T92_ = len__litHeZeW9bpJugmXT0ufvwgintsets((&branchValsDiff));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!!((T92_ == ((NI) 0)))) goto LA93_;
						nimZeroMem((void*)T95_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
						T95_[0] = nimIntToStr(selectedBranch);
						T96_ = (NimStringDesc*)0;
						T96_ = renderAsType__jONWMAXSsSmnBgUvyxg7Hw((&branchValsDiff), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T95_[1] = T96_;
						T97_ = (NimStringDesc*)0;
						T97_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_444), T95_, 2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T97_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_450, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA93_: ;
				}
				LA60_: ;
			}
			goto LA49_;
			LA57_: ;
			{
				NI failedBranch;
				failedBranch = ((NI) -1);
				{
					if (!!(((*branchNode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88)))) goto LA101_;
					{
						NIM_BOOL T105_;
						T105_ = (NIM_BOOL)0;
						T105_ = caseBranchMatchesExpr__2m1qzNtSRcrBCjT714EGTA(branchNode, discriminatorVal);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!!(T105_)) goto LA106_;
						failedBranch = selectedBranch;
					}
					LA106_: ;
				}
				goto LA99_;
				LA101_: ;
				{
					{
						NI i_5;
						NI colontmp__3;
						NI T110_;
						NI i_6;
						i_5 = (NI)0;
						colontmp__3 = (NI)0;
						T110_ = (NI)0;
						T110_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						colontmp__3 = (NI)(T110_ - ((NI) 1));
						i_6 = ((NI) 1);
						{
							while (1) {
								if (!(i_6 < colontmp__3)) goto LA112;
								i_5 = i_6;
								{
									NIM_BOOL T115_;
									T115_ = (NIM_BOOL)0;
									T115_ = caseBranchMatchesExpr__2m1qzNtSRcrBCjT714EGTA((*n)._kind_6.sons->data[i_5], discriminatorVal);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									if (!T115_) goto LA116_;
									failedBranch = i_5;
									goto LA109;
								}
								LA116_: ;
								i_6 += ((NI) 1);
							} LA112: ;
						}
					} LA109: ;
				}
				LA99_: ;
				{
					if (!!((failedBranch == ((NI) -1)))) goto LA120_;
					{
						tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg rangeVals_2;
						tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg recBranchVals_3;
						tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg diff_2;
						tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg T126_;
						if (!((*(*discriminatorVal).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20))) goto LA124_;
						nimZeroMem((void*)(&rangeVals_2), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
						getIntSetOfType__uLhVC3evuQrv7q9aBGOuzeQ(c, (*discriminatorVal).typ, (&rangeVals_2));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						nimZeroMem((void*)(&recBranchVals_3), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
						branchVals__XK56AwQllxmCRE7fuCvRCQ(c, n, selectedBranch, NIM_FALSE, (&recBranchVals_3));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						nimZeroMem((void*)(&diff_2), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
						nimZeroMem((void*)(&T126_), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
						minus___LSsT9adsoi9bg6Vh4SNYfeQQintsets((&rangeVals_2), (&recBranchVals_3), (&T126_));
						nimCopyMem((void*)(&diff_2), (NIM_CONST void*)(&T126_), sizeof(diff_2));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							NI T129_;
							tyArray__Re75IspeoxXy2oCZHwcRrA T132_;
							NimStringDesc* T133_;
							NimStringDesc* T134_;
							T129_ = (NI)0;
							T129_ = len__litHeZeW9bpJugmXT0ufvwgintsets((&diff_2));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!((T129_ == ((NI) 0)))) goto LA130_;
							nimZeroMem((void*)T132_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
							T132_[0] = nimIntToStr(selectedBranch);
							T133_ = (NimStringDesc*)0;
							T133_ = renderAsType__jONWMAXSsSmnBgUvyxg7Hw((&diff_2), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T132_[1] = T133_;
							T134_ = (NimStringDesc*)0;
							T134_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_444), T132_, 2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T134_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_451, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA130_: ;
					}
					goto LA122_;
					LA124_: ;
					{
						NimStringDesc* fieldsX60gensym5036_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym5037_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5037_;
						NI T136_;
						tyArray__24KAM9afIUgUaqBaEBB6r9bg T137_;
						NimStringDesc* T138_;
						NimStringDesc* T139_;
						branchX60gensym5037_ = (*n)._kind_6.sons->data[failedBranch];
						T136_ = (NI)0;
						T136_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym5037_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						fieldsX60gensym5037_ = (*branchX60gensym5037_)._kind_6.sons->data[(NI)(T136_ - ((NI) 1))];
						fieldsX60gensym5036_ = fieldsPresentInInitExpr__fAlP9cVEHopuX8Pfr9b5rx9cw(c, fieldsX60gensym5037_, (*constrCtx).initExpr);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						nimZeroMem((void*)T137_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
						T137_[0] = copyString((*(*(*discriminator)._kind_4.sym).name).s);
						T138_ = (NimStringDesc*)0;
						T138_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(discriminatorVal, 0);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T137_[1] = T138_;
						T137_[2] = copyString(fieldsX60gensym5036_);
						T139_ = (NimStringDesc*)0;
						T139_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_452), T137_, 3);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*constrCtx).initExpr).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T139_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_453, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA122_: ;
				}
				LA120_: ;
			}
			LA49_: ;
			{
				if (!(result == ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 2))) goto LA142_;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5045_;
					NI T148_;
					if (!!((branchNode == NIM_NIL))) goto LA146_;
					T148_ = (NI)0;
					T148_ = len__P89cqdlERShb9alU3iC0yj8wast(branchNode);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					fieldsX60gensym5045_ = (*branchNode)._kind_6.sons->data[(NI)(T148_ - ((NI) 1))];
					collectMissingFields__R8ignHxUaQZzB8x7tzNkEg(c, fieldsX60gensym5045_, constrCtx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA146_: ;
			}
			LA142_: ;
		}
		goto LA28_;
		LA30_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* discriminatorVal_2;
			result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3);
			discriminatorVal_2 = semConstrField__dYxITD6gRULNORUNQ6Cc9cg(c, (flags | 16), (*discriminator)._kind_4.sym, (*constrCtx).initExpr);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* defaultValue;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* matchedBranch;
				if (!(discriminatorVal_2 == NIM_NIL)) goto LA152_;
				defaultValue = newIntLit__TuFlkTIoJNHT6fCcycYtSw((*c).graph, (*(*constrCtx).initExpr).info, IL64(0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				matchedBranch = pickCaseBranch__XwTdxP6ATUC1LHA9bBiTnDA(n, defaultValue);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5050_;
					NI T158_;
					if (!!((matchedBranch == NIM_NIL))) goto LA156_;
					T158_ = (NI)0;
					T158_ = len__P89cqdlERShb9alU3iC0yj8wast(matchedBranch);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					fieldsX60gensym5050_ = (*matchedBranch)._kind_6.sons->data[(NI)(T158_ - ((NI) 1))];
					collectMissingFields__R8ignHxUaQZzB8x7tzNkEg(c, fieldsX60gensym5050_, constrCtx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA156_: ;
			}
			goto LA150_;
			LA152_: ;
			{
				result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 2);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* matchedBranch_2;
					if (!((*discriminatorVal_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA162_;
					matchedBranch_2 = pickCaseBranch__XwTdxP6ATUC1LHA9bBiTnDA(n, discriminatorVal_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!((matchedBranch_2 == NIM_NIL))) goto LA166_;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5056_;
							NI T172_;
							if (!!((matchedBranch_2 == NIM_NIL))) goto LA170_;
							T172_ = (NI)0;
							T172_ = len__P89cqdlERShb9alU3iC0yj8wast(matchedBranch_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							fieldsX60gensym5056_ = (*matchedBranch_2)._kind_6.sons->data[(NI)(T172_ - ((NI) 1))];
							collectMissingFields__R8ignHxUaQZzB8x7tzNkEg(c, fieldsX60gensym5056_, constrCtx);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA170_: ;
					}
					LA166_: ;
				}
				goto LA160_;
				LA162_: ;
				{
					{
						NI i_7;
						NI colontmp__4;
						NI i_8;
						i_7 = (NI)0;
						colontmp__4 = (NI)0;
						colontmp__4 = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_8 = ((NI) 1);
						{
							while (1) {
								if (!(i_8 < colontmp__4)) goto LA176;
								i_7 = i_8;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5062_;
									NI T181_;
									if (!!(((*n)._kind_6.sons->data[i_7] == NIM_NIL))) goto LA179_;
									T181_ = (NI)0;
									T181_ = len__P89cqdlERShb9alU3iC0yj8wast((*n)._kind_6.sons->data[i_7]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									fieldsX60gensym5062_ = (*(*n)._kind_6.sons->data[i_7])._kind_6.sons->data[(NI)(T181_ - ((NI) 1))];
									collectMissingFields__R8ignHxUaQZzB8x7tzNkEg(c, fieldsX60gensym5062_, constrCtx);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								LA179_: ;
								i_8 += ((NI) 1);
							} LA176: ;
						}
					}
				}
				LA160_: ;
			}
			LA150_: ;
		}
		LA28_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
		field_2 = (*n)._kind_4.sym;
		e = semConstrField__dYxITD6gRULNORUNQ6Cc9cg(c, flags, field_2, (*constrCtx).initExpr);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((e == NIM_NIL))) goto LA185_;
			result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 1);
		}
		goto LA183_;
		LA185_: ;
		{
			result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3);
		}
		LA183_: ;
	}
	break;
	default:
	{
		{
			NimStringDesc* argX60gensym5069_;
			if (!NIM_TRUE) goto LA191_;
			argX60gensym5069_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_454);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym5069_, TM__rF9caJawfOjYTjsgLVUSGFA_454);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA191_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ, semConstructTypeAux__sAwB0gQrQ1keYlqxdq08bQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* constrCtx, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ)0;
	result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 0);
	t = (*constrCtx).typ;
	{
		while (1) {
			tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ status;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
			NIM_BOOL T15_;
			status = semConstructFields__uWuMnWjhYSs5k358Hz7X7w(c, (*t).n, constrCtx, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			mergeInitStatus__P9cKs45sta9alE9cK9aOiS7Rhw((&result), status);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!((13 &(1U<<((NU)(status)&7U)))!=0)) goto LA5_;
				collectMissingFields__R8ignHxUaQZzB8x7tzNkEg(c, (*t).n, constrCtx);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA5_: ;
			base = (*t).sons->data[((NI) 0)];
			{
				if (!(base == NIM_NIL)) goto LA9_;
				goto LA1;
			}
			LA9_: ;
			t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(base, IL64(36275087638268176));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA13_;
				goto BeforeRet_;
			}
			LA13_: ;
			T15_ = (NIM_BOOL)0;
			T15_ = (*constrCtx).needsFullInit;
			if (T15_) goto LA16_;
			T15_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0);
			LA16_: ;
			(*constrCtx).needsFullInit = T15_;
		}
	} LA1: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, computeRequiresInit__p5rbEi9c5JmURA4qGF6bxhg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw constrCtx;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ initResult;
	NI T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&constrCtx), sizeof(tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw));
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = newNode__PMZ27S9ai4FB3gXOMDXvwsQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	initConstrContext__RYPHxM9aTf8uWaAnZ0rNc2A(t, T1_, (&constrCtx));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	initResult = semConstructTypeAux__sAwB0gQrQ1keYlqxdq08bQ(c, (&constrCtx), 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (constrCtx.missingFields ? constrCtx.missingFields->Sup.len : 0);
	result = (((NI) 0) < T2_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semObjectNode__T23bTYnaXqU9cKlZ7Ag9bdBg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev, NIM_BOOL isInheritable) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg check;
	NI pos;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* realBase;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = newConstraint__QGpv9bqfXWWeJjJoCL6cRRA(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA4_: ;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&check));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	pos = ((NI) 0);
	base = NIM_NIL;
	realBase = NIM_NIL;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 3), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA8_;
		realBase = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		base = skipTypesOrNil__zsqmUNR5OZrTUna0Y9bdu9bg_2(realBase, IL64(36275087638268176));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(base == 0)) goto LA12_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_51), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_52, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA10_;
		LA12_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* concreteBase;
			concreteBase = skipGenericInvocation__un0CMx5e9axSJU0IN3TyTiwsem(base);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = ((135680 &((NU64)1<<((NU)((*concreteBase).kind)&63U)))!=0);
				if (!(T17_)) goto LA18_;
				T17_ = !((((*concreteBase).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0));
				LA18_: ;
				if (!T17_) goto LA19_;
				{
					if (!((*concreteBase).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA23_;
					{
						NIM_BOOL T27_;
						NIM_BOOL T28_;
						T27_ = (NIM_BOOL)0;
						T28_ = (NIM_BOOL)0;
						T28_ = !(((*concreteBase).sym == NIM_NIL));
						if (!(T28_)) goto LA29_;
						T28_ = ((*(*concreteBase).sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 263));
						LA29_: ;
						T27_ = T28_;
						if (!(T27_)) goto LA30_;
						T27_ = !((((*(*c).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0));
						LA30_: ;
						if (!T27_) goto LA31_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 30), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_53, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA31_: ;
					addInheritedFields__PxMjdK03AEVfD5NRj9bgcDg(c, (&check), (&pos), concreteBase);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA23_: ;
			}
			goto LA15_;
			LA19_: ;
			{
				{
					NimStringDesc* T38_;
					NimStringDesc* T39_;
					if (!!(((*concreteBase).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50)))) goto LA36_;
					T38_ = (NimStringDesc*)0;
					T39_ = (NimStringDesc*)0;
					T39_ = typeToString__QlvraUan7WbHowhAbvDvdA(realBase, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T38_ = rawNewString((T39_ ? T39_->Sup.len : 0) + 120);
appendString(T38_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_60));
appendString(T38_, T39_);
appendString(T38_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_61));
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T38_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_62, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA36_: ;
				base = NIM_NIL;
				realBase = NIM_NIL;
			}
			LA15_: ;
		}
		LA10_: ;
	}
	LA8_: ;
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133)))) goto LA42_;
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_63), TM__rF9caJawfOjYTjsgLVUSGFA_64);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA42_: ;
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17), prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, realBase, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T46_;
		T46_ = (NIM_BOOL)0;
		T46_ = (realBase == NIM_NIL);
		if (!(T46_)) goto LA47_;
		T46_ = isInheritable;
		LA47_: ;
		if (!T46_) goto LA48_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 3)) & 63);
	}
	LA48_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T54_;
		if (!((*result).n == 0)) goto LA52_;
		T54_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T54_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).n = T54_;
	}
	goto LA50_;
	LA52_: ;
	{
		addInheritedFields__PxMjdK03AEVfD5NRj9bgcDg(c, (&check), (&pos), result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA50_: ;
	semRecordNodeAux__xnbsksR9alpM9axWraQlPoDQ(c, (*n)._kind_6.sons->data[((NI) 2)], (&check), (&pos), (*result).n, result, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T60_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T61_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA58_;
		T60_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T60_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_427));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T61_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T61_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T60_, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		s = newSymS__z0Xq7x7aKOzONyxr8mX73A_2(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), T61_, c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s).typ = result;
		pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, s, (*n)._kind_6.sons->data[((NI) 0)], TM__rF9caJawfOjYTjsgLVUSGFA_428, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA58_: ;
	{
		NIM_BOOL T64_;
		T64_ = (NIM_BOOL)0;
		T64_ = (base == NIM_NIL);
		if (!(T64_)) goto LA65_;
		T64_ = !((((*result).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 3))&63U)))!=0));
		LA65_: ;
		if (!T64_) goto LA66_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2)) & 63);
	}
	LA66_: ;
	{
		NIM_BOOL T70_;
		T70_ = (NIM_BOOL)0;
		T70_ = ((*c).inGenericContext == ((NI) 0));
		if (!(T70_)) goto LA71_;
		T70_ = computeRequiresInit__p5rbEi9c5JmURA4qGF6bxhg(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA71_: ;
		if (!T70_) goto LA72_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 18)) & 63);
	}
	LA72_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semAnyRef__WkfdPzqjIHjpNCHcK8ViDg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ < ((NI) 1))) goto LA4_;
		result = newConstraint__QGpv9bqfXWWeJjJoCL6cRRA(c, kind);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		NI isCall;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		NIM_BOOL isNilable;
		tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag wrapperKind;
		isCall = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA9_;
			n_2 = (*n)._kind_6.sons->data[((NI) 0)];
		}
		goto LA7_;
		LA9_: ;
		{
			n_2 = n;
		}
		LA7_: ;
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n_2, ((NI) 1), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		body = lastSon__UPSW0jLTX5qJL51YMUAHgw(n_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T14_;
			NIM_BOOL T15_;
			T14_ = (NIM_BOOL)0;
			T15_ = (NIM_BOOL)0;
			T15_ = !((prev == NIM_NIL));
			if (!(T15_)) goto LA16_;
			T15_ = ((*body).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133));
			LA16_: ;
			T14_ = T15_;
			if (!(T14_)) goto LA17_;
			T14_ = (((*prev).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 3))&63U)))!=0);
			LA17_: ;
			if (!T14_) goto LA18_;
			t = semObjectNode__T23bTYnaXqU9cKlZ7Ag9bdBg(c, body, NIM_NIL, NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA12_;
		LA18_: ;
		{
			t = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, body, NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA12_: ;
		{
			NIM_BOOL T23_;
			T23_ = (NIM_BOOL)0;
			T23_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			if (!(T23_)) goto LA24_;
			T23_ = !((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0));
			LA24_: ;
			if (!T23_) goto LA25_;
			t = base__PfgI9ap7WOnsRfFV4znQ27w(t);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA25_: ;
		{
			NimStringDesc* T31_;
			NimStringDesc* T32_;
			if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA29_;
			T31_ = (NimStringDesc*)0;
			T31_ = toHumanStr__8clA3iQh1Lbc5cnapppbXQ(kind);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T32_ = (NimStringDesc*)0;
			T32_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_455), T31_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T32_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_456, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA29_: ;
		result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(kind, prev, c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		isNilable = NIM_FALSE;
		wrapperKind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0);
		{
			NI i;
			NI colontmp_;
			NI T34_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T34_ = (NI)0;
			T34_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp_ = (NI)(T34_ - ((NI) 1));
			i_2 = isCall;
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ni;
					if (!(i_2 < colontmp_)) goto LA36;
					i = i_2;
					ni = (*n_2)._kind_6.sons->data[i];
					{
						if (!((*ni).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA39_;
						isNilable = NIM_TRUE;
					}
					goto LA37_;
					LA39_: ;
					{
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* region;
						region = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, ni, NIM_NIL);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!((IL64(105553116266496) &((NU64)1<<((NU)((*region).kind)&63U)))!=0)) goto LA44_;
							wrapperKind = (*region).kind;
						}
						goto LA42_;
						LA44_: ;
						{
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T47_;
							T47_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T47_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(region, IL64(70368744179728));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(((IL64(1125899906973696) &((NU64)1<<((NU)((*T47_).kind)&63U)))!=0))) goto LA48_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n_2)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_457), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_458, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, region);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA42_;
						LA48_: ;
						{
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 16), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_459), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_460, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, region);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA42_: ;
					}
					LA37_: ;
					i_2 += ((NI) 1);
				} LA36: ;
			}
		}
		addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(((*result).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 16))&63U)))!=0)) goto LA53_;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T57_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T60_;
				T57_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T57_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(result);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!((*T57_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA58_;
				T60_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T60_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(result);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*T60_).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 16)) & 63);
			}
			LA58_: ;
		}
		LA53_: ;
		switch (wrapperKind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
		{
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
				if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA64_;
				t_2 = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45), c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*t_2).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4)) & 63);
				rawAddSonNoPropagationOfTypeFlags__9a8CdZqChTyqzq5bpSL3TzA_2(t_2, result);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = t_2;
			}
			LA64_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_3;
			t_3 = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46), c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			rawAddSonNoPropagationOfTypeFlags__9a8CdZqChTyqzq5bpSL3TzA_2(t_3, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = t_3;
		}
		break;
		default:
		{
		}
		break;
		}
		{
			NIM_BOOL T70_;
			T70_ = (NIM_BOOL)0;
			T70_ = ((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
			if (!(T70_)) goto LA71_;
			T70_ = ((96 &(1U<<((NU)((*(*(*c).graph).config).selectedGC)&15U)))!=0);
			LA71_: ;
			if (!T70_) goto LA72_;
			(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31)) & 63);
		}
		LA72_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semTypeof2__O8zf75mcUwo9cfPQUQRaEug_6)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	NI64 m;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t;
	tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ T12_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	m = IL64(1);
	{
		NI T4_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* mode;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ == ((NI) 3))) goto LA5_;
		mode = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, (*n)._kind_6.sons->data[((NI) 2)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*mode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)))) goto LA9_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_224), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_462, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA7_;
		LA9_: ;
		{
			m = (*mode)._kind_1.intVal;
		}
		LA7_: ;
	}
	LA5_: ;
	{
		if (!(m == IL64(1))) goto LA15_;
		T12_ = 4;
	}
	goto LA13_;
	LA15_: ;
	{
		T12_ = 0;
	}
	LA13_: ;
	t = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 1)], T12_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	fixupTypeOf__3zDDdB9b7Qt20FH75Al61MA(c, prev, t);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (*t).typ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, commonType__hfwrZ5ThSx8sbABQFEwdHg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* y) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (!(x == NIM_NIL)) goto LA3_;
		result = x;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(y == NIM_NIL)) goto LA7_;
		result = y;
		goto BeforeRet_;
	}
	LA7_: ;
	a = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(x, IL64(70368744179728));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	b = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(y, IL64(70368744179728));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = x;
	{
		if (!((96 &((NU64)1<<((NU)((*a).kind)&63U)))!=0)) goto LA11_;
		result = y;
	}
	goto LA9_;
	LA11_: ;
	{
		if (!((96 &((NU64)1<<((NU)((*b).kind)&63U)))!=0)) goto LA14_;
		result = x;
	}
	goto LA9_;
	LA14_: ;
	{
		if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7))) goto LA17_;
		result = a;
	}
	goto LA9_;
	LA17_: ;
	{
		if (!((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7))) goto LA20_;
		result = b;
	}
	goto LA9_;
	LA20_: ;
	{
		if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA23_;
		{
			NI T27_;
			T27_ = (NI)0;
			T27_ = len__5mJADrRYkP3r9auuiuDZN9cQast(a);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T27_ == ((NI) 0))) goto LA28_;
			result = a;
		}
		goto LA25_;
		LA28_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T31_;
			result = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8), (*a).owner);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T31_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T31_ = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), (*a).owner);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, T31_, NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA25_: ;
	}
	goto LA9_;
	LA23_: ;
	{
		NIM_BOOL T33_;
		NI idx;
		T33_ = (NIM_BOOL)0;
		T33_ = ((17367040 &((NU64)1<<((NU)((*b).kind)&63U)))!=0);
		if (!(T33_)) goto LA34_;
		T33_ = ((*a).kind == (*b).kind);
		LA34_: ;
		if (!T33_) goto LA35_;
		idx = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16));
		{
			if (!((*(*a).sons->data[idx]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3))) goto LA39_;
			result = y;
			goto BeforeRet_;
		}
		LA39_: ;
	}
	goto LA9_;
	LA35_: ;
	{
		NIM_BOOL T42_;
		NIM_BOOL T43_;
		NI T46_;
		NI T47_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* nt;
		T42_ = (NIM_BOOL)0;
		T43_ = (NIM_BOOL)0;
		T43_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		if (!(T43_)) goto LA44_;
		T43_ = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		LA44_: ;
		T42_ = T43_;
		if (!(T42_)) goto LA45_;
		T46_ = (NI)0;
		T46_ = len__5mJADrRYkP3r9auuiuDZN9cQast(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T47_ = (NI)0;
		T47_ = len__5mJADrRYkP3r9auuiuDZN9cQast(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T42_ = (T46_ == T47_);
		LA45_: ;
		if (!T42_) goto LA48_;
		nt = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(a);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					NIM_BOOL aEmpty;
					NIM_BOOL bEmpty;
					if (!(i_2 < colontmp_)) goto LA52;
					i = i_2;
					aEmpty = isEmptyContainer__YPjOkGV9axAnGR3UfLeWZ1g_4((*a).sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					bEmpty = isEmptyContainer__YPjOkGV9axAnGR3UfLeWZ1g_4((*b).sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!((aEmpty == bEmpty))) goto LA55_;
						{
							if (!(nt == 0)) goto LA59_;
							nt = copyType__4O4aYoscFPo2FRSh4rP9ayg(a, (*a).owner, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA59_: ;
						{
							if (!aEmpty) goto LA63_;
							(*nt).sons->data[i] = (*b).sons->data[i];
						}
						goto LA61_;
						LA63_: ;
						{
							(*nt).sons->data[i] = (*a).sons->data[i];
						}
						LA61_: ;
					}
					LA55_: ;
					i_2 += ((NI) 1);
				} LA52: ;
			}
		}
		{
			if (!!((nt == 0))) goto LA68_;
			result = nt;
		}
		LA68_: ;
	}
	goto LA9_;
	LA48_: ;
	{
		NIM_BOOL T71_;
		T71_ = (NIM_BOOL)0;
		T71_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20));
		if (!(T71_)) goto LA72_;
		T71_ = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20));
		LA72_: ;
		if (!T71_) goto LA73_;
		{
			NIM_BOOL T77_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T80_;
			T77_ = (NIM_BOOL)0;
			T77_ = sameType__3isNyHKb0U1OCnClmflXSg(a, b, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T77_)) goto LA78_;
			T80_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T80_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(a, 1048576);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = skipIntLit__PyQcLUUKkDYcpwke36Qpxgmagicsys(T80_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA78_: ;
	}
	goto LA9_;
	LA73_: ;
	{
		tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag k;
		k = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0);
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T90_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T91_;
			if (!((6291456 &((NU64)1<<((NU)((*a).kind)&63U)))!=0)) goto LA84_;
			k = (*a).kind;
			{
				if (!!(((*b).kind == (*a).kind))) goto LA88_;
				result = x;
				goto BeforeRet_;
			}
			LA88_: ;
			T90_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T90_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(a);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			a = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T90_, 2048);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T91_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T91_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(b);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			b = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T91_, 2048);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA84_: ;
		{
			NIM_BOOL T94_;
			T94_ = (NIM_BOOL)0;
			T94_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
			if (!(T94_)) goto LA95_;
			T94_ = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
			LA95_: ;
			if (!T94_) goto LA96_;
			result = commonSuperclass__CFsXKWHnV1O9asJrtw08whA(a, b);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T100_;
				T100_ = (NIM_BOOL)0;
				T100_ = (result == 0);
				if (T100_) goto LA101_;
				T100_ = (result == a);
				LA101_: ;
				if (!T100_) goto LA102_;
				result = x;
				goto BeforeRet_;
			}
			LA102_: ;
			{
				if (!(result == b)) goto LA106_;
				result = y;
				goto BeforeRet_;
			}
			LA106_: ;
			{
				NIM_BOOL T110_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* r;
				T110_ = (NIM_BOOL)0;
				T110_ = !((k == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)));
				if (!(T110_)) goto LA111_;
				T110_ = !(((*x).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11)));
				LA111_: ;
				if (!T110_) goto LA112_;
				r = result;
				result = newType__SNqpa06pdVCLFFBR28119aQ(k, (*r).owner);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, r);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA112_: ;
		}
		LA96_: ;
	}
	LA9_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semWhen__5C4HPXQuhxlMYIzPbe36lg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL semCheck) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL whenNimvm;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = NIM_NIL;
	whenNimvm = NIM_FALSE;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) newObj((&NTI__AgIT5feFR9a9aoVjv9cx2rOtg_), sizeof(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ));
	(*T1_).Sup.Sup.m_type = (&NTI__v9ae2Dpu13OW2ZJ2U9bNMd9cQ_);
	(*T1_).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6);
	typ = T1_;
	{
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NI T6_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exprNode;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T6_ = (NI)0;
		T6_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T5_ = (T6_ == ((NI) 2));
		if (!(T5_)) goto LA7_;
		T5_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86));
		LA7_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA8_;
		T4_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88));
		LA8_: ;
		if (!T4_) goto LA9_;
		exprNode = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T15_;
			if (!((*exprNode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA13_;
			T15_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			T15_ = lookUp__CLMmoDuBHkJLvNsKvljGNw_2(c, exprNode);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			whenNimvm = ((*T15_).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 258));
		}
		goto LA11_;
		LA13_: ;
		{
			if (!((*exprNode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA17_;
			whenNimvm = ((*(*exprNode)._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 258));
		}
		goto LA11_;
		LA17_: ;
		LA11_: ;
		{
			if (!whenNimvm) goto LA21_;
			(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 8)) & 31);
		}
		LA21_: ;
	}
	LA9_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA25;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				switch ((*it).kind) {
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49):
				{
					checkSonsLen__EezdXeDvu4rB7fR84AJZgw(it, ((NI) 2), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!whenNimvm) goto LA29_;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
							if (!semCheck) goto LA33_;
							T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T35_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*it)._kind_6.sons->data[((NI) 1)], 0);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*it)._kind_6.sons->data[((NI) 1)] = T35_;
							typ = commonType__hfwrZ5ThSx8sbABQFEwdHg(typ, (*(*it)._kind_6.sons->data[((NI) 1)]).typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA33_: ;
						result = n;
					}
					goto LA27_;
					LA29_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
						tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T37_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T38_;
						T37_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
						T37_ = c;
						T38_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T38_ = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, (*it)._kind_6.sons->data[((NI) 0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						e = forceBool__7YxUILpPxooC5qqa89a54dw_4(T37_, T38_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!!(((*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)))) goto LA41_;
						}
						goto LA39_;
						LA41_: ;
						{
							NIM_BOOL T44_;
							T44_ = (NIM_BOOL)0;
							T44_ = !(((*e)._kind_1.intVal == IL64(0)));
							if (!(T44_)) goto LA45_;
							T44_ = (result == NIM_NIL);
							LA45_: ;
							if (!T44_) goto LA46_;
							{
								if (!semCheck) goto LA50_;
								result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*it)._kind_6.sons->data[((NI) 1)], 0);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							goto LA48_;
							LA50_: ;
							{
								result = (*it)._kind_6.sons->data[((NI) 1)];
							}
							LA48_: ;
						}
						goto LA39_;
						LA46_: ;
						LA39_: ;
					}
					LA27_: ;
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 50):
				{
					checkSonsLen__EezdXeDvu4rB7fR84AJZgw(it, ((NI) 1), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NIM_BOOL T56_;
						T56_ = (NIM_BOOL)0;
						T56_ = (result == NIM_NIL);
						if (T56_) goto LA57_;
						T56_ = whenNimvm;
						LA57_: ;
						if (!T56_) goto LA58_;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T64_;
							if (!semCheck) goto LA62_;
							T64_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T64_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*it)._kind_6.sons->data[((NI) 0)], 0);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*it)._kind_6.sons->data[((NI) 0)] = T64_;
							typ = commonType__hfwrZ5ThSx8sbABQFEwdHg(typ, (*(*it)._kind_6.sons->data[((NI) 0)]).typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA62_: ;
						{
							if (!(result == NIM_NIL)) goto LA67_;
							result = (*it)._kind_6.sons->data[((NI) 0)];
						}
						LA67_: ;
					}
					LA58_: ;
				}
				break;
				default:
				{
					illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				break;
				}
				i_2 += ((NI) 1);
			} LA25: ;
		}
	}
	{
		if (!(result == NIM_NIL)) goto LA72_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA72_: ;
	{
		if (!whenNimvm) goto LA76_;
		(*result).typ = typ;
	}
	LA76_: ;
	idSynchronizationPoint__o9blMKDNUEgfiqOxiffy8Tw(((NI) 200));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, semTypeIdent__AO57Q9bSpsZiuv7kwwoM7yw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		result = getGenSym__pT6glwCH57hiSrY6Jp4rug(c, (*n)._kind_4.sym);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		result = pickSym__SVsbCvrhrWQIRF0pM3cw5Q(c, n, 152, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(result == 0)) goto LA8_;
			result = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag(c, n, 3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA8_: ;
		{
			if (!!((result == NIM_NIL))) goto LA12_;
			markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T16_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T32_;
				T16_ = (NIM_BOOL)0;
				T16_ = ((*result).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				if (!(T16_)) goto LA17_;
				T16_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
				LA17_: ;
				if (!T16_) goto LA18_;
				{
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* bound;
					if (!(((NI) 0) < (*c).inGenericInst)) goto LA22_;
					bound = (*(*(*result).typ).sons->data[((NI) 0)]).sym;
					{
						if (!!((bound == NIM_NIL))) goto LA26_;
						result = bound;
						goto BeforeRet_;
					}
					LA26_: ;
					goto BeforeRet_;
				}
				LA22_: ;
				{
					if (!((*(*result).typ).sym == NIM_NIL)) goto LA30_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_464, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					result = errorSym__CLMmoDuBHkJLvNsKvljGNw(c, n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
				LA30_: ;
				result = copySym__lIu8wX6Beq6dBJgESOFFjg((*(*result).typ).sym);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T32_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T32_ = exactReplica__wG9cFX0BL4VD1hNwr4zEuwQ((*result).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).typ = T32_;
				(*(*result).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)) & 63);
			}
			LA18_: ;
			{
				if (!((*result).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4))) goto LA35_;
				{
					NIM_BOOL T39_;
					NIM_BOOL T40_;
					NI T42_;
					T39_ = (NIM_BOOL)0;
					T40_ = (NIM_BOOL)0;
					T40_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12));
					if (!(T40_)) goto LA41_;
					T42_ = (NI)0;
					T42_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*result).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T40_ = (T42_ == ((NI) 0));
					LA41_: ;
					T39_ = T40_;
					if (!(T39_)) goto LA43_;
					T39_ = (((*(*result).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0);
					LA43_: ;
					if (!T39_) goto LA44_;
					transitionGenericParamToType__EEixHgS5VK63cVXrrMe6Tw(result);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*(*result).typ).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30)) & 63));
					goto BeforeRet_;
				}
				goto LA37_;
				LA44_: ;
				{
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_465, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					result = errorSym__CLMmoDuBHkJLvNsKvljGNw(c, n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
				LA37_: ;
			}
			LA35_: ;
			{
				NIM_BOOL T49_;
				tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ ov;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* amb;
				T49_ = (NIM_BOOL)0;
				T49_ = !(((*result).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7)));
				if (!(T49_)) goto LA50_;
				T49_ = !(((*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 24) || (*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 17) || (*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 18)));
				LA50_: ;
				if (!T49_) goto LA51_;
				nimZeroMem((void*)(&ov), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
				amb = initOverloadIter__yTTeeqtnENsm0xyCro9a61w((&ov), c, n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					while (1) {
						NIM_BOOL T55_;
						T55_ = (NIM_BOOL)0;
						T55_ = !((amb == NIM_NIL));
						if (!(T55_)) goto LA56_;
						T55_ = !(((*amb).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7)));
						LA56_: ;
						if (!T55_) goto LA54;
						amb = nextOverloadIter__yTTeeqtnENsm0xyCro9a61w_2((&ov), c, n);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					} LA54: ;
				}
				{
					if (!!((amb == NIM_NIL))) goto LA59_;
					result = amb;
				}
				goto LA57_;
				LA59_: ;
				{
					{
						if (!!(((*result).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0)))) goto LA64_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_466, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA64_: ;
					result = errorSym__CLMmoDuBHkJLvNsKvljGNw(c, n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
				LA57_: ;
			}
			LA51_: ;
			{
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q oldInfo;
				if (!!(((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)))) goto LA68_;
				oldInfo = (*n).info;
				reset__2DpKIamrWIkCdM4vNi0Xcw(n);
				transitionNoneToSym__ZdMf7vswMpd0Pc5oB9aS4og(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_4.sym = result;
				(*n).info = oldInfo;
				(*n).typ = (*result).typ;
			}
			LA68_: ;
		}
		goto LA10_;
		LA12_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_467), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_468, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = errorSym__CLMmoDuBHkJLvNsKvljGNw(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA10_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, symFromExpectedTypeNode__AO57Q9bSpsZiuv7kwwoM7yw_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4))) goto LA3_;
		result = symFromType__xO2UfktRDKCUWUorFz9cLYA(c, (*n).typ, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_469, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = errorSym__CLMmoDuBHkJLvNsKvljGNw(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semArrayIndex__aJQEuszymrhDdKaEXWG3Vg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isRange__ZcP19cH3pVINjK9ckLU2rBeQtrees(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		result = semRangeAux__O8zf75mcUwo9cfPQUQRaEug_4(c, n, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
		e = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, n, 256);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*(*e).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61))) goto LA9_;
			result = makeRangeWithStaticExpr__D2YW7F23KYvdV39aTScM3IQ_2(c, (*(*e).typ).n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA7_;
		LA9_: ;
		{
			if (!((*e).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) && (*e).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA12_;
			{
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T18_;
				NimStringDesc* T19_;
				NimStringDesc* T20_;
				if (!((*e)._kind_1.intVal < IL64(0))) goto LA16_;
				T18_ = (*(*n)._kind_6.sons->data[((NI) 1)]).info;
				T19_ = (NimStringDesc*)0;
				T20_ = (NimStringDesc*)0;
				T20_ = nimInt64ToStr((*e)._kind_1.intVal);
				T19_ = rawNewString((T20_ ? T20_->Sup.len : 0) + 40);
appendString(T19_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_470));
appendString(T19_, T20_);
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T18_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T19_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_471, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA16_: ;
			result = makeRangeType__Jrbal1EnVldk9cZ2EZVjuLQ(c, IL64(0), (NI64)((*e)._kind_1.intVal - IL64(1)), (*n).info, (*e).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA7_;
		LA12_: ;
		{
			NIM_BOOL T22_;
			T22_ = (NIM_BOOL)0;
			T22_ = ((*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T22_)) goto LA23_;
			T22_ = ((*(*e).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
			LA23_: ;
			if (!T22_) goto LA24_;
			{
				if (!!(((*(*e)._kind_4.sym).ast == NIM_NIL))) goto LA28_;
				result = semArrayIndex__aJQEuszymrhDdKaEXWG3Vg(c, (*(*e)._kind_4.sym).ast);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			LA28_: ;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T32_;
				NIM_BOOL T33_;
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
				T32_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T32_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ((*e).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T33_ = (NIM_BOOL)0;
				T33_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA(T32_, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!(T33_)) goto LA34_;
				{
					NI T38_;
					T38_ = (NI)0;
					T38_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!(((NI) 1) < T38_)) goto LA39_;
					info = (*(*n)._kind_6.sons->data[((NI) 1)]).info;
				}
				goto LA36_;
				LA39_: ;
				{
					info = (*n).info;
				}
				LA36_: ;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_299), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_472, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA34_: ;
			result = makeRangeWithStaticExpr__D2YW7F23KYvdV39aTScM3IQ_2(c, e);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!(((NI) 0) < (*c).inGenericContext)) goto LA44_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)) & 63);
			}
			LA44_: ;
		}
		goto LA7_;
		LA24_: ;
		{
			NIM_BOOL T47_;
			T47_ = (NIM_BOOL)0;
			T47_ = ((*e).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) && (*e).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32) || (*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
			if (!(T47_)) goto LA48_;
			T47_ = hasUnresolvedArgs__iY9a3KG6T9aTt3fJH8J6BrJQ(c, e);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA48_: ;
			if (!T47_) goto LA49_;
			{
				NIM_BOOL T53_;
				T53_ = (NIM_BOOL)0;
				T53_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA((*e).typ, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!(T53_)) goto LA54_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_299), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_473, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA54_: ;
			result = makeRangeWithStaticExpr__D2YW7F23KYvdV39aTScM3IQ_2(c, e);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA7_;
		LA49_: ;
		{
			if (!((*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA57_;
			result = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, 256);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA7_;
		LA57_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			x = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, e);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NI64 T64_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T65_;
				if (!((*x).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) && (*x).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA62_;
				T64_ = (NI64)0;
				T64_ = (NI64)((*x)._kind_1.intVal - IL64(1));
				T65_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T65_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*x).typ, 256);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = makeRangeType__Jrbal1EnVldk9cZ2EZVjuLQ(c, IL64(0), T64_, (*n).info, T65_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA60_;
			LA62_: ;
			{
				result = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*x).typ, 256);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA60_: ;
		}
		LA7_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semArray__O8zf75mcUwo9cfPQUQRaEug_7)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	base = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NI T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* indx;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* indxB;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 3))) goto LA4_;
		indx = semArrayIndex__aJQEuszymrhDdKaEXWG3Vg(c, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		indxB = indx;
		{
			if (!((IL64(70368744179728) &((NU64)1<<((NU)((*indxB).kind)&63U)))!=0)) goto LA8_;
			indxB = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(indxB);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA8_: ;
		{
			if (!!(((IL64(3458764513820545024) &((NU64)1<<((NU)((*indxB).kind)&63U)))!=0))) goto LA12_;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T16_;
				T16_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T16_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(indxB, 1048576);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!((IL64(18691697672192) &((NU64)1<<((NU)((*T16_).kind)&63U)))!=0)) goto LA17_;
			}
			goto LA14_;
			LA17_: ;
			{
				NIM_BOOL T20_;
				T20_ = (NIM_BOOL)0;
				T20_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA(indxB, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!(T20_)) goto LA21_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_299), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_474, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA14_;
			LA21_: ;
			{
				NIM_BOOL T24_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T27_;
				NimStringDesc* T28_;
				NimStringDesc* T29_;
				T24_ = (NIM_BOOL)0;
				T24_ = enumHasHoles__YPjOkGV9axAnGR3UfLeWZ1g_3(indxB);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T24_) goto LA25_;
				T27_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T27_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(indxB, 1048576);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T28_ = (NimStringDesc*)0;
				T28_ = typeToString__QlvraUan7WbHowhAbvDvdA(T27_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T29_ = (NimStringDesc*)0;
				T29_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_33), T28_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T29_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_475, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA14_;
			LA25_: ;
			LA14_: ;
		}
		LA12_: ;
		base = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 2)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16), prev, c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		rawAddSonNoPropagationOfTypeFlags__9a8CdZqChTyqzq5bpSL3TzA_2(result, indx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, base);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_476), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_477, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semContainerArg__tX9cFHLAurfZYsTsUVxevYw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* kindStr, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 2))) goto LA4_;
		base = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 1)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NimStringDesc* T10_;
			NimStringDesc* T11_;
			if (!((*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA8_;
			T10_ = (NimStringDesc*)0;
			T10_ = typeToString__QlvraUan7WbHowhAbvDvdA(base, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T11_ = (NimStringDesc*)0;
			T11_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_478), T10_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T11_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_479, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA8_: ;
		addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, base);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		NimStringDesc* T13_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
		T13_ = (NimStringDesc*)0;
		T13_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_480), kindStr);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T13_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_481, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T14_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T14_ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, T14_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semContainer__9c9cJm09bVJhp6JDeDwpDcllw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, NimStringDesc* kindStr, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(kind, prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	semContainerArg__tX9cFHLAurfZYsTsUVxevYw(c, n, kindStr, result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semRange__O8zf75mcUwo9cfPQUQRaEug_8)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 2))) goto LA4_;
		{
			NIM_BOOL T8_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
			T8_ = (NIM_BOOL)0;
			T8_ = isRange__ZcP19cH3pVINjK9ckLU2rBeQtrees((*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T8_) goto LA9_;
			result = semRangeAux__O8zf75mcUwo9cfPQUQRaEug_4(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			n_2 = (*result).n;
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = ((*(*n_2)._kind_6.sons->data[((NI) 0)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*n_2)._kind_6.sons->data[((NI) 0)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
				if (!(T13_)) goto LA14_;
				T13_ = (IL64(0) < (*(*n_2)._kind_6.sons->data[((NI) 0)])._kind_1.intVal);
				LA14_: ;
				if (!T13_) goto LA15_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 18)) & 63);
			}
			goto LA11_;
			LA15_: ;
			{
				NIM_BOOL T18_;
				T18_ = (NIM_BOOL)0;
				T18_ = ((*(*n_2)._kind_6.sons->data[((NI) 1)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*n_2)._kind_6.sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
				if (!(T18_)) goto LA19_;
				T18_ = ((*(*n_2)._kind_6.sons->data[((NI) 1)])._kind_1.intVal < IL64(0));
				LA19_: ;
				if (!T18_) goto LA20_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 18)) & 63);
			}
			goto LA11_;
			LA20_: ;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = ((*(*n_2)._kind_6.sons->data[((NI) 0)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) && (*(*n_2)._kind_6.sons->data[((NI) 0)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18));
				if (!(T23_)) goto LA24_;
				T23_ = (0.0 < (*(*n_2)._kind_6.sons->data[((NI) 0)])._kind_2.floatVal);
				LA24_: ;
				if (!T23_) goto LA25_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 18)) & 63);
			}
			goto LA11_;
			LA25_: ;
			{
				NIM_BOOL T28_;
				T28_ = (NIM_BOOL)0;
				T28_ = ((*(*n_2)._kind_6.sons->data[((NI) 1)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) && (*(*n_2)._kind_6.sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18));
				if (!(T28_)) goto LA29_;
				T28_ = ((*(*n_2)._kind_6.sons->data[((NI) 1)])._kind_2.floatVal < 0.0);
				LA29_: ;
				if (!T28_) goto LA30_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 18)) & 63);
			}
			goto LA11_;
			LA30_: ;
			LA11_: ;
		}
		goto LA6_;
		LA9_: ;
		{
			{
				NIM_BOOL T35_;
				tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T37_;
				T35_ = (NIM_BOOL)0;
				T35_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29));
				if (!(T35_)) goto LA36_;
				T37_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
				T37_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], NIM_NIL);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T35_ = eqStrings((*T37_).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_484));
				LA36_: ;
				if (!T35_) goto LA38_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_485), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_486, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA33_;
			LA38_: ;
			{
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_487), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_488, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA33_: ;
			result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NimStringDesc* T42_;
		T42_ = (NimStringDesc*)0;
		T42_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_480), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_489));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T42_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_490, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semSet__O8zf75mcUwo9cfPQUQRaEug_9)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19), prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		NI T4_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (T4_ == ((NI) 2));
		if (!(T3_)) goto LA5_;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		LA5_: ;
		if (!T3_) goto LA6_;
		base = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 1)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, base);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((IL64(70368744179728) &((NU64)1<<((NU)((*base).kind)&63U)))!=0)) goto LA10_;
			base = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(base);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA10_: ;
		{
			if (!!(((*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)))) goto LA14_;
			{
				NIM_BOOL T18_;
				T18_ = (NIM_BOOL)0;
				T18_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA(base, NIM_TRUE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!(T18_)) goto LA19_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_299), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_491, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA16_;
			LA19_: ;
			{
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T22_;
				NIM_BOOL T23_;
				T22_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*c).graph).config, base);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T23_ = (NIM_BOOL)0;
				T23_ = lt___xL5gyZrjbGMarSdRAXOo9ag_3(IL64(65536), T22_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T23_) goto LA24_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_492), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_493, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA16_;
			LA24_: ;
			LA16_: ;
		}
		LA14_: ;
	}
	goto LA1_;
	LA6_: ;
	{
		NimStringDesc* T27_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T28_;
		T27_ = (NimStringDesc*)0;
		T27_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_480), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_494));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T27_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_495, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T28_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T28_ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, T28_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semOrdinal__O8zf75mcUwo9cfPQUQRaEug_10)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15), prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 2))) goto LA4_;
		base = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 1)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)))) goto LA8_;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA(base, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!(T12_)) goto LA13_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_299), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_496, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA13_: ;
		}
		LA8_: ;
		addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, base);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		NimStringDesc* T16_;
		T16_ = (NimStringDesc*)0;
		T16_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_480), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_497));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T16_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_498, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semVarargs__O8zf75mcUwo9cfPQUQRaEug_11)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48), prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		NI T4_;
		NI T6_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (T4_ == ((NI) 2));
		if (T3_) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (T6_ == ((NI) 3));
		LA5_: ;
		if (!T3_) goto LA7_;
		base = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 1)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, base);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI T11_;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T14_;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T15_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
			T11_ = (NI)0;
			T11_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T11_ == ((NI) 3))) goto LA12_;
			T14_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T14_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*n)._kind_6.sons->data[((NI) 2)], NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T15_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T15_ = T14_;
			T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T16_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T15_, (*(*n)._kind_6.sons->data[((NI) 2)]).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).n = T16_;
		}
		LA12_: ;
	}
	goto LA1_;
	LA7_: ;
	{
		NimStringDesc* T18_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T19_;
		T18_ = (NimStringDesc*)0;
		T18_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_480), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_500));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T18_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_501, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T19_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T19_ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, T19_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semTuple__O8zf75mcUwo9cfPQUQRaEug_12)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg check;
	NI counter;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	typ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18), prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).n = T1_;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&check));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	counter = ((NI) 0);
	{
		NI i;
		NI colontmp_;
		NI colontmp__2;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp__2 = (NI)0;
		colontmp_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
		colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = colontmp_;
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				if (!(i_2 < colontmp__2)) goto LA4;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				{
					if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35)))) goto LA7_;
					illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a, (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA7_: ;
				checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a, ((NI) 3), (*(*c).graph).config);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NI T11_;
					NI T14_;
					T11_ = (NI)0;
					T11_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!!(((*(*a)._kind_6.sons->data[(NI)(T11_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA12_;
					T14_ = (NI)0;
					T14_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					typ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*a)._kind_6.sons->data[(NI)(T14_ - ((NI) 2))], NIM_NIL);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA9_;
				LA12_: ;
				{
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_504, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					typ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA9_: ;
				{
					NI T18_;
					NI T21_;
					T18_ = (NI)0;
					T18_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!!(((*(*a)._kind_6.sons->data[(NI)(T18_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA19_;
					T21_ = (NI)0;
					T21_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*a)._kind_6.sons->data[(NI)(T21_ - ((NI) 1))]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_422), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_505, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA19_: ;
				{
					NI j;
					NI colontmp__3;
					NI T23_;
					NI i_3;
					j = (NI)0;
					colontmp__3 = (NI)0;
					T23_ = (NI)0;
					T23_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					colontmp__3 = (NI)(T23_ - ((NI) 2));
					i_3 = ((NI) 0);
					{
						while (1) {
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field;
							if (!(i_3 < colontmp__3)) goto LA25;
							j = i_3;
							field = newSymG__z0Xq7x7aKOzONyxr8mX73A(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19), (*a)._kind_6.sons->data[j], c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*field).typ = typ;
							(*field).position = counter;
							counter += ((NI) 1);
							{
								NIM_BOOL T28_;
								NimStringDesc* T31_;
								T28_ = (NIM_BOOL)0;
								T28_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&check), (*(*field).name).Sup.id);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!T28_) goto LA29_;
								T31_ = (NimStringDesc*)0;
								T31_ = rawNewString(((*(*field).name).s ? (*(*field).name).s->Sup.len : 0) + 23);
appendString(T31_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_134));
appendString(T31_, (*(*field).name).s);
appendString(T31_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114));
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T31_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_506, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							goto LA26_;
							LA29_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
								T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T33_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(field);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								add__P8dDSotTW25BkfbyspojGg((*result).n, T33_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, typ);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA26_: ;
							{
								if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA36_;
								nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, field, (*field).kind);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA36_: ;
							i_3 += ((NI) 1);
						} LA25: ;
					}
				}
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NI T40_;
		T40_ = (NI)0;
		T40_ = len__P89cqdlERShb9alU3iC0yj8wast((*result).n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T40_ == ((NI) 0))) goto LA41_;
		(*result).n = NIM_NIL;
	}
	LA41_: ;
	{
		NIM_BOOL T45_;
		NimStringDesc* T48_;
		NimStringDesc* T49_;
		T45_ = (NIM_BOOL)0;
		T45_ = isTupleRecursive__YPjOkGV9axAnGR3UfLeWZ1g_12(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T45_) goto LA46_;
		T48_ = (NimStringDesc*)0;
		T48_ = typeToString__QlvraUan7WbHowhAbvDvdA(result, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T49_ = (NimStringDesc*)0;
		T49_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_130), T48_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T49_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_507, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA46_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semGenericParamInInvocation__aJQEuszymrhDdKaEXWG3Vg_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, n, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(c, result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n).typ = T1_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semObjectTypeForInheritedGenericInst__ZPW6MqdUk6rECHJvUIgrnA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg check;
	NI pos;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* realBase;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newf;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&check));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	pos = ((NI) 0);
	realBase = (*t).sons->data[((NI) 0)];
	base = skipTypesOrNil__zsqmUNR5OZrTUna0Y9bdu9bg_2(realBase, IL64(36275087638268176));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringDesc* T5_;
		if (!(base == 0)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_130), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_520));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T5_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_521, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* concreteBase;
		concreteBase = skipGenericInvocation__un0CMx5e9axSJU0IN3TyTiwsem(base);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*concreteBase).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
			if (!(T9_)) goto LA10_;
			T9_ = !((((*concreteBase).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0));
			LA10_: ;
			if (!T9_) goto LA11_;
			addInheritedFields__PxMjdK03AEVfD5NRj9bgcDg(c, (&check), (&pos), concreteBase);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA7_;
		LA11_: ;
		{
			{
				if (!!(((*concreteBase).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50)))) goto LA16_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_522), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_523, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA16_: ;
		}
		LA7_: ;
	}
	LA1_: ;
	newf = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	semRecordNodeAux__xnbsksR9alpM9axWraQlPoDQ(c, (*t).n, (&check), (&pos), newf, t, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semGeneric__nGXSqtv2avLRNyfQXJjLWw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tx;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		tyArray__Re75IspeoxXy2oCZHwcRrA T5_;
		NimStringDesc* T6_;
		NimStringDesc* T7_;
		if (!((*s).typ == NIM_NIL)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T5_[0] = copyString((*(*s).name).s);
		T6_ = (NimStringDesc*)0;
		T6_ = toHumanStr__QHyA5kxlk0TZf3p6IbMdtA((*s).kind);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T5_[1] = T6_;
		T7_ = (NimStringDesc*)0;
		T7_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_508), T5_, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T7_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_509, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA3_: ;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*s).typ, 16);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T10_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54));
		if (!(T10_)) goto LA11_;
		T12_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T12_ = base__PfgI9ap7WOnsRfFV4znQ27w(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T10_ = ((*T12_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10));
		LA11_: ;
		if (!T10_) goto LA13_;
		t = base__PfgI9ap7WOnsRfFV4znQ27w(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA13_: ;
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9), prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, t);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30))) goto LA17_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* elem;
					if (!(i_2 < colontmp_)) goto LA21;
					i = i_2;
					elem = semGenericParamInInvocation__aJQEuszymrhDdKaEXWG3Vg_2(c, (*n)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!(elem == 0)) goto LA24_;
						{
							NimStringDesc* argX60gensym1253_;
							if (!NIM_TRUE) goto LA28_;
							argX60gensym1253_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_510);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym1253_, TM__rF9caJawfOjYTjsgLVUSGFA_510);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA28_: ;
						rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, elem, NIM_TRUE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA22_;
					LA24_: ;
					{
						addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, elem);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA22_: ;
					i_2 += ((NI) 1);
				} LA21: ;
			}
		}
		goto BeforeRet_;
	}
	goto LA15_;
	LA17_: ;
	{
		NimStringDesc* T34_;
		if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10)))) goto LA32_;
		T34_ = (NimStringDesc*)0;
		T34_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_511), (*(*s).name).s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T34_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_512, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	goto LA15_;
	LA32_: ;
	{
		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T36_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
		NIM_BOOL isConcrete;
		nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
		newCandidate__rFFaxk6TYVlvnKNibvVmkg(c, t, (&m));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		m.isNoCall = NIM_TRUE;
		T36_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T36_ = n;
		T37_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T37_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		matches__BxEsf1Gt7Hq3usrwPERzyA_2(c, T36_, T37_, (&m));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NimStringDesc* err;
			NimStringDesc* T42_;
			NimStringDesc* T43_;
			NimStringDesc* T44_;
			NimStringDesc* T45_;
			if (!!((m.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA40_;
			T42_ = (NimStringDesc*)0;
			T43_ = (NimStringDesc*)0;
			T43_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T44_ = (NimStringDesc*)0;
			T44_ = describeArgs__cCrxh8TxJsIrMINltM1ovw(c, n, ((NI) 1), ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T45_ = (NimStringDesc*)0;
			T45_ = describeArgs__cCrxh8TxJsIrMINltM1ovw(c, (*t).n, ((NI) 0), ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T42_ = rawNewString((T43_ ? T43_->Sup.len : 0) + (T44_ ? T44_->Sup.len : 0) + (T45_ ? T45_->Sup.len : 0) + 44);
appendString(T42_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_513));
appendString(T42_, T43_);
appendString(T42_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_514));
appendString(T42_, T44_);
appendString(T42_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_515));
appendString(T42_, T45_);
appendString(T42_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_516));
			err = T42_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), err, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_517, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		LA40_: ;
		isConcrete = NIM_TRUE;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(m.call);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
					if (!(i_4 < colontmp__2)) goto LA48;
					i_3 = i_4;
					typ = (*(*m.call)._kind_6.sons->data[i_3]).typ;
					{
						NIM_BOOL T51_;
						NIM_BOOL T52_;
						NIM_BOOL T53_;
						T51_ = (NIM_BOOL)0;
						T52_ = (NIM_BOOL)0;
						T53_ = (NIM_BOOL)0;
						T53_ = ((*(*m.call)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
						if (!(T53_)) goto LA54_;
						T53_ = ((*(*(*m.call)._kind_6.sons->data[i_3])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
						LA54_: ;
						T52_ = T53_;
						if (!(T52_)) goto LA55_;
						T52_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
						LA55_: ;
						T51_ = T52_;
						if (!(T51_)) goto LA56_;
						T51_ = containsGenericType__YPjOkGV9axAnGR3UfLeWZ1g_2(typ);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						LA56_: ;
						if (!T51_) goto LA57_;
						isConcrete = NIM_FALSE;
						{
							if (!(typ == 0)) goto LA61_;
							{
								NimStringDesc* argX60gensym1268_;
								if (!NIM_TRUE) goto LA65_;
								argX60gensym1268_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_510);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym1268_, TM__rF9caJawfOjYTjsgLVUSGFA_510);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA65_: ;
							rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, typ, NIM_TRUE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA59_;
						LA61_: ;
						{
							addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA59_: ;
					}
					goto LA49_;
					LA57_: ;
					{
						typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, 256);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							NIM_BOOL T71_;
							T71_ = (NIM_BOOL)0;
							T71_ = containsGenericType__YPjOkGV9axAnGR3UfLeWZ1g_2(typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!T71_) goto LA72_;
							isConcrete = NIM_FALSE;
						}
						LA72_: ;
						{
							if (!(typ == 0)) goto LA76_;
							{
								NimStringDesc* argX60gensym1272_;
								if (!NIM_TRUE) goto LA80_;
								argX60gensym1272_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_510);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym1272_, TM__rF9caJawfOjYTjsgLVUSGFA_510);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA80_: ;
							rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, typ, NIM_TRUE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA74_;
						LA76_: ;
						{
							addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA74_: ;
					}
					LA49_: ;
					i_4 += ((NI) 1);
				} LA48: ;
			}
		}
		{
			if (!isConcrete) goto LA85_;
			{
				NIM_BOOL T89_;
				NimStringDesc* T93_;
				T89_ = (NIM_BOOL)0;
				T89_ = ((*s).ast == NIM_NIL);
				if (!(T89_)) goto LA90_;
				T89_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54)));
				LA90_: ;
				if (!T89_) goto LA91_;
				T93_ = (NimStringDesc*)0;
				T93_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_78), (*(*s).name).s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T93_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_518, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA87_;
			LA91_: ;
			{
				result = instGenericContainer__sJO8n9aXqgecj24tOSPjmow(c, (*n).info, result, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA87_: ;
		}
		LA85_: ;
	}
	LA15_: ;
	tx = skipTypes__Jb9ck8uy9aKqJSHdNSzDJAJQ(result, IL64(36275087638309136), ((NI) 50));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T97_;
		NimStringDesc* T101_;
		NimStringDesc* T102_;
		T97_ = (NIM_BOOL)0;
		T97_ = (tx == 0);
		if (T97_) goto LA98_;
		T97_ = isTupleRecursive__YPjOkGV9axAnGR3UfLeWZ1g_12(tx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA98_: ;
		if (!T97_) goto LA99_;
		T101_ = (NimStringDesc*)0;
		T101_ = typeToString__QlvraUan7WbHowhAbvDvdA((*result).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T102_ = (NimStringDesc*)0;
		T102_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_130), T101_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T102_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_519, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA99_: ;
	{
		NIM_BOOL T105_;
		NI position;
		T105_ = (NIM_BOOL)0;
		T105_ = !((tx == result));
		if (!(T105_)) goto LA106_;
		T105_ = ((*tx).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
		LA106_: ;
		if (!T105_) goto LA107_;
		{
			if (!!(((*tx).sons->data[((NI) 0)] == NIM_NIL))) goto LA111_;
			semObjectTypeForInheritedGenericInst__ZPW6MqdUk6rECHJvUIgrnA(c, n, tx);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA111_: ;
		position = ((NI) 0);
		recomputeFieldPositions__XUkgGL16NQZcptTJ0lg7nQ(tx, (*tx).n, (&position));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA107_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConceptBody__7YxUILpPxooC5qqa89a54dw_31)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w ctx;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)(&ctx), sizeof(tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&ctx.toMixin));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&ctx.toBind));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = semGenericStmt__aVtCjYVuHV1t3poDWh43wA(c, n, 8, (&ctx));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semTypeClass__O8zf75mcUwo9cfPQUQRaEug_13)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmas;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* inherited;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* candidateTypeSlot;
	tySequence__Ef05srmQTDulnBdXR4Ja6Q* T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T11_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T46_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	pragmas = (*n)._kind_6.sons->data[((NI) 1)];
	inherited = (*n)._kind_6.sons->data[((NI) 2)];
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52), prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
	owner = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
	T1_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
	T2_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_->data[0] = T2_;
	candidateTypeSlot = newTypeWithSons__aSykZlHQuGR9almJ1ehcUew(owner, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4), T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).sons = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
	(*result).sons->data[0] = candidateTypeSlot;
	(*result).n = n;
	{
		if (!!(((*inherited).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA5_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n_2;
			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
			NI i;
			NI L;
			NI T8_;
			n_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
			colontmp_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
			colontmp_ = (*inherited)._kind_6.sons;
			i = ((NI) 0);
			T8_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T8_;
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
					if (!(i < L)) goto LA10;
					n_2 = &colontmp_->data[i];
					typ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n_2), NIM_NIL);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__9a8CdZqChTyqzq5bpSL3TzA(result, typ);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i += ((NI) 1);
				} LA10: ;
			}
		}
	}
	LA5_: ;
	T11_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T11_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* param;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp__2;
		param = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		colontmp__2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		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__P89cqdlERShb9alU3iC0yj8w_2ast(colontmp__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_3 = ((NI) 0);
			{
				while (1) {
					if (!(i_3 < colontmp__3)) goto LA15;
					i_2 = i_3;
					param = (*colontmp__2)._kind_6.sons->data[i_2];
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dummyName;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dummyType;
						tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag modifier;
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* dummyParam;
						tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw T40_;
						dummyName = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						dummyType = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						switch ((*param).kind) {
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143):
						{
							modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23);
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141):
						{
							modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22);
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142):
						{
							modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21);
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 137):
						{
							modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60);
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
						{
							modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8);
						}
						break;
						default:
						{
							modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0);
						}
						break;
						}
						{
							if (!!((modifier == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)))) goto LA25_;
							dummyName = (*param)._kind_6.sons->data[((NI) 0)];
							dummyType = makeTypeWithModifier__YyNjY7O2UpEApULCS9ctQYQ(c, modifier, candidateTypeSlot);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								if (!(modifier == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA29_;
								(*dummyType).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 28)) & 63);
								(*dummyType).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
							}
							LA29_: ;
						}
						goto LA23_;
						LA25_: ;
						{
							dummyName = param;
							dummyType = candidateTypeSlot;
						}
						LA23_: ;
						{
							if (!((*dummyName).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA34_;
							goto LA16;
						}
						LA34_: ;
						{
							NimStringDesc* argX60gensym1302_;
							if (!!(((*dummyName).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2)))) goto LA38_;
							argX60gensym1302_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_534);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym1302_, TM__rF9caJawfOjYTjsgLVUSGFA_534);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA38_: ;
						T40_ = (tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw)0;
						{
							if (!(modifier == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA43_;
							T40_ = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7);
						}
						goto LA41_;
						LA43_: ;
						{
							T40_ = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8);
						}
						LA41_: ;
						dummyParam = newSym__IXbidcxhXTQGZY9abN63Cxg(T40_, (*dummyName)._kind_5.ident, owner, (*param).info, 0);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*dummyParam).typ = dummyType;
						(*dummyParam).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
						addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, dummyParam);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					} LA16: ;
					i_3 += ((NI) 1);
				} LA15: ;
			}
		}
	}
	T46_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T46_ = semConceptBody__7YxUILpPxooC5qqa89a54dw_31(c, (*n)._kind_6.sons->data[((NI) 3)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*result).n)._kind_6.sons->data[((NI) 3)] = T46_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semVarOutType__kPfUv0X9aI6AfGcdSb9aYz9cA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NI T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 1))) goto LA4_;
		result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(kind, prev, c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		base = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T6_, 256);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA9_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_502), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_535, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			base = (*base).sons->data[((NI) 0)];
		}
		LA9_: ;
		addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, base);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		result = newConstraint__QGpv9bqfXWWeJjJoCL6cRRA(c, kind);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semDistinct__O8zf75mcUwo9cfPQUQRaEug_14)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = newConstraint__QGpv9bqfXWWeJjJoCL6cRRA(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA4_: ;
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13), prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T6_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, T6_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI T9_;
		T9_ = (NI)0;
		T9_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(((NI) 1) < T9_)) goto LA10_;
		(*result).n = (*n)._kind_6.sons->data[((NI) 1)];
	}
	LA10_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyTypeSectionPragmas__n3MU2Z4B9cngRayLYQCel5A)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmas, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* operand) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
		p = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(pragmas);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					p = (*pragmas)._kind_6.sons->data[i];
					{
						NIM_BOOL T7_;
						NI T9_;
						T7_ = (NIM_BOOL)0;
						T7_ = ((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34) || (*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28));
						if (!(T7_)) goto LA8_;
						T9_ = (NI)0;
						T9_ = len__P89cqdlERShb9alU3iC0yj8wast(p);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T7_ = (((NI) 1) <= T9_);
						LA8_: ;
						if (!T7_) goto LA10_;
						key = (*p)._kind_6.sons->data[((NI) 0)];
					}
					goto LA5_;
					LA10_: ;
					{
						key = p;
					}
					LA5_: ;
					{
						NIM_BOOL T15_;
						tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T17_;
						T15_ = (NIM_BOOL)0;
						T15_ = ((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
						if (T15_) goto LA16_;
						T17_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
						T17_ = whichPragma__Pjztiiq9bHmTTxDuLd39cNRw(p);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T15_ = !((T17_ == ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 0)));
						LA16_: ;
						if (!T15_) goto LA18_;
					}
					goto LA13_;
					LA18_: ;
					{
						tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
						ident = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, key, NIM_NIL);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T23_;
							T23_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
							T23_ = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ((*c).userPragmas, ident);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!((T23_ == NIM_NIL))) goto LA24_;
						}
						goto LA21_;
						LA24_: ;
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
							sym = searchInScopes__Drn1sJCJSwUUo03qKJigUw(c, ident);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								NIM_BOOL T29_;
								T29_ = (NIM_BOOL)0;
								T29_ = !((sym == NIM_NIL));
								if (!(T29_)) goto LA30_;
								T29_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0);
								LA30_: ;
								if (!T29_) goto LA31_;
							}
							goto LA27_;
							LA31_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T44_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r;
								x = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*key).info);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								add__P8dDSotTW25BkfbyspojGg(x, key);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								{
									NIM_BOOL T36_;
									NI T38_;
									T36_ = (NIM_BOOL)0;
									T36_ = ((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34) || (*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28));
									if (!(T36_)) goto LA37_;
									T38_ = (NI)0;
									T38_ = len__P89cqdlERShb9alU3iC0yj8wast(p);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									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__P89cqdlERShb9alU3iC0yj8wast(p);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										i_4 = ((NI) 1);
										{
											while (1) {
												if (!(i_4 < colontmp__2)) goto LA43;
												i_3 = i_4;
												add__P8dDSotTW25BkfbyspojGg(x, (*p)._kind_6.sons->data[i_3]);
												if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
												i_4 += ((NI) 1);
											} LA43: ;
										}
									}
								}
								LA39_: ;
								T44_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T44_ = copyTreeWithoutNode__aN5jlv83QmlsI1PY356I2w(operand, p);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								add__P8dDSotTW25BkfbyspojGg(x, T44_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								r = semOverloadedCall__pBkKnME6t9c8v6khuDD76Fg(c, x, x, 393216, 262144);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m;
									if (!!((r == NIM_NIL))) goto LA47_;
									{
										if (!!(((*(*r)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA51_;
										failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_536));
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									LA51_: ;
									m = (*(*r)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
									switch ((*m).kind) {
									case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
									{
										result = semMacroExpr__GFpnqBAgGBu4p8rc0WsOTw(c, r, r, m, 8192);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										goto BeforeRet_;
									}
									break;
									case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
									{
										result = semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog(c, r, m, 8192);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										goto BeforeRet_;
									}
									break;
									default:
									{
										{
											if (!NIM_TRUE) goto LA58_;
											failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_537));
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										LA58_: ;
									}
									break;
									}
								}
								LA47_: ;
							}
							LA27_: ;
						}
						LA21_: ;
					}
					LA13_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semProcTypeWithScope__HVX0MCOg4yL8PRkNzdiEmQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T12_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T13_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		NI T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* macroEval;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = len__P89cqdlERShb9alU3iC0yj8wast((*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (((NI) 0) < T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		macroEval = applyTypeSectionPragmas__n3MU2Z4B9cngRayLYQCel5A(c, (*n)._kind_6.sons->data[((NI) 1)], n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((macroEval == NIM_NIL))) goto LA10_;
			result = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, macroEval, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		LA10_: ;
	}
	LA6_: ;
	T12_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T12_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = semProcTypeNode__ZVaxL1YkeVlGuk9csaO0Z2w(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL, prev, kind, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9);
	T13_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T13_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_427));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T14_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T13_, (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	s = newSymS__z0Xq7x7aKOzONyxr8mX73A_2(kind, T14_, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*s).typ = result;
	{
		NIM_BOOL T17_;
		NI T19_;
		T17_ = (NIM_BOOL)0;
		T17_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		if (!(T17_)) goto LA18_;
		T19_ = (NI)0;
		T19_ = len__P89cqdlERShb9alU3iC0yj8wast((*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T17_ = (((NI) 0) < T19_);
		LA18_: ;
		if (!T17_) goto LA20_;
		pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, s, (*n)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_538, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		setEffectsForProcType__anXKpeIcfo8QOiHQxzurxw((*c).graph, result, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA15_;
	LA20_: ;
	{
		NIM_BOOL T23_;
		NI T24_;
		tyArray__voNMFnIDThVNu9afe2zfZWA T28_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T34_;
		T23_ = (NIM_BOOL)0;
		T24_ = ((*c).optionStack ? (*c).optionStack->Sup.len : 0);
		T23_ = (((NI) 0) < T24_);
		if (!(T23_)) goto LA25_;
		T23_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 47))&63U)))!=0));
		LA25_: ;
		if (!T23_) goto LA26_;
		nimZeroMem((void*)T28_, sizeof(tyArray__voNMFnIDThVNu9afe2zfZWA));
		T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T29_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T28_[0] = T29_;
		T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T30_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T28_[1] = T30_;
		T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T31_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T28_[2] = T31_;
		T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T32_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T28_[3] = T32_;
		T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T33_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T28_[4] = T33_;
		T34_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T34_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79), T28_, 5);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s).ast = T34_;
		implicitPragmas__3fUSuAmLz4H9aPTbK4rPERw(c, s, n, TM__rF9caJawfOjYTjsgLVUSGFA_539);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		setEffectsForProcType__anXKpeIcfo8QOiHQxzurxw((*c).graph, result, (*(*s).ast)._kind_6.sons->data[((NI) 4)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA15_;
	LA26_: ;
	LA15_: ;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semEnum__O8zf75mcUwo9cfPQUQRaEug_15)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	NI64 counter;
	NI64 x;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* e;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** identToReplace;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
	NIM_BOOL isPure;
	NIM_BOOL T21_;
	tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA symbols;
	NIM_BOOL hasNull;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = newConstraint__QGpv9bqfXWWeJjJoCL6cRRA(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		NI T7_;
		T7_ = (NI)0;
		T7_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T7_ == ((NI) 1))) goto LA8_;
		result = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	goto LA1_;
	LA8_: ;
	LA1_: ;
	counter = (NI64)0;
	x = (NI64)0;
	e = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	base = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	identToReplace = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
	counter = IL64(0);
	base = NIM_NIL;
	result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14), prev, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T10_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).n = T10_;
	checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 1), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T19_;
		NI64 T20_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA13_;
		base = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14)))) goto LA17_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_540), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_541, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA17_: ;
		T19_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*c).graph).config, base);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T20_ = (NI64)0;
		T20_ = toInt64__1szweXXq3RBN50owrYu2Xw(T19_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		counter = (NI64)(T20_ + IL64(1));
	}
	LA13_: ;
	rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, base, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T21_ = (NIM_BOOL)0;
	T21_ = !(((*result).sym == NIM_NIL));
	if (!(T21_)) goto LA22_;
	T21_ = (((*(*result).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0);
	LA22_: ;
	isPure = T21_;
	nimZeroMem((void*)(&symbols), sizeof(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA));
	{
		if (!isPure) goto LA25_;
		initStrTable__2n9b6ELeZfbbP5wqNYm7VyA((&symbols));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA25_: ;
	hasNull = NIM_FALSE;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA29;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* symNode;
					{
						if (!((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA33_;
						goto LA30;
					}
					LA33_: ;
					switch ((*(*n)._kind_6.sons->data[i]).kind) {
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 151):
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* strVal;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T41_;
						{
							if (!((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA38_;
							e = newSymS__z0Xq7x7aKOzONyxr8mX73A_2(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20), (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)], c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							identToReplace = &(*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
							pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, e, (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_542, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA36_;
						LA38_: ;
						{
							e = newSymS__z0Xq7x7aKOzONyxr8mX73A_2(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20), (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							identToReplace = &(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)];
						}
						LA36_: ;
						v = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						strVal = NIM_NIL;
						T41_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T41_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*v).typ, IL64(36134350135273488));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						switch ((*T41_).kind) {
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
						{
							{
								NI T45_;
								T45_ = (NI)0;
								T45_ = len__P89cqdlERShb9alU3iC0yj8wast(v);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!(T45_ == ((NI) 2))) goto LA46_;
								strVal = (*v)._kind_6.sons->data[((NI) 1)];
								{
									tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T50_;
									tyObject_Int128__9a9axPfb75jdWY25AamJewkA T61_;
									tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T62_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T63_;
									T50_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
									T50_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*strVal).typ, IL64(36134350135273744));
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									if (!((805306368 &((NU64)1<<((NU)((*T50_).kind)&63U)))!=0)) goto LA51_;
									{
										NIM_BOOL T55_;
										tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T58_;
										NimStringDesc* T59_;
										NimStringDesc* T60_;
										T55_ = (NIM_BOOL)0;
										T55_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA((*(*v)._kind_6.sons->data[((NI) 0)]).typ, NIM_TRUE);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										if (!!(T55_)) goto LA56_;
										T58_ = (*(*v)._kind_6.sons->data[((NI) 0)]).info;
										T59_ = (NimStringDesc*)0;
										T60_ = (NimStringDesc*)0;
										T60_ = typeToString__QlvraUan7WbHowhAbvDvdA((*(*v)._kind_6.sons->data[((NI) 0)]).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										T59_ = rawNewString((T60_ ? T60_->Sup.len : 0) + 30);
appendString(T59_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_543));
appendString(T59_, T60_);
										liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T58_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T59_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_544, NIM_FALSE);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									LA56_: ;
									T61_ = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ((*v)._kind_6.sons->data[((NI) 0)], TM__rF9caJawfOjYTjsgLVUSGFA_229);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									x = toInt64__1szweXXq3RBN50owrYu2Xw(T61_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									T62_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
									T62_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, TM__rF9caJawfOjYTjsgLVUSGFA_72, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									T63_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T63_ = newIntTypeNode__9azVbThnGagKx8BBa5Ph9cDw(x, T62_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)] = T63_;
								}
								goto LA48_;
								LA51_: ;
								{
									liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*strVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_316), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_545, NIM_FALSE);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								LA48_: ;
							}
							goto LA43_;
							LA46_: ;
							{
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_546), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_547, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA43_: ;
						}
						break;
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
						{
							strVal = v;
							x = counter;
						}
						break;
						default:
						{
							tyObject_Int128__9a9axPfb75jdWY25AamJewkA T76_;
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T77_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T78_;
							{
								NIM_BOOL T70_;
								tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T73_;
								NimStringDesc* T74_;
								NimStringDesc* T75_;
								T70_ = (NIM_BOOL)0;
								T70_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA((*v).typ, NIM_TRUE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!!(T70_)) goto LA71_;
								T73_ = (*v).info;
								T74_ = (NimStringDesc*)0;
								T75_ = (NimStringDesc*)0;
								T75_ = typeToString__QlvraUan7WbHowhAbvDvdA((*v).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T74_ = rawNewString((T75_ ? T75_->Sup.len : 0) + 30);
appendString(T74_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_543));
appendString(T74_, T75_);
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T73_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T74_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_548, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA71_: ;
							T76_ = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ(v, TM__rF9caJawfOjYTjsgLVUSGFA_229);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							x = toInt64__1szweXXq3RBN50owrYu2Xw(T76_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T77_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T77_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, TM__rF9caJawfOjYTjsgLVUSGFA_72, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T78_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T78_ = newIntTypeNode__9azVbThnGagKx8BBa5Ph9cDw(x, T77_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)] = T78_;
						}
						break;
						}
						{
							if (!!((i == ((NI) 1)))) goto LA81_;
							{
								if (!!((x == counter))) goto LA85_;
								(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 5)) & 63);
							}
							LA85_: ;
							{
								NimStringDesc* T91_;
								if (!(x < counter)) goto LA89_;
								T91_ = (NimStringDesc*)0;
								T91_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_549), (*(*e).name).s);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T91_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_550, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								x = counter;
							}
							LA89_: ;
						}
						LA81_: ;
						(*e).ast = strVal;
						counter = x;
					}
					break;
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
					{
						e = (*(*n)._kind_6.sons->data[i])._kind_4.sym;
					}
					break;
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
					{
						e = newSymS__z0Xq7x7aKOzONyxr8mX73A_2(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20), (*n)._kind_6.sons->data[i], c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						identToReplace = &(*n)._kind_6.sons->data[i];
					}
					break;
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
					{
						e = newSymS__z0Xq7x7aKOzONyxr8mX73A_2(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20), (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, e, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_542, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						identToReplace = &(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)];
					}
					break;
					default:
					{
						illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw((*n)._kind_6.sons->data[i], (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					break;
					}
					(*e).typ = result;
					(*e).position = ((NI) (counter));
					symNode = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(e);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NIM_BOOL T98_;
						T98_ = (NIM_BOOL)0;
						T98_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 47))&63U)))!=0));
						if (!(T98_)) goto LA99_;
						T98_ = !((identToReplace == NIM_NIL));
						LA99_: ;
						if (!T98_) goto LA100_;
						(*identToReplace) = symNode;
					}
					LA100_: ;
					{
						if (!((*e).position == ((NI) 0))) goto LA104_;
						hasNull = NIM_TRUE;
					}
					LA104_: ;
					{
						NIM_BOOL T108_;
						T108_ = (NIM_BOOL)0;
						T108_ = !(((*result).sym == NIM_NIL));
						if (!(T108_)) goto LA109_;
						T108_ = (((*(*result).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 1))&63U)))!=0);
						LA109_: ;
						if (!T108_) goto LA110_;
						(*e).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
						(*e).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 1)) & 63);
						{
							if (!!(isPure)) goto LA114_;
							strTableAdd__tyTgUybFIoow4CX2l5beug((&(*(*c).module)._kind_3.tab), e);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA114_: ;
					}
					LA110_: ;
					add__P8dDSotTW25BkfbyspojGg((*result).n, symNode);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA118_;
						nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*e).info, e, (*e).kind);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA118_: ;
					{
						if (!!((((*e).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0))) goto LA122_;
						{
							if (!!(isPure)) goto LA126_;
							addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, e);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA124_;
						LA126_: ;
						{
							importPureEnumField__qTKM3Dk2MEIWKGK9aoCIRwg(c, e);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA124_: ;
					}
					LA122_: ;
					{
						NIM_BOOL T131_;
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* conflict;
						T131_ = (NIM_BOOL)0;
						T131_ = isPure;
						if (!(T131_)) goto LA132_;
						conflict = strTableInclReportConflict__tsV7rrfL6ZnfCXBjJk0jUA((&symbols), e, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T131_ = !((conflict == NIM_NIL));
						LA132_: ;
						if (!T131_) goto LA133_;
						wrongRedefinition__m38oZS3DB39a2RtTLWidA5w(c, (*e).info, (*(*e).name).s, (*conflict).info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA133_: ;
					counter += ((NI) 1);
				} LA30: ;
				i_2 += ((NI) 1);
			} LA29: ;
		}
	}
	{
		NIM_BOOL T137_;
		T137_ = (NIM_BOOL)0;
		T137_ = (((*(*e).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0);
		if (!(T137_)) goto LA138_;
		T137_ = !(hasNull);
		LA138_: ;
		if (!T137_) goto LA139_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 18)) & 63);
	}
	LA139_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semStmtListType__O8zf75mcUwo9cfPQUQRaEug_16)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 1), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmp_ = (NI)(T2_ - ((NI) 1));
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T5_ = semStmt__vJZwz9bfROKrfrtM50y74CQ_4(c, (*n)._kind_6.sons->data[i], 0);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[i] = T5_;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NI T8_;
		NI T11_;
		NI T12_;
		T8_ = (NI)0;
		T8_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(((NI) 0) < T8_)) goto LA9_;
		T11_ = (NI)0;
		T11_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[(NI)(T11_ - ((NI) 1))], prev);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n).typ = result;
		T12_ = (NI)0;
		T12_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*(*n)._kind_6.sons->data[(NI)(T12_ - ((NI) 1))]).typ = result;
	}
	goto LA6_;
	LA9_: ;
	{
		result = NIM_NIL;
	}
	LA6_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semBlockType__O8zf75mcUwo9cfPQUQRaEug_17)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	(*(*c).p).nestedBlockCounter += ((NI) 1);
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T6_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T7_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA4_;
		T6_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
		T6_ = c;
		T7_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T7_ = newSymS__z0Xq7x7aKOzONyxr8mX73A_2(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 22), (*n)._kind_6.sons->data[((NI) 0)], c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		addDecl__aPXKqZJT9c7r7gT8X3uZAHw(T6_, T7_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	result = semStmtListType__O8zf75mcUwo9cfPQUQRaEug_16(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*n)._kind_6.sons->data[((NI) 1)]).typ = result;
	(*n).typ = result;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*c).p).nestedBlockCounter -= ((NI) 1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, semTypeNode__O8zf75mcUwo9cfPQUQRaEug)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* prev) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = NIM_NIL;
	(*c).inTypeContext += ((NI) 1);
	{
		if (!((*(*(*c).graph).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 14))) goto LA3_;
		suggestExpr__wb6KhAx6bZ5NV37kY4bXJw(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	{
		result = (*n).typ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
	{
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 1), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semTypeof__O8zf75mcUwo9cfPQUQRaEug_2(c, (*n)._kind_6.sons->data[((NI) 0)], prev);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA9_;
			(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 29)) & 63);
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	{
		{
			NI T14_;
			T14_ = (NI)0;
			T14_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T14_ == ((NI) 1))) goto LA15_;
			result = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 0)], prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA12_;
		LA15_: ;
		{
			result = semAnonTuple__O8zf75mcUwo9cfPQUQRaEug_3(c, n, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		result = semAnonTuple__O8zf75mcUwo9cfPQUQRaEug_3(c, n, prev);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
		x = (*n)._kind_6.sons->data[((NI) 0)];
		switch ((*x).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
		{
			ident = (*x)._kind_5.ident;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
		{
			ident = (*(*x)._kind_4.sym).name;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57):
		{
			ident = (*(*(*x)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name;
		}
		break;
		default:
		{
			ident = NIM_NIL;
		}
		break;
		}
		{
			NIM_BOOL T26_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
			T26_ = (NIM_BOOL)0;
			T26_ = !((ident == NIM_NIL));
			if (!(T26_)) goto LA27_;
			T26_ = eqStrings((*ident).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26));
			LA27_: ;
			if (!T26_) goto LA28_;
			b = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 1);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA32;
						i = i_2;
						add__P8dDSotTW25BkfbyspojGg(b, (*n)._kind_6.sons->data[i]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_2 += ((NI) 1);
					} LA32: ;
				}
			}
			result = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, b, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA24_;
		LA28_: ;
		{
			NIM_BOOL T34_;
			T34_ = (NIM_BOOL)0;
			T34_ = !((ident == NIM_NIL));
			if (!(T34_)) goto LA35_;
			T34_ = ((*ident).Sup.id == ((NI) 71));
			LA35_: ;
			if (!T34_) goto LA36_;
			result = semRangeAux__O8zf75mcUwo9cfPQUQRaEug_4(c, n, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA24_;
		LA36_: ;
		{
			NIM_BOOL T39_;
			NI T41_;
			T39_ = (NIM_BOOL)0;
			T39_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
			if (!(T39_)) goto LA40_;
			T41_ = (NI)0;
			T41_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T39_ = (T41_ == ((NI) 2));
			LA40_: ;
			if (!T39_) goto LA42_;
			result = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T46_;
				T46_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T46_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(result, IL64(105553116268560));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!((IL64(1125900550673920) &((NU64)1<<((NU)((*T46_).kind)&63U)))!=0)) goto LA47_;
				{
					if (!(((*result).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0)) goto LA51_;
					result = freshType__MYPl0kqQUBUN3G45LDt6rwsem(result, prev);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17)) & 63));
				}
				LA51_: ;
			}
			goto LA44_;
			LA47_: ;
			{
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_38), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_39, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA44_: ;
		}
		goto LA24_;
		LA42_: ;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56)))) goto LA55_;
			result = semTypeExpr__O8zf75mcUwo9cfPQUQRaEug_5(c, n, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA24_;
		LA55_: ;
		{
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* op;
			op = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T60_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t1;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t2;
				T60_ = (NIM_BOOL)0;
				T60_ = ((*op).Sup.id == ((NI) 2) || (*op).Sup.id == ((NI) 47));
				if (T60_) goto LA61_;
				T60_ = eqStrings((*op).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_42));
				LA61_: ;
				if (!T60_) goto LA62_;
				checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 3), (*(*c).graph).config);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				t1 = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 1)], NIM_NIL);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				t2 = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 2)], NIM_NIL);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!(t1 == NIM_NIL)) goto LA66_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_43, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA64_;
				LA66_: ;
				{
					if (!(t2 == NIM_NIL)) goto LA69_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 2)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_44, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA64_;
				LA69_: ;
				{
					{
						if (!((*op).Sup.id == ((NI) 2))) goto LA74_;
						result = makeAndType__9b4dTSY3d7uIjSch9cj9cGP1w(c, t1, t2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA72_;
					LA74_: ;
					{
						result = makeOrType__9b4dTSY3d7uIjSch9cj9cGP1w_2(c, t1, t2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA72_: ;
				}
				LA64_: ;
			}
			goto LA58_;
			LA62_: ;
			{
				NI T80_;
				if (!((*op).Sup.id == ((NI) 43))) goto LA78_;
				T80_ = (NI)0;
				T80_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				switch (T80_) {
				case ((NI) 3):
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* resolvedType;
					result = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NIM_BOOL T84_;
						T84_ = (NIM_BOOL)0;
						T84_ = ((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
						if (!(T84_)) goto LA85_;
						T84_ = !((((*result).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0));
						LA85_: ;
						if (!T84_) goto LA86_;
						result = base__PfgI9ap7WOnsRfFV4znQ27w(result);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA86_: ;
					{
						if (!!(((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23)))) goto LA90_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_45), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_46, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA90_: ;
					{
						if (!!((((*c).features &(1U<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 5))&15U)))!=0))) goto LA94_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_47), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_48, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA94_: ;
					resolvedType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(result, IL64(105553116268560));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					switch ((*resolvedType).kind) {
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
					{
						tyArray__jlWPjgtbdjE069arIWHC9c9bg T97_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T98_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T99_;
						nimZeroMem((void*)T97_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
						T98_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T98_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T97_[0] = T98_;
						T99_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T99_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 128), T97_, 1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						result = makeTypeFromExpr__D2YW7F23KYvdV39aTScM3IQ(c, T99_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					break;
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30):
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
					{
						result = freshType__MYPl0kqQUBUN3G45LDt6rwsem(result, prev);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17)) & 63);
					}
					break;
					default:
					{
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_38), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_49, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					break;
					}
				}
				break;
				case ((NI) 2):
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* negated;
					negated = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					result = makeNotType__UPDD9aO4WRk8hLMnfpJZudg(c, negated);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				break;
				default:
				{
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_38), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_50, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				break;
				}
			}
			goto LA58_;
			LA78_: ;
			{
				if (!((*op).Sup.id == ((NI) 50))) goto LA105_;
				result = semAnyRef__WkfdPzqjIHjpNCHcK8ViDg(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21), prev);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA58_;
			LA105_: ;
			{
				if (!((*op).Sup.id == ((NI) 52))) goto LA108_;
				result = semAnyRef__WkfdPzqjIHjpNCHcK8ViDg(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22), prev);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA58_;
			LA108_: ;
			{
				if (!((*op).Sup.id == ((NI) 60))) goto LA111_;
				checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = semTypeof__O8zf75mcUwo9cfPQUQRaEug_2(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA58_;
			LA111_: ;
			{
				NIM_BOOL T114_;
				NIM_BOOL T115_;
				T114_ = (NIM_BOOL)0;
				T115_ = (NIM_BOOL)0;
				T115_ = eqStrings((*op).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_461));
				if (!(T115_)) goto LA116_;
				T115_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				LA116_: ;
				T114_ = T115_;
				if (!(T114_)) goto LA117_;
				T114_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 18));
				LA117_: ;
				if (!T114_) goto LA118_;
				result = semTypeof2__O8zf75mcUwo9cfPQUQRaEug_6(c, n, prev);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA58_;
			LA118_: ;
			{
				NIM_BOOL T121_;
				NIM_BOOL T122_;
				NI T125_;
				T121_ = (NIM_BOOL)0;
				T122_ = (NIM_BOOL)0;
				T122_ = eqStrings((*op).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_463));
				if (!(T122_)) goto LA123_;
				T122_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0));
				LA123_: ;
				T121_ = T122_;
				if (!(T121_)) goto LA124_;
				T125_ = (NI)0;
				T125_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T121_ = (T125_ == ((NI) 2));
				LA124_: ;
				if (!T121_) goto LA126_;
				result = semTypeExpr__O8zf75mcUwo9cfPQUQRaEug_5(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA58_;
			LA126_: ;
			{
				{
					NIM_BOOL T131_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T135_;
					T131_ = (NIM_BOOL)0;
					T131_ = (((NI) 0) < (*c).inGenericContext);
					if (!(T131_)) goto LA132_;
					T131_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27));
					LA132_: ;
					if (!T131_) goto LA133_;
					T135_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T135_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					result = makeTypeFromExpr__D2YW7F23KYvdV39aTScM3IQ(c, T135_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA129_;
				LA133_: ;
				{
					result = semTypeExpr__O8zf75mcUwo9cfPQUQRaEug_5(c, n, prev);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA129_: ;
			}
			LA58_: ;
		}
		LA24_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* whenResult;
		whenResult = semWhen__5C4HPXQuhxlMYIzPbe36lg(c, n, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*whenResult).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA140_;
			transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(whenResult, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 128));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA140_: ;
		result = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, whenResult, prev);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* head;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		head = (*n)._kind_6.sons->data[((NI) 0)];
		{
			if (!!(((*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)))) goto LA145_;
			s = semTypeIdent__AO57Q9bSpsZiuv7kwwoM7yw(c, head);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA143_;
		LA145_: ;
		{
			tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T148_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T149_;
			T148_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
			T148_ = c;
			T149_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T149_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, head, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			s = symFromExpectedTypeNode__AO57Q9bSpsZiuv7kwwoM7yw_2(T148_, T149_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA143_: ;
		switch ((*s).magic) {
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 156):
		{
			result = semArray__O8zf75mcUwo9cfPQUQRaEug_7(c, n, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 157):
		{
			result = semContainer__9c9cJm09bVJhp6JDeDwpDcllw(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_482), prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 266):
		{
			result = semContainer__9c9cJm09bVJhp6JDeDwpDcllw(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_483), prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 158):
		{
			result = semRange__O8zf75mcUwo9cfPQUQRaEug_8(c, n, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 159):
		{
			result = semSet__O8zf75mcUwo9cfPQUQRaEug_9(c, n, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 168):
		{
			result = semOrdinal__O8zf75mcUwo9cfPQUQRaEug_10(c, n, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 160):
		{
			result = semContainer__9c9cJm09bVJhp6JDeDwpDcllw(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_499), prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA159_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31)) & 63);
			}
			LA159_: ;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 161):
		{
			result = semVarargs__O8zf75mcUwo9cfPQUQRaEug_11(c, n, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 191):
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 17):
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 18):
		{
			tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T163_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T164_;
			T163_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
			T163_ = c;
			T164_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T164_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 1)], NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(T163_, T164_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 29)) & 63);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 24):
		{
			result = semStaticType__DMAavRw02YcIRkO3yZ1XeQ(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 189):
		{
			result = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T171_;
				if (!!((result == NIM_NIL))) goto LA169_;
				T171_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T171_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = copyType__4O4aYoscFPo2FRSh4rP9ayg(result, T171_, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NI i_3;
					NI colontmp__2;
					NI i_4;
					i_3 = (NI)0;
					colontmp__2 = (NI)0;
					colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_4 = ((NI) 1);
					{
						while (1) {
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T175_;
							if (!(i_4 < colontmp__2)) goto LA174;
							i_3 = i_4;
							T175_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T175_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[i_3], NIM_NIL);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, T175_, NIM_TRUE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							i_4 += ((NI) 1);
						} LA174: ;
					}
				}
			}
			LA169_: ;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 165):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T177_;
			result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13), prev, c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T177_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T177_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 1)], NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, T177_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 164):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
			result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23), prev, c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			base = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 1)], NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!((IL64(140737496743936) &((NU64)1<<((NU)((*base).kind)&63U)))!=0)) goto LA181_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_502), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_503, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				base = (*base).sons->data[((NI) 0)];
			}
			LA181_: ;
			addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, base);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 162):
		{
			result = semAnyRef__WkfdPzqjIHjpNCHcK8ViDg(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22), prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 163):
		{
			result = semAnyRef__WkfdPzqjIHjpNCHcK8ViDg(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21), prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 167):
		{
			result = semTuple__O8zf75mcUwo9cfPQUQRaEug_12(c, n, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		default:
		{
			result = semGeneric__nGXSqtv2avLRNyfQXJjLWw(c, n, s, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typeExpr;
		typeExpr = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*typeExpr).typ == 0)) goto LA190_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_524), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_525, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA188_;
		LA190_: ;
		{
			if (!((*(*typeExpr).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61))) goto LA193_;
			result = (*typeExpr).typ;
		}
		goto LA188_;
		LA193_: ;
		{
			if (!!(((*(*typeExpr).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)))) goto LA196_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_526, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA188_;
		LA196_: ;
		{
			result = base__PfgI9ap7WOnsRfFV4znQ27w((*typeExpr).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T201_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* preprocessed;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T205_;
				T201_ = (NIM_BOOL)0;
				T201_ = isMetaType__aVxWxXLmf103vwE8uZ9cXRw(result);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T201_)) goto LA202_;
				T201_ = !(((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52)));
				LA202_: ;
				if (!T201_) goto LA203_;
				preprocessed = semGenericStmt__7YxUILpPxooC5qqa89a54dw_7(c, n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T205_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T205_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(preprocessed);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = makeTypeFromExpr__D2YW7F23KYvdV39aTScM3IQ(c, T205_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA199_;
			LA203_: ;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* alias;
				alias = maybeAliasType__xPYGnx9aHNqBtfJgpdvk0Eg(c, result, prev);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!!((alias == NIM_NIL))) goto LA209_;
					result = alias;
				}
				LA209_: ;
			}
			LA199_: ;
		}
		LA188_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
		s_2 = semTypeIdent__AO57Q9bSpsZiuv7kwwoM7yw(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*s_2).typ == NIM_NIL)) goto LA214_;
			{
				if (!!(((*s_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0)))) goto LA218_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_527, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA218_: ;
			result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA212_;
		LA214_: ;
		{
			NIM_BOOL T221_;
			T221_ = (NIM_BOOL)0;
			T221_ = ((*s_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			if (!(T221_)) goto LA222_;
			T221_ = ((*(*s_2).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			LA222_: ;
			if (!T221_) goto LA223_;
			{
				NIM_BOOL T227_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T228_;
				NimStringDesc* argX60gensym1439_;
				T227_ = (NIM_BOOL)0;
				T228_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T228_ = base__PfgI9ap7WOnsRfFV4znQ27w((*s_2).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T227_ = !(((*T228_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)));
				if (!(T227_)) goto LA229_;
				T227_ = (prev == NIM_NIL);
				LA229_: ;
				if (!!(T227_)) goto LA230_;
				argX60gensym1439_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_528);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym1439_, TM__rF9caJawfOjYTjsgLVUSGFA_528);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA230_: ;
			result = base__PfgI9ap7WOnsRfFV4znQ27w((*s_2).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA212_;
		LA223_: ;
		{
			if (!(prev == NIM_NIL)) goto LA233_;
			result = (*s_2).typ;
		}
		goto LA212_;
		LA233_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* alias_2;
			alias_2 = maybeAliasType__xPYGnx9aHNqBtfJgpdvk0Eg(c, (*s_2).typ, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!((alias_2 == NIM_NIL))) goto LA238_;
				result = alias_2;
			}
			goto LA236_;
			LA238_: ;
			{
				assignType__RDstL9c8H9bSHUphDz0iB0hg(prev, (*s_2).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!!(((IL64(35182224605190) &((NU64)1<<((NU)((*(*s_2).typ).kind)&63U)))!=0))) goto LA243_;
					(*prev).Sup.id = (*(*s_2).typ).Sup.id;
				}
				LA243_: ;
				result = prev;
			}
			LA236_: ;
		}
		LA212_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_3;
		s_3 = getGenSym__pT6glwCH57hiSrY6Jp4rug(c, (*n)._kind_4.sym);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T248_;
			NIM_BOOL T250_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* alias_3;
			T248_ = (NIM_BOOL)0;
			T248_ = !(((*s_3).typ == NIM_NIL));
			if (!(T248_)) goto LA249_;
			T250_ = (NIM_BOOL)0;
			T250_ = ((*s_3).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
			if (T250_) goto LA251_;
			T250_ = ((*(*s_3).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			LA251_: ;
			T248_ = T250_;
			LA249_: ;
			if (!T248_) goto LA252_;
			{
				if (!((*s_3).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7))) goto LA256_;
				t = (*s_3).typ;
			}
			goto LA254_;
			LA256_: ;
			{
				{
					NIM_BOOL T261_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T262_;
					NimStringDesc* argX60gensym1446_;
					T261_ = (NIM_BOOL)0;
					T262_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T262_ = base__PfgI9ap7WOnsRfFV4znQ27w((*s_3).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T261_ = !(((*T262_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)));
					if (!(T261_)) goto LA263_;
					T261_ = (prev == NIM_NIL);
					LA263_: ;
					if (!!(T261_)) goto LA264_;
					argX60gensym1446_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_529);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym1446_, TM__rF9caJawfOjYTjsgLVUSGFA_529);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA264_: ;
				t = base__PfgI9ap7WOnsRfFV4znQ27w((*s_3).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA254_: ;
			alias_3 = maybeAliasType__xPYGnx9aHNqBtfJgpdvk0Eg(c, t, prev);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!((alias_3 == NIM_NIL))) goto LA268_;
				result = alias_3;
			}
			goto LA266_;
			LA268_: ;
			{
				if (!(prev == NIM_NIL)) goto LA271_;
				result = t;
			}
			goto LA266_;
			LA271_: ;
			{
				assignType__RDstL9c8H9bSHUphDz0iB0hg(prev, t);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = prev;
			}
			LA266_: ;
			markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, (*n)._kind_4.sym);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA246_;
		LA252_: ;
		{
			{
				if (!!(((*s_3).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0)))) goto LA277_;
				{
					tyArray__nHXaesL0DJZHyVS07ARPRA T283_;
					NimStringDesc* T284_;
					if (!((*s_3).typ == NIM_NIL)) goto LA281_;
					nimZeroMem((void*)T283_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
					T283_[0] = copyString((*(*s_3).name).s);
					T284_ = (NimStringDesc*)0;
					T284_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_530), T283_, 1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T284_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_531, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA279_;
				LA281_: ;
				{
					tyArray__Re75IspeoxXy2oCZHwcRrA T286_;
					NimStringDesc* T287_;
					nimZeroMem((void*)T286_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
					T286_[0] = copyString((*(*s_3).name).s);
					T286_[1] = substr__iGg0RIKceRvsmvq8FUHOEw(reprEnum((NI)(*s_3).kind, (&NTI__cNCW9acsSznmEccl1fgQwkw_)), ((NI) 2));
					T287_ = (NimStringDesc*)0;
					T287_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_532), T286_, 2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T287_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_533, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA279_: ;
			}
			LA277_: ;
			result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA246_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133):
	{
		result = semObjectNode__T23bTYnaXqU9cKlZ7Ag9bdBg(c, n, prev, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 134):
	{
		result = semTuple__O8zf75mcUwo9cfPQUQRaEug_12(c, n, prev);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 135):
	{
		result = newConstraint__QGpv9bqfXWWeJjJoCL6cRRA(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 136):
	{
		result = semTypeClass__O8zf75mcUwo9cfPQUQRaEug_13(c, n, prev);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141):
	{
		result = semAnyRef__WkfdPzqjIHjpNCHcK8ViDg(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22), prev);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142):
	{
		result = semAnyRef__WkfdPzqjIHjpNCHcK8ViDg(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21), prev);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143):
	{
		result = semVarOutType__kPfUv0X9aI6AfGcdSb9aYz9cA(c, n, prev, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 146):
	{
		result = semDistinct__O8zf75mcUwo9cfPQUQRaEug_14(c, n, prev);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 137):
	{
		result = semStaticType__DMAavRw02YcIRkO3yZ1XeQ(c, (*n)._kind_6.sons->data[((NI) 0)], prev);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 148):
	{
		{
			NI T300_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* child;
			T300_ = (NI)0;
			T300_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T300_ == ((NI) 0))) goto LA301_;
			result = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51), c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			child = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25), c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*child).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15)) & 63);
			addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, child);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA298_;
		LA301_: ;
		{
			result = semProcTypeWithScope__HVX0MCOg4yL8PRkNzdiEmQ(c, n, prev, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25))) goto LA306_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15)) & 63);
				{
					NIM_BOOL T310_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T311_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T313_;
					T310_ = (NIM_BOOL)0;
					T311_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T311_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T310_ = ((*T311_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90));
					if (!(T310_)) goto LA312_;
					T313_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T313_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T310_ = hasPragma__oSJ8Ge9caDJrmJG9brFCzlOg(T313_, ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 142));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					LA312_: ;
					if (!T310_) goto LA314_;
					(*result).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 5);
				}
				goto LA308_;
				LA314_: ;
				{
					(*result).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9);
				}
				LA308_: ;
			}
			LA306_: ;
		}
		LA298_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 147):
	{
		{
			NI T320_;
			T320_ = (NI)0;
			T320_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T320_ == ((NI) 0))) goto LA321_;
			result = newConstraint__QGpv9bqfXWWeJjJoCL6cRRA(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA318_;
		LA321_: ;
		{
			result = semProcTypeWithScope__HVX0MCOg4yL8PRkNzdiEmQ(c, n, prev, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA318_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150):
	{
		result = semEnum__O8zf75mcUwo9cfPQUQRaEug_15(c, n, prev);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
	{
		result = (*n).typ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 128):
	{
		result = semStmtListType__O8zf75mcUwo9cfPQUQRaEug_16(c, n, prev);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 129):
	{
		result = semBlockType__O8zf75mcUwo9cfPQUQRaEug_17(c, n, prev);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T329_;
		NimStringDesc* T330_;
		NimStringDesc* T331_;
		T329_ = (*n).info;
		T330_ = (NimStringDesc*)0;
		T331_ = (NimStringDesc*)0;
		T331_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T330_ = rawNewString((T331_ ? T331_->Sup.len : 0) + 24);
appendString(T330_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_551));
appendString(T330_, T331_);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T329_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T330_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_552, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newOrPrevType__JrQ1aXbJ5BgQ3oCvDDFJ1Q(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	(*n).typ = result;
	(*c).inTypeContext -= ((NI) 1);
	{
		if (!NIM_FALSE) goto LA334_;
		instAllTypeBoundOp__Qpi3NgGJ9aSfcPm9cZqhFJUg(c, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA334_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAfterMacroCall__Hw66264lMkoOE49a7wqbwsQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* macroResult, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T5_;
	NI T6_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T57_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	(*(*(*c).graph).config).evalTemplateCounter += ((NI) 1);
	{
		if (!(((NI) 1000) < (*(*(*c).graph).config).evalTemplateCounter)) goto LA3_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*s).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_13), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_14, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	T5_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T5_ = getModule__xfh8ar7fDxVX2A4OO9b5sqQ((*s).owner);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*c).friendModules = (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*c).friendModules), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_));
	T6_ = (*c).friendModules->Sup.len++;
	(*c).friendModules->data[T6_] = T5_;
	idSynchronizationPoint__o9blMKDNUEgfiqOxiffy8Tw(((NI) 5000));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = macroResult;
	resetSemFlag__sIxO9bj7Xwv3qFTK7z9b5jSg(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!((*(*s).typ).sons->data[((NI) 0)] == NIM_NIL)) goto LA9_;
		result = semStmt__vJZwz9bfROKrfrtM50y74CQ_4(c, result, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA7_;
	LA9_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* retType;
		retType = (*(*s).typ).sons->data[((NI) 0)];
		{
			NIM_BOOL T14_;
			NIM_BOOL T15_;
			NI T18_;
			T14_ = (NIM_BOOL)0;
			T15_ = (NIM_BOOL)0;
			T15_ = ((*retType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			if (!(T15_)) goto LA16_;
			T15_ = (((*retType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0);
			LA16_: ;
			T14_ = T15_;
			if (!(T14_)) goto LA17_;
			T18_ = (NI)0;
			T18_ = len__5mJADrRYkP3r9auuiuDZN9cQast(retType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T14_ = (T18_ == ((NI) 1));
			LA17_: ;
			if (!T14_) goto LA19_;
			retType = (*retType).sons->data[((NI) 0)];
		}
		LA19_: ;
		switch ((*retType).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
		{
			result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, result, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7):
		{
			result = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, result, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
			{
				if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA26_;
				transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 128));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA26_: ;
			typ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, result, NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T32_;
				NimStringDesc* T33_;
				NimStringDesc* T34_;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T35_;
				if (!(typ == NIM_NIL)) goto LA30_;
				T32_ = (*result).info;
				T33_ = (NimStringDesc*)0;
				T34_ = (NimStringDesc*)0;
				T34_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(result, 4);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T33_ = rawNewString((T34_ ? T34_->Sup.len : 0) + 24);
appendString(T33_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_65));
appendString(T33_, T34_);
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T32_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T33_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_553, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T35_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T35_ = errorSym__CLMmoDuBHkJLvNsKvljGNw(c, result);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T35_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA28_;
			LA30_: ;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T37_;
				T37_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T37_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(c, typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).typ = T37_;
			}
			LA28_: ;
		}
		break;
		default:
		{
			{
				NIM_BOOL T41_;
				tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q paramTypes;
				T41_ = (NIM_BOOL)0;
				T41_ = !(((*(*s).ast)._kind_6.sons->data[((NI) 2)] == NIM_NIL));
				if (!(T41_)) goto LA42_;
				T41_ = isMetaType__aVxWxXLmf103vwE8uZ9cXRw(retType);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA42_: ;
				if (!T41_) goto LA43_;
				nimZeroMem((void*)(&paramTypes), sizeof(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q));
				newIdTable__Vn79aD3eLpwW0W0F5ymtWkw((&paramTypes));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp;
					param = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
					value = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					gp = (*(*s).ast)._kind_6.sons->data[((NI) 2)];
					{
						NI i;
						NI colontmp_;
						NI i_2;
						i = (NI)0;
						colontmp_ = (NI)0;
						colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(gp);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_2 = ((NI) 0);
						{
							while (1) {
								tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* genericParam;
								NI posInCall;
								NI T49_;
								if (!(i_2 < colontmp_)) goto LA48;
								i = i_2;
								genericParam = (*(*gp)._kind_6.sons->data[i])._kind_4.sym;
								T49_ = (NI)0;
								T49_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*s).typ);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								posInCall = (NI)(T49_ + i);
								{
									NI T52_;
									tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA* T55_;
									RootObj* T56_;
									T52_ = (NI)0;
									T52_ = len__P89cqdlERShb9alU3iC0yj8wast(call);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									if (!(posInCall < T52_)) goto LA53_;
									param = genericParam;
									value = (*call)._kind_6.sons->data[posInCall];
									T55_ = (tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA*)0;
									T55_ = &(*param).typ->Sup;
									T56_ = (RootObj*)0;
									T56_ = &(*value).typ->Sup.Sup;
									idTablePut__anELyz7VLsjbCIoxLpxbfQ((&paramTypes), T55_, T56_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								LA53_: ;
								i_2 += ((NI) 1);
							} LA48: ;
						}
					}
				}
				retType = generateTypeInstance__ab5BITmU2P8zKztV9cfNtsg(c, paramTypes, (*macroResult).info, retType);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA43_: ;
			result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, result, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, retType, result, (*result).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		}
	}
	LA7_: ;
	(*(*(*c).graph).config).evalTemplateCounter -= ((NI) 1);
	T57_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T57_ = pop__sJkHMuFHoY5Elz2ZDxz78Asystem((&(*c).friendModules));
	(void)(T57_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMacroExpr__GFpnqBAgGBu4p8rc0WsOTw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	NI genericParams;
	NI suppliedParams;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	pushInfoContext__uDLK9aoAOWwwFTev4NOwF7Q((*(*c).graph).config, (*nOrig).info, (*(*sym).name).s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	info = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	markUsed__QlWTWY7567sCdiTkeUTTDA(c, info, sym);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringDesc* T5_;
		if (!(sym == (*(*c).p).owner)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9), (*(*sym).name).s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T5_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_10, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	genericParams = len__P89cqdlERShb9alU3iC0yj8wast((*(*sym).ast)._kind_6.sons->data[((NI) 2)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T6_ = (NI)0;
	T6_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	suppliedParams = (((NI)(T6_ - ((NI) 1)) >= ((NI) 0)) ? (NI)(T6_ - ((NI) 1)) : ((NI) 0));
	{
		NimStringDesc* T11_;
		NimStringDesc* T12_;
		if (!(suppliedParams < genericParams)) goto LA9_;
		T11_ = (NimStringDesc*)0;
		T11_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T12_ = (NimStringDesc*)0;
		T12_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_11), T11_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T12_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_12, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA9_: ;
	result = evalMacroCall__6SgKdna0C4CEFxNnRELlUg((*c).module, (*c).graph, (*c).templInstCounter, n, nOrig, sym);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 13))&31U)))!=0))) goto LA15_;
		result = semAfterMacroCall__Hw66264lMkoOE49a7wqbwsQ(c, n, result, sym, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA15_: ;
	{
		NIM_BOOL T19_;
		NimStringDesc* T22_;
		T19_ = (NIM_BOOL)0;
		T19_ = nsthasKey((*(*(*c).graph).config).macrosToExpand, (*(*sym).name).s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T19_) goto LA20_;
		T22_ = (NimStringDesc*)0;
		T22_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(result, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*nOrig).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 78), T22_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_554, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA20_: ;
	result = wrapInComesFrom__Cb09cvJMrK2DzloKNIynCQQ((*nOrig).info, sym, result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	popInfoContext__O9arH9bYenXLOr27ZSmcQnEw((*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSym__20OKsvfFnNZXONk4IBzYgg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	s = getGenSym__pT6glwCH57hiSrY6Jp4rug(c, sym);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch ((*s).kind) {
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*s).typ, IL64(36134350135273488));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		switch ((*typ).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
		{
			{
				if (!((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0))) goto LA5_;
				result = inlineConst__a1Z9a4khB42QCtmKBL9cckKAsem(c, n, s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA3_;
			LA5_: ;
			{
				result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA3_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			{
				NI T11_;
				T11_ = (NI)0;
				T11_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast((*s).ast);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T11_ == ((NI) 0))) goto LA12_;
				result = inlineConst__a1Z9a4khB42QCtmKBL9cckKAsem(c, n, s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA9_;
			LA12_: ;
			{
				result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA9_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
		{
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
				if (!!(((*typ).n == NIM_NIL))) goto LA18_;
				result = (*typ).n;
				T20_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T20_ = base__PfgI9ap7WOnsRfFV4znQ27w(typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).typ = T20_;
			}
			goto LA16_;
			LA18_: ;
			{
				result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA16_: ;
		}
		break;
		default:
		{
			result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		}
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
	{
		{
			NIM_BOOL T26_;
			NIM_BOOL T27_;
			NI T29_;
			NIM_BOOL T31_;
			NI T33_;
			T26_ = (NIM_BOOL)0;
			T27_ = (NIM_BOOL)0;
			T27_ = ((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 14))&31U)))!=0);
			if (!(T27_)) goto LA28_;
			T29_ = (NI)0;
			T29_ = len__P89cqdlERShb9alU3iC0yj8wast((*(*s).ast)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T27_ = (((NI) 0) < T29_);
			LA28_: ;
			T26_ = T27_;
			if (T26_) goto LA30_;
			T31_ = (NIM_BOOL)0;
			T31_ = !(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)));
			if (!(T31_)) goto LA32_;
			T33_ = (NI)0;
			T33_ = requiredParams__knh7oe6js9clE7mbQBo9aJGA(s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T31_ = (((NI) 0) < T33_);
			LA32_: ;
			T26_ = T31_;
			LA30_: ;
			if (!T26_) goto LA34_;
			markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA24_;
		LA34_: ;
		{
			result = semMacroExpr__GFpnqBAgGBu4p8rc0WsOTw(c, n, n, s, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA24_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
	{
		{
			NIM_BOOL T40_;
			NIM_BOOL T41_;
			NIM_BOOL T42_;
			NI T44_;
			NIM_BOOL T46_;
			NI T48_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
			T40_ = (NIM_BOOL)0;
			T41_ = (NIM_BOOL)0;
			T42_ = (NIM_BOOL)0;
			T42_ = ((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 14))&31U)))!=0);
			if (!(T42_)) goto LA43_;
			T44_ = (NI)0;
			T44_ = len__P89cqdlERShb9alU3iC0yj8wast((*(*s).ast)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T42_ = (((NI) 0) < T44_);
			LA43_: ;
			T41_ = T42_;
			if (T41_) goto LA45_;
			T46_ = (NIM_BOOL)0;
			T46_ = !(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)));
			if (!(T46_)) goto LA47_;
			T48_ = (NI)0;
			T48_ = requiredParams__knh7oe6js9clE7mbQBo9aJGA(s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T46_ = (((NI) 0) < T48_);
			LA47_: ;
			T41_ = T46_;
			LA45_: ;
			T40_ = T41_;
			if (T40_) goto LA49_;
			T40_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0);
			LA49_: ;
			if (!T40_) goto LA50_;
			info = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			markUsed__QlWTWY7567sCdiTkeUTTDA(c, info, s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA38_;
		LA50_: ;
		{
			result = semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog(c, n, s, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA38_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3):
	{
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T56_;
			NIM_BOOL T57_;
			T56_ = (NIM_BOOL)0;
			T57_ = (NIM_BOOL)0;
			T57_ = !(((*s).typ == NIM_NIL));
			if (!(T57_)) goto LA58_;
			T57_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
			LA58_: ;
			T56_ = T57_;
			if (!(T56_)) goto LA59_;
			T56_ = !(((*(*s).typ).n == NIM_NIL));
			LA59_: ;
			if (!T56_) goto LA60_;
			result = (*(*s).typ).n;
			goto BeforeRet_;
		}
		goto LA54_;
		LA60_: ;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0)) goto LA63_;
			{
				NimStringDesc* argX60gensym4339_;
				if (!!(!(((*s).owner == NIM_NIL)))) goto LA67_;
				argX60gensym4339_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_555);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym4339_, TM__rF9caJawfOjYTjsgLVUSGFA_555);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA67_: ;
		}
		goto LA54_;
		LA63_: ;
		LA54_: ;
		result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21):
	{
		{
			if (!((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 258))) goto LA72_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_556), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_557, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA72_: ;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4):
	{
		{
			if (!((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA77_;
			result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = (*s).typ;
		}
		goto LA75_;
		LA77_: ;
		{
			if (!!(((*s).ast == NIM_NIL))) goto LA80_;
			result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*s).ast, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA75_;
		LA80_: ;
		{
			(*n).typ = (*s).typ;
			result = n;
			goto BeforeRet_;
		}
		LA75_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T93_;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T86_;
			NIM_BOOL T87_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T89_;
			T86_ = (NIM_BOOL)0;
			T87_ = (NIM_BOOL)0;
			T87_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
			if (!(T87_)) goto LA88_;
			T89_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T89_ = base__PfgI9ap7WOnsRfFV4znQ27w((*s).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T87_ = !(((*T89_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)));
			LA88_: ;
			T86_ = T87_;
			if (!(T86_)) goto LA90_;
			T86_ = !(((*(*s).typ).n == NIM_NIL));
			LA90_: ;
			if (!T86_) goto LA91_;
			result = (*(*s).typ).n;
			goto BeforeRet_;
		}
		LA91_: ;
		result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T93_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T93_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(c, (*s).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T93_;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19):
	{
		tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* p;
		p = (*c).p;
		{
			while (1) {
				NIM_BOOL T97_;
				T97_ = (NIM_BOOL)0;
				T97_ = !((p == NIM_NIL));
				if (!(T97_)) goto LA98_;
				T97_ = ((*p).selfSym == NIM_NIL);
				LA98_: ;
				if (!T97_) goto LA96;
				p = (*p).next;
			} LA96: ;
		}
		{
			NIM_BOOL T101_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check;
			T101_ = (NIM_BOOL)0;
			T101_ = !((p == NIM_NIL));
			if (!(T101_)) goto LA102_;
			T101_ = !(((*p).selfSym == NIM_NIL));
			LA102_: ;
			if (!T101_) goto LA103_;
			ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*p).selfSym).typ, IL64(246290619303952));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				while (1) {
					if (!(((*ty).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 32))&63U)))!=0)) goto LA106;
					ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(ty, 8192);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA106: ;
			}
			check = NIM_NIL;
			{
				if (!((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA109_;
				{
					while (1) {
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* f;
						check = NIM_NIL;
						f = lookupInRecordAndBuildCheck__h4jJjDt0klDz9b1Aq9bwK14A(c, n, (*ty).n, (*s).name, &check);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							NIM_BOOL T115_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T123_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T124_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T125_;
							T115_ = (NIM_BOOL)0;
							T115_ = !((f == NIM_NIL));
							if (!(T115_)) goto LA116_;
							T115_ = fieldVisible__9bfgTfDbdDjqc3nAFjdnkKwsigmatch(c, f);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							LA116_: ;
							if (!T115_) goto LA117_;
							{
								if (!!((f == s))) goto LA121_;
								failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_558));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA121_: ;
							markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, f);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), (*n).info, (*f).typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T123_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T123_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*p).selfSym);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T124_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T124_ = makeDeref__wWBimsBS4M6UZBvTRDlQTQ(T123_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(result, T124_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T125_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T125_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(f);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(result, T125_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								if (!!((check == NIM_NIL))) goto LA128_;
								(*check)._kind_6.sons->data[((NI) 0)] = result;
								(*check).typ = (*result).typ;
								result = check;
							}
							LA128_: ;
							goto BeforeRet_;
						}
						LA117_: ;
						{
							if (!((*ty).sons->data[((NI) 0)] == NIM_NIL)) goto LA132_;
							goto LA111;
						}
						LA132_: ;
						ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*ty).sons->data[((NI) 0)], IL64(36275087638268176));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
				} LA111: ;
			}
			LA109_: ;
		}
		LA103_: ;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info_2;
		info_2 = getCallLineInfo__oiqk14Y4OLEhcR9bJBpfCag(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, info_2, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, info_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semFieldAccess__vJZwz9bfROKrfrtM50y74CQ_14)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = builtinFieldAccess__vJZwz9bfROKrfrtM50y74CQ_5(c, n, flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(result == NIM_NIL)) goto LA3_;
		result = dotTransformation__7YxUILpPxooC5qqa89a54dw_29(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStaticExpr__7YxUILpPxooC5qqa89a54dw_33)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	(*c).inStaticContext += ((NI) 1);
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	a = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, n, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*c).inStaticContext -= ((NI) 1);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
		T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T4_ = findUnresolvedStatic__UPSW0jLTX5qJL51YMUAHgw_2(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!((T4_ == NIM_NIL))) goto LA5_;
		result = a;
		goto BeforeRet_;
	}
	LA5_: ;
	result = evalStaticExpr__ajRaPV9aInq6ZNnUYn0DaVw((*c).module, (*c).graph, a, (*(*c).p).owner);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T11_;
		NimStringDesc* T12_;
		NimStringDesc* T13_;
		if (!(result == 0)) goto LA9_;
		T11_ = (*n).info;
		T12_ = (NimStringDesc*)0;
		T12_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T13_ = (NimStringDesc*)0;
		T13_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_344), T12_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T11_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T13_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_564, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = (*(*c).graph).emptyNode;
	}
	goto LA7_;
	LA9_: ;
	{
		result = fixupTypeAfterEval__uWNSz7p50zmqqN864XaVBA(c, result, a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA7_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, maybeLiftType__K7SXxqU6fIMYb9b4D3wV5CQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ** t, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* lifted;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	lifted = liftParamType__IED6yzEuxOVbtiDk639cvjw(c, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), T2_, (*t), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_565), info, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((lifted == NIM_NIL))) goto LA5_;
		(*t) = lifted;
	}
	LA5_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedSym__iY9a3KG6T9aTt3fJH8J6BrJQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag(c, n, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !((s == NIM_NIL));
	if (!(T2_)) goto LA3_;
	T2_ = (((*(*s).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = eqStrings((*(*s).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_463));
	LA4_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, inferWithMetatype__2aIGqt1c0rX64kF16cP4Pw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, NIM_BOOL coerceDistincts) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	newCandidate__rFFaxk6TYVlvnKNibvVmkg(c, formal, (&m));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	m.coerceDistincts = coerceDistincts;
	result = paramTypesMatch__MkZIYaWSL2Febv66liB9aIA((&m), formal, (*arg).typ, arg, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = m.genericConverter;
		if (!(T3_)) goto LA4_;
		T3_ = !((result == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA5_;
		instGenericConvertersArg__OiEXsRRJbWjgfYLWIAKYYQ(c, result, (&m));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
		if (!!((result == NIM_NIL))) goto LA9_;
		T11_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T11_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(formal, IL64(18014398509481984));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T12_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T12_ = generateTypeInstance__ab5BITmU2P8zKztV9cfNtsg(c, m.bindings, (*arg).info, T11_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T12_;
	}
	goto LA7_;
	LA9_: ;
	{
		typeMismatch__1xxyFIws27lai2cG4n31Ow((*(*c).graph).config, (*arg).info, formal, (*arg).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(arg);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = formal;
	}
	LA7_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw, checkConversionBetweenObjects__IxznSNSPzSVAXeEIIkymSA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* castDest, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src, NI pointers) {
	tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw result;
	NI diff;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw)0;
	diff = inheritanceDiff__1dM2iQB5qStJfnn3684ijQ_2(castDest, src);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (diff == ((NI) IL64(9223372036854775807)));
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = (((NI) 1) < pointers);
		if (!(T5_)) goto LA6_;
		T5_ = !((diff == ((NI) 0)));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 2);
	}
	goto LA1_;
	LA7_: ;
	{
		result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 0);
	}
	LA1_: ;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__zYqwL8gLoyye80MYuubU4Qsystem)(tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ s, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (s.a <= value);
	if (!(T1_)) goto LA2_;
	T1_ = (value <= s.b);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ, dotdot___zEl0oB35FYImlhRYJ1IWBwsystem)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw a, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw b) {
	tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ));
	result.a = a;
	result.b = b;
	return result;
}
static N_INLINE(NIM_BOOL, contains__7Sy9cDQTm9cs7zSfkcqgIQdwsystem)(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw* s, tyObject_Int128__9a9axPfb75jdWY25AamJewkA value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = lteq___7c5Zw7H31uJfWmmhZe9aEqw_2((*s).a, value);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (!(T1_)) goto LA2_;
	T1_ = lteq___7c5Zw7H31uJfWmmhZe9aEqw_2(value, (*s).b);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	LA2_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw, dotdot___SGmrVHErX3j2AKHYB8sGjgsystem)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	tyObject_HSlice__fqLtJsaN5foHLgxLTScotw result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw));
	result.a = a;
	result.b = b;
	return result;
}
static N_INLINE(NIM_BOOL, contains__JskUST5Zl4jxh9cOha2CJ8Qsystem)(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw* s, NI64 value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = lteq___nr9cP9b0OL9cabygV9bo19cJgZA((*s).a, value);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (!(T1_)) goto LA2_;
	T1_ = lteq___xL5gyZrjbGMarSdRAXOo9ag(value, (*s).b);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	LA2_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__NUcXcdcbrUs0l4XrxCmsRgsystem)(tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA s, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (s.a <= value);
	if (!(T1_)) goto LA2_;
	T1_ = (value <= s.b);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA, dotdot___Lid9a4g9biXDC8SKbcluO70gsystem)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag a, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag b) {
	tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA));
	result.a = a;
	result.b = b;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw, checkConvertible__wqYfe9cPnmcuZgfMqqBjkkA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* targetTyp, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src) {
	tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* srcTyp;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* d;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* s;
	NI pointers;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* targetBaseTyp;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* srcBaseTyp;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw)0;
	srcTyp = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*src).typ, IL64(1152921504606846976));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 0);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameType__3isNyHKb0U1OCnClmflXSg(targetTyp, srcTyp, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_)) goto LA4_;
		T3_ = ((*targetTyp).sym == (*srcTyp).sym);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (!!(((IL64(35182225670150) &((NU64)1<<((NU)((*targetTyp).kind)&63U)))!=0))) goto LA9_;
			result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 1);
		}
		LA9_: ;
		goto BeforeRet_;
	}
	LA5_: ;
	d = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(targetTyp, IL64(36275087632017680));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	s = srcTyp;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = ((IL64(13510798882111488) &((NU64)1<<((NU)((*s).kind)&63U)))!=0);
		if (!(T13_)) goto LA14_;
		T13_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
		LA14_: ;
		if (!T13_) goto LA15_;
		s = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA15_: ;
	s = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(s, IL64(36239903259928592));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T19_;
		T19_ = (NIM_BOOL)0;
		T19_ = ((*s).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
		if (!(T19_)) goto LA20_;
		T19_ = !(((*d).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
		LA20_: ;
		if (!T19_) goto LA21_;
		s = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA21_: ;
	pointers = ((NI) 0);
	{
		while (1) {
			NIM_BOOL T25_;
			T25_ = (NIM_BOOL)0;
			T25_ = !((d == NIM_NIL));
			if (!(T25_)) goto LA26_;
			T25_ = ((IL64(35184378380288) &((NU64)1<<((NU)((*d).kind)&63U)))!=0);
			LA26_: ;
			if (!T25_) goto LA24;
			{
				NIM_BOOL T29_;
				T29_ = (NIM_BOOL)0;
				T29_ = ((*s).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
				if (!(T29_)) goto LA30_;
				T29_ = !(((*d).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
				LA30_: ;
				if (!T29_) goto LA31_;
				s = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA27_;
			LA31_: ;
			{
				if (!!(((*d).kind == (*s).kind))) goto LA34_;
				goto LA23;
			}
			goto LA27_;
			LA34_: ;
			{
				d = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(d);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				s = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA27_: ;
			pointers += ((NI) 1);
		} LA24: ;
	} LA23: ;
	targetBaseTyp = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(targetTyp, IL64(36134350144710928));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	srcBaseTyp = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(srcTyp, IL64(36134350144710672));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(d == NIM_NIL)) goto LA39_;
		result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 2);
	}
	goto LA37_;
	LA39_: ;
	{
		NIM_BOOL T42_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T43_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T45_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T48_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T49_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T50_;
		T42_ = (NIM_BOOL)0;
		T43_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T43_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(d, IL64(36134350135273744));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T42_ = ((*T43_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
		if (!(T42_)) goto LA44_;
		T45_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T45_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(s, IL64(36134350135273744));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T42_ = ((*T45_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
		LA44_: ;
		if (!T42_) goto LA46_;
		T48_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T48_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(d, IL64(36134350135273744));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T49_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T49_ = T48_;
		T50_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T50_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(s, IL64(36134350135273744));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = checkConversionBetweenObjects__IxznSNSPzSVAXeEIIkymSA(T49_, T50_, pointers);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA37_;
	LA46_: ;
	{
		NIM_BOOL T52_;
		T52_ = (NIM_BOOL)0;
		T52_ = ((IL64(35182224621574) &((NU64)1<<((NU)((*targetBaseTyp).kind)&63U)))!=0);
		if (!(T52_)) goto LA53_;
		T52_ = ((IL64(35182224621574) &((NU64)1<<((NU)((*srcBaseTyp).kind)&63U)))!=0);
		LA53_: ;
		if (!T52_) goto LA54_;
		{
			if (!((*targetTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1))) goto LA58_;
		}
		goto LA56_;
		LA58_: ;
		{
			NIM_BOOL T61_;
			T61_ = (NIM_BOOL)0;
			T61_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA(targetTyp, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T61_) goto LA62_;
			{
				NIM_BOOL T66_;
				tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ T67_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T69_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T70_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T71_;
				tyObject_HSlice__fqLtJsaN5foHLgxLTScotw T72_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T73_;
				NIM_BOOL T74_;
				T66_ = (NIM_BOOL)0;
				T67_ = dotdot___zEl0oB35FYImlhRYJ1IWBwsystem(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
				T66_ = contains__zYqwL8gLoyye80MYuubU4Qsystem(T67_, (*src).kind);
				if (!(T66_)) goto LA68_;
				T69_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*c).graph).config, targetTyp);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T70_ = T69_;
				T71_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*c).graph).config, targetTyp);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T72_ = dotdot___SGmrVHErX3j2AKHYB8sGjgsystem(T70_, T71_);
				T73_ = getInt__Ml9bTZ5dXYSLBfnGRkErokw(src);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T74_ = (NIM_BOOL)0;
				T74_ = contains__7Sy9cDQTm9cs7zSfkcqgIQdwsystem((&T72_), T73_);
				T66_ = !(T74_);
				LA68_: ;
				if (!T66_) goto LA75_;
				result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 3);
			}
			goto LA64_;
			LA75_: ;
			{
				NIM_BOOL T78_;
				tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ T79_;
				NIM_BOOL T81_;
				tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA T82_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T84_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T85_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T86_;
				tyObject_HSlice__fqLtJsaN5foHLgxLTScotw T87_;
				NIM_BOOL T88_;
				T78_ = (NIM_BOOL)0;
				T79_ = dotdot___zEl0oB35FYImlhRYJ1IWBwsystem(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18));
				T78_ = contains__zYqwL8gLoyye80MYuubU4Qsystem(T79_, (*src).kind);
				if (!(T78_)) goto LA80_;
				T81_ = (NIM_BOOL)0;
				T82_ = (tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA)0;
				T82_ = classify__x3IKzrz1VNvfZbypScSTXg((*src)._kind_2.floatVal);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T81_ = ((112 &(1U<<((NU)(T82_)&7U)))!=0);
				if (T81_) goto LA83_;
				T84_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*c).graph).config, targetTyp);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T85_ = T84_;
				T86_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*c).graph).config, targetTyp);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T87_ = dotdot___SGmrVHErX3j2AKHYB8sGjgsystem(T85_, T86_);
				T88_ = (NIM_BOOL)0;
				T88_ = contains__JskUST5Zl4jxh9cOha2CJ8Qsystem((&T87_), ((NI64) ((*src)._kind_2.floatVal)));
				T81_ = !(T88_);
				LA83_: ;
				T78_ = T81_;
				LA80_: ;
				if (!T78_) goto LA89_;
				result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 3);
			}
			goto LA64_;
			LA89_: ;
			LA64_: ;
		}
		goto LA56_;
		LA62_: ;
		{
			tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA T92_;
			NIM_BOOL T93_;
			T92_ = dotdot___Lid9a4g9biXDC8SKbcluO70gsystem(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36), ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 38));
			T93_ = (NIM_BOOL)0;
			T93_ = contains__NUcXcdcbrUs0l4XrxCmsRgsystem(T92_, (*targetBaseTyp).kind);
			if (!T93_) goto LA94_;
			{
				NIM_BOOL T98_;
				tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ T99_;
				NIM_BOOL T101_;
				T98_ = (NIM_BOOL)0;
				T99_ = dotdot___zEl0oB35FYImlhRYJ1IWBwsystem(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18));
				T98_ = contains__zYqwL8gLoyye80MYuubU4Qsystem(T99_, (*src).kind);
				if (!(T98_)) goto LA100_;
				T101_ = (NIM_BOOL)0;
				T101_ = floatRangeCheck__RTbq1U5r9aGXeN20T54YASg((*src)._kind_2.floatVal, targetTyp);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T98_ = !(T101_);
				LA100_: ;
				if (!T98_) goto LA102_;
				result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 3);
			}
			goto LA96_;
			LA102_: ;
			{
				NIM_BOOL T105_;
				tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ T106_;
				NIM_BOOL T108_;
				T105_ = (NIM_BOOL)0;
				T106_ = dotdot___zEl0oB35FYImlhRYJ1IWBwsystem(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
				T105_ = contains__zYqwL8gLoyye80MYuubU4Qsystem(T106_, (*src).kind);
				if (!(T105_)) goto LA107_;
				T108_ = (NIM_BOOL)0;
				T108_ = floatRangeCheck__RTbq1U5r9aGXeN20T54YASg(((NF) ((*src)._kind_1.intVal)), targetTyp);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T105_ = !(T108_);
				LA107_: ;
				if (!T105_) goto LA109_;
				result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 3);
			}
			goto LA96_;
			LA109_: ;
			LA96_: ;
		}
		goto LA56_;
		LA94_: ;
		LA56_: ;
	}
	goto LA37_;
	LA54_: ;
	{
		tyEnum_TTypeRelation__1IMf5P083XuEtWGxYaIXyQ T112_;
		T112_ = (tyEnum_TTypeRelation__1IMf5P083XuEtWGxYaIXyQ)0;
		T112_ = cmpTypes__6LyhcPFOyQXLaZFXoqJM1w(c, d, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		switch (T112_) {
		case ((tyEnum_TTypeRelation__1IMf5P083XuEtWGxYaIXyQ) 0):
		case ((tyEnum_TTypeRelation__1IMf5P083XuEtWGxYaIXyQ) 8):
		{
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T116_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T117_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T118_;
				NIM_BOOL T119_;
				T116_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T116_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(targetTyp, IL64(36275087632017680));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T117_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T117_ = T116_;
				T118_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T118_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(srcTyp, IL64(35184372088832));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T119_ = (NIM_BOOL)0;
				T119_ = compareTypes__oyXq5u7iL4RjsT9bovvTE9cg(T117_, T118_, ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 1), 0);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!(T119_)) goto LA120_;
				result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 2);
			}
			LA120_: ;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	LA37_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConv__7YxUILpPxooC5qqa89a54dw_32)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* targetType;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T46_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_561), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_562, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = n;
		goto BeforeRet_;
	}
	LA4_: ;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	targetType = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch ((*targetType).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
	{
		{
			NI T9_;
			NimStringDesc* argX60gensym3636_;
			T9_ = (NI)0;
			T9_ = len__5mJADrRYkP3r9auuiuDZN9cQast(targetType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!((((NI) 0) < T9_))) goto LA10_;
			argX60gensym3636_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_563);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym3636_, TM__rF9caJawfOjYTjsgLVUSGFA_563);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA10_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
			T14_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T14_ = base__PfgI9ap7WOnsRfFV4znQ27w(targetType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((*T14_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA15_;
			result = semTypeOf__7YxUILpPxooC5qqa89a54dw_15(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA12_;
		LA15_: ;
		{
			targetType = base__PfgI9ap7WOnsRfFV4znQ27w(targetType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* evaluated;
		evaluated = semStaticExpr__7YxUILpPxooC5qqa89a54dw_33(c, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T21_;
			tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T25_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T27_;
			T21_ = (NIM_BOOL)0;
			T21_ = ((*evaluated).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4));
			if (T21_) goto LA22_;
			T21_ = ((*(*evaluated).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			LA22_: ;
			if (!T21_) goto LA23_;
			result = n;
			T25_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
			T25_ = c;
			T26_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T26_ = semStaticType__DMAavRw02YcIRkO3yZ1XeQ(c, evaluated, NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T27_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T27_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(T25_, T26_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T27_;
			goto BeforeRet_;
		}
		goto LA19_;
		LA23_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T29_;
			T29_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T29_ = base__PfgI9ap7WOnsRfFV4znQ27w(targetType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((*T29_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA30_;
			result = evaluated;
			goto BeforeRet_;
		}
		goto LA19_;
		LA30_: ;
		{
			targetType = base__PfgI9ap7WOnsRfFV4znQ27w(targetType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA19_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	maybeLiftType__K7SXxqU6fIMYb9b4D3wV5CQ(&targetType, c, (*(*n)._kind_6.sons->data[((NI) 0)]).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T36_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T40_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T45_;
		T36_ = (NIM_BOOL)0;
		T36_ = ((IL64(211106232532992) &((NU64)1<<((NU)((*targetType).kind)&63U)))!=0);
		if (T36_) goto LA37_;
		T36_ = isOwnedSym__iY9a3KG6T9aTt3fJH8J6BrJQ_2(c, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA37_: ;
		if (!T36_) goto LA38_;
		T40_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T40_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 1)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		baseType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T40_, 256);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		t = newTypeS__xb5E2cGIynZweqWlCP8Tig((*targetType).kind, c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*targetType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45))) goto LA43_;
			(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4)) & 63);
		}
		LA43_: ;
		rawAddSonNoPropagationOfTypeFlags__9a8CdZqChTyqzq5bpSL3TzA_2(t, baseType);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T45_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T45_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(c, t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T45_;
		goto BeforeRet_;
	}
	LA38_: ;
	T46_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T46_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*n)._kind_6.sons->data[((NI) 0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, T46_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T49_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T51_;
		T49_ = (NIM_BOOL)0;
		T49_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33));
		if (!(T49_)) goto LA50_;
		T51_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T51_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(targetType, IL64(36275087638309136));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T49_ = ((*T51_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
		LA50_: ;
		if (!T49_) goto LA52_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_566), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_567, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA52_: ;
	op = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T56_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* final;
		T56_ = (NIM_BOOL)0;
		T56_ = !(((*targetType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)));
		if (!(T56_)) goto LA57_;
		T56_ = isMetaType__aVxWxXLmf103vwE8uZ9cXRw(targetType);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA57_: ;
		if (!T56_) goto LA58_;
		final = inferWithMetatype__2aIGqt1c0rX64kF16cP4Pw(c, targetType, op, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, final);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = (*final).typ;
		goto BeforeRet_;
	}
	LA58_: ;
	(*result).typ = targetType;
	add__P8dDSotTW25BkfbyspojGg(result, op);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T64_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T65_;
		if (!((*targetType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA62_;
		T64_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T64_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T65_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T65_ = makeTypeFromExpr__D2YW7F23KYvdV39aTScM3IQ(c, T64_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T65_;
		goto BeforeRet_;
	}
	LA62_: ;
	{
		NIM_BOOL T68_;
		tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw status;
		T68_ = (NIM_BOOL)0;
		T68_ = isSymChoice__crbaOhZgTohCnKAdtWPkSQ_3sem(op);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T68_)) goto LA69_;
		status = checkConvertible__wqYfe9cPnmcuZgfMqqBjkkA(c, (*result).typ, op);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		switch (status) {
		case ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 0):
		{
			{
				NIM_BOOL T74_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T78_;
				T74_ = (NIM_BOOL)0;
				T74_ = ((*op).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T74_)) goto LA75_;
				T74_ = isGenericRoutine__uUQONnU7icBs9bdkKqJVqhA((*op)._kind_4.sym);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA75_: ;
				if (!T74_) goto LA76_;
				T78_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T78_ = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, (*result).typ, (*result)._kind_6.sons->data[((NI) 1)], (*result).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[((NI) 1)] = T78_;
			}
			goto LA72_;
			LA76_: ;
			{
				NIM_BOOL T80_;
				T80_ = (NIM_BOOL)0;
				T80_ = ((*op).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*op).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160));
				if (!(T80_)) goto LA81_;
				T80_ = ((*targetType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
				LA81_: ;
				if (!T80_) goto LA82_;
				op = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, targetType, op, (*result).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA72_;
			LA82_: ;
			LA72_: ;
		}
		break;
		case ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 1):
		{
			NimStringDesc* T85_;
			T85_ = (NimStringDesc*)0;
			T85_ = typeToString__QlvraUan7WbHowhAbvDvdA((*result).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 58), T85_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_568, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 2):
		{
			result = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, (*result).typ, (*result)._kind_6.sons->data[((NI) 1)], (*result).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyArray__Re75IspeoxXy2oCZHwcRrA T91_;
				NimStringDesc* T92_;
				NimStringDesc* T93_;
				NimStringDesc* T94_;
				if (!(result == NIM_NIL)) goto LA89_;
				nimZeroMem((void*)T91_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
				T92_ = (NimStringDesc*)0;
				T92_ = typeToString__QlvraUan7WbHowhAbvDvdA((*op).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T91_[0] = T92_;
				T93_ = (NimStringDesc*)0;
				T93_ = typeToString__QlvraUan7WbHowhAbvDvdA((*result).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T91_[1] = T93_;
				T94_ = (NimStringDesc*)0;
				T94_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_569), T91_, 2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T94_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_570, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA89_: ;
		}
		break;
		case ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 3):
		{
			NimStringDesc* value;
			NimStringDesc* T103_;
			NimStringDesc* T104_;
			{
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T100_;
				if (!((*op).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*op).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA98_;
				T100_ = getInt__Ml9bTZ5dXYSLBfnGRkErokw(op);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				value = dollar___W2wbDjPGDCaBwLQM6yLUQg(T100_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA96_;
			LA98_: ;
			{
				NF T102_;
				T102_ = (NF)0;
				T102_ = getFloat__dgNNhprrT2HlJglL2Nc3EA(op);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				value = nimFloatToStr(T102_);
			}
			LA96_: ;
			T103_ = (NimStringDesc*)0;
			T104_ = (NimStringDesc*)0;
			T104_ = typeToString__QlvraUan7WbHowhAbvDvdA((*result).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T103_ = rawNewString((value ? value->Sup.len : 0) + (T104_ ? T104_->Sup.len : 0) + 23);
appendString(T103_, value);
appendString(T103_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_571));
appendString(T103_, T104_);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T103_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_572, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		}
	}
	goto LA66_;
	LA69_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(op);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw status_2;
					if (!(i_2 < colontmp_)) goto LA108;
					i = i_2;
					it = (*op)._kind_6.sons->data[i];
					status_2 = checkConvertible__wqYfe9cPnmcuZgfMqqBjkkA(c, (*result).typ, it);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!((3 &(1U<<((NU)(status_2)&7U)))!=0)) goto LA111_;
						markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, (*it)._kind_4.sym);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						markIndirect__OGrPg9bGc5rou9aBRgLK606Qsemdata(c, (*it)._kind_4.sym);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						result = it;
						goto BeforeRet_;
					}
					LA111_: ;
					i_2 += ((NI) 1);
				} LA108: ;
			}
		}
		errorUseQualifier__t5EWYooFsFPeMiRTzdCWFw(c, (*n).info, (*(*op)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA66_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semObjConstr__vJZwz9bfROKrfrtM50y74CQ_15)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw constrCtx;
	tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ initResult;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38), (*n).info, t);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child;
		child = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					child = (*n)._kind_6.sons->data[i];
					add__P8dDSotTW25BkfbyspojGg(result, child);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	{
		if (!(t == NIM_NIL)) goto LA7_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_573), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_574, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA7_: ;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(105553116268560));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA11_;
		t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(105553116268560));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA15_;
			T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T17_ = makeVarType__45x39aIZGLTdqqo59b4NHvLw(c, (*result).typ, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T17_;
			(*(*result).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4)) & 63);
		}
		LA15_: ;
	}
	LA11_: ;
	{
		if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA20_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_573), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_575, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA20_: ;
	nimZeroMem((void*)(&constrCtx), sizeof(tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw));
	initConstrContext__RYPHxM9aTf8uWaAnZ0rNc2A(t, result, (&constrCtx));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	initResult = semConstructTypeAux__sAwB0gQrQ1keYlqxdq08bQ(c, (&constrCtx), flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI T24_;
		tyArray__Re75IspeoxXy2oCZHwcRrA T27_;
		NimStringDesc* T28_;
		NimStringDesc* T29_;
		T24_ = (constrCtx.missingFields ? constrCtx.missingFields->Sup.len : 0);
		if (!(((NI) 0) < T24_)) goto LA25_;
		nimZeroMem((void*)T27_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T27_[0] = copyString((*(*(*t).sym).name).s);
		T28_ = (NimStringDesc*)0;
		T28_ = listSymbolNames__8Z1zCwaGnI7ov1q9bc6s4uQ(constrCtx.missingFields->data, (constrCtx.missingFields ? constrCtx.missingFields->Sup.len : 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T27_[1] = T28_;
		T29_ = (NimStringDesc*)0;
		T29_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_576), T27_, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*result).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T29_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_577, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA25_: ;
	{
		NI i_3;
		NI colontmp__2;
		NI i_4;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_4 = ((NI) 1);
		{
			while (1) {
				if (!(i_4 < colontmp__2)) goto LA32;
				i_3 = i_4;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
					field = (*result)._kind_6.sons->data[i_3];
					{
						tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* id;
						NimStringDesc* T50_;
						if (!!((((*field).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7))&31U)))!=0))) goto LA36_;
						{
							if (!!(((*field).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34)))) goto LA40_;
							invalidObjConstr__NRIJDWZtATzMum7OEjYC2g_10(c, field);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto LA33;
						}
						LA40_: ;
						id = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*field)._kind_6.sons->data[((NI) 0)], NIM_NIL);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							NI j;
							NI i_5;
							j = (NI)0;
							i_5 = ((NI) 1);
							{
								while (1) {
									tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* prevId;
									if (!(i_5 < i_3)) goto LA44;
									j = i_5;
									prevId = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*(*result)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 0)], NIM_NIL);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									{
										NimStringDesc* T49_;
										if (!((*prevId).Sup.id == (*id).Sup.id)) goto LA47_;
										T49_ = (NimStringDesc*)0;
										T49_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_578), (*id).s);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*field).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T49_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_579, NIM_FALSE);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										goto BeforeRet_;
									}
									LA47_: ;
									i_5 += ((NI) 1);
								} LA44: ;
							}
						}
						T50_ = (NimStringDesc*)0;
						T50_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_363), (*id).s);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*field).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T50_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_580, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
					LA36_: ;
				} LA33: ;
				i_4 += ((NI) 1);
			} LA32: ;
		}
	}
	{
		if (!(initResult == ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 1))) goto LA53_;
		(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 1)) & 31);
	}
	LA53_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDefined__7YxUILpPxooC5qqa89a54dw_34)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T1_;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T2_;
	NIM_BOOL T3_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
	T1_ = (*(*c).graph).config;
	T2_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T2_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*n)._kind_6.sons->data[((NI) 1)], n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (NIM_BOOL)0;
	T3_ = isDefined__jkXTnxDf8MX1Pmks3s0XxA(T1_, (*T2_).s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_1.intVal = ((NI64) (T3_));
	(*result).info = (*n).info;
	T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T4_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = T4_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, setMs__YdV8xmi8UjdS8ox7bsgtGw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 0)] = T1_;
	(*(*n)._kind_6.sons->data[((NI) 0)]).info = (*n).info;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, lookUpForDeclared__ejqqZ7JpeaJqZ9aJjvnjSXw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL onlyCurrentScope) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		{
			tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T6_;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T7_;
			if (!onlyCurrentScope) goto LA4_;
			T6_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
			T6_ = c;
			T7_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T7_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, n, NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = localSearchInScope__Drn1sJCJSwUUo03qKJigUw_2(T6_, T7_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA2_;
		LA4_: ;
		{
			tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T9_;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T10_;
			T9_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
			T9_ = c;
			T10_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T10_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, n, NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = searchInScopes__Drn1sJCJSwUUo03qKJigUw(T9_, T10_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m;
		result = NIM_NIL;
		{
			if (!onlyCurrentScope) goto LA14_;
			goto BeforeRet_;
		}
		LA14_: ;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		m = lookUpForDeclared__ejqqZ7JpeaJqZ9aJjvnjSXw(c, (*n)._kind_6.sons->data[((NI) 0)], onlyCurrentScope);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T18_;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
			T18_ = (NIM_BOOL)0;
			T18_ = !((m == NIM_NIL));
			if (!(T18_)) goto LA19_;
			T18_ = ((*m).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6));
			LA19_: ;
			if (!T18_) goto LA20_;
			ident = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*n)._kind_6.sons->data[((NI) 1)], n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!(m == (*c).module)) goto LA24_;
				result = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ((*(*c).topLevelScope).symbols, ident);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA22_;
			LA24_: ;
			{
				result = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ((*m)._kind_3.tab, ident);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA22_: ;
		}
		LA20_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = (*n)._kind_4.sym;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56):
	{
		result = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	}
	break;
	default:
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T30_;
		NimStringDesc* T31_;
		NimStringDesc* T32_;
		T30_ = (*n).info;
		T31_ = (NimStringDesc*)0;
		T32_ = (NimStringDesc*)0;
		T32_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T31_ = rawNewString((T32_ ? T32_->Sup.len : 0) + 30);
appendString(T31_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_581));
appendString(T31_, T32_);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T30_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T31_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_582, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = NIM_NIL;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDeclared__ssxiU9aPj4i6xXfLbEm3Reg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL onlyCurrentScope) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = lookUpForDeclared__ejqqZ7JpeaJqZ9aJjvnjSXw(c, (*n)._kind_6.sons->data[((NI) 1)], onlyCurrentScope);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_1.intVal = ((NI64) (!((T1_ == NIM_NIL))));
	(*result).info = (*n).info;
	T2_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = T2_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryExpr__vJZwz9bfROKrfrtM50y74CQ_17)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI oldErrorCount;
	NI oldErrorMax;
	NI oldCompilesId;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* oldScope;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T5_;
	NI oldOwnerLen;
	NI T6_;
	tySequence__jWKvSdankQPoT5bw9cBU9aiw* oldGenerics;
	tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA oldErrorOutputs;
	NI oldContextLen;
	NI oldInGenericContext;
	NI oldInUnrolledContext;
	NI oldInGenericInst;
	NI oldInStaticContext;
	tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* oldProcCon;
	NimStringDesc* err;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	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_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T5_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T6_ = ((*(*c).graph).owners ? (*(*c).graph).owners->Sup.len : 0);
	oldOwnerLen = T6_;
	oldGenerics = (*c).generics;
	oldErrorOutputs = (*(*(*c).graph).config).m.errorOutputs;
	{
		if (!!(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 9))&31U)))!=0))) goto LA9_;
		(*(*(*c).graph).config).m.errorOutputs = 0;
	}
	LA9_: ;
	oldContextLen = getInfoContextLen__QY5gXnIUBOUa79b5tGece0A((*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	oldInGenericContext = (*c).inGenericContext;
	oldInUnrolledContext = (*c).inUnrolledContext;
	oldInGenericInst = (*c).inGenericInst;
	oldInStaticContext = (*c).inStaticContext;
	oldProcCon = (*c).p;
	(*c).generics = NIM_NIL;
	err = (NimStringDesc*)0;
	T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T12_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, n, flags);
	if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
	result = T12_;
	{
		NIM_BOOL T15_;
		T15_ = (NIM_BOOL)0;
		T15_ = !((result == NIM_NIL));
		if (!(T15_)) goto LA16_;
		T15_ = !(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 17))&31U)))!=0));
		LA16_: ;
		if (!T15_) goto LA17_;
		trackStmt__QaQdy9beybDhOWYNIJD0SGA(c, (*c).module, result, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
	}
	LA17_: ;
	{
		if (!!(((*(*(*c).graph).config).errorCounter == oldErrorCount))) goto LA21_;
		result = NIM_NIL;
	}
	LA21_: ;
	if (NIM_UNLIKELY(*nimErr_)) {
		LA11_:;
		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTI__IxbcvonC7TQkv166Uvdu1g_))) {
			*nimErr_ = NIM_FALSE;
			popCurrentException();
			LA24_:;
		}
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*c).compilesContextId = oldCompilesId;
	genericSeqAssign((&(*c).generics), oldGenerics, (&NTI__jWKvSdankQPoT5bw9cBU9aiw_));
	(*c).inGenericContext = oldInGenericContext;
	(*c).inUnrolledContext = oldInUnrolledContext;
	(*c).inGenericInst = oldInGenericInst;
	(*c).inStaticContext = oldInStaticContext;
	(*c).p = oldProcCon;
	setInfoContextLen__JRH1QeGlTzlBOChAZ7bvoQ((*(*c).graph).config, oldContextLen);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*c).graph).owners = (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) setLengthSeqV2(&((*(*c).graph).owners)->Sup, (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_), ((NI) (oldOwnerLen)));
	(*c).currentScope = oldScope;
	(*(*(*c).graph).config).m.errorOutputs = oldErrorOutputs;
	(*(*(*c).graph).config).errorCounter = oldErrorCount;
	(*(*(*c).graph).config).errorMax = oldErrorMax;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCompiles__vJZwz9bfROKrfrtM50y74CQ_16)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		result = semDirectOp__vJZwz9bfROKrfrtM50y74CQ_6(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T6_ = tryExpr__vJZwz9bfROKrfrtM50y74CQ_17(c, (*n)._kind_6.sons->data[((NI) 1)], flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (!((T6_ == NIM_NIL)))));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).info = (*n).info;
	T7_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T7_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = T7_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fixupStaticType__NRIJDWZtATzMum7OEjYC2g_11)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T5_;
		tySequence__Ef05srmQTDulnBdXR4Ja6Q* T6_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
		if (!!(((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60)))) goto LA3_;
		T5_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T5_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
		T6_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
		T6_->data[0] = (*n).typ;
		T7_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T7_ = newTypeWithSons__aSykZlHQuGR9almJ1ehcUew(T5_, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), T6_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n).typ = T7_;
		(*(*n).typ).n = n;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, isOpImpl__vJZwz9bfROKrfrtM50y74CQ_19)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL res;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t1;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T5_;
		NimStringDesc* argX60gensym3702_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NI)0;
		T5_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (T5_ == ((NI) 3));
		if (!(T4_)) goto LA6_;
		T4_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL));
		LA6_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*n)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22) || (*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4));
		LA7_: ;
		if (!!(T3_)) goto LA8_;
		argX60gensym3702_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_585);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym3702_, TM__rF9caJawfOjYTjsgLVUSGFA_585);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA8_: ;
	res = NIM_FALSE;
	t1 = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	t2 = (*(*n)._kind_6.sons->data[((NI) 2)]).typ;
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*t1).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
		if (!(T12_)) goto LA13_;
		T12_ = !(((*t2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)));
		LA13_: ;
		if (!T12_) goto LA14_;
		t1 = base__PfgI9ap7WOnsRfFV4znQ27w(t1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA14_: ;
	{
		NimStringDesc* T20_;
		if (!((*(*n)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*n)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA18_;
		T20_ = (NimStringDesc*)0;
		T20_ = nsuNormalize((*(*n)._kind_6.sons->data[((NI) 2)])._kind_3.strVal);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (eqStrings(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_586))) goto LA21_;
		if (eqStrings(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_587))) goto LA22_;
		goto LA23_;
		LA21_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
			NIM_BOOL T26_;
			NIM_BOOL T27_;
			t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t1, IL64(36134350136322320));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T26_ = (NIM_BOOL)0;
			T27_ = (NIM_BOOL)0;
			T27_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T27_)) goto LA28_;
			T27_ = ((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
			LA28_: ;
			T26_ = T27_;
			if (!(T26_)) goto LA29_;
			T26_ = !((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0));
			LA29_: ;
			res = T26_;
		}
		goto LA24_;
		LA22_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
			NIM_BOOL T31_;
			NIM_BOOL T32_;
			t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t1, IL64(36134350136322320));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T31_ = (NIM_BOOL)0;
			T32_ = (NIM_BOOL)0;
			T32_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T32_)) goto LA33_;
			T32_ = ((*t_2).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
			LA33_: ;
			T31_ = T32_;
			if (!(T31_)) goto LA34_;
			T31_ = (((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0);
			LA34_: ;
			res = T31_;
		}
		goto LA24_;
		LA23_: ;
		{
			res = NIM_FALSE;
		}
		LA24_: ;
	}
	goto LA16_;
	LA18_: ;
	{
		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
		tyEnum_TTypeRelation__1IMf5P083XuEtWGxYaIXyQ T47_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T39_;
			T39_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T39_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t1, IL64(70368744187920));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(((*T39_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10)))) goto LA40_;
			maybeLiftType__K7SXxqU6fIMYb9b4D3wV5CQ(&t2, c, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA37_;
		LA40_: ;
		{
		}
		LA37_: ;
		nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
		newCandidate__rFFaxk6TYVlvnKNibvVmkg(c, t2, (&m));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 9))&31U)))!=0)) goto LA45_;
			m.diagnostics = NIM_NIL;
			m.diagnosticsEnabled = NIM_TRUE;
		}
		LA45_: ;
		T47_ = (tyEnum_TTypeRelation__1IMf5P083XuEtWGxYaIXyQ)0;
		T47_ = typeRel__3a3tkQB9aY8V2J9acM5cZ6nA((&m), t2, t1, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		res = (((tyEnum_TTypeRelation__1IMf5P083XuEtWGxYaIXyQ) 3) <= T47_);
	}
	LA16_: ;
	result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (res)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = (*n).typ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIs__vJZwz9bfROKrfrtM50y74CQ_18)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* boolType;
	NIM_BOOL liftLhs;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* lhsType;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!((T3_ == ((NI) 3)))) goto LA4_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_583), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_584, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	boolType = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = n;
	(*n).typ = boolType;
	liftLhs = NIM_TRUE;
	T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T6_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 1)], 258);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 1)] = T6_;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*n)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22)))) goto LA9_;
		t2 = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 2)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*(*n)._kind_6.sons->data[((NI) 2)]).info, t2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 2)] = T11_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* evaluated;
			if (!((*t2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA14_;
			evaluated = tryConstExpr__7YxUILpPxooC5qqa89a54dw_30(c, (*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!((evaluated == NIM_NIL))) goto LA18_;
				fixupStaticType__NRIJDWZtATzMum7OEjYC2g_11(c, evaluated);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 1)] = evaluated;
			}
			goto LA16_;
			LA18_: ;
			{
				result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).typ = boolType;
				goto BeforeRet_;
			}
			LA16_: ;
		}
		goto LA12_;
		LA14_: ;
		{
			NIM_BOOL T22_;
			NIM_BOOL T24_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
			T22_ = (NIM_BOOL)0;
			T22_ = ((*t2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			if (!(T22_)) goto LA23_;
			T24_ = (NIM_BOOL)0;
			T25_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T25_ = base__PfgI9ap7WOnsRfFV4znQ27w(t2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T24_ = ((*T25_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0));
			if (T24_) goto LA26_;
			T24_ = (((*t2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 29))&63U)))!=0);
			LA26_: ;
			T22_ = T24_;
			LA23_: ;
			if (!T22_) goto LA27_;
			liftLhs = NIM_FALSE;
		}
		goto LA12_;
		LA27_: ;
		LA12_: ;
	}
	goto LA7_;
	LA9_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
		T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T30_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 2)] = T30_;
	}
	LA7_: ;
	lhsType = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	{
		if (!!(((*lhsType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)))) goto LA33_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T39_;
			if (!liftLhs) goto LA37_;
			T39_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T39_ = makeTypeSymNode__L4oMECPyC3ttpx9cr0kf9a9bw(c, lhsType, (*(*n)._kind_6.sons->data[((NI) 1)]).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 1)] = T39_;
			lhsType = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
		}
		LA37_: ;
	}
	goto LA31_;
	LA33_: ;
	{
		{
			NIM_BOOL T43_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T44_;
			NIM_BOOL T46_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T48_;
			T43_ = (NIM_BOOL)0;
			T44_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T44_ = base__PfgI9ap7WOnsRfFV4znQ27w(lhsType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T43_ = ((*T44_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0));
			if (T43_) goto LA45_;
			T46_ = (NIM_BOOL)0;
			T46_ = (((NI) 0) < (*c).inGenericContext);
			if (!(T46_)) goto LA47_;
			T48_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T48_ = base__PfgI9ap7WOnsRfFV4znQ27w(lhsType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T46_ = containsGenericType__YPjOkGV9axAnGR3UfLeWZ1g_2(T48_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA47_: ;
			T43_ = T46_;
			LA45_: ;
			if (!T43_) goto LA49_;
			goto BeforeRet_;
		}
		LA49_: ;
	}
	LA31_: ;
	result = isOpImpl__vJZwz9bfROKrfrtM50y74CQ_19(c, n, flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExpandToAst__7YxUILpPxooC5qqa89a54dw_35)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* macroCall;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T50_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	macroCall = (*n)._kind_6.sons->data[((NI) 1)];
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol;
		NI cands;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* cand;
		tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* symx;
		T3_ = (NIM_BOOL)0;
		T3_ = isCallExpr__CZaoTkWCFI9acor4BmYF3Yw_2(macroCall);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(macroCall);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T9_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*macroCall)._kind_6.sons->data[i], 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*macroCall)._kind_6.sons->data[i] = T9_;
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
		headSymbol = (*macroCall)._kind_6.sons->data[((NI) 0)];
		cands = ((NI) 0);
		cand = NIM_NIL;
		nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
		symx = initOverloadIter__yTTeeqtnENsm0xyCro9a61w((&o), c, headSymbol);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			while (1) {
				if (!!((symx == NIM_NIL))) goto LA11;
				{
					NIM_BOOL T14_;
					NI T16_;
					NI T17_;
					T14_ = (NIM_BOOL)0;
					T14_ = ((393216 &(1U<<((NU)((*symx).kind)&31U)))!=0);
					if (!(T14_)) goto LA15_;
					T16_ = (NI)0;
					T16_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*symx).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T17_ = (NI)0;
					T17_ = len__P89cqdlERShb9alU3iC0yj8wast(macroCall);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T14_ = (T16_ == T17_);
					LA15_: ;
					if (!T14_) goto LA18_;
					cand = symx;
					cands += ((NI) 1);
				}
				LA18_: ;
				symx = nextOverloadIter__yTTeeqtnENsm0xyCro9a61w_2((&o), c, headSymbol);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA11: ;
		}
		{
			NimStringDesc* T24_;
			NI T25_;
			NimStringDesc* T26_;
			if (!(cands == ((NI) 0))) goto LA22_;
			T24_ = (NimStringDesc*)0;
			T25_ = (NI)0;
			T25_ = len__P89cqdlERShb9alU3iC0yj8wast(macroCall);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T26_ = (NimStringDesc*)0;
			T26_ = nimIntToStr((NI)(T25_ - ((NI) 1)));
			T24_ = rawNewString((T26_ ? T26_->Sup.len : 0) + 41);
appendString(T24_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_588));
appendString(T24_, T26_);
appendString(T24_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_589));
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T24_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_590, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA20_;
		LA22_: ;
		{
			NimStringDesc* T30_;
			NimStringDesc* T31_;
			if (!(((NI) 2) <= cands)) goto LA28_;
			T30_ = (NimStringDesc*)0;
			T31_ = (NimStringDesc*)0;
			T31_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(macroCall);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T30_ = rawNewString((T31_ ? T31_->Sup.len : 0) + 38);
appendString(T30_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_591));
appendString(T30_, T31_);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T30_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_592, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA20_;
		LA28_: ;
		{
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
			info = (*(*macroCall)._kind_6.sons->data[((NI) 0)]).info;
			T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T33_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(cand, info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*macroCall)._kind_6.sons->data[((NI) 0)] = T33_;
			markUsed__QlWTWY7567sCdiTkeUTTDA(c, info, cand);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA20_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T35_;
		NimStringDesc* T36_;
		NimStringDesc* T37_;
		T35_ = (*n).info;
		T36_ = (NimStringDesc*)0;
		T37_ = (NimStringDesc*)0;
		T37_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T36_ = rawNewString((T37_ ? T37_->Sup.len : 0) + 29);
appendString(T36_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_593));
appendString(T36_, T37_);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T35_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T36_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_594, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	{
		NimStringDesc* argX60gensym4694_;
		if (!!(((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 27)))) goto LA40_;
		argX60gensym4694_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_595);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym4694_, TM__rF9caJawfOjYTjsgLVUSGFA_595);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA40_: ;
	{
		NIM_BOOL T44_;
		NI T46_;
		T44_ = (NIM_BOOL)0;
		T44_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115));
		if (!(T44_)) goto LA45_;
		T46_ = (NI)0;
		T46_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T44_ = (T46_ == ((NI) 1));
		LA45_: ;
		if (!T44_) goto LA47_;
		result = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA42_;
	LA47_: ;
	{
		result = n;
	}
	LA42_: ;
	T50_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T50_ = sysTypeFromName__tS9cwSHSUZLgy9baxOcGRlCQ((*c).graph, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_94));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = T50_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExpandToAst__QP3kds6GlqvnvsFXvC0yvw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* magicSym, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 2))) goto LA4_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(magicSym, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T6_;
		result = semExpandToAst__7YxUILpPxooC5qqa89a54dw_35(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		result = semDirectOp__vJZwz9bfROKrfrtM50y74CQ_6(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, expectString__zUJc3JNayUkQ8i11jOQJeQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NimStringDesc*)0;
	n_2 = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!((*n_2).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*n_2).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA3_;
		result = copyString((*n_2)._kind_3.strVal);
		goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_316), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_598, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newAnonSym__w5lZcsHUDOEnXuinSWI8ww)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T1_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T1_ = (*(*c).cache).idAnon;
	T2_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T2_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newSym__IXbidcxhXTQGZY9abN63Cxg(kind, T1_, T2_, info, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, processQuotations__JHIMJhmDecu8Q5MfBu4NEQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n, NimStringDesc* op, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** quotes, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** ids) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!((*(*n)).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30))) goto LA3_;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw((*n), ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NimStringDesc* examinedOp;
			if (!((*(*(*n))._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA7_;
			examinedOp = copyString((*(*(*(*n))._kind_6.sons->data[((NI) 0)])._kind_5.ident).s);
			{
				NI T13_;
				NI T14_;
				NimStringDesc* T15_;
				tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T16_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
				NI T18_;
				if (!eqStrings(examinedOp, op)) goto LA11_;
				(*quotes) = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*quotes)), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
				T13_ = (*quotes)->Sup.len++;
				(*quotes)->data[T13_] = (*(*n))._kind_6.sons->data[((NI) 1)];
				T14_ = ((*quotes) ? (*quotes)->Sup.len : 0);
				T15_ = (NimStringDesc*)0;
				T15_ = nimIntToStr(T14_);
				T16_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
				T16_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, T15_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T17_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T16_, (*(*n)).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n) = T17_;
				(*ids) = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*ids)), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
				T18_ = (*ids)->Sup.len++;
				(*ids)->data[T18_] = (*n);
				goto BeforeRet_;
			}
			goto LA9_;
			LA11_: ;
			{
				NIM_BOOL T20_;
				NimStringDesc* T23_;
				tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T24_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
				T20_ = (NIM_BOOL)0;
				T20_ = nsuStartsWith(examinedOp, op);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T20_) goto LA21_;
				T23_ = (NimStringDesc*)0;
				T23_ = substr__iGg0RIKceRvsmvq8FUHOEw(examinedOp, (op ? op->Sup.len : 0));
				T24_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
				T24_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, T23_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T25_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T25_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T24_, (*(*n)).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*(*n))._kind_6.sons->data[((NI) 0)] = T25_;
			}
			goto LA9_;
			LA21_: ;
			LA9_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T27_;
		NI T31_;
		NI T32_;
		NimStringDesc* T33_;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T34_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
		NI T36_;
		T27_ = (NIM_BOOL)0;
		T27_ = ((*(*n)).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53));
		if (!(T27_)) goto LA28_;
		T27_ = eqStrings(op, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_599));
		LA28_: ;
		if (!T27_) goto LA29_;
		(*quotes) = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*quotes)), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
		T31_ = (*quotes)->Sup.len++;
		(*quotes)->data[T31_] = (*(*n))._kind_6.sons->data[((NI) 0)];
		T32_ = ((*quotes) ? (*quotes)->Sup.len : 0);
		T33_ = (NimStringDesc*)0;
		T33_ = nimIntToStr(T32_);
		T34_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T34_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, T33_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T35_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T34_, (*(*n)).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n) = T35_;
		(*ids) = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*ids)), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
		T36_ = (*ids)->Sup.len++;
		(*ids)->data[T36_] = (*n);
		goto BeforeRet_;
	}
	goto LA1_;
	LA29_: ;
	{
		if (!((*(*n)).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA38_;
		{
			if (!eqStrings((*(*(*n))._kind_5.ident).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_95))) goto LA42_;
			(*n) = (*ids)->data[((NI) 0)];
		}
		LA42_: ;
	}
	goto LA1_;
	LA38_: ;
	LA1_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast((*n));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA46;
				i = i_2;
				processQuotations__JHIMJhmDecu8Q5MfBu4NEQ(c, &(*(*n))._kind_6.sons->data[i], op, quotes, ids);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA46: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBodyDirty__DuioLh4uofptxEKissr2sw_3)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag((*c).c, n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((s == NIM_NIL))) goto LA4_;
			{
				NIM_BOOL T8_;
				T8_ = (NIM_BOOL)0;
				T8_ = ((*s).owner == (*c).owner);
				if (!(T8_)) goto LA9_;
				T8_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				LA9_: ;
				if (!T8_) goto LA10_;
				result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA6_;
			LA10_: ;
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*c).toBind), (*s).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T13_) goto LA14_;
				result = symChoice__ce08GbPIDAcM29cbr3lVUxg((*c).c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA6_;
			LA14_: ;
			LA6_: ;
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 55):
	{
		result = semTemplBodyDirty__DuioLh4uofptxEKissr2sw_3(c, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122):
	{
		tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T18_;
		T18_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
		T18_ = (*c).c;
		result = semBindStmt__9askHuPxNsdv5Fi00VcmrXQ(T18_, n, (&(*c).toBind));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	default:
	{
		{
			NIM_BOOL T23_;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
			T23_ = (NIM_BOOL)0;
			T23_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45));
			if (T23_) goto LA24_;
			T23_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53));
			LA24_: ;
			if (!T23_) goto LA25_;
			s_2 = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag((*c).c, n, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T29_;
				T29_ = (NIM_BOOL)0;
				T29_ = !((s_2 == NIM_NIL));
				if (!(T29_)) goto LA30_;
				T29_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*c).toBind), (*s_2).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA30_: ;
				if (!T29_) goto LA31_;
				result = symChoice__ce08GbPIDAcM29cbr3lVUxg((*c).c, n, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			LA31_: ;
		}
		LA25_: ;
		result = n;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T36_;
					if (!(i_2 < colontmp_)) goto LA35;
					i = i_2;
					T36_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T36_ = semTemplBodyDirty__DuioLh4uofptxEKissr2sw_3(c, (*n)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result)._kind_6.sons->data[i] = T36_;
					i_2 += ((NI) 1);
				} LA35: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplSymbol__v9aCQGt9cWiikzASIttxYkOQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NIM_BOOL isField) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
	markOwnerModuleAsUsed__YW6ZVaTpPDUETmgx3UgpFw(c, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch ((*s).kind) {
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0):
	{
		result = n;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12) ... ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
	{
		result = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1), isField);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4):
	{
		{
			NIM_BOOL T6_;
			T6_ = (NIM_BOOL)0;
			T6_ = isField;
			if (!(T6_)) goto LA7_;
			T6_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0);
			LA7_: ;
			if (!T6_) goto LA8_;
			result = n;
		}
		goto LA4_;
		LA8_: ;
		{
			result = newSymNodeTypeDesc__gg6DZ4kb59aQbmKe4ytsnvA(s, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3):
	{
		result = n;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
	{
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = isField;
			if (!(T15_)) goto LA16_;
			T15_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0);
			LA16_: ;
			if (!T15_) goto LA17_;
			result = n;
		}
		goto LA13_;
		LA17_: ;
		{
			result = newSymNodeTypeDesc__gg6DZ4kb59aQbmKe4ytsnvA(s, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA13_: ;
	}
	break;
	default:
	{
		{
			NIM_BOOL T23_;
			T23_ = (NIM_BOOL)0;
			T23_ = isField;
			if (!(T23_)) goto LA24_;
			T23_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0);
			LA24_: ;
			if (!T23_) goto LA25_;
			result = n;
		}
		goto LA21_;
		LA25_: ;
		{
			result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA21_: ;
		{
			if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA30_;
			styleCheckUse__k3cqh606mJPYNzLXdtZjIg((*(*c).graph).config, (*n).info, s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA30_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBodySons__DuioLh4uofptxEKissr2sw_5)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T4_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result)._kind_6.sons->data[i] = T4_;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, openScope__v8rOnBcZIF3O8b3uSd4HeA)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c) {
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw((*c).c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, closeScope__v8rOnBcZIF3O8b3uSd4HeA_2)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w((*c).c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBodyScope__DuioLh4uofptxEKissr2sw_6)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	openScope__v8rOnBcZIF3O8b3uSd4HeA(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__v8rOnBcZIF3O8b3uSd4HeA_2(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw, symBinding__lRF6a2VbcNtMQTglYy3orA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA6_;
					key = (*it)._kind_6.sons->data[((NI) 0)];
				}
				goto LA4_;
				LA6_: ;
				{
					key = it;
				}
				LA4_: ;
				{
					tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T13_;
					if (!((*key).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA11_;
					T13_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
					T13_ = whichKeyword__sZUQNPhNGEM8MllfcWvRiw((*key)._kind_5.ident);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					switch (T13_) {
					case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 205):
					{
						result = ((tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw) 1);
						goto BeforeRet_;
					}
					break;
					case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 206):
					{
						result = ((tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw) 2);
						goto BeforeRet_;
					}
					break;
					default:
					{
					}
					break;
					}
				}
				LA11_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, onlyReplaceParams__DuioLh4uofptxEKissr2sw_7)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA3_;
		s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag((*c).c, n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((s == NIM_NIL))) goto LA7_;
			{
				NIM_BOOL T11_;
				T11_ = (NIM_BOOL)0;
				T11_ = ((*s).owner == (*c).owner);
				if (!(T11_)) goto LA12_;
				T11_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				LA12_: ;
				if (!T11_) goto LA13_;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA13_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
					if (!(i_2 < colontmp_)) goto LA18;
					i = i_2;
					T19_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T19_ = onlyReplaceParams__DuioLh4uofptxEKissr2sw_7(c, (*n)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result)._kind_6.sons->data[i] = T19_;
					i_2 += ((NI) 1);
				} LA18: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getIdentNode__DuioLh4uofptxEKissr2sw_8)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
	{
		result = getIdentNode__DuioLh4uofptxEKissr2sw_8(c, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
		result = getIdentNode__DuioLh4uofptxEKissr2sw_8(c, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		result = n;
		s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag((*c).c, n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((s == NIM_NIL))) goto LA6_;
			{
				NIM_BOOL T10_;
				T10_ = (NIM_BOOL)0;
				T10_ = ((*s).owner == (*c).owner);
				if (!(T10_)) goto LA11_;
				T10_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				LA11_: ;
				if (!T10_) goto LA12_;
				result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA12_: ;
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = n;
	}
	break;
	default:
	{
		illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*(*c).c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = n;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isTemplParam__XVOXP9ay7a7Pj2tMnC3DpKQsem)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T3_)) goto LA4_;
	T3_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	T2_ = ((*(*n)._kind_4.sym).owner == (*c).owner);
	LA5_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA6_;
	T1_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 39))&63U)))!=0);
	LA6_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, replaceIdentBySym__f9bg4q9aUFEI1VrFUdopr7oQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	switch ((*(*n)).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
	{
		replaceIdentBySym__f9bg4q9aUFEI1VrFUdopr7oQ(c, &(*(*n))._kind_6.sons->data[((NI) 1)], s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
		replaceIdentBySym__f9bg4q9aUFEI1VrFUdopr7oQ(c, &(*(*n))._kind_6.sons->data[((NI) 0)], s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		(*n) = s;
	}
	break;
	default:
	{
		illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw((*n), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newGenSym__pZY5bxiuLRGzLAtcZwPJyQ)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T1_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw((*c).c, n, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newSym__IXbidcxhXTQGZY9abN63Cxg(kind, T1_, (*c).owner, (*n).info, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36)) & 63);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 25)) & 63);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addLocalDecl__w8tQ2g9cGJTRX1sc4tPkZhw)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw k) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ident;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*n)).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43));
		if (!(T3_)) goto LA4_;
		T5_ = (tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw)0;
		T5_ = symBinding__lRF6a2VbcNtMQTglYy3orA((*(*n))._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (T5_ == ((tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw) 2));
		LA4_: ;
		if (!T3_) goto LA6_;
		x = (*(*n))._kind_6.sons->data[((NI) 0)];
		{
			while (1) {
				switch ((*x).kind) {
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
				{
					x = (*x)._kind_6.sons->data[((NI) 1)];
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
				{
					x = (*x)._kind_6.sons->data[((NI) 0)];
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
				{
					goto LA8;
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
					T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T14_ = onlyReplaceParams__DuioLh4uofptxEKissr2sw_7(c, (*n));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n) = T14_;
					goto BeforeRet_;
				}
				break;
				default:
				{
					illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(x, (*(*(*c).c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				break;
				}
			}
		} LA8: ;
		ident = getIdentNode__DuioLh4uofptxEKissr2sw_8(c, x);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = isTemplParam__XVOXP9ay7a7Pj2tMnC3DpKQsem((&(*c)), ident);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T18_)) goto LA19_;
			incl__jENnK9c9bPE73pKmo2vYjpqg((&(*c).toInject), (*(*x)._kind_5.ident).Sup.id);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA16_;
		LA19_: ;
		{
			replaceIdentBySym__f9bg4q9aUFEI1VrFUdopr7oQ((*c).c, n, ident);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA16_: ;
	}
	goto LA1_;
	LA6_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ident_2;
		{
			NIM_BOOL T25_;
			NIM_BOOL T26_;
			NI T28_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmaNode;
			T25_ = (NIM_BOOL)0;
			T26_ = (NIM_BOOL)0;
			T26_ = ((*(*n)).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43));
			if (!(T26_)) goto LA27_;
			T28_ = (NI)0;
			T28_ = len__P89cqdlERShb9alU3iC0yj8wast((*n));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T26_ = (((NI) 2) <= T28_);
			LA27_: ;
			T25_ = T26_;
			if (!(T25_)) goto LA29_;
			T25_ = ((*(*(*n))._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90));
			LA29_: ;
			if (!T25_) goto LA30_;
			pragmaNode = (*(*n))._kind_6.sons->data[((NI) 1)];
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(pragmaNode);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
						if (!(i_2 < colontmp_)) goto LA34;
						i = i_2;
						openScope__v8rOnBcZIF3O8b3uSd4HeA(c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T35_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*pragmaNode)._kind_6.sons->data[i]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*pragmaNode)._kind_6.sons->data[i] = T35_;
						closeScope__v8rOnBcZIF3O8b3uSd4HeA_2(c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_2 += ((NI) 1);
					} LA34: ;
				}
			}
		}
		LA30_: ;
		ident_2 = getIdentNode__DuioLh4uofptxEKissr2sw_8(c, (*n));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T38_;
			T38_ = (NIM_BOOL)0;
			T38_ = isTemplParam__XVOXP9ay7a7Pj2tMnC3DpKQsem((&(*c)), ident_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T38_)) goto LA39_;
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* local;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** T49_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T50_;
				if (!!(((*(*n)).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA43_;
				local = newGenSym__pZY5bxiuLRGzLAtcZwPJyQ(k, ident_2, c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				addPrelimDecl__aPXKqZJT9c7r7gT8X3uZAHw_4((*c).c, local);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!!(((49152 & (*(*(*(*c).c).graph).config).globalOptions) == 0))) goto LA47_;
					nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*(*c).c).graph).config, (*(*n)).info, local, (*local).kind);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA47_: ;
				T49_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
				T49_ = n;
				T50_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T50_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(local, (*(*n)).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				replaceIdentBySym__f9bg4q9aUFEI1VrFUdopr7oQ((*c).c, T49_, T50_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T53_;
					T53_ = (NIM_BOOL)0;
					T53_ = (k == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
					if (!(T53_)) goto LA54_;
					T53_ = (((NI) 0) < (*c).inTemplateHeader);
					LA54_: ;
					if (!T53_) goto LA55_;
					(*local).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 39)) & 63);
				}
				LA55_: ;
			}
			LA43_: ;
		}
		goto LA36_;
		LA39_: ;
		{
			replaceIdentBySym__f9bg4q9aUFEI1VrFUdopr7oQ((*c).c, n, ident_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA36_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, semTemplSomeDecl__7l8P1u9cbRbmxfIqmTswe6Q)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, NI start) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = start;
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					NI T15_;
					NI T16_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
					NI T18_;
					NI T19_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA7_;
						goto LA4;
					}
					LA7_: ;
					{
						NIM_BOOL T11_;
						T11_ = (NIM_BOOL)0;
						T11_ = !(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35)));
						if (!(T11_)) goto LA12_;
						T11_ = !(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36)));
						LA12_: ;
						if (!T11_) goto LA13_;
						illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a, (*(*(*c).c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA13_: ;
					checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a, ((NI) 3), (*(*(*c).c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T15_ = (NI)0;
					T15_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T16_ = (NI)0;
					T16_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T17_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*a)._kind_6.sons->data[(NI)(T16_ - ((NI) 2))]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*a)._kind_6.sons->data[(NI)(T15_ - ((NI) 2))] = T17_;
					T18_ = (NI)0;
					T18_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T19_ = (NI)0;
					T19_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T20_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*a)._kind_6.sons->data[(NI)(T19_ - ((NI) 1))]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*a)._kind_6.sons->data[(NI)(T18_ - ((NI) 1))] = T20_;
					{
						NI j;
						NI colontmp__2;
						NI T22_;
						NI i_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T22_ = (NI)0;
						T22_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						colontmp__2 = (NI)(T22_ - ((NI) 2));
						i_3 = ((NI) 0);
						{
							while (1) {
								if (!(i_3 < colontmp__2)) goto LA24;
								j = i_3;
								addLocalDecl__w8tQ2g9cGJTRX1sc4tPkZhw(c, &(*a)._kind_6.sons->data[j], symKind);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								i_3 += ((NI) 1);
							} LA24: ;
						}
					}
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semRoutineInTemplName__DuioLh4uofptxEKissr2sw_9)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA3_;
		s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag((*c).c, n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((s == NIM_NIL))) goto LA7_;
			{
				NIM_BOOL T11_;
				NIM_BOOL T13_;
				T11_ = (NIM_BOOL)0;
				T11_ = ((*s).owner == (*c).owner);
				if (!(T11_)) goto LA12_;
				T13_ = (NIM_BOOL)0;
				T13_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				if (T13_) goto LA14_;
				T13_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0);
				LA14_: ;
				T11_ = T13_;
				LA12_: ;
				if (!T11_) goto LA15_;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA15_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
					if (!(i_2 < colontmp_)) goto LA20;
					i = i_2;
					T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T21_ = semRoutineInTemplName__DuioLh4uofptxEKissr2sw_9(c, (*n)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result)._kind_6.sons->data[i] = T21_;
					i_2 += ((NI) 1);
				} LA20: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semRoutineInTemplBody__tZ0y3BLqy4d0VbZugMb29cw)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw k) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T38_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 7), (*(*(*c).c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ident;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52)));
		if (!(T3_)) goto LA4_;
		T5_ = (tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw)0;
		T5_ = symBinding__lRF6a2VbcNtMQTglYy3orA((*n)._kind_6.sons->data[((NI) 4)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (T5_ == ((tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw) 1));
		LA4_: ;
		if (!T3_) goto LA6_;
		ident = getIdentNode__DuioLh4uofptxEKissr2sw_8(c, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T10_;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
			T10_ = (NIM_BOOL)0;
			T10_ = isTemplParam__XVOXP9ay7a7Pj2tMnC3DpKQsem((&(*c)), ident);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T10_)) goto LA11_;
			s = newGenSym__pZY5bxiuLRGzLAtcZwPJyQ(k, ident, c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*s).ast = n;
			addPrelimDecl__aPXKqZJT9c7r7gT8X3uZAHw_4((*c).c, s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!(((49152 & (*(*(*(*c).c).graph).config).globalOptions) == 0))) goto LA15_;
				nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*(*c).c).graph).config, (*n).info, s, (*s).kind);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA15_: ;
			T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T17_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*(*n)._kind_6.sons->data[((NI) 0)]).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 0)] = T17_;
		}
		goto LA8_;
		LA11_: ;
		{
			(*n)._kind_6.sons->data[((NI) 0)] = ident;
		}
		LA8_: ;
	}
	goto LA1_;
	LA6_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
		T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T20_ = semRoutineInTemplName__DuioLh4uofptxEKissr2sw_9(c, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T20_;
	}
	LA1_: ;
	openScope__v8rOnBcZIF3O8b3uSd4HeA(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
				if (!(res <= ((NI) 2))) goto LA23;
				i = res;
				T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T24_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[i] = T24_;
				res += ((NI) 1);
			} LA23: ;
		}
	}
	{
		if (!(k == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18))) goto LA27_;
		(*c).inTemplateHeader += ((NI) 1);
	}
	LA27_: ;
	T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T29_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[((NI) 3)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 3)] = T29_;
	{
		if (!(k == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18))) goto LA32_;
		(*c).inTemplateHeader -= ((NI) 1);
	}
	LA32_: ;
	{
		NI i_2;
		NI res_2;
		i_2 = (NI)0;
		res_2 = ((NI) 4);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
				if (!(res_2 <= ((NI) 5))) goto LA36;
				i_2 = res_2;
				T37_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T37_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[i_2]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[i_2] = T37_;
				res_2 += ((NI) 1);
			} LA36: ;
		}
	}
	(*c).scopeN += ((NI) 1);
	openScope__v8rOnBcZIF3O8b3uSd4HeA(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T38_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T38_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[((NI) 6)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 6)] = T38_;
	closeScope__v8rOnBcZIF3O8b3uSd4HeA_2(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*c).scopeN -= ((NI) 1);
	closeScope__v8rOnBcZIF3O8b3uSd4HeA_2(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBody__DuioLh4uofptxEKissr2sw_4)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		{
			NIM_BOOL T4_;
			T4_ = (NIM_BOOL)0;
			T4_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*c).toInject), (*(*n)._kind_5.ident).Sup.id);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T4_) goto LA5_;
			result = n;
			goto BeforeRet_;
		}
		LA5_: ;
		s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag((*c).c, n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((s == NIM_NIL))) goto LA9_;
			{
				NIM_BOOL T13_;
				NIM_BOOL T14_;
				T13_ = (NIM_BOOL)0;
				T14_ = (NIM_BOOL)0;
				T14_ = ((*s).owner == (*c).owner);
				if (!(T14_)) goto LA15_;
				T14_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				LA15_: ;
				T13_ = T14_;
				if (!(T13_)) goto LA16_;
				T13_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 39))&63U)))!=0);
				LA16_: ;
				if (!T13_) goto LA17_;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA11_;
			LA17_: ;
			{
				NIM_BOOL T20_;
				tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T23_;
				T20_ = (NIM_BOOL)0;
				T20_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*c).toBind), (*s).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T20_) goto LA21_;
				T23_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
				T23_ = (*c).c;
				result = symChoice__ce08GbPIDAcM29cbr3lVUxg(T23_, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), (((NI) 0) < (*c).noGenSym));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA11_;
			LA21_: ;
			{
				NIM_BOOL T25_;
				tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T28_;
				T25_ = (NIM_BOOL)0;
				T25_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*c).toMixin), (*(*s).name).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T25_) goto LA26_;
				T28_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
				T28_ = (*c).c;
				result = symChoice__ce08GbPIDAcM29cbr3lVUxg(T28_, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2), (((NI) 0) < (*c).noGenSym));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA11_;
			LA26_: ;
			{
				NIM_BOOL T30_;
				NIM_BOOL T31_;
				T30_ = (NIM_BOOL)0;
				T31_ = (NIM_BOOL)0;
				T31_ = ((*s).owner == (*c).owner);
				if (!(T31_)) goto LA32_;
				T31_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0);
				LA32_: ;
				T30_ = T31_;
				if (!(T30_)) goto LA33_;
				T30_ = ((*c).noGenSym == ((NI) 0));
				LA33_: ;
				if (!T30_) goto LA34_;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA11_;
			LA34_: ;
			{
				tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T37_;
				T37_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
				T37_ = (*c).c;
				result = semTemplSymbol__v9aCQGt9cWiikzASIttxYkOQ(T37_, n, s, (((NI) 0) < (*c).noGenSym));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA11_: ;
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 55):
	{
		result = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122):
	{
		tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T40_;
		T40_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
		T40_ = (*c).c;
		result = semBindStmt__9askHuPxNsdv5Fi00VcmrXQ(T40_, n, (&(*c).toBind));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
	{
		{
			if (!(((NI) 0) < (*c).scopeN)) goto LA44_;
			result = semTemplBodySons__DuioLh4uofptxEKissr2sw_5(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA42_;
		LA44_: ;
		{
			tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T47_;
			T47_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
			T47_ = (*c).c;
			result = semMixinStmt__gk1t9bC9cmwHRhVJXF0sVfqA(T47_, n, (&(*c).toMixin));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA42_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					if (!(i_2 < colontmp_)) goto LA52;
					i = i_2;
					it = (*n)._kind_6.sons->data[i];
					{
						NI T55_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T58_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T59_;
						T55_ = (NI)0;
						T55_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!(T55_ == ((NI) 2))) goto LA56_;
						openScope__v8rOnBcZIF3O8b3uSd4HeA(c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T58_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T58_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*it)._kind_6.sons->data[((NI) 0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*it)._kind_6.sons->data[((NI) 0)] = T58_;
						T59_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T59_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*it)._kind_6.sons->data[((NI) 1)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*it)._kind_6.sons->data[((NI) 1)] = T59_;
						closeScope__v8rOnBcZIF3O8b3uSd4HeA_2(c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA53_;
					LA56_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T61_;
						T61_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T61_ = semTemplBodyScope__DuioLh4uofptxEKissr2sw_6(c, it);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*n)._kind_6.sons->data[i] = T61_;
					}
					LA53_: ;
					i_2 += ((NI) 1);
				} LA52: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		openScope__v8rOnBcZIF3O8b3uSd4HeA(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T66_;
					if (!(i_4 < colontmp__2)) goto LA65;
					i_3 = i_4;
					T66_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T66_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_3] = T66_;
					i_4 += ((NI) 1);
				} LA65: ;
			}
		}
		closeScope__v8rOnBcZIF3O8b3uSd4HeA_2(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T68_;
		openScope__v8rOnBcZIF3O8b3uSd4HeA(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T68_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T68_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T68_;
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_6 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					NI T77_;
					NI T78_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T79_;
					if (!(i_6 < colontmp__3)) goto LA71;
					i_5 = i_6;
					a = (*n)._kind_6.sons->data[i_5];
					checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a, ((NI) 1), (*(*(*c).c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NI j;
						NI colontmp__4;
						NI T73_;
						NI i_7;
						j = (NI)0;
						colontmp__4 = (NI)0;
						T73_ = (NI)0;
						T73_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						colontmp__4 = (NI)(T73_ - ((NI) 1));
						i_7 = ((NI) 0);
						{
							while (1) {
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T76_;
								if (!(i_7 < colontmp__4)) goto LA75;
								j = i_7;
								T76_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T76_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*a)._kind_6.sons->data[j]);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*a)._kind_6.sons->data[j] = T76_;
								i_7 += ((NI) 1);
							} LA75: ;
						}
					}
					T77_ = (NI)0;
					T77_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T78_ = (NI)0;
					T78_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T79_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T79_ = semTemplBodyScope__DuioLh4uofptxEKissr2sw_6(c, (*a)._kind_6.sons->data[(NI)(T78_ - ((NI) 1))]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*a)._kind_6.sons->data[(NI)(T77_ - ((NI) 1))] = T79_;
					i_6 += ((NI) 1);
				} LA71: ;
			}
		}
		closeScope__v8rOnBcZIF3O8b3uSd4HeA_2(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 94):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
	{
		NI T81_;
		NI T82_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T83_;
		NI T97_;
		NI T98_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T99_;
		openScope__v8rOnBcZIF3O8b3uSd4HeA(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T81_ = (NI)0;
		T81_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T82_ = (NI)0;
		T82_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T83_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T83_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[(NI)(T82_ - ((NI) 2))]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[(NI)(T81_ - ((NI) 2))] = T83_;
		{
			NI i_8;
			NI colontmp__5;
			NI T85_;
			NI i_9;
			i_8 = (NI)0;
			colontmp__5 = (NI)0;
			T85_ = (NI)0;
			T85_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp__5 = (NI)(T85_ - ((NI) 2));
			i_9 = ((NI) 0);
			{
				while (1) {
					if (!(i_9 < colontmp__5)) goto LA87;
					i_8 = i_9;
					{
						if (!((*(*n)._kind_6.sons->data[i_8]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA90_;
						{
							NI j_2;
							NI colontmp__6;
							NI T93_;
							NI i_10;
							j_2 = (NI)0;
							colontmp__6 = (NI)0;
							T93_ = (NI)0;
							T93_ = len__P89cqdlERShb9alU3iC0yj8wast((*n)._kind_6.sons->data[i_8]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							colontmp__6 = (NI)(T93_ - ((NI) 1));
							i_10 = ((NI) 0);
							{
								while (1) {
									if (!(i_10 < colontmp__6)) goto LA95;
									j_2 = i_10;
									addLocalDecl__w8tQ2g9cGJTRX1sc4tPkZhw(c, &(*(*n)._kind_6.sons->data[i_8])._kind_6.sons->data[j_2], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21));
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									i_10 += ((NI) 1);
								} LA95: ;
							}
						}
					}
					goto LA88_;
					LA90_: ;
					{
						addLocalDecl__w8tQ2g9cGJTRX1sc4tPkZhw(c, &(*n)._kind_6.sons->data[i_8], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA88_: ;
					i_9 += ((NI) 1);
				} LA87: ;
			}
		}
		openScope__v8rOnBcZIF3O8b3uSd4HeA(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T97_ = (NI)0;
		T97_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T98_ = (NI)0;
		T98_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T99_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T99_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[(NI)(T98_ - ((NI) 1))]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[(NI)(T97_ - ((NI) 1))] = T99_;
		closeScope__v8rOnBcZIF3O8b3uSd4HeA_2(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		closeScope__v8rOnBcZIF3O8b3uSd4HeA_2(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 129):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T105_;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*(*c).c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		openScope__v8rOnBcZIF3O8b3uSd4HeA(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA103_;
			addLocalDecl__w8tQ2g9cGJTRX1sc4tPkZhw(c, &(*n)._kind_6.sons->data[((NI) 0)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 22));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA103_: ;
		T105_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T105_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 1)] = T105_;
		closeScope__v8rOnBcZIF3O8b3uSd4HeA_2(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T107_;
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 2), (*(*(*c).c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T107_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T107_ = semTemplBodyScope__DuioLh4uofptxEKissr2sw_6(c, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T107_;
		{
			NI i_11;
			NI colontmp__7;
			NI i_12;
			i_11 = (NI)0;
			colontmp__7 = (NI)0;
			colontmp__7 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_12 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
					NI T123_;
					NI T124_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T125_;
					if (!(i_12 < colontmp__7)) goto LA110;
					i_11 = i_12;
					a_2 = (*n)._kind_6.sons->data[i_11];
					checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a_2, ((NI) 1), (*(*(*c).c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					openScope__v8rOnBcZIF3O8b3uSd4HeA(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NI j_3;
						NI colontmp__8;
						NI T112_;
						NI i_13;
						j_3 = (NI)0;
						colontmp__8 = (NI)0;
						T112_ = (NI)0;
						T112_ = len__P89cqdlERShb9alU3iC0yj8wast(a_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						colontmp__8 = (NI)(T112_ - ((NI) 1));
						i_13 = ((NI) 0);
						{
							while (1) {
								if (!(i_13 < colontmp__8)) goto LA114;
								j_3 = i_13;
								{
									NIM_BOOL T117_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T120_;
									T117_ = (NIM_BOOL)0;
									T117_ = isInfixAs__CZaoTkWCFI9acor4BmYF3Yw((*a_2)._kind_6.sons->data[j_3]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									if (!T117_) goto LA118_;
									addLocalDecl__w8tQ2g9cGJTRX1sc4tPkZhw(c, &(*(*a_2)._kind_6.sons->data[j_3])._kind_6.sons->data[((NI) 2)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									T120_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T120_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*(*a_2)._kind_6.sons->data[j_3])._kind_6.sons->data[((NI) 1)]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*(*a_2)._kind_6.sons->data[j_3])._kind_6.sons->data[((NI) 1)] = T120_;
								}
								goto LA115_;
								LA118_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T122_;
									T122_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T122_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*a_2)._kind_6.sons->data[j_3]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*a_2)._kind_6.sons->data[j_3] = T122_;
								}
								LA115_: ;
								i_13 += ((NI) 1);
							} LA114: ;
						}
					}
					T123_ = (NI)0;
					T123_ = len__P89cqdlERShb9alU3iC0yj8wast(a_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T124_ = (NI)0;
					T124_ = len__P89cqdlERShb9alU3iC0yj8wast(a_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T125_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T125_ = semTemplBodyScope__DuioLh4uofptxEKissr2sw_6(c, (*a_2)._kind_6.sons->data[(NI)(T124_ - ((NI) 1))]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*a_2)._kind_6.sons->data[(NI)(T123_ - ((NI) 1))] = T125_;
					closeScope__v8rOnBcZIF3O8b3uSd4HeA_2(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_12 += ((NI) 1);
				} LA110: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	{
		semTemplSomeDecl__7l8P1u9cbRbmxfIqmTswe6Q(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8), ((NI) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		semTemplSomeDecl__7l8P1u9cbRbmxfIqmTswe6Q(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9), ((NI) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T129_;
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 1), (*(*(*c).c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T129_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T129_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T129_;
		semTemplSomeDecl__7l8P1u9cbRbmxfIqmTswe6Q(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), ((NI) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
	{
		{
			NI i_14;
			NI colontmp__9;
			NI i_15;
			i_14 = (NI)0;
			colontmp__9 = (NI)0;
			colontmp__9 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_15 = ((NI) 0);
			{
				while (1) {
					if (!(i_15 < colontmp__9)) goto LA133;
					i_14 = i_15;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_3;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T143_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T144_;
						a_3 = (*n)._kind_6.sons->data[i_14];
						{
							if (!((*a_3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA137_;
							goto LA134;
						}
						LA137_: ;
						{
							if (!!(((*a_3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102)))) goto LA141_;
							illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a_3, (*(*(*c).c).graph).config);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA141_: ;
						checkSonsLen__EezdXeDvu4rB7fR84AJZgw(a_3, ((NI) 3), (*(*(*c).c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						addLocalDecl__w8tQ2g9cGJTRX1sc4tPkZhw(c, &(*a_3)._kind_6.sons->data[((NI) 0)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T143_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T143_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*a_3)._kind_6.sons->data[((NI) 1)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*a_3)._kind_6.sons->data[((NI) 1)] = T143_;
						T144_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T144_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*a_3)._kind_6.sons->data[((NI) 2)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*a_3)._kind_6.sons->data[((NI) 2)] = T144_;
					} LA134: ;
					i_15 += ((NI) 1);
				} LA133: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	{
		{
			NI i_16;
			NI colontmp__10;
			NI i_17;
			i_16 = (NI)0;
			colontmp__10 = (NI)0;
			colontmp__10 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_17 = ((NI) 0);
			{
				while (1) {
					if (!(i_17 < colontmp__10)) goto LA148;
					i_16 = i_17;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_4;
						a_4 = (*n)._kind_6.sons->data[i_16];
						{
							if (!((*a_4).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA152_;
							goto LA149;
						}
						LA152_: ;
						{
							if (!!(((*a_4).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103)))) goto LA156_;
							illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a_4, (*(*(*c).c).graph).config);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA156_: ;
						checkSonsLen__EezdXeDvu4rB7fR84AJZgw(a_4, ((NI) 3), (*(*(*c).c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						addLocalDecl__w8tQ2g9cGJTRX1sc4tPkZhw(c, &(*a_4)._kind_6.sons->data[((NI) 0)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					} LA149: ;
					i_17 += ((NI) 1);
				} LA148: ;
			}
		}
		{
			NI i_18;
			NI colontmp__11;
			NI i_19;
			i_18 = (NI)0;
			colontmp__11 = (NI)0;
			colontmp__11 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_19 = ((NI) 0);
			{
				while (1) {
					if (!(i_19 < colontmp__11)) goto LA160;
					i_18 = i_19;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_5;
						a_5 = (*n)._kind_6.sons->data[i_18];
						{
							if (!((*a_5).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA164_;
							goto LA161;
						}
						LA164_: ;
						{
							if (!!(((*a_5).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103)))) goto LA168_;
							illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a_5, (*(*(*c).c).graph).config);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA168_: ;
						checkSonsLen__EezdXeDvu4rB7fR84AJZgw(a_5, ((NI) 3), (*(*(*c).c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T174_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T175_;
							if (!!(((*(*a_5)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA172_;
							openScope__v8rOnBcZIF3O8b3uSd4HeA(c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T174_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T174_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*a_5)._kind_6.sons->data[((NI) 1)]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*a_5)._kind_6.sons->data[((NI) 1)] = T174_;
							T175_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T175_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*a_5)._kind_6.sons->data[((NI) 2)]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*a_5)._kind_6.sons->data[((NI) 2)] = T175_;
							closeScope__v8rOnBcZIF3O8b3uSd4HeA_2(c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA170_;
						LA172_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T177_;
							T177_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T177_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*a_5)._kind_6.sons->data[((NI) 2)]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*a_5)._kind_6.sons->data[((NI) 2)] = T177_;
						}
						LA170_: ;
					} LA161: ;
					i_19 += ((NI) 1);
				} LA160: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		result = semRoutineInTemplBody__tZ0y3BLqy4d0VbZugMb29cw(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		result = semRoutineInTemplBody__tZ0y3BLqy4d0VbZugMb29cw(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80):
	{
		result = semRoutineInTemplBody__tZ0y3BLqy4d0VbZugMb29cw(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	{
		result = semRoutineInTemplBody__tZ0y3BLqy4d0VbZugMb29cw(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
	{
		result = semRoutineInTemplBody__tZ0y3BLqy4d0VbZugMb29cw(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
	{
		result = semRoutineInTemplBody__tZ0y3BLqy4d0VbZugMb29cw(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	{
		result = semRoutineInTemplBody__tZ0y3BLqy4d0VbZugMb29cw(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T186_;
		T186_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T186_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 0)] = T186_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T188_;
		T188_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T188_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 1)] = T188_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_20;
				NI colontmp__12;
				NI i_21;
				i_20 = (NI)0;
				colontmp__12 = (NI)0;
				colontmp__12 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_21 = ((NI) 0);
				{
					while (1) {
						if (!(i_21 < colontmp__12)) goto LA193;
						i_20 = i_21;
						x = (*n)._kind_6.sons->data[i_20];
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T198_;
							if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA196_;
							T198_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T198_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*x)._kind_6.sons->data[((NI) 1)]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*x)._kind_6.sons->data[((NI) 1)] = T198_;
						}
						LA196_: ;
						i_21 += ((NI) 1);
					} LA193: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T200_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T201_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n0;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T200_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T200_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*(*c).c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T201_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T201_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T200_, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T201_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_22;
			NI colontmp__13;
			NI i_23;
			i_22 = (NI)0;
			colontmp__13 = (NI)0;
			colontmp__13 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_23 = ((NI) 0);
			{
				while (1) {
					if (!(i_23 < colontmp__13)) goto LA204;
					i_22 = i_23;
					add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[i_22]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_23 += ((NI) 1);
				} LA204: ;
			}
		}
		n0 = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semTemplBodySons__DuioLh4uofptxEKissr2sw_5(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T206_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T207_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T206_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T206_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*(*c).c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_113));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T207_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T207_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T206_, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T207_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_24;
			NI colontmp__14;
			NI i_25;
			i_24 = (NI)0;
			colontmp__14 = (NI)0;
			colontmp__14 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_25 = ((NI) 0);
			{
				while (1) {
					if (!(i_25 < colontmp__14)) goto LA210;
					i_24 = i_25;
					add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[i_24]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_25 += ((NI) 1);
				} LA210: ;
			}
		}
		result = semTemplBodySons__DuioLh4uofptxEKissr2sw_5(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_6;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*(*c).c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		a_6 = (*n)._kind_6.sons->data[((NI) 0)];
		b = (*n)._kind_6.sons->data[((NI) 1)];
		k = (*a_6).kind;
		switch (k) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
		{
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T213_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T214_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a0;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T213_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T213_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*(*c).c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_118));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T214_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T214_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T213_, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(result, T214_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NI i_26;
				NI colontmp__15;
				NI i_27;
				i_26 = (NI)0;
				colontmp__15 = (NI)0;
				colontmp__15 = len__P89cqdlERShb9alU3iC0yj8wast(a_6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_27 = ((NI) 0);
				{
					while (1) {
						if (!(i_27 < colontmp__15)) goto LA217;
						i_26 = i_27;
						add__P8dDSotTW25BkfbyspojGg(result, (*a_6)._kind_6.sons->data[i_26]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_27 += ((NI) 1);
					} LA217: ;
				}
			}
			add__P8dDSotTW25BkfbyspojGg(result, b);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			a0 = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*a_6)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = semTemplBodySons__DuioLh4uofptxEKissr2sw_5(c, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
		{
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T219_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T220_;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T219_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T219_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*(*c).c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_117));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T220_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T220_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T219_, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(result, T220_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NI i_28;
				NI colontmp__16;
				NI i_29;
				i_28 = (NI)0;
				colontmp__16 = (NI)0;
				colontmp__16 = len__P89cqdlERShb9alU3iC0yj8wast(a_6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_29 = ((NI) 0);
				{
					while (1) {
						if (!(i_29 < colontmp__16)) goto LA223;
						i_28 = i_29;
						add__P8dDSotTW25BkfbyspojGg(result, (*a_6)._kind_6.sons->data[i_28]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_29 += ((NI) 1);
					} LA223: ;
				}
			}
			add__P8dDSotTW25BkfbyspojGg(result, b);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = semTemplBodySons__DuioLh4uofptxEKissr2sw_5(c, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		default:
		{
			result = semTemplBodySons__DuioLh4uofptxEKissr2sw_5(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		{
			NIM_BOOL T228_;
			T228_ = (NIM_BOOL)0;
			T228_ = isRunnableExamples__CZaoTkWCFI9acor4BmYF3Yw_3((*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T228_)) goto LA229_;
			result = semTemplBodySons__DuioLh4uofptxEKissr2sw_5(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA229_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
		s_2 = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag((*c).c, n, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((s_2 == NIM_NIL))) goto LA234_;
			{
				NIM_BOOL T238_;
				NIM_BOOL T239_;
				NIM_BOOL T240_;
				NI T244_;
				T238_ = (NIM_BOOL)0;
				T239_ = (NIM_BOOL)0;
				T240_ = (NIM_BOOL)0;
				T240_ = ((*s_2).owner == (*c).owner);
				if (!(T240_)) goto LA241_;
				T240_ = ((*s_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				LA241_: ;
				T239_ = T240_;
				if (!(T239_)) goto LA242_;
				T239_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53));
				LA242_: ;
				T238_ = T239_;
				if (!(T238_)) goto LA243_;
				T244_ = (NI)0;
				T244_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T238_ = (T244_ == ((NI) 1));
				LA243_: ;
				if (!T238_) goto LA245_;
				(*s_2).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				result = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s_2, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA236_;
			LA245_: ;
			{
				NIM_BOOL T248_;
				tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T251_;
				T248_ = (NIM_BOOL)0;
				T248_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*c).toBind), (*s_2).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T248_) goto LA249_;
				T251_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
				T251_ = (*c).c;
				result = symChoice__ce08GbPIDAcM29cbr3lVUxg(T251_, n, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), (((NI) 0) < (*c).noGenSym));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA236_;
			LA249_: ;
			{
				NIM_BOOL T253_;
				tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T256_;
				T253_ = (NIM_BOOL)0;
				T253_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*c).toMixin), (*(*s_2).name).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T253_) goto LA254_;
				T256_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
				T256_ = (*c).c;
				result = symChoice__ce08GbPIDAcM29cbr3lVUxg(T256_, n, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2), (((NI) 0) < (*c).noGenSym));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA236_;
			LA254_: ;
			{
				tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T258_;
				T258_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
				T258_ = (*c).c;
				result = symChoice__ce08GbPIDAcM29cbr3lVUxg(T258_, n, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1), (((NI) 0) < (*c).noGenSym));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			LA236_: ;
		}
		LA234_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T263_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T264_;
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA261_;
			result = n;
			T263_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T263_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result)._kind_6.sons->data[((NI) 0)] = T263_;
			(*c).noGenSym += ((NI) 1);
			T264_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T264_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result)._kind_6.sons->data[((NI) 1)] = T264_;
			(*c).noGenSym -= ((NI) 1);
		}
		goto LA259_;
		LA261_: ;
		{
			result = semTemplBodySons__DuioLh4uofptxEKissr2sw_5(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA259_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33):
	{
		{
			NI T269_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T272_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T273_;
			T269_ = (NI)0;
			T269_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T269_ == ((NI) 2))) goto LA270_;
			(*c).noGenSym += ((NI) 1);
			T272_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T272_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result)._kind_6.sons->data[((NI) 0)] = T272_;
			(*c).noGenSym -= ((NI) 1);
			T273_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T273_ = semTemplBody__DuioLh4uofptxEKissr2sw_4(c, (*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result)._kind_6.sons->data[((NI) 1)] = T273_;
		}
		goto LA267_;
		LA270_: ;
		{
			result = semTemplBodySons__DuioLh4uofptxEKissr2sw_5(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA267_: ;
	}
	break;
	default:
	{
		result = semTemplBodySons__DuioLh4uofptxEKissr2sw_5(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplateDef__7YxUILpPxooC5qqa89a54dw_37)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T25_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp;
	NIM_BOOL allUntyped;
	tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw ctx;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* proto;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	s = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		s = semIdentVis__gSt4lwrAK8GOXOIIBgGsog_2(c, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18), (*n)._kind_6.sons->data[((NI) 0)], 2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
	}
	goto LA1_;
	LA4_: ;
	{
		s = semIdentVis__gSt4lwrAK8GOXOIIBgGsog_2(c, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18), (*n)._kind_6.sons->data[((NI) 0)], 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	{
		if (!!(((*s).owner == NIM_NIL))) goto LA9_;
		{
			NIM_BOOL T13_;
			NIM_BOOL T14_;
			NIM_BOOL T17_;
			T13_ = (NIM_BOOL)0;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*(*s).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0);
			if (!(T14_)) goto LA15_;
			T14_ = contains__MghwuKjQqmVLYE8A59cNGHgsystem(TM__rF9caJawfOjYTjsgLVUSGFA_603, 8, (*(*s).name).s);
			LA15_: ;
			T13_ = T14_;
			if (T13_) goto LA16_;
			T17_ = (NIM_BOOL)0;
			T17_ = eqStrings((*(*(*s).owner).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_610));
			if (!(T17_)) goto LA18_;
			T17_ = eqStrings((*(*s).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_611));
			LA18_: ;
			T13_ = T17_;
			LA16_: ;
			if (!T13_) goto LA19_;
			(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35)) & 63);
		}
		LA19_: ;
	}
	LA9_: ;
	{
		if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA23_;
		nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*s).info, s, (*s).kind);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA23_: ;
	pushOwner__AqgO9b89aLwRYAgSHN9aBrlHQ(c, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T25_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T25_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T26_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T26_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*(*n)._kind_6.sons->data[((NI) 0)]).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 0)] = T26_;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA29_;
		pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, s, (*n)._kind_6.sons->data[((NI) 4)], TM__rF9caJawfOjYTjsgLVUSGFA_612, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA29_: ;
	gp = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA33_;
		T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T35_ = semGenericParamList__00ZJT6x0WT6z8eBqr79cipw(c, (*n)._kind_6.sons->data[((NI) 2)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 2)] = T35_;
		gp = (*n)._kind_6.sons->data[((NI) 2)];
	}
	goto LA31_;
	LA33_: ;
	{
		gp = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA31_: ;
	allUntyped = NIM_TRUE;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 3)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA39_;
		semParamList__HJ2sXcKFjirzvqsZjMcpTg(c, (*n)._kind_6.sons->data[((NI) 3)], gp, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast((*(*s).typ).n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
					if (!(i_2 < colontmp_)) goto LA43;
					i = i_2;
					param = (*(*(*(*s).typ).n)._kind_6.sons->data[i])._kind_4.sym;
					(*param).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 39)) & 63);
					(*param).flags &= ~(((NU64)1) << ((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36)) & 63));
					{
						if (!!(((*(*param).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6)))) goto LA46_;
						allUntyped = NIM_FALSE;
					}
					LA46_: ;
					i_2 += ((NI) 1);
				} LA43: ;
			}
		}
		{
			NI T50_;
			T50_ = (NI)0;
			T50_ = len__P89cqdlERShb9alU3iC0yj8wast(gp);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI) 0) < T50_)) goto LA51_;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA55_;
				(*n)._kind_6.sons->data[((NI) 2)] = gp;
			}
			LA55_: ;
		}
		LA51_: ;
	}
	goto LA37_;
	LA39_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T58_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T59_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T60_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T61_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T62_;
		T58_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T58_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s).typ = T58_;
		T59_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T59_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*(*s).typ).n = T59_;
		T60_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T60_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg((*s).typ, T60_, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T61_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T61_ = (*(*s).typ).n;
		T62_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T62_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*n).info, (*(*s).typ).sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(T61_, T62_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA37_: ;
	{
		if (!allUntyped) goto LA65_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9)) & 63);
	}
	LA65_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T71_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA69_;
		T71_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T71_ = semPattern__7YxUILpPxooC5qqa89a54dw_9(c, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 1)] = T71_;
	}
	LA69_: ;
	nimZeroMem((void*)(&ctx), sizeof(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&ctx.toBind));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&ctx.toMixin));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&ctx.toInject));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	ctx.c = c;
	ctx.owner = s;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T76_;
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0)) goto LA74_;
		T76_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T76_ = semTemplBodyDirty__DuioLh4uofptxEKissr2sw_3((&ctx), (*n)._kind_6.sons->data[((NI) 6)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 6)] = T76_;
	}
	goto LA72_;
	LA74_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T78_;
		T78_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T78_ = semTemplBody__DuioLh4uofptxEKissr2sw_4((&ctx), (*n)._kind_6.sons->data[((NI) 6)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 6)] = T78_;
	}
	LA72_: ;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	popOwner__9aY89b9aR25iMJ8fPdM84CvQg_2(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*s).ast = n;
	result = n;
	{
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0)) goto LA81_;
		{
			NimStringDesc* T87_;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA85_;
			T87_ = (NimStringDesc*)0;
			T87_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_197), (*(*s).name).s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 6)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T87_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_613, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA85_: ;
	}
	goto LA79_;
	LA81_: ;
	{
		NimStringDesc* T91_;
		if (!((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA89_;
		T91_ = (NimStringDesc*)0;
		T91_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_352), (*(*s).name).s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T91_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_614, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA79_;
	LA89_: ;
	LA79_: ;
	proto = searchForProc__WIQjdZgnZBgByteqPM0pPw(c, (*c).currentScope, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(proto == NIM_NIL)) goto LA94_;
		addInterfaceOverloadableSymAt__HcojHyPBYsbchSQtmBqThg(c, (*c).currentScope, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA92_;
	LA94_: ;
	{
		symTabReplace__mq4tDXMjV9aoOV0jJhDFqKA((&(*(*c).currentScope).symbols), proto, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA92_: ;
	{
		NI T101_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA99_;
		(*c).patterns = (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*c).patterns), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_));
		T101_ = (*c).patterns->Sup.len++;
		(*c).patterns->data[T101_] = s;
	}
	LA99_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semQuoteAst__7YxUILpPxooC5qqa89a54dw_36)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* quotedBlock;
	NI T9_;
	NimStringDesc* op;
	tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* quotes;
	tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* ids;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T20_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dummyTemplate;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T22_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T24_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpl;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* identNodeSym;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* identNode;
	tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* T45_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T46_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T47_;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T48_;
	tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* T49_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T50_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T51_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T52_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NI T4_;
		NI T6_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = !((T4_ == ((NI) 2)));
		if (!(T3_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = !((T6_ == ((NI) 3)));
		LA5_: ;
		if (!T3_) goto LA7_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_596), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_597, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = n;
		goto BeforeRet_;
	}
	LA7_: ;
	T9_ = (NI)0;
	T9_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	quotedBlock = (*n)._kind_6.sons->data[(NI)(T9_ - ((NI) 1))];
	{
		NI T12_;
		T12_ = (NI)0;
		T12_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T12_ == ((NI) 3))) goto LA13_;
		op = expectString__zUJc3JNayUkQ8i11jOQJeQ_2(c, (*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA10_;
	LA13_: ;
	{
		op = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_599));
	}
	LA10_: ;
	quotes = newSeq__rWQEUE6RvOVfamepP2TwPw(((NI) 2));
	ids = newSeq__rWQEUE6RvOVfamepP2TwPw(((NI) 1));
	{
		if (!!(((*quotedBlock).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115)))) goto LA18_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 4), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_600), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_601, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA18_: ;
	T20_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T20_ = newAnonSym__w5lZcsHUDOEnXuinSWI8ww(c, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T21_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T20_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	ids->data[((NI) 0)] = T21_;
	processQuotations__JHIMJhmDecu8Q5MfBu4NEQ(c, &quotedBlock, op, (&quotes), (&ids));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T22_ = (*quotedBlock).info;
	T23_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T23_ = (*(*c).graph).emptyNode;
	T24_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T24_ = newAnonSym__w5lZcsHUDOEnXuinSWI8ww(c, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T25_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T25_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T24_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	dummyTemplate = newProcNode__g5PEkYP0A0RT03uHbJ6wKQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83), T22_, quotedBlock, T23_, T25_, (*(*c).graph).emptyNode, (*(*c).graph).emptyNode, (*(*c).graph).emptyNode, (*(*c).graph).emptyNode);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI T28_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T32_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T34_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
		NI T36_;
		NI T37_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T38_;
		T28_ = (ids ? ids->Sup.len : 0);
		if (!(((NI) 0) < T28_)) goto LA29_;
		T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T31_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*dummyTemplate)._kind_6.sons->data[((NI) 3)] = T31_;
		T32_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T32_ = getSysSym__9bvw79ck1FDiWpnBYh88rEfw((*c).graph, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_602));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T33_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T32_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg((*dummyTemplate)._kind_6.sons->data[((NI) 3)], T33_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T34_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T34_ = getSysSym__9bvw79ck1FDiWpnBYh88rEfw((*c).graph, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_602));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T35_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T34_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		ids = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(ids), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
		T36_ = ids->Sup.len++;
		ids->data[T36_] = T35_;
		ids = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(ids), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
		T37_ = ids->Sup.len++;
		ids->data[T37_] = (*(*c).graph).emptyNode;
		T38_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T38_ = newNode__duw0Uu9cIFXmCAaunQWIP0g(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (*n).info, ids, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg((*dummyTemplate)._kind_6.sons->data[((NI) 3)], T38_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA29_: ;
	tmpl = semTemplateDef__7YxUILpPxooC5qqa89a54dw_37(c, dummyTemplate);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	quotes->data[((NI) 0)] = (*tmpl)._kind_6.sons->data[((NI) 0)];
	identNodeSym = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA((*c).graph, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_615));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T43_;
		if (!(identNodeSym == NIM_NIL)) goto LA41_;
		T43_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T43_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_615));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		identNode = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T43_, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA39_;
	LA41_: ;
	{
		identNode = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(identNodeSym);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA39_: ;
	T45_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
	T45_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) newSeq((&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_), 2);
	T45_->data[0] = identNode;
	T46_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T46_ = newStrNode__zLcHGdlEbBYFtoCoan9agkg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_95));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T45_->data[1] = T46_;
	T47_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T47_ = newNode__duw0Uu9cIFXmCAaunQWIP0g(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, T45_, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	quotes->data[((NI) 1)] = T47_;
	T48_ = (*n).info;
	T49_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
	T49_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) newSeq((&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_), 2);
	T50_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T50_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ((*c).graph, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_616), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 27));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T51_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T51_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T50_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T49_->data[0] = T51_;
	T52_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T52_ = newNode__duw0Uu9cIFXmCAaunQWIP0g(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, quotes, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T49_->data[1] = T52_;
	result = newNode__duw0Uu9cIFXmCAaunQWIP0g(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T48_, T49_, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = semExpandToAst__7YxUILpPxooC5qqa89a54dw_35(c, result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, createFlowVar__FNAdkkRAZAzuZfvQrY8ffg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9), (*c).module);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA((*c).graph, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_619));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, (*T1_).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, t);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = instGenericContainer__sJO8n9aXqgecj24tOSPjmow(c, info, result, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, instantiateCreateFlowVarCall__xO2UfktRDKCUWUorFz9cLYA_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
	tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q bindings;
	tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA* T5_;
	RootObj* T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	sym = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA((*c).graph, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_620));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(sym == NIM_NIL)) goto LA3_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_621), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_622, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	nimZeroMem((void*)(&bindings), sizeof(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q));
	initIdTable__Z7fF0Wc4DSB4kCiKZ8rGfQ((&bindings));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T5_ = (tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA*)0;
	T5_ = &(*(*(*(*sym).ast)._kind_6.sons->data[((NI) 2)])._kind_6.sons->data[((NI) 0)]).typ->Sup;
	T6_ = (RootObj*)0;
	T6_ = &t->Sup.Sup;
	idTablePut__anELyz7VLsjbCIoxLpxbfQ((&bindings), T5_, T6_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (*c).semGenerateInstance.ClE_0? (*c).semGenerateInstance.ClP_0(c, sym, bindings, info, (*c).semGenerateInstance.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_623)((*c).semGenerateInstance.ClP_0))(c, sym, bindings, info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(((*result).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 18))&63U)))!=0)) goto LA9_;
		(*result).flags = ((*result).flags & ~ 262336);
		(*result).loc.r = NIM_NIL;
	}
	LA9_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSizeof__7YxUILpPxooC5qqa89a54dw_38)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
	tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* configX60gensym4761_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nodeX60gensym4761_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typX60gensym4761_;
	NI64 sizeX60gensym4761_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI T3_;
		NimStringDesc* T6_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_310), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_624));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_625, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 1)], 256);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 1)] = T8_;
	}
	LA1_: ;
	T9_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T9_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n).typ = T9_;
	configX60gensym4761_ = (*(*c).graph).config;
	nodeX60gensym4761_ = n;
	typX60gensym4761_ = (*(*nodeX60gensym4761_)._kind_6.sons->data[((NI) 1)]).typ;
	computeSizeAlign__Nur2IEN9ayDXYT9aVdBUPsYQ(configX60gensym4761_, typX60gensym4761_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	sizeX60gensym4761_ = (*typX60gensym4761_).size;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resX60gensym4761_;
		if (!(IL64(0) <= sizeX60gensym4761_)) goto LA12_;
		resX60gensym4761_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), sizeX60gensym4761_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*resX60gensym4761_).info = (*nodeX60gensym4761_).info;
		(*resX60gensym4761_).typ = (*nodeX60gensym4761_).typ;
		result = resX60gensym4761_;
	}
	goto LA10_;
	LA12_: ;
	{
		result = n;
	}
	LA10_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMagic__NYxU2DkHA0Gt5fsL9bYZdog_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	switch ((*s).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 16):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T2_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*(*n)._kind_6.sons->data[((NI) 0)]).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 0)] = T2_;
		T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T3_ = semAddrArg__kiPmghV1gaPm718CtGyhQw(c, (*n)._kind_6.sons->data[((NI) 1)], eqStrings((*(*s).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_223)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 1)] = T3_;
		T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = makePtrType__PDWeh9cjpi22xXdNggYvsWA(c, (*(*result)._kind_6.sons->data[((NI) 1)]).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T4_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 18):
	{
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semTypeOf__7YxUILpPxooC5qqa89a54dw_15(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 1):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = setMs__YdV8xmi8UjdS8ox7bsgtGw(n, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semDefined__7YxUILpPxooC5qqa89a54dw_34(c, T7_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 2):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T9_ = setMs__YdV8xmi8UjdS8ox7bsgtGw(n, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semDeclared__ssxiU9aPj4i6xXfLbEm3Reg(c, T9_, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 3):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = setMs__YdV8xmi8UjdS8ox7bsgtGw(n, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semDeclared__ssxiU9aPj4i6xXfLbEm3Reg(c, T11_, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 4):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T13_ = setMs__YdV8xmi8UjdS8ox7bsgtGw(n, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semCompiles__vJZwz9bfROKrfrtM50y74CQ_16(c, T13_, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 14):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T15_ = setMs__YdV8xmi8UjdS8ox7bsgtGw(n, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semIs__vJZwz9bfROKrfrtM50y74CQ_18(c, T15_, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 21):
	{
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semShallowCopy__vJZwz9bfROKrfrtM50y74CQ_11(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 27):
	{
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semExpandToAst__QP3kds6GlqvnvsFXvC0yvw(c, n, s, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 28):
	{
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semQuoteAst__7YxUILpPxooC5qqa89a54dw_36(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 140):
	{
		NimStringDesc* T20_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T20_ = (NimStringDesc*)0;
		T20_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA((*n)._kind_6.sons->data[((NI) 1)], 4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newStrNodeT__9cl7myBS6dfbP30fsccozTQ(T20_, n, (*c).graph);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T21_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T21_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T21_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 141):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((((*c).features &(1U<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 3))&15U)))!=0))) goto LA25_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_617), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_618, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA25_: ;
		result = setMs__YdV8xmi8UjdS8ox7bsgtGw(n, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		x = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52))) goto LA29_;
			x = (*x)._kind_6.sons->data[((NI) 6)];
		}
		LA29_: ;
		(*c).inParallelStmt += ((NI) 1);
		T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T31_ = semStmt__vJZwz9bfROKrfrtM50y74CQ_4(c, x, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 1)] = T31_;
		(*c).inParallelStmt -= ((NI) 1);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 194):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		NI T37_;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = setMs__YdV8xmi8UjdS8ox7bsgtGw(n, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T36_;
					if (!(i_2 < colontmp_)) goto LA35;
					i = i_2;
					T36_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T36_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[i], 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result)._kind_6.sons->data[i] = T36_;
					i_2 += ((NI) 1);
				} LA35: ;
			}
		}
		T37_ = (NI)0;
		T37_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		typ = (*(*result)._kind_6.sons->data[(NI)(T37_ - ((NI) 1))]).typ;
		{
			NIM_BOOL T40_;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T50_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T51_;
			T40_ = (NIM_BOOL)0;
			T40_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast(typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T40_)) goto LA41_;
			{
				tyEnum_TSpawnResult__YOcUu9brt5AKRflRWdxATPw T45_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T48_;
				T45_ = (tyEnum_TSpawnResult__YOcUu9brt5AKRflRWdxATPw)0;
				T45_ = spawnResult__115WOpmSjJFT089amuDIXdA(typ, (((NI) 0) < (*c).inParallelStmt));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T45_ == ((tyEnum_TSpawnResult__YOcUu9brt5AKRflRWdxATPw) 1))) goto LA46_;
				T48_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T48_ = createFlowVar__FNAdkkRAZAzuZfvQrY8ffg(c, typ, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).typ = T48_;
			}
			goto LA43_;
			LA46_: ;
			{
				(*result).typ = typ;
			}
			LA43_: ;
			T50_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			T50_ = instantiateCreateFlowVarCall__xO2UfktRDKCUWUorFz9cLYA_2(c, typ, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T51_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T51_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T50_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(result, T51_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA38_;
		LA41_: ;
		{
			add__P8dDSotTW25BkfbyspojGg(result, (*(*c).graph).emptyNode);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA38_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 199):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T54_;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = setMs__YdV8xmi8UjdS8ox7bsgtGw(n, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T54_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T54_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 1)] = T54_;
		(*result).typ = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 19):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nOrig = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semOverloadedCallAnalyseEffects__9b1JieByYAFP9bIuFhYqD8AA(c, n, nOrig, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(result == NIM_NIL)) goto LA58_;
			result = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA56_;
		LA58_: ;
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* callee;
			callee = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			{
				if (!((*callee).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0))) goto LA63_;
				semFinishOperands__wb6KhAx6bZ5NV37kY4bXJw_3(c, result);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA63_: ;
			activate__NRIJDWZtATzMum7OEjYC2g_6(c, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			fixAbstractType__NRIJDWZtATzMum7OEjYC2g_7(c, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			analyseIfAddressTakenInCall__NRIJDWZtATzMum7OEjYC2g_8(c, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!(((*callee).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)))) goto LA67_;
				result = magicsAfterOverloadResolution__vJZwz9bfROKrfrtM50y74CQ_7(c, result, flags);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA67_: ;
		}
		LA56_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 262):
	{
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T72_;
			NIM_BOOL T73_;
			NI T75_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T77_;
			T72_ = (NIM_BOOL)0;
			T73_ = (NIM_BOOL)0;
			T73_ = ((*(*(*c).graph).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 8));
			if (!(T73_)) goto LA74_;
			T75_ = (NI)0;
			T75_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T73_ = (((NI) 2) <= T75_);
			LA74_: ;
			T72_ = T73_;
			if (!(T72_)) goto LA76_;
			T77_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T77_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T72_ = ((*T77_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115));
			LA76_: ;
			if (!T72_) goto LA78_;
			result = setMs__YdV8xmi8UjdS8ox7bsgtGw(n, s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA70_;
		LA78_: ;
		{
			result = (*(*c).graph).emptyNode;
		}
		LA70_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 10):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T82_;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T82_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T82_ = setMs__YdV8xmi8UjdS8ox7bsgtGw(n, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semSizeof__7YxUILpPxooC5qqa89a54dw_38(c, T82_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = semDirectOp__vJZwz9bfROKrfrtM50y74CQ_6(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDeref__RzKgK8tcIIFHt7HBTQVoYQlowerings)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65), (*n).info, (*(*n).typ).sons->data[((NI) 0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, bracketedMacro__B9cQwIphxB9aXLurrc1x2XhQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		NIM_BOOL T3_;
		NI T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (((NI) 1) <= T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		LA5_: ;
		if (!T3_) goto LA6_;
		result = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		{
			if (!!(((393216 &(1U<<((NU)((*result).kind)&31U)))!=0))) goto LA10_;
			result = NIM_NIL;
		}
		LA10_: ;
	}
	LA6_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setGenericParams__NRIJDWZtATzMum7OEjYC2g_12)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T4_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[i], NIM_NIL);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*(*n)._kind_6.sons->data[i]).typ = T4_;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, resolveIndirectCall__Ue9bfKSqSYcEhUFt1R9cJKjw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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__GPx9buyQn9cq0nARN4Amyarw(c, Result, t);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	matches__BxEsf1Gt7Hq3usrwPERzyA_2(c, n, nOrig, Result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((*Result).state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA3_;
		{
			NIM_BOOL T7_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
			T7_ = (NIM_BOOL)0;
			T7_ = (((*c).features &(1U<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 0))&15U)))!=0);
			if (!(T7_)) goto LA8_;
			T7_ = canDeref__crbaOhZgTohCnKAdtWPkSQ_2sem(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA8_: ;
			if (!T7_) goto LA9_;
			T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T11_ = tryDeref__wWBimsBS4M6UZBvTRDlQTQ_2((*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 1)] = T11_;
			initCandidate__GPx9buyQn9cq0nARN4Amyarw(c, Result, t);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			matches__BxEsf1Gt7Hq3usrwPERzyA_2(c, n, nOrig, Result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, overloadedCallOpr__7YxUILpPxooC5qqa89a54dw_39)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* par;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	par = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_194));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T3_;
		T3_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T3_ = searchInScopes__Drn1sJCJSwUUo03qKJigUw(c, par);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == NIM_NIL)) goto LA4_;
		result = NIM_NIL;
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(par, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T7_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI) 1);
				} LA10: ;
			}
		}
		result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, result, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIndirectOp__vJZwz9bfROKrfrtM50y74CQ_20)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prc;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = NIM_NIL;
	checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 1), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	prc = (*n)._kind_6.sons->data[((NI) 0)];
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n0;
		if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA3_;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw((*n)._kind_6.sons->data[((NI) 0)], ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		n0 = semFieldAccess__vJZwz9bfROKrfrtM50y74CQ_14(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*n0).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 25))) goto LA7_;
			result = n0;
			transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 27));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 11)) & 31);
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 1);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA11;
						i = i_2;
						add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[i]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_2 += ((NI) 1);
					} LA11: ;
				}
			}
			result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, result, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA5_;
		LA7_: ;
		{
			(*n)._kind_6.sons->data[((NI) 0)] = n0;
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T14_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[((NI) 0)], 32768);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T14_;
		t = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
		{
			NIM_BOOL T17_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
			T17_ = (NIM_BOOL)0;
			T17_ = !((t == NIM_NIL));
			if (!(T17_)) goto LA18_;
			T17_ = ((IL64(140737496743936) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
			LA18_: ;
			if (!T17_) goto LA19_;
			T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T21_ = newDeref__RzKgK8tcIIFHt7HBTQVoYQlowerings((*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 0)] = T21_;
		}
		goto LA15_;
		LA19_: ;
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42))) goto LA23_;
			s = bracketedMacro__B9cQwIphxB9aXLurrc1x2XhQ((*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!((s == NIM_NIL))) goto LA27_;
				setGenericParams__NRIJDWZtATzMum7OEjYC2g_12(c, (*n)._kind_6.sons->data[((NI) 0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = semDirectOp__vJZwz9bfROKrfrtM50y74CQ_6(c, n, flags);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			LA27_: ;
		}
		goto LA15_;
		LA23_: ;
		LA15_: ;
	}
	LA1_: ;
	nOrig = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	semOpAux__NRIJDWZtATzMum7OEjYC2g_4(c, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	t_2 = NIM_NIL;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).typ == NIM_NIL))) goto LA31_;
		t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135265296));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA31_: ;
	{
		NIM_BOOL T35_;
		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
		T35_ = (NIM_BOOL)0;
		T35_ = !((t_2 == NIM_NIL));
		if (!(T35_)) goto LA36_;
		T35_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		LA36_: ;
		if (!T35_) goto LA37_;
		nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
		resolveIndirectCall__Ue9bfKSqSYcEhUFt1R9cJKjw(c, n, nOrig, t_2, (&m));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((m.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA41_;
			{
				if (!((*(*(*c).graph).config).m.errorOutputs == 0)) goto LA45_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_29), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_626, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = (*(*c).graph).emptyNode;
				goto BeforeRet_;
			}
			goto LA43_;
			LA45_: ;
			{
				NIM_BOOL hasErrorType;
				NimStringDesc* msg;
				hasErrorType = NIM_FALSE;
				msg = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_270));
				{
					NI i_3;
					NI colontmp__2;
					NI i_4;
					i_3 = (NI)0;
					colontmp__2 = (NI)0;
					colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_4 = ((NI) 1);
					{
						while (1) {
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* nt;
							NimStringDesc* T55_;
							if (!(i_4 < colontmp__2)) goto LA50;
							i_3 = i_4;
							{
								if (!(((NI) 1) < i_3)) goto LA53_;
								msg = resizeString(msg, 2);
appendString(msg, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_68));
							}
							LA53_: ;
							nt = (*(*n)._kind_6.sons->data[i_3]).typ;
							T55_ = (NimStringDesc*)0;
							T55_ = typeToString__QlvraUan7WbHowhAbvDvdA(nt, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							msg = resizeString(msg, (T55_ ? T55_->Sup.len : 0) + 0);
appendString(msg, T55_);
							{
								if (!((*nt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50))) goto LA58_;
								hasErrorType = NIM_TRUE;
								goto LA48;
							}
							LA58_: ;
							i_4 += ((NI) 1);
						} LA50: ;
					}
				} LA48: ;
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
					NimStringDesc* T64_;
					NimStringDesc* T65_;
					if (!!(hasErrorType)) goto LA62_;
					typ = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
					T64_ = (NimStringDesc*)0;
					T65_ = (NimStringDesc*)0;
					T65_ = typeToString__QlvraUan7WbHowhAbvDvdA(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T64_ = rawNewString((T65_ ? T65_->Sup.len : 0) + 24);
appendString(T64_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_627));
appendString(T64_, T65_);
					msg = resizeString(msg, (T64_ ? T64_->Sup.len : 0) + 0);
appendString(msg, T64_);
					{
						NIM_BOOL T68_;
						NIM_BOOL T69_;
						NimStringDesc* T74_;
						NimStringDesc* T75_;
						T68_ = (NIM_BOOL)0;
						T69_ = (NIM_BOOL)0;
						T69_ = !(((*typ).sym == NIM_NIL));
						if (!(T69_)) goto LA70_;
						T69_ = !((((*(*typ).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 33))&63U)))!=0));
						LA70_: ;
						T68_ = T69_;
						if (!(T68_)) goto LA71_;
						T68_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
						LA71_: ;
						if (!T68_) goto LA72_;
						T74_ = (NimStringDesc*)0;
						T75_ = (NimStringDesc*)0;
						T75_ = typeToString__QlvraUan7WbHowhAbvDvdA(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T74_ = rawNewString((T75_ ? T75_->Sup.len : 0) + 3);
appendString(T74_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_628));
appendString(T74_, T75_);
						msg = resizeString(msg, (T74_ ? T74_->Sup.len : 0) + 0);
appendString(msg, T74_);
					}
					LA72_: ;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), msg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_629, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA62_: ;
				result = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			LA43_: ;
			result = NIM_NIL;
		}
		goto LA39_;
		LA41_: ;
		{
			result = m.call;
			instGenericConvertersSons__DyVfh0xLvP9cQgsc36rPgEA(c, result, (&m));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA39_: ;
	}
	goto LA33_;
	LA37_: ;
	{
		NIM_BOOL T78_;
		T78_ = (NIM_BOOL)0;
		T78_ = !((t_2 == NIM_NIL));
		if (!(T78_)) goto LA79_;
		T78_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
		LA79_: ;
		if (!T78_) goto LA80_;
		{
			NI T84_;
			T84_ = (NI)0;
			T84_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T84_ == ((NI) 1))) goto LA85_;
			result = semObjConstr__vJZwz9bfROKrfrtM50y74CQ_15(c, n, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		LA85_: ;
		result = semConv__7YxUILpPxooC5qqa89a54dw_32(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	goto LA33_;
	LA80_: ;
	{
		result = overloadedCallOpr__7YxUILpPxooC5qqa89a54dw_39(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(result == NIM_NIL)) goto LA90_;
			(*n)._kind_6.sons->data[((NI) 0)] = prc;
			(*nOrig)._kind_6.sons->data[((NI) 0)] = prc;
			(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 12)) & 31);
			result = semOverloadedCallAnalyseEffects__9b1JieByYAFP9bIuFhYqD8AA(c, n, nOrig, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!(result == NIM_NIL)) goto LA94_;
				result = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			LA94_: ;
		}
		goto LA88_;
		LA90_: ;
		{
			if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)))) goto LA97_;
			goto BeforeRet_;
		}
		goto LA88_;
		LA97_: ;
		LA88_: ;
	}
	LA33_: ;
	{
		if (!((*(*result)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA101_;
		result = afterCallActions__Qn3T9bt6Cg4I7XaYRMg219aw(c, result, nOrig, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA99_;
	LA101_: ;
	{
		fixAbstractType__NRIJDWZtATzMum7OEjYC2g_7(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		analyseIfAddressTakenInCall__NRIJDWZtATzMum7OEjYC2g_8(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA99_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldBeBracketExpr__OiccTa3ruRNl9anoSqZh2Sg_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	a = (*n)._kind_6.sons->data[((NI) 0)];
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA3_;
		b = (*a)._kind_6.sons->data[((NI) 0)];
		{
			if (!((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57))) goto LA7_;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA11;
						i = i_2;
						{
							NIM_BOOL T14_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* be;
							T14_ = (NIM_BOOL)0;
							T14_ = ((*(*b)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
							if (!(T14_)) goto LA15_;
							T14_ = ((*(*(*b)._kind_6.sons->data[i])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 5));
							LA15_: ;
							if (!T14_) goto LA16_;
							be = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), (*n).info);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								NI i_3;
								NI colontmp__2;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(a);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								i_4 = ((NI) 1);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA20;
										i_3 = i_4;
										add__P8dDSotTW25BkfbyspojGg(be, (*a)._kind_6.sons->data[i_3]);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										i_4 += ((NI) 1);
									} LA20: ;
								}
							}
							(*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(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrayAccess__vJZwz9bfROKrfrtM50y74CQ_21)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = semSubscript__vJZwz9bfROKrfrtM50y74CQ_9(c, n, flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T5_;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T6_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		if (!(result == NIM_NIL)) goto LA3_;
		T5_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
		T5_ = c;
		T6_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T6_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = buildOverloadedSubscripts__nefR35PSczfhlx6FSH1N7w(n, T6_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(T5_, T7_, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg, checkPar__l5Y3wSn9c2wuzfpP3PtAptA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 3);
	}
	goto LA1_;
	LA4_: ;
	{
		NI T7_;
		T7_ = (NI)0;
		T7_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T7_ == ((NI) 1))) goto LA8_;
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA12_;
			result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 2);
		}
		goto LA10_;
		LA12_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160))) goto LA15_;
			result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 3);
		}
		goto LA10_;
		LA15_: ;
		{
			result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 1);
		}
		LA10_: ;
	}
	goto LA1_;
	LA8_: ;
	{
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA21_;
			result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 2);
		}
		goto LA19_;
		LA21_: ;
		{
			result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 3);
		}
		LA19_: ;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA26;
					i = i_2;
					{
						if (!(result == ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 2))) goto LA29_;
						{
							NIM_BOOL T33_;
							T33_ = (NIM_BOOL)0;
							T33_ = !(((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34)));
							if (T33_) goto LA34_;
							T33_ = !(((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) || (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2) || (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53)));
							LA34_: ;
							if (!T33_) goto LA35_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_630), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_631, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 0);
							goto BeforeRet_;
						}
						LA35_: ;
					}
					goto LA27_;
					LA29_: ;
					{
						{
							if (!((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA40_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_632), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_633, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 0);
							goto BeforeRet_;
						}
						LA40_: ;
					}
					LA27_: ;
					i_2 += ((NI) 1);
				} LA26: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTuplePositionsConstr__vJZwz9bfROKrfrtM50y74CQ_23)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 160));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	typ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18), c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T4_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[i], (flags & 1024));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[i] = T4_;
				addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(typ, (*(*n)._kind_6.sons->data[i]).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	(*result).typ = typ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTupleConstr__vJZwz9bfROKrfrtM50y74CQ_22)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tupexp;
	NIM_BOOL isTupleType;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	tupexp = semTuplePositionsConstr__vJZwz9bfROKrfrtM50y74CQ_23(c, n, flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	isTupleType = (NIM_BOOL)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(tupexp);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(((NI) 0) < T3_)) goto LA4_;
		isTupleType = ((*(*(*tupexp)._kind_6.sons->data[((NI) 0)]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(tupexp);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					{
						if (!!((isTupleType == ((*(*(*tupexp)._kind_6.sons->data[i]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))))) goto LA11_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*tupexp)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_634), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_635, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						result = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, n);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
					LA11_: ;
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
	}
	LA4_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
		if (!isTupleType) goto LA15_;
		result = n;
		T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T17_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, n, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T17_, 256);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T18_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T18_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(c, typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T18_;
	}
	goto LA13_;
	LA15_: ;
	{
		result = tupexp;
	}
	LA13_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTupleFieldsConstr__vJZwz9bfROKrfrtM50y74CQ_24)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg ids;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	typ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18), c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*typ).n = T1_;
	nimZeroMem((void*)(&ids), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&ids));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* id;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* f;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					if (!!(((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34)))) goto LA7_;
					illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw((*n)._kind_6.sons->data[i], (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA7_: ;
				id = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], NIM_NIL);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T11_;
					NimStringDesc* T14_;
					T11_ = (NIM_BOOL)0;
					T11_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&ids), (*id).Sup.id);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T11_) goto LA12_;
					T14_ = (NimStringDesc*)0;
					T14_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_578), (*id).s);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T14_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_636, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA12_: ;
				T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T15_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], (flags & 1024));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)] = T15_;
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
					if (!((*(*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA18_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_637), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_638, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T20_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T20_ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).typ = T20_;
				}
				LA18_: ;
				f = newSymS__z0Xq7x7aKOzONyxr8mX73A_2(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19), (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T21_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T21_ = skipIntLit__PyQcLUUKkDYcpwke36Qpxgmagicsys((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*f).typ = T21_;
				(*f).position = i;
				rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(typ, (*f).typ, NIM_TRUE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T22_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(f);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg((*typ).n, T22_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T23_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T23_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(f);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)] = T23_;
				add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	(*result).typ = typ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSetConstr__7YxUILpPxooC5qqa89a54dw_40)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19), c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = T1_;
	{
		NI T4_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ == ((NI) 0))) goto LA5_;
		T7_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T7_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg((*result).typ, T7_, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA2_;
	LA5_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		typ = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA11;
					i = i_2;
					{
						NIM_BOOL T14_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
						T14_ = (NIM_BOOL)0;
						T14_ = isRange__ZcP19cH3pVINjK9ckLU2rBeQtrees((*n)._kind_6.sons->data[i]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T14_) goto LA15_;
						checkSonsLen__EezdXeDvu4rB7fR84AJZgw((*n)._kind_6.sons->data[i], ((NI) 3), (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T17_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], 0);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)] = T17_;
						T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T18_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 2)], 0);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 2)] = T18_;
						{
							if (!(typ == NIM_NIL)) goto LA21_;
							typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).typ, IL64(211106240956432));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA21_: ;
						(*(*n)._kind_6.sons->data[i]).typ = (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 2)]).typ;
					}
					goto LA12_;
					LA15_: ;
					{
						if (!((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA24_;
						{
							if (!(typ == NIM_NIL)) goto LA28_;
							typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).typ, IL64(211106240956432));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA28_: ;
					}
					goto LA12_;
					LA24_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
						T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T31_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[i], 0);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*n)._kind_6.sons->data[i] = T31_;
						{
							if (!(typ == NIM_NIL)) goto LA34_;
							typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[i]).typ, IL64(211106240956432));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA34_: ;
					}
					LA12_: ;
					i_2 += ((NI) 1);
				} LA11: ;
			}
		}
		{
			NIM_BOOL T38_;
			T38_ = (NIM_BOOL)0;
			T38_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA(typ, NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T38_)) goto LA39_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_299), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_639, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			typ = makeRangeType__Jrbal1EnVldk9cZ2EZVjuLQ(c, IL64(0), IL64(65535), (*n).info, NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA36_;
		LA39_: ;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T42_;
			NIM_BOOL T43_;
			T42_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*c).graph).config, typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T43_ = (NIM_BOOL)0;
			T43_ = lt___xL5gyZrjbGMarSdRAXOo9ag_3(IL64(65536), T42_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T43_) goto LA44_;
			typ = makeRangeType__Jrbal1EnVldk9cZ2EZVjuLQ(c, IL64(0), IL64(65535), (*n).info, NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA36_;
		LA44_: ;
		LA36_: ;
		addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ((*result).typ, typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
					if (!(i_4 < colontmp__2)) goto LA48;
					i_3 = i_4;
					m = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					info = (*(*n)._kind_6.sons->data[i_3]).info;
					{
						NIM_BOOL T51_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T54_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T55_;
						T51_ = (NIM_BOOL)0;
						T51_ = isRange__ZcP19cH3pVINjK9ckLU2rBeQtrees((*n)._kind_6.sons->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T51_) goto LA52_;
						m = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44), info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T54_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T54_ = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, typ, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 1)], info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						add__P8dDSotTW25BkfbyspojGg(m, T54_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T55_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T55_ = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, typ, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 2)], info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						add__P8dDSotTW25BkfbyspojGg(m, T55_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA49_;
					LA52_: ;
					{
						if (!((*(*n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA57_;
						m = (*n)._kind_6.sons->data[i_3];
					}
					goto LA49_;
					LA57_: ;
					{
						m = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, typ, (*n)._kind_6.sons->data[i_3], info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA49_: ;
					add__P8dDSotTW25BkfbyspojGg(result, m);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_4 += ((NI) 1);
				} LA48: ;
			}
		}
	}
	LA2_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrayConstr__vJZwz9bfROKrfrtM50y74CQ_25)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA firstIndex;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA lastIndex;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* indexType;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA lastValidIndex;
	NI64 T62_;
	NI64 T63_;
	NI64 T64_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T65_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16), c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = T1_;
	rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg((*result).typ, NIM_NIL, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)(&firstIndex), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	nimZeroMem((void*)(&lastIndex), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	indexType = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	lastValidIndex = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*c).graph).config, indexType);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI T4_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ == ((NI) 0))) goto LA5_;
		T7_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T7_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg((*result).typ, T7_, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		lastIndex = toInt128__161i7kexvUAISxPtGBRWYw(((NI) -1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA2_;
	LA5_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* yy;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		x = (*n)._kind_6.sons->data[((NI) 0)];
		{
			NIM_BOOL T11_;
			NI T13_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* idx;
			T11_ = (NIM_BOOL)0;
			T11_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
			if (!(T11_)) goto LA12_;
			T13_ = (NI)0;
			T13_ = len__P89cqdlERShb9alU3iC0yj8wast(x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T11_ = (T13_ == ((NI) 2));
			LA12_: ;
			if (!T11_) goto LA14_;
			idx = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, (*x)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T18_;
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T21_;
				NimStringDesc* T22_;
				NimStringDesc* T23_;
				NimStringDesc* T24_;
				T18_ = (NIM_BOOL)0;
				T18_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA((*idx).typ, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!(T18_)) goto LA19_;
				T21_ = (*idx).info;
				T22_ = (NimStringDesc*)0;
				T23_ = (NimStringDesc*)0;
				T23_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(idx, 0);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T24_ = (NimStringDesc*)0;
				T24_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_641), T23_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T22_ = rawNewString((T24_ ? T24_->Sup.len : 0) + 33);
appendString(T22_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_640));
appendString(T22_, T24_);
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T21_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T22_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_642, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA16_;
			LA19_: ;
			{
				firstIndex = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ(idx, TM__rF9caJawfOjYTjsgLVUSGFA_229);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				lastIndex = firstIndex;
				indexType = (*idx).typ;
				lastValidIndex = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*c).graph).config, indexType);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				x = (*x)._kind_6.sons->data[((NI) 1)];
			}
			LA16_: ;
		}
		LA14_: ;
		yy = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, x, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		typ = (*yy).typ;
		add__P8dDSotTW25BkfbyspojGg(result, yy);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* xx;
					if (!(i_2 < colontmp_)) goto LA28;
					i = i_2;
					{
						NIM_BOOL T31_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* validIndex;
						NI64 T34_;
						NI64 T35_;
						NI64 T36_;
						tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T37_;
						NimStringDesc* T38_;
						tyArray__Re75IspeoxXy2oCZHwcRrA T39_;
						NimStringDesc* T40_;
						NI T41_;
						NimStringDesc* T42_;
						T31_ = (NIM_BOOL)0;
						T31_ = eqeq___7c5Zw7H31uJfWmmhZe9aEqw(lastIndex, lastValidIndex);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T31_) goto LA32_;
						T34_ = (NI64)0;
						T34_ = toInt64__1szweXXq3RBN50owrYu2Xw(firstIndex);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T35_ = (NI64)0;
						T35_ = T34_;
						T36_ = (NI64)0;
						T36_ = toInt64__1szweXXq3RBN50owrYu2Xw(lastValidIndex);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						validIndex = makeRangeType__Jrbal1EnVldk9cZ2EZVjuLQ(c, T35_, T36_, (*n).info, indexType);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T37_ = (*n).info;
						T38_ = (NimStringDesc*)0;
						nimZeroMem((void*)T39_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
						T40_ = (NimStringDesc*)0;
						T40_ = typeToString__QlvraUan7WbHowhAbvDvdA(validIndex, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T39_[0] = T40_;
						T41_ = (NI)0;
						T41_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T39_[1] = nimIntToStr((NI)(T41_ - i));
						T42_ = (NimStringDesc*)0;
						T42_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_644), T39_, 2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T38_ = rawNewString((T42_ ? T42_->Sup.len : 0) + 37);
appendString(T38_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_643));
appendString(T38_, T42_);
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T37_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T38_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_645, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA32_: ;
					x = (*n)._kind_6.sons->data[i];
					{
						NIM_BOOL T45_;
						NI T47_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* idx_2;
						T45_ = (NIM_BOOL)0;
						T45_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
						if (!(T45_)) goto LA46_;
						T47_ = (NI)0;
						T47_ = len__P89cqdlERShb9alU3iC0yj8wast(x);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T45_ = (T47_ == ((NI) 2));
						LA46_: ;
						if (!T45_) goto LA48_;
						idx_2 = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, (*x)._kind_6.sons->data[((NI) 0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						idx_2 = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, indexType, idx_2, (*x).info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							tyObject_Int128__9a9axPfb75jdWY25AamJewkA T52_;
							tyObject_Int128__9a9axPfb75jdWY25AamJewkA T53_;
							NIM_BOOL T54_;
							T52_ = plus___hiijuMqvH9aC9aKmwIYuqUAA_2(lastIndex, IL64(1));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T53_ = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ(idx_2, TM__rF9caJawfOjYTjsgLVUSGFA_229);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T54_ = (NIM_BOOL)0;
							T54_ = eqeq___7c5Zw7H31uJfWmmhZe9aEqw(T52_, T53_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(T54_)) goto LA55_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*x).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_646), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_647, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA55_: ;
						x = (*x)._kind_6.sons->data[((NI) 1)];
					}
					LA48_: ;
					xx = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, x, (flags & 1024));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__P8dDSotTW25BkfbyspojGg(result, xx);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					typ = commonType__hfwrZ5ThSx8sbABQFEwdHg(typ, (*xx).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					inc__Glh2geFlMs9aE78UZ1JZGAA((&lastIndex), ((NU32) 1));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI) 1);
				} LA28: ;
			}
		}
		addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ((*result).typ, typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T60_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T61_;
					if (!(i_4 < colontmp__2)) goto LA59;
					i_3 = i_4;
					T60_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T60_ = (*result)._kind_6.sons->data[i_3];
					T61_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T61_ = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, typ, T60_, (*(*result)._kind_6.sons->data[i_3]).info);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result)._kind_6.sons->data[i_3] = T61_;
					i_4 += ((NI) 1);
				} LA59: ;
			}
		}
	}
	LA2_: ;
	T62_ = (NI64)0;
	T62_ = toInt64__1szweXXq3RBN50owrYu2Xw(firstIndex);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T63_ = (NI64)0;
	T63_ = T62_;
	T64_ = (NI64)0;
	T64_ = toInt64__1szweXXq3RBN50owrYu2Xw(lastIndex);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T65_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T65_ = makeRangeType__Jrbal1EnVldk9cZ2EZVjuLQ(c, T63_, T64_, (*n).info, indexType);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*result).typ).sons->data[((NI) 0)] = T65_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semLambda__vJZwz9bfROKrfrtM50y74CQ_26)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T13_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = semProcAnnotation__Uz9bZ6N7ZeTxuwI9b9cYeOeYw(c, n, TM__rF9caJawfOjYTjsgLVUSGFA_648);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((result == NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	result = n;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 7), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	s = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T9_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T10_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA7_;
		T9_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T9_ = (*(*c).cache).idAnon;
		T10_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T10_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		s = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12), T9_, T10_, (*n).info, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s).ast = n;
		T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T11_;
	}
	goto LA5_;
	LA7_: ;
	{
		s = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	}
	LA5_: ;
	pushOwner__AqgO9b89aLwRYAgSHN9aBrlHQ(c, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T13_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T13_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	gp = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA16_;
		gp = setGenericParamsMisc__7YxUILpPxooC5qqa89a54dw_6(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA14_;
	LA16_: ;
	{
		gp = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA14_: ;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 3)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA21_;
		semParamList__HJ2sXcKFjirzvqsZjMcpTg(c, (*n)._kind_6.sons->data[((NI) 3)], gp, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T25_;
			NI T26_;
			T25_ = (NIM_BOOL)0;
			T26_ = (NI)0;
			T26_ = len__P89cqdlERShb9alU3iC0yj8wast(gp);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T25_ = (((NI) 0) < T26_);
			if (!(T25_)) goto LA27_;
			T25_ = ((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
			LA27_: ;
			if (!T25_) goto LA28_;
			(*n)._kind_6.sons->data[((NI) 2)] = gp;
		}
		LA28_: ;
	}
	goto LA19_;
	LA21_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T31_;
		T31_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T31_ = newProcType__5gg5mq4XYRQKbAkdLMpzGA(c, (*n).info, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s).typ = T31_;
	}
	LA19_: ;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA34_;
		pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, s, (*n)._kind_6.sons->data[((NI) 4)], TM__rF9caJawfOjYTjsgLVUSGFA_648, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA34_: ;
	(*s).options = (*(*(*c).graph).config).options;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA38_;
		{
			NimStringDesc* T44_;
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0)) goto LA42_;
			T44_ = (NimStringDesc*)0;
			T44_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_197), (*(*s).name).s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 6)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T44_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_649, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA42_: ;
		{
			NIM_BOOL T47_;
			NI T48_;
			NIM_BOOL T50_;
			NI T51_;
			tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T55_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T56_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T57_;
			T47_ = (NIM_BOOL)0;
			T48_ = (NI)0;
			T48_ = len__P89cqdlERShb9alU3iC0yj8wast(gp);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T47_ = (T48_ == ((NI) 0));
			if (T47_) goto LA49_;
			T50_ = (NIM_BOOL)0;
			T51_ = (NI)0;
			T51_ = len__P89cqdlERShb9alU3iC0yj8wast(gp);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T50_ = (T51_ == ((NI) 1));
			if (!(T50_)) goto LA52_;
			T50_ = (((*(*(*gp)._kind_6.sons->data[((NI) 0)]).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 11))&63U)))!=0);
			LA52_: ;
			T47_ = T50_;
			LA49_: ;
			if (!T47_) goto LA53_;
			pushProcCon__jWGpC0lY8vG9b1MhOYJ9cFiQ_3(c, s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			addResult__7eBNKE6IPVEZgtGluTicdQ(c, (*(*s).typ).sons->data[((NI) 0)], (*n).info, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			addResultNode__NRIJDWZtATzMum7OEjYC2g_2(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T55_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
			T55_ = c;
			T56_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T56_ = semProcBody__7YxUILpPxooC5qqa89a54dw_5(c, (*n)._kind_6.sons->data[((NI) 6)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T57_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T57_ = hloBody__7YxUILpPxooC5qqa89a54dw_10(T55_, T56_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*(*s).ast)._kind_6.sons->data[((NI) 6)] = T57_;
			trackProc__P9bJkIGwY9beKGfhhcBedbpg(c, s, (*(*s).ast)._kind_6.sons->data[((NI) 6)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			popProcCon__SjrsaPFXVDopDGJmDQUKewsemdata(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA45_;
		LA53_: ;
		{
			if (!!(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 12))&31U)))!=0))) goto LA59_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_650), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_651, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA45_;
		LA59_: ;
		LA45_: ;
		sideEffectsCheck__PSSiITp8zAUcZ8z1k5AMLA_3(c, s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA36_;
	LA38_: ;
	{
		NimStringDesc* T62_;
		T62_ = (NimStringDesc*)0;
		T62_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_352), (*(*s).name).s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T62_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_652, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA36_: ;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	popOwner__9aY89b9aR25iMJ8fPdM84CvQg_2(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = (*s).typ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T67_;
		if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA65_;
		T67_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T67_ = makeVarType__45x39aIZGLTdqqo59b4NHvLw(c, (*result).typ, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T67_;
	}
	LA65_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCastable__RrUSf4OJ4Rybj6aC0XqcHA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dst, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src) {
	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src_2;
	NI64 dstSize;
	NI64 srcSize;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	src_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(src, IL64(13510798882111488));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(dst, IL64(36134350135273744));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!((*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27))) goto LA4_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
		T8_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T8_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(src_2, IL64(36134350135273488));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!((*T8_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA9_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA9_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(dst, IL64(36134350135273744));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!((*T13_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51))) goto LA14_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA14_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* d;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* s;
		if (!((96 &(1U<<((NU)((*conf).selectedGC)&15U)))!=0)) goto LA18_;
		d = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(dst, IL64(36134350135273744));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		s = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(src_2, IL64(36134350135273744));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T22_;
			NIM_BOOL T23_;
			NIM_BOOL T26_;
			NIM_BOOL T27_;
			T22_ = (NIM_BOOL)0;
			T23_ = (NIM_BOOL)0;
			T23_ = ((*d).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
			if (!(T23_)) goto LA24_;
			T23_ = ((*s).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
			LA24_: ;
			T22_ = T23_;
			if (!(T22_)) goto LA25_;
			T26_ = (NIM_BOOL)0;
			T26_ = isFinal__YPjOkGV9axAnGR3UfLeWZ1g_5((*s).sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T27_ = (NIM_BOOL)0;
			T27_ = isFinal__YPjOkGV9axAnGR3UfLeWZ1g_5((*d).sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T22_ = !((T26_ == T27_));
			LA25_: ;
			if (!T22_) goto LA28_;
			result = NIM_FALSE;
			goto BeforeRet_;
		}
		LA28_: ;
	}
	LA18_: ;
	dstSize = (NI64)0;
	srcSize = (NI64)0;
	dstSize = computeSize__vCG1GF2Iu043oALVyuJfOw_3(conf, dst);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	srcSize = computeSize__vCG1GF2Iu043oALVyuJfOw_3(conf, src_2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T32_;
		T32_ = (NIM_BOOL)0;
		T32_ = (dstSize == IL64(-3));
		if (T32_) goto LA33_;
		T32_ = (srcSize == IL64(-3));
		LA33_: ;
		if (!T32_) goto LA34_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA34_: ;
	{
		if (!(dstSize < IL64(0))) goto LA38_;
		result = NIM_FALSE;
	}
	goto LA36_;
	LA38_: ;
	{
		if (!(srcSize < IL64(0))) goto LA41_;
		result = NIM_FALSE;
	}
	goto LA36_;
	LA41_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T44_;
		T44_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T44_ = typeAllowed__l66YrquEyj20orz2a4YbTw(dst, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!((T44_ == NIM_NIL))) goto LA45_;
		result = NIM_FALSE;
	}
	goto LA36_;
	LA45_: ;
	{
		NIM_BOOL T48_;
		NIM_BOOL T52_;
		T48_ = (NIM_BOOL)0;
		T48_ = ((*dst).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T48_)) goto LA49_;
		T48_ = ((*dst).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
		LA49_: ;
		if (!T48_) goto LA50_;
		T52_ = (NIM_BOOL)0;
		T52_ = ((*src_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T52_)) goto LA53_;
		T52_ = ((*src_2).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
		LA53_: ;
		result = T52_;
	}
	goto LA36_;
	LA50_: ;
	{
		NIM_BOOL T55_;
		NIM_BOOL T56_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T58_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T60_;
		T55_ = (NIM_BOOL)0;
		T56_ = (NIM_BOOL)0;
		T56_ = (srcSize <= dstSize);
		if (T56_) goto LA57_;
		T58_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T58_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(dst, IL64(36134350135273744));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T56_ = ((IL64(35182224621574) &((NU64)1<<((NU)((*T58_).kind)&63U)))!=0);
		LA57_: ;
		T55_ = T56_;
		if (T55_) goto LA59_;
		T60_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T60_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(src_2, IL64(36134350135273488));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T55_ = ((IL64(35182224621574) &((NU64)1<<((NU)((*T60_).kind)&63U)))!=0);
		LA59_: ;
		result = T55_;
	}
	LA36_: ;
	{
		NIM_BOOL T63_;
		T63_ = (NIM_BOOL)0;
		T63_ = result;
		if (!(T63_)) goto LA64_;
		T63_ = ((*src_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5));
		LA64_: ;
		if (!T63_) goto LA65_;
		result = ((*dst).size <= ((NI64) ((*conf).target.ptrSize)));
	}
	LA65_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCast__7YxUILpPxooC5qqa89a54dw_41)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* targetType;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* castedExpr;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	targetType = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	castedExpr = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!(((*targetType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 21))&63U)))!=0)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = typeToString__QlvraUan7WbHowhAbvDvdA(targetType, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = (NimStringDesc*)0;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_653), T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_654, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T9_;
		NimStringDesc* tar;
		NimStringDesc* alt;
		NimStringDesc* msg;
		NimStringDesc* T18_;
		T9_ = (NIM_BOOL)0;
		T9_ = isCastable__RrUSf4OJ4Rybj6aC0XqcHA((*(*c).graph).config, targetType, (*castedExpr).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T9_)) goto LA10_;
		tar = typeToString__QlvraUan7WbHowhAbvDvdA(targetType, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		alt = typeToString__QlvraUan7WbHowhAbvDvdA(targetType, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NimStringDesc* T16_;
			if (!!(eqStrings(tar, alt))) goto LA14_;
			T16_ = (NimStringDesc*)0;
			T16_ = rawNewString((tar ? tar->Sup.len : 0) + (alt ? alt->Sup.len : 0) + 1);
appendString(T16_, tar);
appendString(T16_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_160));
appendString(T16_, alt);
			msg = T16_;
		}
		goto LA12_;
		LA14_: ;
		{
			msg = tar;
		}
		LA12_: ;
		T18_ = (NimStringDesc*)0;
		T18_ = rawNewString((msg ? msg->Sup.len : 0) + 29);
appendString(T18_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_655));
appendString(T18_, msg);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T18_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_656, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA10_: ;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = targetType;
	T19_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T19_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*n)._kind_6.sons->data[((NI) 0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, T19_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, castedExpr);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprBranch__vJZwz9bfROKrfrtM50y74CQ_28)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, n, flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((*result).typ == NIM_NIL))) goto LA3_;
		{
			if (!((IL64(140737496743936) &((NU64)1<<((NU)((*(*result).typ).kind)&63U)))!=0)) goto LA7_;
			result = newDeref__RzKgK8tcIIFHt7HBTQVoYQlowerings(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA7_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, endsInNoReturn__OiccTa3ruRNl9anoSqZh2Sg_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
	NIM_BOOL T6_;
	NIM_BOOL T8_;
	NIM_BOOL T9_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	it = n;
	{
		while (1) {
			NIM_BOOL T3_;
			NI T5_;
			T3_ = (NIM_BOOL)0;
			T3_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126));
			if (!(T3_)) goto LA4_;
			T5_ = (NI)0;
			T5_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T3_ = (((NI) 0) < T5_);
			LA4_: ;
			if (!T3_) goto LA2;
			it = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA2: ;
	}
	T6_ = (NIM_BOOL)0;
	T6_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111));
	if (T6_) goto LA7_;
	T8_ = (NIM_BOOL)0;
	T9_ = (NIM_BOOL)0;
	T9_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
	if (!(T9_)) goto LA10_;
	T9_ = ((*(*it)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	LA10_: ;
	T8_ = T9_;
	if (!(T8_)) goto LA11_;
	T8_ = (((*(*(*it)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 16))&63U)))!=0);
	LA11_: ;
	T6_ = T8_;
	LA7_: ;
	result = T6_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, commonType__wEK756YRi9c3lsyIxi9aFXSg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = endsInNoReturn__OiccTa3ruRNl9anoSqZh2Sg_6(y);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		result = x;
		goto BeforeRet_;
	}
	LA4_: ;
	result = commonType__hfwrZ5ThSx8sbABQFEwdHg(x, (*y).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprBranchScope__7YxUILpPxooC5qqa89a54dw_42)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = semExprBranch__vJZwz9bfROKrfrtM50y74CQ_28(c, n, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIf__vJZwz9bfROKrfrtM50y74CQ_27)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	NIM_BOOL hasElse;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) newObj((&NTI__AgIT5feFR9a9aoVjv9cx2rOtg_), sizeof(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ));
	(*T1_).Sup.Sup.m_type = (&NTI__v9ae2Dpu13OW2ZJ2U9bNMd9cQ_);
	(*T1_).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6);
	typ = T1_;
	hasElse = NIM_FALSE;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NI T7_;
					tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T10_;
					tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T11_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
					T7_ = (NI)0;
					T7_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!(T7_ == ((NI) 2))) goto LA8_;
					T10_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
					T10_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T11_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
					T11_ = c;
					T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T12_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*it)._kind_6.sons->data[((NI) 0)], 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T13_ = forceBool__7YxUILpPxooC5qqa89a54dw_4(T11_, T12_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*it)._kind_6.sons->data[((NI) 0)] = T13_;
					T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T14_ = semExprBranch__vJZwz9bfROKrfrtM50y74CQ_28(c, (*it)._kind_6.sons->data[((NI) 1)], flags);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*it)._kind_6.sons->data[((NI) 1)] = T14_;
					typ = commonType__wEK756YRi9c3lsyIxi9aFXSg(typ, (*it)._kind_6.sons->data[((NI) 1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA5_;
				LA8_: ;
				{
					NI T16_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
					T16_ = (NI)0;
					T16_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!(T16_ == ((NI) 1))) goto LA17_;
					hasElse = NIM_TRUE;
					T19_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T19_ = semExprBranchScope__7YxUILpPxooC5qqa89a54dw_42(c, (*it)._kind_6.sons->data[((NI) 0)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*it)._kind_6.sons->data[((NI) 0)] = T19_;
					typ = commonType__wEK756YRi9c3lsyIxi9aFXSg(typ, (*it)._kind_6.sons->data[((NI) 0)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA5_;
				LA17_: ;
				{
					illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(it, (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA5_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NIM_BOOL T23_;
		NIM_BOOL T24_;
		NIM_BOOL T27_;
		T23_ = (NIM_BOOL)0;
		T24_ = (NIM_BOOL)0;
		T24_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast(typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (T24_) goto LA25_;
		T24_ = ((96 &((NU64)1<<((NU)((*typ).kind)&63U)))!=0);
		LA25_: ;
		T23_ = T24_;
		if (T23_) goto LA26_;
		T27_ = (NIM_BOOL)0;
		T27_ = !(hasElse);
		if (!(T27_)) goto LA28_;
		T27_ = !(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 2))&31U)))!=0));
		LA28_: ;
		T23_ = T27_;
		LA26_: ;
		if (!T23_) goto LA29_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it_2;
			it_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_4 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
						if (!(i_4 < colontmp__2)) goto LA34;
						i_3 = i_4;
						it_2 = (*n)._kind_6.sons->data[i_3];
						T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T35_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						discardCheck__tp7yV6CFb40nVuGT1TBFpw(c, T35_, flags);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_4 += ((NI) 1);
					} LA34: ;
				}
			}
		}
		transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 92));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(typ == (*c).enforceVoidContext)) goto LA38_;
			(*result).typ = (*c).enforceVoidContext;
		}
		LA38_: ;
	}
	goto LA21_;
	LA29_: ;
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it_3;
			it_3 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_5;
				NI colontmp__3;
				NI i_6;
				i_5 = (NI)0;
				colontmp__3 = (NI)0;
				colontmp__3 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_6 = ((NI) 0);
				{
					while (1) {
						NI j;
						NI T45_;
						if (!(i_6 < colontmp__3)) goto LA44;
						i_5 = i_6;
						it_3 = (*n)._kind_6.sons->data[i_5];
						T45_ = (NI)0;
						T45_ = len__P89cqdlERShb9alU3iC0yj8wast(it_3);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						j = (NI)(T45_ - ((NI) 1));
						{
							NIM_BOOL T48_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T51_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T52_;
							T48_ = (NIM_BOOL)0;
							T48_ = endsInNoReturn__OiccTa3ruRNl9anoSqZh2Sg_6((*it_3)._kind_6.sons->data[j]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(T48_)) goto LA49_;
							T51_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T51_ = (*it_3)._kind_6.sons->data[j];
							T52_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T52_ = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, typ, T51_, (*(*it_3)._kind_6.sons->data[j]).info);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*it_3)._kind_6.sons->data[j] = T52_;
						}
						LA49_: ;
						i_6 += ((NI) 1);
					} LA44: ;
				}
			}
		}
		transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 48));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = typ;
	}
	LA21_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTableConstr__7YxUILpPxooC5qqa89a54dw_43)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI lastKey;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	lastKey = ((NI) 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				x = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T6_;
					NI T8_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pair_2;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
					if (!(T6_)) goto LA7_;
					T8_ = (NI)0;
					T8_ = len__P89cqdlERShb9alU3iC0yj8wast(x);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T6_ = (T8_ == ((NI) 2));
					LA7_: ;
					if (!T6_) goto LA9_;
					{
						NI j;
						NI i_3;
						j = (NI)0;
						i_3 = lastKey;
						{
							while (1) {
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pair;
								if (!(i_3 < i)) goto LA13;
								j = i_3;
								pair = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), (*x).info);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								add__P8dDSotTW25BkfbyspojGg(pair, (*n)._kind_6.sons->data[j]);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								add__P8dDSotTW25BkfbyspojGg(pair, (*x)._kind_6.sons->data[((NI) 1)]);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								add__P8dDSotTW25BkfbyspojGg(result, pair);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								i_3 += ((NI) 1);
							} LA13: ;
						}
					}
					pair_2 = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), (*x).info);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__P8dDSotTW25BkfbyspojGg(pair_2, (*x)._kind_6.sons->data[((NI) 0)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__P8dDSotTW25BkfbyspojGg(pair_2, (*x)._kind_6.sons->data[((NI) 1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__P8dDSotTW25BkfbyspojGg(result, pair_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					lastKey = (NI)(i + ((NI) 1));
				}
				LA9_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI T16_;
		T16_ = (NI)0;
		T16_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!((lastKey == T16_))) goto LA17_;
		illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA17_: ;
	result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, result, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBlock__vJZwz9bfROKrfrtM50y74CQ_29)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	(*(*c).p).nestedBlockCounter += ((NI) 1);
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* labl;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T14_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA4_;
		labl = newSymG__z0Xq7x7aKOzONyxr8mX73A(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 22), (*n)._kind_6.sons->data[((NI) 0)], c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((((*labl).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0))) goto LA8_;
			addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, labl);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA6_;
		LA8_: ;
		{
			if (!((*labl).owner == NIM_NIL)) goto LA11_;
			(*labl).owner = (*(*c).p).owner;
		}
		goto LA6_;
		LA11_: ;
		LA6_: ;
		T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T13_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(labl, (*(*n)._kind_6.sons->data[((NI) 0)]).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T13_;
		T14_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
		T14_ = (*(*c).graph).config;
		suggestSym__c4UsAt49bYALbZKCjgqOrCQsigmatch(T14_, (*(*n)._kind_6.sons->data[((NI) 0)]).info, labl, &(*(*c).graph).usageSym, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA17_;
			nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*labl).info, labl, (*labl).kind);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA17_: ;
	}
	LA4_: ;
	T19_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T19_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[((NI) 1)], flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 1)] = T19_;
	(*n).typ = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	{
		NIM_BOOL T22_;
		T22_ = (NIM_BOOL)0;
		T22_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T22_) goto LA23_;
		transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 112));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA20_;
	LA23_: ;
	{
		transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 127));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA20_: ;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*c).p).nestedBlockCounter -= ((NI) 1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, inferConceptStaticParam__C0PRtNs0w318DTgRD2xT9cg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* inferred, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	typ = (*inferred).typ;
	res = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		NIM_BOOL T4_;
		tyArray__24KAM9afIUgUaqBaEBB6r9bg T7_;
		NimStringDesc* T8_;
		NimStringDesc* T9_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		NimStringDesc* T11_;
		NimStringDesc* T12_;
		T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = base__PfgI9ap7WOnsRfFV4znQ27w(typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NIM_BOOL)0;
		T4_ = sameType__3isNyHKb0U1OCnClmflXSg((*res).typ, T3_, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T4_)) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
		T8_ = (NimStringDesc*)0;
		T8_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(inferred, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_[0] = T8_;
		T9_ = (NimStringDesc*)0;
		T9_ = typeToString__QlvraUan7WbHowhAbvDvdA((*res).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_[1] = T9_;
		T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = base__PfgI9ap7WOnsRfFV4znQ27w(typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T11_ = (NimStringDesc*)0;
		T11_ = typeToString__QlvraUan7WbHowhAbvDvdA(T10_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_[2] = T11_;
		T12_ = (NimStringDesc*)0;
		T12_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_658), T7_, 3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T12_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_659, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	(*typ).n = res;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStmtList__vJZwz9bfROKrfrtM50y74CQ_30)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL voidContext;
	NI last;
	NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 115));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	voidContext = NIM_FALSE;
	T1_ = (NI)0;
	T1_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	last = (NI)(T1_ - ((NI) 1));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* expr;
					expr = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[i], flags);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i] = expr;
					{
						NIM_BOOL T8_;
						NIM_BOOL T9_;
						NIM_BOOL T12_;
						T8_ = (NIM_BOOL)0;
						T9_ = (NIM_BOOL)0;
						T9_ = !(((*c).matchedConcept == NIM_NIL));
						if (!(T9_)) goto LA10_;
						T9_ = !(((*expr).typ == NIM_NIL));
						LA10_: ;
						T8_ = T9_;
						if (!(T8_)) goto LA11_;
						T12_ = (NIM_BOOL)0;
						T12_ = !((((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 17))&31U)))!=0));
						if (T12_) goto LA13_;
						T12_ = !((i == last));
						LA13_: ;
						T8_ = T12_;
						LA11_: ;
						if (!T8_) goto LA14_;
						switch ((*(*expr).typ).kind) {
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* verdict;
							{
								NIM_BOOL T19_;
								NIM_BOOL T20_;
								T19_ = (NIM_BOOL)0;
								T20_ = (NIM_BOOL)0;
								T20_ = ((*expr).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29));
								if (!(T20_)) goto LA21_;
								T20_ = ((*(*expr)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
								LA21_: ;
								T19_ = T20_;
								if (!(T19_)) goto LA22_;
								T19_ = eqStrings((*(*(*(*expr)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_657));
								LA22_: ;
								if (!T19_) goto LA23_;
								{
									NIM_BOOL T27_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
									T27_ = (NIM_BOOL)0;
									T27_ = isUnresolvedStatic__aVxWxXLmf103vwE8uZ9cXRw_3((*(*expr)._kind_6.sons->data[((NI) 1)]).typ);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									if (!T27_) goto LA28_;
									T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T30_ = (*expr)._kind_6.sons->data[((NI) 1)];
									inferConceptStaticParam__C0PRtNs0w318DTgRD2xT9cg(c, T30_, (*expr)._kind_6.sons->data[((NI) 2)]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto LA5;
								}
								goto LA25_;
								LA28_: ;
								{
									NIM_BOOL T32_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
									T32_ = (NIM_BOOL)0;
									T32_ = isUnresolvedStatic__aVxWxXLmf103vwE8uZ9cXRw_3((*(*expr)._kind_6.sons->data[((NI) 2)]).typ);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									if (!T32_) goto LA33_;
									T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T35_ = (*expr)._kind_6.sons->data[((NI) 2)];
									inferConceptStaticParam__C0PRtNs0w318DTgRD2xT9cg(c, T35_, (*expr)._kind_6.sons->data[((NI) 1)]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto LA5;
								}
								goto LA25_;
								LA33_: ;
								LA25_: ;
							}
							LA23_: ;
							verdict = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, (*n)._kind_6.sons->data[i]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								NIM_BOOL T38_;
								NIM_BOOL T39_;
								T38_ = (NIM_BOOL)0;
								T39_ = (NIM_BOOL)0;
								T39_ = (verdict == NIM_NIL);
								if (T39_) goto LA40_;
								T39_ = !(((*verdict).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)));
								LA40_: ;
								T38_ = T39_;
								if (T38_) goto LA41_;
								T38_ = ((*verdict)._kind_1.intVal == IL64(0));
								LA41_: ;
								if (!T38_) goto LA42_;
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*result).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_660), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_661, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA42_: ;
						}
						break;
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
						{
							goto LA5;
						}
						break;
						default:
						{
						}
						break;
						}
					}
					LA14_: ;
					{
						if (!((*(*n)._kind_6.sons->data[i]).typ == (*c).enforceVoidContext)) goto LA48_;
						voidContext = NIM_TRUE;
						(*n).typ = (*c).enforceVoidContext;
					}
					LA48_: ;
					{
						NIM_BOOL T52_;
						NIM_BOOL T54_;
						NI T55_;
						T52_ = (NIM_BOOL)0;
						T52_ = (i == last);
						if (!(T52_)) goto LA53_;
						T54_ = (NIM_BOOL)0;
						T55_ = (NI)0;
						T55_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T54_ = (T55_ == ((NI) 1));
						if (T54_) goto LA56_;
						T54_ = !(((2052 & flags) == 0));
						LA56_: ;
						T52_ = T54_;
						LA53_: ;
						if (!T52_) goto LA57_;
						(*n).typ = (*(*n)._kind_6.sons->data[i]).typ;
						{
							NIM_BOOL T61_;
							T61_ = (NIM_BOOL)0;
							T61_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(T61_)) goto LA62_;
							transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 126));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA62_: ;
					}
					goto LA50_;
					LA57_: ;
					{
						NIM_BOOL T65_;
						T65_ = (NIM_BOOL)0;
						T65_ = !((i == last));
						if (T65_) goto LA66_;
						T65_ = voidContext;
						LA66_: ;
						if (!T65_) goto LA67_;
						discardCheck__tp7yV6CFb40nVuGT1TBFpw(c, (*n)._kind_6.sons->data[i], flags);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA50_;
					LA67_: ;
					{
						(*n).typ = (*(*n)._kind_6.sons->data[i]).typ;
						{
							NIM_BOOL T72_;
							T72_ = (NIM_BOOL)0;
							T72_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(T72_)) goto LA73_;
							transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 126));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA73_: ;
					}
					LA50_: ;
					{
						NIM_BOOL T77_;
						NIM_BOOL T79_;
						NIM_BOOL T80_;
						T77_ = (NIM_BOOL)0;
						T77_ = ((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111));
						if (T77_) goto LA78_;
						T79_ = (NIM_BOOL)0;
						T80_ = (NIM_BOOL)0;
						T80_ = ((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
						if (!(T80_)) goto LA81_;
						T80_ = ((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
						LA81_: ;
						T79_ = T80_;
						if (!(T79_)) goto LA82_;
						T79_ = (((*(*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 16))&63U)))!=0);
						LA82_: ;
						T77_ = T79_;
						LA78_: ;
						if (!T77_) goto LA83_;
						{
							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__P89cqdlERShb9alU3iC0yj8wast(n);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							i_3 = colontmp__2;
							{
								while (1) {
									if (!(i_3 < colontmp__3)) goto LA87;
									j = i_3;
									switch ((*(*n)._kind_6.sons->data[j]).kind) {
									case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
									case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
									case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
									case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
									case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 157):
									{
									}
									break;
									default:
									{
										liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 38), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_662, NIM_FALSE);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									break;
									}
									i_3 += ((NI) 1);
								} LA87: ;
							}
						}
					}
					goto LA75_;
					LA83_: ;
					{
					}
					LA75_: ;
				} LA5: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NIM_BOOL T93_;
		NIM_BOOL T94_;
		NIM_BOOL T95_;
		NI T96_;
		T93_ = (NIM_BOOL)0;
		T94_ = (NIM_BOOL)0;
		T95_ = (NIM_BOOL)0;
		T96_ = (NI)0;
		T96_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T95_ = (T96_ == ((NI) 1));
		if (!(T95_)) goto LA97_;
		T95_ = ((*c).matchedConcept == NIM_NIL);
		LA97_: ;
		T94_ = T95_;
		if (!(T94_)) goto LA98_;
		T94_ = !((((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 16))&31U)))!=0));
		LA98_: ;
		T93_ = T94_;
		if (!(T93_)) goto LA99_;
		T93_ = !(((*(*result)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 105)));
		LA99_: ;
		if (!T93_) goto LA100_;
		result = (*result)._kind_6.sons->data[((NI) 0)];
	}
	LA100_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semRaise__7YxUILpPxooC5qqa89a54dw_44)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 1), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T5_;
		typ = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isImportedException__dZW9czpRSiiVl9cyT6tyk84A(typ, (*(*c).graph).config);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T8_)) goto LA9_;
			typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(35184372090896));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)))) goto LA13_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_663), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_664, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA13_: ;
			{
				NIM_BOOL T17_;
				NI T18_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
				NIM_BOOL T21_;
				tyArray__nHXaesL0DJZHyVS07ARPRA T24_;
				NimStringDesc* T25_;
				NimStringDesc* T26_;
				T17_ = (NIM_BOOL)0;
				T18_ = (NI)0;
				T18_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (((NI) 0) < T18_);
				if (!(T17_)) goto LA19_;
				T20_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T20_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T21_ = (NIM_BOOL)0;
				T21_ = isException__YPjOkGV9axAnGR3UfLeWZ1g_13(T20_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = !(T21_);
				LA19_: ;
				if (!T17_) goto LA22_;
				nimZeroMem((void*)T24_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
				T25_ = (NimStringDesc*)0;
				T25_ = typeToString__QlvraUan7WbHowhAbvDvdA(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T24_[0] = T25_;
				T26_ = (NimStringDesc*)0;
				T26_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_665), T24_, 1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T26_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_666, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA22_: ;
		}
		LA9_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semLowerLetVarCustomPragma__YnGuZwNZgNND9bMHSc9cGxzQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	b = (*a)._kind_6.sons->data[((NI) 0)];
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nodePragma;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* userPragma;
		tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw w;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lhs;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* clash;
		tyArray__cypz0nHJsd9cnKgpO7fP5hQ T42_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ret;
		if (!((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA3_;
		{
			NI T7_;
			T7_ = (NI)0;
			T7_ = len__P89cqdlERShb9alU3iC0yj8wast((*b)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!((T7_ == ((NI) 1)))) goto LA8_;
			result = NIM_NIL;
			goto BeforeRet_;
		}
		LA8_: ;
		nodePragma = (*(*b)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)];
		{
			if (!!(((*nodePragma).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2) || (*nodePragma).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53)))) goto LA12_;
			result = NIM_NIL;
			goto BeforeRet_;
		}
		LA12_: ;
		ident = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, nodePragma, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		userPragma = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ((*c).userPragmas, ident);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((userPragma == NIM_NIL))) goto LA16_;
			result = NIM_NIL;
			goto BeforeRet_;
		}
		LA16_: ;
		w = whichPragma__Pjztiiq9bHmTTxDuLd39cNRw(nodePragma);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T20_;
			NIM_BOOL T21_;
			NIM_BOOL T22_;
			NIM_BOOL T25_;
			NIM_BOOL T28_;
			T20_ = (NIM_BOOL)0;
			T21_ = (NIM_BOOL)0;
			T22_ = (NIM_BOOL)0;
			T22_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99));
			if (!(T22_)) goto LA23_;
			T22_ = ((TM__rF9caJawfOjYTjsgLVUSGFA_108[(NU)(w)>>3] &(1U<<((NU)(w)&7U)))!=0);
			LA23_: ;
			T21_ = T22_;
			if (T21_) goto LA24_;
			T25_ = (NIM_BOOL)0;
			T25_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100));
			if (!(T25_)) goto LA26_;
			T25_ = ((TM__rF9caJawfOjYTjsgLVUSGFA_108[(NU)(w)>>3] &(1U<<((NU)(w)&7U)))!=0);
			LA26_: ;
			T21_ = T25_;
			LA24_: ;
			T20_ = T21_;
			if (T20_) goto LA27_;
			T28_ = (NIM_BOOL)0;
			T28_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101));
			if (!(T28_)) goto LA29_;
			T28_ = ((TM__rF9caJawfOjYTjsgLVUSGFA_109[(NU)(w)>>3] &(1U<<((NU)(w)&7U)))!=0);
			LA29_: ;
			T20_ = T28_;
			LA27_: ;
			if (!T20_) goto LA30_;
			result = NIM_NIL;
			goto BeforeRet_;
		}
		LA30_: ;
		sym = searchInScopes__Drn1sJCJSwUUo03qKJigUw(c, ident);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T34_;
			T34_ = (NIM_BOOL)0;
			T34_ = (sym == NIM_NIL);
			if (T34_) goto LA35_;
			T34_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0);
			LA35_: ;
			if (!T34_) goto LA36_;
			result = NIM_NIL;
			goto BeforeRet_;
		}
		LA36_: ;
		lhs = (*b)._kind_6.sons->data[((NI) 0)];
		clash = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ((*(*c).currentScope).symbols, (*lhs)._kind_5.ident);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((clash == NIM_NIL))) goto LA40_;
			wrongRedefinition__m38oZS3DB39a2RtTLWidA5w(c, (*lhs).info, (*(*lhs)._kind_5.ident).s, (*clash).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA40_: ;
		nimZeroMem((void*)T42_, sizeof(tyArray__cypz0nHJsd9cnKgpO7fP5hQ));
		result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T42_, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NimStringDesc* T47_;
			if (!!(((*nodePragma).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2) || (*nodePragma).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53)))) goto LA45_;
			T47_ = (NimStringDesc*)0;
			T47_ = rawNewString((reprEnum((NI)(*nodePragma).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*nodePragma).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 66);
appendString(T47_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_667));
appendString(T47_, reprEnum((NI)(*nodePragma).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)));
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(T47_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA45_: ;
		add__P8dDSotTW25BkfbyspojGg(result, nodePragma);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, lhs);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*(*a)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA50_;
			add__P8dDSotTW25BkfbyspojGg(result, (*a)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA48_;
		LA50_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T53_;
			T53_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T53_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), (*a).info, (*(*c).graph).sysTypes[(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5))- 0]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(result, T53_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA48_: ;
		add__P8dDSotTW25BkfbyspojGg(result, (*a)._kind_6.sons->data[((NI) 2)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).info = (*a).info;
		ret = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*a).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(ret, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semExprNoType__7YxUILpPxooC5qqa89a54dw_2(c, ret);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasEmpty__7NKj1MHAV0sRlpGa31vf8w)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		if (!((17367040 &((NU64)1<<((NU)((*typ).kind)&63U)))!=0)) goto LA3_;
		T5_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = ((*T5_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3));
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA7_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ** s;
			NI i;
			NI L;
			NI T10_;
			s = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ**)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__7NKj1MHAV0sRlpGa31vf8w((*s));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					LA14_: ;
					result = T13_;
					i += ((NI) 1);
				} LA12: ;
			}
		}
	}
	goto LA1_;
	LA7_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addToVarSection__rATgbLzWCudr6icucCz5hA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* identDefs) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
	NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (NI)0;
	T1_ = len__P89cqdlERShb9alU3iC0yj8wast(identDefs);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	value = (*identDefs)._kind_6.sons->data[(NI)(T1_ - ((NI) 1))];
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* o;
		if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA4_;
		o = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(orig);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(o, identDefs);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA2_;
	LA4_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, identDefs);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA2_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, fillPartialObject__kJjN1gd8ISazJd7RmyND3A)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* y;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* obj;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 2))) goto LA4_;
		x = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		y = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*n)._kind_6.sons->data[((NI) 1)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		obj = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*x).typ, IL64(36275087638309136));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T8_;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T12_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
			NI T14_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
			if (!(T8_)) goto LA9_;
			T8_ = (((*obj).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 16))&63U)))!=0);
			LA9_: ;
			if (!T8_) goto LA10_;
			T12_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T12_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, (*y).s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			field = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19), T12_, (*obj).sym, (*(*n)._kind_6.sons->data[((NI) 1)]).info, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T13_ = skipIntLit__PyQcLUUKkDYcpwke36Qpxgmagicsys(typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*field).typ = T13_;
			T14_ = (NI)0;
			T14_ = len__P89cqdlERShb9alU3iC0yj8wast((*obj).n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*field).position = T14_;
			T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T15_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(field);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg((*obj).n, T15_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T16_ = makeDeref__wWBimsBS4M6UZBvTRDlQTQ(x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 0)] = T16_;
			T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T17_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(field);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 1)] = T17_;
			(*n).typ = (*field).typ;
		}
		goto LA6_;
		LA10_: ;
		{
			NimStringDesc* T19_;
			NimStringDesc* T20_;
			T19_ = (NimStringDesc*)0;
			T20_ = (NimStringDesc*)0;
			T20_ = typeToString__QlvraUan7WbHowhAbvDvdA(obj, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T19_ = rawNewString((T20_ ? T20_->Sup.len : 0) + 71);
appendString(T19_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_676));
appendString(T19_, T20_);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T19_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_677, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_678), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_679, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDiscardUnderscore__Brh9b6lg9c65wJVd9bszm1D1g)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!eqStrings((*(*v).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_680))) goto LA3_;
		(*v).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36)) & 63);
		result = NIM_TRUE;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, findShadowedVar__X80n25ArIa9aG019bZhPbmzw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope;
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* current;
		scope = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
		current = (*(*c).currentScope).parent;
		{
			while (1) {
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* shadowed;
				if (!!((current == NIM_NIL))) goto LA3;
				scope = current;
				{
					if (!(scope == (*c).topLevelScope)) goto LA6_;
					goto LA1;
				}
				LA6_: ;
				shadowed = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ((*scope).symbols, (*v).name);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T10_;
					T10_ = (NIM_BOOL)0;
					T10_ = !((shadowed == NIM_NIL));
					if (!(T10_)) goto LA11_;
					T10_ = ((2099976 &(1U<<((NU)((*shadowed).kind)&31U)))!=0);
					LA11_: ;
					if (!T10_) goto LA12_;
					result = shadowed;
					goto BeforeRet_;
				}
				LA12_: ;
				current = (*current).parent;
			} LA3: ;
		}
	} LA1: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setVarType__2vD75zhrXW5EMFzUU9a9cEUQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T8_;
		NimStringDesc* T9_;
		NimStringDesc* T10_;
		NimStringDesc* T11_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*v).typ == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = sameTypeOrNil__3isNyHKb0U1OCnClmflXSg_2((*v).typ, typ, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (*v).info;
		T9_ = (NimStringDesc*)0;
		T10_ = (NimStringDesc*)0;
		T10_ = typeToString__QlvraUan7WbHowhAbvDvdA((*v).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T11_ = (NimStringDesc*)0;
		T11_ = typeToString__QlvraUan7WbHowhAbvDvdA(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T9_ = rawNewString(((*(*v).name).s ? (*(*v).name).s->Sup.len : 0) + (T10_ ? T10_->Sup.len : 0) + (T11_ ? T11_->Sup.len : 0) + 82);
appendString(T9_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_684));
appendString(T9_, (*(*v).name).s);
appendString(T9_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_685));
appendString(T9_, T10_);
appendString(T9_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_686));
appendString(T9_, T11_);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T8_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T9_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_687, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA6_: ;
	(*v).typ = typ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, defaultConstructionError__SDnpDS6VfoCU9aBUYR8UoFg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objType;
	tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw constrCtx;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ initResult;
	tyArray__Re75IspeoxXy2oCZHwcRrA T4_;
	NimStringDesc* T5_;
	NimStringDesc* T6_;
	NimStringDesc* T7_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	objType = t;
	{
		while (1) {
			if (!!(((*objType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA2;
			objType = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(objType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA2: ;
	}
	nimZeroMem((void*)(&constrCtx), sizeof(tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw));
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38), info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	initConstrContext__RYPHxM9aTf8uWaAnZ0rNc2A(objType, T3_, (&constrCtx));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	initResult = semConstructTypeAux__sAwB0gQrQ1keYlqxdq08bQ(c, (&constrCtx), 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T4_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
	T5_ = (NimStringDesc*)0;
	T5_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T4_[0] = T5_;
	T6_ = (NimStringDesc*)0;
	T6_ = listSymbolNames__8Z1zCwaGnI7ov1q9bc6s4uQ(constrCtx.missingFields->data, (constrCtx.missingFields ? constrCtx.missingFields->Sup.len : 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T4_[1] = T6_;
	T7_ = (NimStringDesc*)0;
	T7_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_688), T4_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T7_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_689, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, checkNilable__L1S5GkGOJih9bnTgycxmzAQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((72 & (*v).flags) == 8);
		if (!(T3_)) goto LA4_;
		T3_ = !((((*(*v).typ).flags & 393216) == 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
			T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T9_ = astdef__PBkjYIaAGbtrZ8DiUArHcw(v);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T9_ == 0)) goto LA10_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 34), (*(*v).name).s, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_690, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA7_;
		LA10_: ;
		{
			NIM_BOOL T13_;
			NIM_BOOL T14_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
			T13_ = (NIM_BOOL)0;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*(*v).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0);
			if (!(T14_)) goto LA15_;
			T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T16_ = astdef__PBkjYIaAGbtrZ8DiUArHcw(v);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T14_ = !(((*T16_).typ == 0));
			LA15_: ;
			T13_ = T14_;
			if (!(T13_)) goto LA17_;
			T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T18_ = astdef__PBkjYIaAGbtrZ8DiUArHcw(v);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T13_ = !((((*(*T18_).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0));
			LA17_: ;
			if (!T13_) goto LA19_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 34), (*(*v).name).s, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_691, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA7_;
		LA19_: ;
		LA7_: ;
	}
	LA5_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semVarOrLet__9aaeuZC3SovMoEd6yN1pUdg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symkind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == ((NI) 1))) goto LA4_;
		result = semLowerLetVarCustomPragma__YnGuZwNZgNND9bMHSc9cGxzQ(c, (*n)._kind_6.sons->data[((NI) 0)], n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((result == NIM_NIL))) goto LA8_;
			goto BeforeRet_;
		}
		LA8_: ;
	}
	LA4_: ;
	b = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA12;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
					tySet_tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw typFlags;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tup;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*(*(*c).graph).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 14))) goto LA16_;
						suggestStmt__wb6KhAx6bZ5NV37kY4bXJw_4(c, a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA16_: ;
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA20_;
						goto LA13;
					}
					LA20_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36)))) goto LA24_;
						illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a, (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA24_: ;
					checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a, ((NI) 3), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					typ = NIM_NIL;
					{
						NI T28_;
						NI T31_;
						T28_ = (NI)0;
						T28_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T28_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA29_;
						T31_ = (NI)0;
						T31_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						typ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*a)._kind_6.sons->data[(NI)(T31_ - ((NI) 2))], NIM_NIL);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA29_: ;
					nimZeroMem((void*)(&typFlags), sizeof(tySet_tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw));
					def = (*(*c).graph).emptyNode;
					{
						NI T34_;
						NI T37_;
						T34_ = (NI)0;
						T34_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T34_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA35_;
						T37_ = (NI)0;
						T37_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						def = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*a)._kind_6.sons->data[(NI)(T37_ - ((NI) 1))], 1024);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							NIM_BOOL T40_;
							T40_ = (NIM_BOOL)0;
							T40_ = ((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
							if (!(T40_)) goto LA41_;
							T40_ = ((393216 &(1U<<((NU)((*(*def)._kind_4.sym).kind)&31U)))!=0);
							LA41_: ;
							if (!T40_) goto LA42_;
							typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw) 5)) & 7);
						}
						goto LA38_;
						LA42_: ;
						{
							NIM_BOOL T45_;
							T45_ = (NIM_BOOL)0;
							T45_ = ((*(*def).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
							if (!(T45_)) goto LA46_;
							T45_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17)));
							LA46_: ;
							if (!T45_) goto LA47_;
							typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw) 6)) & 7);
						}
						goto LA38_;
						LA47_: ;
						LA38_: ;
						{
							if (!!((typ == NIM_NIL))) goto LA51_;
							{
								NIM_BOOL T55_;
								T55_ = (NIM_BOOL)0;
								T55_ = isMetaType__aVxWxXLmf103vwE8uZ9cXRw(typ);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!T55_) goto LA56_;
								def = inferWithMetatype__2aIGqt1c0rX64kF16cP4Pw(c, typ, def, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								typ = (*def).typ;
							}
							goto LA53_;
							LA56_: ;
							{
								def = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, typ, def, (*def).info);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA53_: ;
						}
						goto LA49_;
						LA51_: ;
						{
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T60_;
							T60_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T60_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*def).typ, IL64(1152921504606846976));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							typ = skipIntLit__PyQcLUUKkDYcpwke36Qpxgmagicsys(T60_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								NIM_BOOL T63_;
								T63_ = (NIM_BOOL)0;
								T63_ = ((IL64(13510798882111488) &((NU64)1<<((NU)((*typ).kind)&63U)))!=0);
								if (!(T63_)) goto LA64_;
								T63_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
								LA64_: ;
								if (!T63_) goto LA65_;
								typ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA65_: ;
							{
								NIM_BOOL T69_;
								NimStringDesc* T72_;
								NimStringDesc* T73_;
								T69_ = (NIM_BOOL)0;
								T69_ = hasEmpty__7NKj1MHAV0sRlpGa31vf8w(typ);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!T69_) goto LA70_;
								T72_ = (NimStringDesc*)0;
								T72_ = toHumanStr__8clA3iQh1Lbc5cnapppbXQ((*typ).kind);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T73_ = (NimStringDesc*)0;
								T73_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_668), T72_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*def).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T73_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_669, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							goto LA67_;
							LA70_: ;
							{
								NIM_BOOL T75_;
								tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T79_;
								NimStringDesc* T80_;
								NimStringDesc* T81_;
								T75_ = (NIM_BOOL)0;
								T75_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
								if (!(T75_)) goto LA76_;
								T75_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0);
								LA76_: ;
								if (!T75_) goto LA77_;
								T79_ = (*def).info;
								T80_ = (NimStringDesc*)0;
								T80_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(def, 0);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T81_ = (NimStringDesc*)0;
								T81_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_670), T80_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T79_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T81_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_671, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							goto LA67_;
							LA77_: ;
							LA67_: ;
						}
						LA49_: ;
					}
					LA35_: ;
					{
						if (!(typ == NIM_NIL)) goto LA84_;
						goto LA13;
					}
					LA84_: ;
					{
						if (!!(((*c).matchedConcept == NIM_NIL))) goto LA88_;
						typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw) 2)) & 7);
					}
					LA88_: ;
					typeAllowedCheck__OJXIxi4fH0HgKVBUkO49a7w((*(*c).graph).config, (*a).info, typ, symkind, typFlags);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					instAllTypeBoundOp__Qpi3NgGJ9aSfcPm9cZqhFJUg(c, (*a).info);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					tup = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(70368744179728));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NI T103_;
						NI T104_;
						NI T105_;
						NI T106_;
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA92_;
						{
							if (!!(((*tup).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18)))) goto LA96_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 4), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_672), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_673, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA94_;
						LA96_: ;
						{
							NI T99_;
							NI T100_;
							T99_ = (NI)0;
							T99_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T100_ = (NI)0;
							T100_ = len__5mJADrRYkP3r9auuiuDZN9cQast(tup);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(((NI)(T99_ - ((NI) 2)) == T100_))) goto LA101_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_546), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_674, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA94_;
						LA101_: ;
						LA94_: ;
						b = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36), (*a).info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T103_ = (NI)0;
						T103_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						newSons__Bu9cqnssJjx4jfWBeiR9albg(b, T103_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T104_ = (NI)0;
						T104_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T105_ = (NI)0;
						T105_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*b)._kind_6.sons->data[(NI)(T104_ - ((NI) 2))] = (*a)._kind_6.sons->data[(NI)(T105_ - ((NI) 2))];
						T106_ = (NI)0;
						T106_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*b)._kind_6.sons->data[(NI)(T106_ - ((NI) 1))] = def;
						addToVarSection__rATgbLzWCudr6icucCz5hA(c, result, n, b);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA90_;
					LA92_: ;
					{
						NIM_BOOL T108_;
						NIM_BOOL T109_;
						NIM_BOOL T110_;
						NI T114_;
						T108_ = (NIM_BOOL)0;
						T109_ = (NIM_BOOL)0;
						T110_ = (NIM_BOOL)0;
						T110_ = ((*tup).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
						if (!(T110_)) goto LA111_;
						T110_ = ((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160));
						LA111_: ;
						T109_ = T110_;
						if (!(T109_)) goto LA112_;
						T109_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35));
						LA112_: ;
						T108_ = T109_;
						if (!(T108_)) goto LA113_;
						T114_ = (NI)0;
						T114_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T108_ = (((NI) 3) < T114_);
						LA113_: ;
						if (!T108_) goto LA115_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 31), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_675, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA90_;
					LA115_: ;
					LA90_: ;
					{
						NI j;
						NI colontmp__2;
						NI T118_;
						NI i_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T118_ = (NI)0;
						T118_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						colontmp__2 = (NI)(T118_ - ((NI) 2));
						i_3 = ((NI) 0);
						{
							while (1) {
								if (!(i_3 < colontmp__2)) goto LA120;
								j = i_3;
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v;
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T126_;
										tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T127_;
										if (!((*(*a)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA124_;
										T126_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
										T126_ = (*a)._kind_6.sons->data[j];
										T127_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
										{
											if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36)))) goto LA130_;
											T127_ = typ;
										}
										goto LA128_;
										LA130_: ;
										{
											T127_ = (*tup).sons->data[j];
										}
										LA128_: ;
										fillPartialObject__kJjN1gd8ISazJd7RmyND3A(c, T126_, T127_);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										addToVarSection__rATgbLzWCudr6icucCz5hA(c, result, n, a);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										goto LA121;
									}
									LA124_: ;
									v = semIdentDef__L2b79bZBCkiyCHeJkLWxPlQ(c, (*a)._kind_6.sons->data[j], symkind);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									{
										if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA135_;
										nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*v).info, v, (*v).kind);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									LA135_: ;
									{
										if (!!((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0))) goto LA139_;
										{
											NIM_BOOL T143_;
											T143_ = (NIM_BOOL)0;
											T143_ = isDiscardUnderscore__Brh9b6lg9c65wJVd9bszm1D1g(v);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											if (!!(T143_)) goto LA144_;
											addInterfaceDecl__aPXKqZJT9c7r7gT8X3uZAHw_3(c, v);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										LA144_: ;
									}
									goto LA137_;
									LA139_: ;
									{
										{
											if (!((*v).owner == NIM_NIL)) goto LA149_;
											(*v).owner = (*(*c).p).owner;
										}
										LA149_: ;
									}
									LA137_: ;
									{
										if (!(((NI) 0) < (*c).inUnrolledContext)) goto LA153_;
										(*v).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 25)) & 63);
									}
									goto LA151_;
									LA153_: ;
									{
										tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* shadowed;
										shadowed = findShadowedVar__X80n25ArIa9aG019bZhPbmzw(c, v);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										{
											if (!!((shadowed == NIM_NIL))) goto LA158_;
											(*shadowed).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 25)) & 63);
											{
												NIM_BOOL T162_;
												T162_ = (NIM_BOOL)0;
												T162_ = ((*shadowed).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11));
												if (!(T162_)) goto LA163_;
												T162_ = !((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0));
												LA163_: ;
												if (!T162_) goto LA164_;
												liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 46), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_681, NIM_FALSE);
												if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											}
											LA164_: ;
										}
										LA158_: ;
									}
									LA151_: ;
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T183_;
										NI T184_;
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T185_;
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
										NI T194_;
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T195_;
										if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36)))) goto LA168_;
										{
											if (!!(((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA172_;
											{
												if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0)) goto LA176_;
												liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*def).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_682), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_683, NIM_FALSE);
												if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											}
											LA176_: ;
										}
										LA172_: ;
										setVarType__2vD75zhrXW5EMFzUU9a9cEUQ(c, v, typ);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										b = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (*a).info);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										{
											NIM_BOOL T180_;
											T180_ = (NIM_BOOL)0;
											T180_ = importantComments__TzsgO9bY9cwAf4hwmbs7dTmgoptions((*(*c).graph).config);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											if (!T180_) goto LA181_;
											(*b).comment = copyString((*a).comment);
										}
										LA181_: ;
										T183_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
										T183_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(v);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										add__P8dDSotTW25BkfbyspojGg(b, T183_);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										T184_ = (NI)0;
										T184_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										add__P8dDSotTW25BkfbyspojGg(b, (*a)._kind_6.sons->data[(NI)(T184_ - ((NI) 2))]);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										T185_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
										T185_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(def);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										add__P8dDSotTW25BkfbyspojGg(b, T185_);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										addToVarSection__rATgbLzWCudr6icucCz5hA(c, result, n, b);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										ast = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (*a).info);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										{
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T190_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T191_;
											if (!((*(*a)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA188_;
											p = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43), (*a).info);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											T190_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T190_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(v);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											add__P8dDSotTW25BkfbyspojGg(p, T190_);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											T191_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T191_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*(*a)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)]);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											add__P8dDSotTW25BkfbyspojGg(p, T191_);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											add__P8dDSotTW25BkfbyspojGg(ast, p);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										goto LA186_;
										LA188_: ;
										{
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T193_;
											T193_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T193_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(v);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											add__P8dDSotTW25BkfbyspojGg(ast, T193_);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										LA186_: ;
										T194_ = (NI)0;
										T194_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										T195_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
										T195_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*a)._kind_6.sons->data[(NI)(T194_ - ((NI) 2))]);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										add__P8dDSotTW25BkfbyspojGg(ast, T195_);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										add__P8dDSotTW25BkfbyspojGg(ast, def);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										(*v).ast = ast;
									}
									goto LA166_;
									LA168_: ;
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T206_;
										{
											if (!((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160))) goto LA199_;
											(*v).ast = (*def)._kind_6.sons->data[j];
										}
										LA199_: ;
										{
											if (!((*tup).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA203_;
											setVarType__2vD75zhrXW5EMFzUU9a9cEUQ(c, v, (*tup).sons->data[j]);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										goto LA201_;
										LA203_: ;
										{
											(*v).typ = tup;
										}
										LA201_: ;
										T206_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
										T206_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(v);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										(*b)._kind_6.sons->data[j] = T206_;
									}
									LA166_: ;
									{
										tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* actualType;
										if (!((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA209_;
										actualType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*v).typ, IL64(9007199254743056));
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										{
											NIM_BOOL T213_;
											T213_ = (NIM_BOOL)0;
											T213_ = ((*actualType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
											if (!(T213_)) goto LA214_;
											T213_ = !((((*actualType).flags & 393216) == 0));
											LA214_: ;
											if (!T213_) goto LA215_;
											defaultConstructionError__SDnpDS6VfoCU9aBUYR8UoFg(c, (*v).typ, (*v).info);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										goto LA211_;
										LA215_: ;
										{
											checkNilable__L1S5GkGOJih9bnTgycxmzAQ(c, v);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										LA211_: ;
										{
											NIM_BOOL T220_;
											T220_ = (NIM_BOOL)0;
											T220_ = ((*v).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
											if (!(T220_)) goto LA221_;
											T220_ = !((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0));
											LA221_: ;
											if (!T220_) goto LA222_;
											liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_692), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_693, NIM_FALSE);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										LA222_: ;
									}
									LA209_: ;
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
										if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0)) goto LA226_;
										x = newNodeI__vokyXY9cZDshCSxFKChhG9bg((*result).kind, (*v).info);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										add__P8dDSotTW25BkfbyspojGg(x, (*result)._kind_6.sons->data[i]);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										setupCompileTimeVar__zQ7dn9aEDgIq1IbBIE9cxsxg((*c).module, (*c).graph, x);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									LA226_: ;
									{
										if (!(((*v).flags & 67108872) == 8)) goto LA230_;
										liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 77), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_694, NIM_FALSE);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									LA230_: ;
								} LA121: ;
								i_3 += ((NI) 1);
							} LA120: ;
						}
					}
				} LA13: ;
				i_2 += ((NI) 1);
			} LA12: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitRemoveHiddenConv__wMJQkaeAPG0iIuqYsMdZgQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, typ, n, (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r1;
		if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59))) goto LA3_;
		r1 = (*result)._kind_6.sons->data[((NI) 1)];
		{
			NIM_BOOL T7_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
			T7_ = (NIM_BOOL)0;
			T7_ = ((*r1).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*r1).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
			if (!(T7_)) goto LA8_;
			T9_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T9_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36134350136322320));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T7_ = ((IL64(1030792151040) &((NU64)1<<((NU)((*T9_).kind)&63U)))!=0);
			LA8_: ;
			if (!T7_) goto LA10_;
			result = newFloatNode__FUOXigLcQdNOaWKUo0hkTg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16), ((NF) ((*r1)._kind_1.intVal)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).info = (*n).info;
			(*result).typ = typ;
			{
				NIM_BOOL T14_;
				tyArray__Re75IspeoxXy2oCZHwcRrA T17_;
				NimStringDesc* T18_;
				NimStringDesc* T19_;
				T14_ = (NIM_BOOL)0;
				T14_ = floatRangeCheck__RTbq1U5r9aGXeN20T54YASg((*result)._kind_2.floatVal, typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!(T14_)) goto LA15_;
				nimZeroMem((void*)T17_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
				T17_[0] = nimFloatToStr((*result)._kind_2.floatVal);
				T18_ = (NimStringDesc*)0;
				T18_ = typeToString__QlvraUan7WbHowhAbvDvdA(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_[1] = T18_;
				T19_ = (NimStringDesc*)0;
				T19_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_91), T17_, 2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T19_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_695, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA15_: ;
		}
		goto LA5_;
		LA10_: ;
		{
			changeType__sF9cXBCC3k8saS0PTBUB9b8A(c, r1, typ, NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = r1;
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T22_;
		T22_ = (NIM_BOOL)0;
		T22_ = sameType__3isNyHKb0U1OCnClmflXSg((*result).typ, typ, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T22_)) goto LA23_;
		changeType__sF9cXBCC3k8saS0PTBUB9b8A(c, result, typ, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA23_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConst__7YxUILpPxooC5qqa89a54dw_45)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*c).inStaticContext += ((NI) 1);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
					tySet_tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw typFlags;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
					NI T23_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*(*(*c).graph).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 14))) goto LA7_;
						suggestStmt__wb6KhAx6bZ5NV37kY4bXJw_4(c, a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA7_: ;
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA11_;
						goto LA4;
					}
					LA11_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36)))) goto LA15_;
						illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a, (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA15_: ;
					checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a, ((NI) 3), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					typ = NIM_NIL;
					{
						NI T19_;
						NI T22_;
						T19_ = (NI)0;
						T19_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T19_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA20_;
						T22_ = (NI)0;
						T22_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						typ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*a)._kind_6.sons->data[(NI)(T22_ - ((NI) 2))], NIM_NIL);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA20_: ;
					nimZeroMem((void*)(&typFlags), sizeof(tySet_tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw));
					T23_ = (NI)0;
					T23_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					def = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*a)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))], 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NIM_BOOL T26_;
						T26_ = (NIM_BOOL)0;
						T26_ = ((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
						if (!(T26_)) goto LA27_;
						T26_ = ((393216 &(1U<<((NU)((*(*def)._kind_4.sym).kind)&31U)))!=0);
						LA27_: ;
						if (!T26_) goto LA28_;
						typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw) 5)) & 7);
					}
					goto LA24_;
					LA28_: ;
					{
						NIM_BOOL T31_;
						T31_ = (NIM_BOOL)0;
						T31_ = ((*(*def).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
						if (!(T31_)) goto LA32_;
						T31_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17)));
						LA32_: ;
						if (!T31_) goto LA33_;
						typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw) 6)) & 7);
					}
					goto LA24_;
					LA33_: ;
					LA24_: ;
					{
						if (!!((typ == NIM_NIL))) goto LA37_;
						{
							NIM_BOOL T41_;
							T41_ = (NIM_BOOL)0;
							T41_ = isMetaType__aVxWxXLmf103vwE8uZ9cXRw(typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!T41_) goto LA42_;
							def = inferWithMetatype__2aIGqt1c0rX64kF16cP4Pw(c, typ, def, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							typ = (*def).typ;
						}
						goto LA39_;
						LA42_: ;
						{
							def = fitRemoveHiddenConv__wMJQkaeAPG0iIuqYsMdZgQ(c, typ, def);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA39_: ;
					}
					goto LA35_;
					LA37_: ;
					{
						typ = (*def).typ;
					}
					LA35_: ;
					def = semConstExpr__7YxUILpPxooC5qqa89a54dw(c, def);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NI T50_;
						if (!(def == NIM_NIL)) goto LA48_;
						T50_ = (NI)0;
						T50_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*a)._kind_6.sons->data[(NI)(T50_ - ((NI) 1))]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_318), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_696, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto LA4;
					}
					LA48_: ;
					{
						if (!!(((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23)))) goto LA53_;
						{
							if (!!(((*c).matchedConcept == NIM_NIL))) goto LA57_;
							typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__wySCBkY0DFkxIXMhoVC4cw) 2)) & 7);
						}
						LA57_: ;
						typeAllowedCheck__OJXIxi4fH0HgKVBUkO49a7w((*(*c).graph).config, (*a).info, typ, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10), typFlags);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA53_: ;
					b = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					{
						NI T72_;
						NI T73_;
						NI T74_;
						NI T75_;
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA61_;
						{
							if (!!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18)))) goto LA65_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 4), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_672), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_697, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA63_;
						LA65_: ;
						{
							NI T68_;
							NI T69_;
							T68_ = (NI)0;
							T68_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T69_ = (NI)0;
							T69_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(((NI)(T68_ - ((NI) 2)) == T69_))) goto LA70_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_546), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_698, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA63_;
						LA70_: ;
						LA63_: ;
						b = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36), (*a).info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T72_ = (NI)0;
						T72_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						newSons__Bu9cqnssJjx4jfWBeiR9albg(b, T72_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T73_ = (NI)0;
						T73_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T74_ = (NI)0;
						T74_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*b)._kind_6.sons->data[(NI)(T73_ - ((NI) 2))] = (*a)._kind_6.sons->data[(NI)(T74_ - ((NI) 2))];
						T75_ = (NI)0;
						T75_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*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__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						colontmp__2 = (NI)(T77_ - ((NI) 2));
						i_3 = ((NI) 0);
						{
							while (1) {
								tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v;
								if (!(i_3 < colontmp__2)) goto LA79;
								j = i_3;
								v = semIdentDef__L2b79bZBCkiyCHeJkLWxPlQ(c, (*a)._kind_6.sons->data[j], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								{
									if (!!((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0))) goto LA82_;
									addInterfaceDecl__aPXKqZJT9c7r7gT8X3uZAHw_3(c, v);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								goto LA80_;
								LA82_: ;
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T87_;
									if (!((*v).owner == NIM_NIL)) goto LA85_;
									T87_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
									T87_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*v).owner = T87_;
								}
								goto LA80_;
								LA85_: ;
								LA80_: ;
								{
									if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA90_;
									nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*v).info, v, (*v).kind);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								LA90_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T101_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T102_;
									if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36)))) goto LA94_;
									setVarType__2vD75zhrXW5EMFzUU9a9cEUQ(c, v, typ);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*v).ast = def;
									b = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102), (*a).info);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									{
										NIM_BOOL T98_;
										T98_ = (NIM_BOOL)0;
										T98_ = importantComments__TzsgO9bY9cwAf4hwmbs7dTmgoptions((*(*c).graph).config);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										if (!T98_) goto LA99_;
										(*b).comment = copyString((*a).comment);
									}
									LA99_: ;
									T101_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T101_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(v);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									add__P8dDSotTW25BkfbyspojGg(b, T101_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									add__P8dDSotTW25BkfbyspojGg(b, (*a)._kind_6.sons->data[((NI) 1)]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									T102_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T102_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(def);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									add__P8dDSotTW25BkfbyspojGg(b, T102_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								goto LA92_;
								LA94_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T109_;
									setVarType__2vD75zhrXW5EMFzUU9a9cEUQ(c, v, (*typ).sons->data[j]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									{
										if (!!(((*(*def)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34)))) goto LA106_;
										(*v).ast = (*def)._kind_6.sons->data[j];
									}
									goto LA104_;
									LA106_: ;
									{
										(*v).ast = (*(*def)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)];
									}
									LA104_: ;
									T109_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T109_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(v);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*b)._kind_6.sons->data[j] = T109_;
								}
								LA92_: ;
								i_3 += ((NI) 1);
							} LA79: ;
						}
					}
					add__P8dDSotTW25BkfbyspojGg(result, b);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	(*c).inStaticContext -= ((NI) 1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, typeDefLeftSidePass__Sbx6MQrOoMPnRUYXOXA3NA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typeSection, NI i) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typeDef_1;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* name;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	typeDef_1 = (*typeSection)._kind_6.sons->data[i];
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(typeDef_1, ((NI) 3), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	name = (*typeDef_1)._kind_6.sons->data[((NI) 0)];
	s = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		NIM_BOOL T3_;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* pkgName;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* typName;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* pkg;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*name).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45));
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*typeDef_1)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133));
		LA4_: ;
		if (!T3_) goto LA5_;
		pkgName = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*name)._kind_6.sons->data[((NI) 0)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		typName = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*name)._kind_6.sons->data[((NI) 1)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		pkg = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ((*(*c).graph).packageSyms, pkgName);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T9_;
			NimStringDesc* T13_;
			T9_ = (NIM_BOOL)0;
			T9_ = (pkg == 0);
			if (T9_) goto LA10_;
			T9_ = !(((*pkg).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 24)));
			LA10_: ;
			if (!T9_) goto LA11_;
			T13_ = (NimStringDesc*)0;
			T13_ = rawNewString(((*pkgName).s ? (*pkgName).s->Sup.len : 0) + 22);
appendString(T13_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_699));
appendString(T13_, (*pkgName).s);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T13_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_700, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA7_;
		LA11_: ;
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* typsym;
			typsym = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ((*pkg)._kind_3.tab, typName);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T19_;
				if (!(typsym == 0)) goto LA17_;
				s = semIdentDef__L2b79bZBCkiyCHeJkLWxPlQ(c, (*name)._kind_6.sons->data[((NI) 1)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T19_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T19_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17), c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*s).typ = T19_;
				(*(*s).typ).sym = s;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4)) & 63);
				strTableAdd__tyTgUybFIoow4CX2l5beug((&(*pkg)._kind_3.tab), s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				addInterfaceDecl__aPXKqZJT9c7r7gT8X3uZAHw_3(c, s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA15_;
			LA17_: ;
			{
				NIM_BOOL T21_;
				T21_ = (NIM_BOOL)0;
				T21_ = ((*typsym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
				if (!(T21_)) goto LA22_;
				T21_ = (((*typsym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0);
				LA22_: ;
				if (!T21_) goto LA23_;
				s = typsym;
				addInterfaceDecl__aPXKqZJT9c7r7gT8X3uZAHw_3(c, s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA15_;
			LA23_: ;
			{
				NimStringDesc* T26_;
				T26_ = (NimStringDesc*)0;
				T26_ = rawNewString(((*(*typsym).name).s ? (*(*typsym).name).s->Sup.len : 0) + 36);
appendString(T26_, (*(*typsym).name).s);
appendString(T26_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_701));
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T26_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_702, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				s = typsym;
			}
			LA15_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T28_;
		s = semIdentDef__L2b79bZBCkiyCHeJkLWxPlQ(c, name, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T28_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T28_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s).typ = T28_;
		(*(*s).typ).sym = s;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* rewritten;
			if (!((*name).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA31_;
			rewritten = applyTypeSectionPragmas__n3MU2Z4B9cngRayLYQCel5A(c, (*name)._kind_6.sons->data[((NI) 1)], typeDef_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!((rewritten == NIM_NIL))) goto LA35_;
				(*typeSection)._kind_6.sons->data[i] = rewritten;
				typeDefLeftSidePass__Sbx6MQrOoMPnRUYXOXA3NA(c, typeSection, i);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			LA35_: ;
			pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, s, (*name)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_428, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA31_: ;
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* pkg_2;
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0)) goto LA39_;
			pkg_2 = (*(*c).module).owner;
			{
				NIM_BOOL T43_;
				NIM_BOOL T44_;
				T43_ = (NIM_BOOL)0;
				T44_ = (NIM_BOOL)0;
				T44_ = isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T43_ = !(T44_);
				if (T43_) goto LA45_;
				T43_ = (pkg_2 == 0);
				LA45_: ;
				if (!T43_) goto LA46_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_703), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_704, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA41_;
			LA46_: ;
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* typsym_2;
				typsym_2 = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ((*pkg_2)._kind_3.tab, (*s).name);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!!((typsym_2 == NIM_NIL))) goto LA51_;
					{
						NIM_BOOL T55_;
						T55_ = (NIM_BOOL)0;
						T55_ = !((((*typsym_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0));
						if (T55_) goto LA56_;
						T55_ = !((((*typsym_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0));
						LA56_: ;
						if (!T55_) goto LA57_;
						(*typsym_2).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10)) & 63);
						(*typsym_2).info = (*s).info;
					}
					goto LA53_;
					LA57_: ;
					{
						tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T60_;
						NimStringDesc* T61_;
						NimStringDesc* T62_;
						T60_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
						T60_ = (*(*c).graph).config;
						T61_ = (NimStringDesc*)0;
						T62_ = (NimStringDesc*)0;
						T62_ = dollar___aQsiZUvE4SFfnWyKx1JgKA((*(*c).graph).config, (*typsym_2).info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T61_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + (T62_ ? T62_->Sup.len : 0) + 66);
appendString(T61_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_705));
appendString(T61_, (*(*s).name).s);
appendString(T61_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_706));
appendString(T61_, T62_);
						liMessage__Q6JNH4uRwLyZrj0dJakHew(T60_, (*name).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T61_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_707, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA53_: ;
					s = typsym_2;
				}
				LA51_: ;
			}
			LA41_: ;
		}
		LA39_: ;
		{
			if (!!((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0))) goto LA65_;
			addInterfaceDecl__aPXKqZJT9c7r7gT8X3uZAHw_3(c, s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA63_;
		LA65_: ;
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T70_;
			if (!((*s).owner == NIM_NIL)) goto LA68_;
			T70_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			T70_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*s).owner = T70_;
		}
		goto LA63_;
		LA68_: ;
		LA63_: ;
	}
	LA1_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T75_;
		if (!((*name).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA73_;
		T75_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T75_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*(*typeDef_1)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)] = T75_;
	}
	goto LA71_;
	LA73_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T77_;
		T77_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T77_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*typeDef_1)._kind_6.sons->data[((NI) 0)] = T77_;
	}
	LA71_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, typeSectionLeftSidePass__NRIJDWZtATzMum7OEjYC2g_13)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA7_;
						goto LA4;
					}
					LA7_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103)))) goto LA11_;
						illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a, (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA11_: ;
					typeDefLeftSidePass__Sbx6MQrOoMPnRUYXOXA3NA(c, n, i);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, typeSectionTypeName__7YxUILpPxooC5qqa89a54dw_47)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA3_;
		{
			NI T7_;
			T7_ = (NI)0;
			T7_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T7_ == ((NI) 0))) goto LA8_;
			illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA8_: ;
		result = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		result = n;
	}
	LA1_: ;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA13_;
		illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA13_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setMagicType__FuNrknGP1Vshc6r9b9af0PQw_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, NI size) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	(*(*m).typ).kind = kind;
	(*(*m).typ).size = ((NI64) (size));
	(*(*m).typ).align = ((NI16) (size));
	{
		NIM_BOOL T3_;
		NI16 T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(19071802277888) &((NU64)1<<((NU)(kind)&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = (size == ((NI) 8));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NI16)0;
		T7_ = floatInt64Align__Nm9cs6Kn6ltGLynV4vNsRgw(conf);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*(*m).typ).align = T7_;
	}
	LA5_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, NI size) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	setMagicType__FuNrknGP1Vshc6r9b9af0PQw_2(conf, m, kind, size);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, processMagicType__gPoEwHdu4chIAfwrKhjTjA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	switch ((*m).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 169):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31), (*(*(*c).graph).config).target.intSize);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 170):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32), ((NI) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 171):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33), ((NI) 2));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 172):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34), ((NI) 4));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 173):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35), ((NI) 8));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 174):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40), (*(*(*c).graph).config).target.intSize);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 175):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41), ((NI) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 176):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42), ((NI) 2));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 177):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43), ((NI) 4));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 178):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44), ((NI) 8));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 179):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36), (*(*(*c).graph).config).target.floatSize);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 180):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37), ((NI) 4));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 181):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 38), ((NI) 8));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 182):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39), ((NI) 16));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 183):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1), ((NI) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 184):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2), ((NI) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 185):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T19_;
		setMagicType__FuNrknGP1Vshc6r9b9af0PQw_2((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28), ((NI) -1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T18_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T18_ = (*m).typ;
		T19_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T19_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*m).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(T18_, T19_, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA22_;
			(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31)) & 63);
		}
		LA22_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 186):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29), (*(*(*c).graph).config).target.ptrSize);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T25_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T25_ = (*m).typ;
		T26_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T26_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*m).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(T25_, T26_, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 187):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26), (*(*(*c).graph).config).target.ptrSize);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 188):
	{
		setMagicType__FuNrknGP1Vshc6r9b9af0PQw_2((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5), (*(*(*c).graph).config).target.ptrSize);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 189):
	{
		{
			if (!eqStrings((*(*m).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_709))) goto LA32_;
			setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59), ((NI) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA30_;
		LA32_: ;
		{
			setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6), ((NI) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA30_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 190):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7), ((NI) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 191):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 17):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T37_;
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8), ((NI) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T37_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T37_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg((*m).typ, T37_, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 24):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T39_;
		setMagicType__FuNrknGP1Vshc6r9b9af0PQw_2((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), ((NI) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T39_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T39_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg((*m).typ, T39_, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 192):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63), ((NI) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 156):
	{
		setMagicType__FuNrknGP1Vshc6r9b9af0PQw_2((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16), ((NI) -1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 157):
	{
		setMagicType__FuNrknGP1Vshc6r9b9af0PQw_2((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27), ((NI) -1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 161):
	{
		setMagicType__FuNrknGP1Vshc6r9b9af0PQw_2((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48), ((NI) -1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 158):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T45_;
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20), ((NI) -1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T45_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T45_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg((*m).typ, T45_, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 159):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19), ((NI) -1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 266):
	{
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49), ((NI) -1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 160):
	{
		setMagicType__FuNrknGP1Vshc6r9b9af0PQw_2((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24), ((NI) -1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA51_;
			(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31)) & 63);
		}
		LA51_: ;
		(*(*c).graph).sysTypes[(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24))- 0] = (*m).typ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 168):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T54_;
		setMagicIntegral__FuNrknGP1Vshc6r9b9af0PQw((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15), ((NI) -1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T54_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T54_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg((*m).typ, T54_, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 193):
	{
		(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 33)) & 63);
		(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 263):
	{
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 264):
	{
		if (eqStrings((*(*m).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_710))) goto LA58_;
		if (eqStrings((*(*m).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_711))) goto LA59_;
		if (eqStrings((*(*m).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_463))) goto LA60_;
		goto LA61_;
		LA58_: ;
		{
			setMagicType__FuNrknGP1Vshc6r9b9af0PQw_2((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47), (*(*(*c).graph).config).target.ptrSize);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA62_;
		LA59_: ;
		{
			setMagicType__FuNrknGP1Vshc6r9b9af0PQw_2((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46), ((NI) -1));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA62_;
		LA60_: ;
		{
			setMagicType__FuNrknGP1Vshc6r9b9af0PQw_2((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45), (*(*(*c).graph).config).target.ptrSize);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4)) & 63);
		}
		goto LA62_;
		LA61_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*m).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_712, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA62_: ;
	}
	break;
	default:
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*m).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_713, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
}
static N_NIMCALL(void, Marker_tyRef__hW0nFkOHm9b8Hn43XRoDtzQ)(void* p, NI op) {
	tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw* a;
	a = (tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw*)p;
	nimGCvisit((void*)(*a).genericType1, op);
}
N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, traverseSubTypes__Pkr5yx0YVtVYHazxo9a3x2g)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, void* ClE_0) {
	NIM_BOOL result;
	tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw* colonenvP_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	colonenvP_ = (tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw*) ClE_0;
	result = NIM_FALSE;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
	{
		(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 36)) & 63);
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
			field = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast((*t).n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 0);
				{
					while (1) {
						NIM_BOOL subX60gensym2958_;
						tyProc__9c12O79biRoLGSQrMfBJEQDg 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__9c12O79biRoLGSQrMfBJEQDg));
						T7_.ClP_0 = traverseSubTypes__Pkr5yx0YVtVYHazxo9a3x2g; T7_.ClE_0 = colonenvP_;
						subX60gensym2958_ = T7_.ClE_0? T7_.ClP_0(c, (*field).typ, T7_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_715)(T7_.ClP_0))(c, (*field).typ);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T8_ = (NIM_BOOL)0;
						T8_ = result;
						if (T8_) goto LA9_;
						T8_ = subX60gensym2958_;
						LA9_: ;
						result = T8_;
						i_2 += ((NI) 1);
					} LA6: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		tyProc__9c12O79biRoLGSQrMfBJEQDg T11_;
		nimZeroMem((void*)(&T11_), sizeof(tyProc__9c12O79biRoLGSQrMfBJEQDg));
		T11_.ClP_0 = traverseSubTypes__Pkr5yx0YVtVYHazxo9a3x2g; T11_.ClE_0 = colonenvP_;
		result = T11_.ClE_0? T11_.ClP_0(c, (*t).sons->data[((NI) 1)], T11_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_716)(T11_.ClP_0))(c, (*t).sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ** subType;
			NI i_3;
			NI L;
			NI T14_;
			subType = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ**)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 subX60gensym2961_;
						tyProc__9c12O79biRoLGSQrMfBJEQDg T21_;
						NIM_BOOL T22_;
						if (!!(((*subType) == NIM_NIL))) goto LA19_;
						nimZeroMem((void*)(&T21_), sizeof(tyProc__9c12O79biRoLGSQrMfBJEQDg));
						T21_.ClP_0 = traverseSubTypes__Pkr5yx0YVtVYHazxo9a3x2g; T21_.ClE_0 = colonenvP_;
						subX60gensym2961_ = T21_.ClE_0? T21_.ClP_0(c, (*subType), T21_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_717)(T21_.ClP_0))(c, (*subType));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T22_ = (NIM_BOOL)0;
						T22_ = result;
						if (T22_) goto LA23_;
						T22_ = subX60gensym2961_;
						LA23_: ;
						result = T22_;
					}
					LA19_: ;
					i_3 += ((NI) 1);
				} LA16: ;
			}
		}
		{
			NimStringDesc* T28_;
			NimStringDesc* T29_;
			if (!result) goto LA26_;
			T28_ = (NimStringDesc*)0;
			T29_ = (NimStringDesc*)0;
			T29_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T28_ = rawNewString((T29_ ? T29_->Sup.len : 0) + 46);
appendString(T28_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_718));
appendString(T28_, T29_);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*(*colonenvP_).genericType1).sym).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T28_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_719, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA26_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		tyProc__9c12O79biRoLGSQrMfBJEQDg T31_;
		nimZeroMem((void*)(&T31_), sizeof(tyProc__9c12O79biRoLGSQrMfBJEQDg));
		T31_.ClP_0 = traverseSubTypes__Pkr5yx0YVtVYHazxo9a3x2g; T31_.ClE_0 = colonenvP_;
		result = T31_.ClE_0? T31_.ClP_0(c, (*t).sons->data[((NI) 0)], T31_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_720)(T31_.ClP_0))(c, (*t).sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* 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__5mJADrRYkP3r9auuiuDZN9cQast(t);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_5 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* param;
					if (!(i_5 < colontmp__2)) goto LA35;
					i_4 = i_5;
					param = (*t).sons->data[i_4];
					{
						if (!((*param).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA38_;
						{
							tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw formalFlags;
							if (!(((*param).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 35))&63U)))!=0)) goto LA42_;
							formalFlags = (*(*targetBody).sons->data[(NI)(i_4 - ((NI) 1))]).flags;
							{
								tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T48_;
								NimStringDesc* T49_;
								if (!!(((formalFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 35))&63U)))!=0))) goto LA46_;
								T48_ = (*(*(*colonenvP_).genericType1).sym).info;
								T49_ = (NimStringDesc*)0;
								T49_ = rawNewString(((*(*(*param).sym).name).s ? (*(*(*param).sym).name).s->Sup.len : 0) + 51);
appendString(T49_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_721));
appendString(T49_, (*(*(*param).sym).name).s);
appendString(T49_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_722));
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T48_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T49_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_723, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							goto LA44_;
							LA46_: ;
							{
								if (!((formalFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 36))&63U)))!=0)) goto LA51_;
								(*param).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 36)) & 63);
							}
							goto LA44_;
							LA51_: ;
							LA44_: ;
							result = NIM_TRUE;
						}
						goto LA40_;
						LA42_: ;
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* formalParam;
							if (!(((*param).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 37))&63U)))!=0)) goto LA54_;
							formalParam = (*(*targetBody).sons->data[(NI)(i_4 - ((NI) 1))]).sym;
							{
								tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T60_;
								NimStringDesc* T61_;
								if (!!((((*(*formalParam).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 37))&63U)))!=0))) goto LA58_;
								T60_ = (*(*(*colonenvP_).genericType1).sym).info;
								T61_ = (NimStringDesc*)0;
								T61_ = rawNewString(((*(*(*param).sym).name).s ? (*(*(*param).sym).name).s->Sup.len : 0) + 59);
appendString(T61_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_724));
appendString(T61_, (*(*(*param).sym).name).s);
appendString(T61_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_725));
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T60_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T61_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_726, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA58_: ;
							result = NIM_TRUE;
						}
						goto LA40_;
						LA54_: ;
						LA40_: ;
					}
					goto LA36_;
					LA38_: ;
					{
						NIM_BOOL subX60gensym2985_;
						tyProc__9c12O79biRoLGSQrMfBJEQDg T63_;
						NIM_BOOL T64_;
						nimZeroMem((void*)(&T63_), sizeof(tyProc__9c12O79biRoLGSQrMfBJEQDg));
						T63_.ClP_0 = traverseSubTypes__Pkr5yx0YVtVYHazxo9a3x2g; T63_.ClE_0 = colonenvP_;
						subX60gensym2985_ = T63_.ClE_0? T63_.ClP_0(c, param, T63_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_727)(T63_.ClP_0))(c, param);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T64_ = (NIM_BOOL)0;
						T64_ = result;
						if (T64_) goto LA65_;
						T64_ = subX60gensym2985_;
						LA65_: ;
						result = T64_;
					}
					LA36_: ;
					i_5 += ((NI) 1);
				} LA35: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
	{
		NimStringDesc* T67_;
		NimStringDesc* T68_;
		T67_ = (NimStringDesc*)0;
		T68_ = (NimStringDesc*)0;
		T68_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T67_ = rawNewString((T68_ ? T68_->Sup.len : 0) + 63);
appendString(T67_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_728));
appendString(T67_, T68_);
appendString(T67_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114));
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*(*colonenvP_).genericType1).sym).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T67_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_729, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*(*colonenvP_).genericType1).sym).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_730), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_731, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ** fieldType;
			NI i_6;
			NI L_2;
			NI T72_;
			fieldType = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ**)0;
			i_6 = ((NI) 0);
			T72_ = ((*t).sons ? (*t).sons->Sup.len : 0);
			L_2 = T72_;
			{
				while (1) {
					NIM_BOOL subX60gensym2995_;
					tyProc__9c12O79biRoLGSQrMfBJEQDg T75_;
					NIM_BOOL T76_;
					if (!(i_6 < L_2)) goto LA74;
					fieldType = &(*t).sons->data[i_6];
					nimZeroMem((void*)(&T75_), sizeof(tyProc__9c12O79biRoLGSQrMfBJEQDg));
					T75_.ClP_0 = traverseSubTypes__Pkr5yx0YVtVYHazxo9a3x2g; T75_.ClE_0 = colonenvP_;
					subX60gensym2995_ = T75_.ClE_0? T75_.ClP_0(c, (*fieldType), T75_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_732)(T75_.ClP_0))(c, (*fieldType));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T76_ = (NIM_BOOL)0;
					T76_ = result;
					if (T76_) goto LA77_;
					T76_ = subX60gensym2995_;
					LA77_: ;
					result = T76_;
					i_6 += ((NI) 1);
				} LA74: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		tyProc__9c12O79biRoLGSQrMfBJEQDg T84_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T85_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T81_;
			T81_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T81_ = base__PfgI9ap7WOnsRfFV4znQ27w(t);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((*T81_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA82_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA82_: ;
		nimZeroMem((void*)(&T84_), sizeof(tyProc__9c12O79biRoLGSQrMfBJEQDg));
		T84_.ClP_0 = traverseSubTypes__Pkr5yx0YVtVYHazxo9a3x2g; T84_.ClE_0 = colonenvP_;
		T85_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T85_ = base__PfgI9ap7WOnsRfFV4znQ27w(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = T84_.ClE_0? T84_.ClP_0(c, T85_, T84_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_733)(T84_.ClP_0))(c, T85_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		tyProc__9c12O79biRoLGSQrMfBJEQDg T87_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T88_;
		nimZeroMem((void*)(&T87_), sizeof(tyProc__9c12O79biRoLGSQrMfBJEQDg));
		T87_.ClP_0 = traverseSubTypes__Pkr5yx0YVtVYHazxo9a3x2g; T87_.ClE_0 = colonenvP_;
		T88_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T88_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = T87_.ClE_0? T87_.ClP_0(c, T88_, T87_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_734)(T87_.ClP_0))(c, T88_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	{
		{
			NimStringDesc* argX60gensym2997_;
			if (!NIM_TRUE) goto LA92_;
			argX60gensym2997_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_735);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym2997_, TM__rF9caJawfOjYTjsgLVUSGFA_735);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA92_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkCovariantParamsUsages__fJHDVHP75aONSHseylETAw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* genericType) {
	tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw* colonenv_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* body;
	NI T1_;
	tyProc__9c12O79biRoLGSQrMfBJEQDg T2_;
	NIM_BOOL T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colonenv_ = (tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw*)0;
	colonenv_ = (tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw*) newObj((&NTI__hW0nFkOHm9b8Hn43XRoDtzQ_), sizeof(tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw));
	(*colonenv_).Sup.m_type = (&NTI__GnXaFIlVxvDpiKnOUsLlMw_);
	(*colonenv_).genericType1 = genericType;
	T1_ = (NI)0;
	T1_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*colonenv_).genericType1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	body = (*(*colonenv_).genericType1).sons->data[(NI)(T1_ - ((NI) 1))];
	nimZeroMem((void*)(&T2_), sizeof(tyProc__9c12O79biRoLGSQrMfBJEQDg));
	T2_.ClP_0 = traverseSubTypes__Pkr5yx0YVtVYHazxo9a3x2g; T2_.ClE_0 = colonenv_;
	T3_ = (NIM_BOOL)0;
	T3_ = T2_.ClE_0? T2_.ClP_0(c, body, T2_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_736)(T2_.ClP_0))(c, body);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(void)(T3_);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, typeSectionRightSidePass__NRIJDWZtATzMum7OEjYC2g_14)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* name;
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aa;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA7_;
						goto LA4;
					}
					LA7_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103)))) goto LA11_;
						illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a, (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA11_: ;
					checkSonsLen__EezdXeDvu4rB7fR84AJZgw(a, ((NI) 3), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					name = typeSectionTypeName__7YxUILpPxooC5qqa89a54dw_47(c, (*a)._kind_6.sons->data[((NI) 0)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					s = (*name)._kind_4.sym;
					{
						NIM_BOOL T15_;
						NimStringDesc* T19_;
						T15_ = (NIM_BOOL)0;
						T15_ = ((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
						if (!(T15_)) goto LA16_;
						T15_ = ((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
						LA16_: ;
						if (!T15_) goto LA17_;
						T19_ = (NimStringDesc*)0;
						T19_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_352), (*(*s).name).s);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T19_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_708, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA17_: ;
					{
						if (!!(((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)))) goto LA22_;
						processMagicType__gPoEwHdu4chIAfwrKhjTjA(c, s);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA22_: ;
					{
						tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T28_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T34_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* body;
						if (!!(((*(*a)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA26_;
						T28_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
						T28_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						pushOwner__AqgO9b89aLwRYAgSHN9aBrlHQ(c, s);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0))) goto LA31_;
							(*(*s).typ).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10);
						}
						LA31_: ;
						T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T33_ = semGenericParamList__00ZJT6x0WT6z8eBqr79cipw(c, (*a)._kind_6.sons->data[((NI) 1)], (*s).typ);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*(*s).typ).n = T33_;
						(*a)._kind_6.sons->data[((NI) 1)] = (*(*s).typ).n;
						(*(*s).typ).size = IL64(-1);
						T34_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T34_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg((*s).typ, T34_, NIM_TRUE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*s).ast = a;
						(*c).inGenericContext += ((NI) 1);
						body = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*a)._kind_6.sons->data[((NI) 2)], NIM_NIL);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*c).inGenericContext -= ((NI) 1);
						{
							NI T39_;
							if (!!((body == NIM_NIL))) goto LA37_;
							(*body).sym = s;
							(*body).size = IL64(-1);
							T39_ = (NI)0;
							T39_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*s).typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*(*s).typ).sons->data[(NI)(T39_ - ((NI) 1))] = body;
							{
								if (!(((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 35))&63U)))!=0)) goto LA42_;
								checkCovariantParamsUsages__fJHDVHP75aONSHseylETAw(c, (*s).typ);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								{
									tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* body_2;
									if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0)) goto LA46_;
									body_2 = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ((*s).typ);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									{
										if (!((*body_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA50_;
										(*(*body_2).n)._kind_6.sons = NIM_NIL;
									}
									LA50_: ;
								}
								LA46_: ;
							}
							LA42_: ;
						}
						LA37_: ;
						popOwner__9aY89b9aR25iMJ8fPdM84CvQg_2(c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA24_;
					LA26_: ;
					{
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
						if (!!(((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA53_;
						pushOwner__AqgO9b89aLwRYAgSHN9aBrlHQ(c, s);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						t = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*a)._kind_6.sons->data[((NI) 2)], (*s).typ);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!((*s).typ == NIM_NIL)) goto LA57_;
							(*s).typ = t;
						}
						goto LA55_;
						LA57_: ;
						{
							NIM_BOOL T60_;
							NIM_BOOL T62_;
							T60_ = (NIM_BOOL)0;
							T60_ = !((t == (*s).typ));
							if (!(T60_)) goto LA61_;
							T62_ = (NIM_BOOL)0;
							T62_ = ((*s).typ == NIM_NIL);
							if (T62_) goto LA63_;
							T62_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4)));
							LA63_: ;
							T60_ = T62_;
							LA61_: ;
							if (!T60_) goto LA64_;
							assignType__RDstL9c8H9bSHUphDz0iB0hg((*s).typ, t);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA55_;
						LA64_: ;
						LA55_: ;
						(*s).ast = a;
						popOwner__9aY89b9aR25iMJ8fPdM84CvQg_2(c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA68_;
							(*(*a)._kind_6.sons->data[((NI) 2)]).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7)) & 31);
						}
						LA68_: ;
					}
					goto LA24_;
					LA53_: ;
					LA24_: ;
					{
						NIM_BOOL T72_;
						T72_ = (NIM_BOOL)0;
						T72_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0);
						if (!(T72_)) goto LA73_;
						T72_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4));
						LA73_: ;
						if (!T72_) goto LA74_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_737), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_738, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA74_: ;
					{
						NIM_BOOL T78_;
						T78_ = (NIM_BOOL)0;
						T78_ = (((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 32))&63U)))!=0);
						if (!(T78_)) goto LA79_;
						T78_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13)));
						LA79_: ;
						if (!T78_) goto LA80_;
						(*(*s).typ).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 32)) & 63));
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_739), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_740, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA80_: ;
					aa = (*a)._kind_6.sons->data[((NI) 2)];
					{
						NIM_BOOL T84_;
						NIM_BOOL T85_;
						NI T87_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* st;
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* obj;
						NimStringDesc* T104_;
						tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T105_;
						tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T106_;
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T107_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T112_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T113_;
						T84_ = (NIM_BOOL)0;
						T85_ = (NIM_BOOL)0;
						T85_ = ((*aa).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141) || (*aa).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142));
						if (!(T85_)) goto LA86_;
						T87_ = (NI)0;
						T87_ = len__P89cqdlERShb9alU3iC0yj8wast(aa);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T85_ = (T87_ == ((NI) 1));
						LA86_: ;
						T84_ = T85_;
						if (!(T84_)) goto LA88_;
						T84_ = ((*(*aa)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133));
						LA88_: ;
						if (!T84_) goto LA89_;
						st = (*s).typ;
						{
							if (!((*st).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10))) goto LA93_;
							st = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(st);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA93_: ;
						{
							NimStringDesc* argX60gensym3042_;
							if (!!(((6291456 &((NU64)1<<((NU)((*st).kind)&63U)))!=0))) goto LA97_;
							argX60gensym3042_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_741);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym3042_, TM__rF9caJawfOjYTjsgLVUSGFA_741);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA97_: ;
						{
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T101_;
							NimStringDesc* argX60gensym3045_;
							T101_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T101_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(st);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(((*T101_).sym == NIM_NIL))) goto LA102_;
							argX60gensym3045_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_742);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym3045_, TM__rF9caJawfOjYTjsgLVUSGFA_742);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA102_: ;
						(*st).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 34)) & 63);
						T104_ = (NimStringDesc*)0;
						T104_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 11);
appendString(T104_, (*(*s).name).s);
appendString(T104_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_743));
						T105_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
						T105_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, T104_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T106_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
						T106_ = T105_;
						T107_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
						T107_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						obj = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), T106_, T107_, (*s).info, 0);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*obj).ast = a;
						{
							if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0)) goto LA110_;
							(*obj).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11)) & 63);
						}
						LA110_: ;
						T112_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T112_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(st);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*obj).typ = T112_;
						T113_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T113_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(st);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*T113_).sym = obj;
					}
					LA89_: ;
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, checkMeta__ZPW6MqdUk6rECHJvUIgrnA_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !((t == NIM_NIL));
		if (!(T4_)) goto LA5_;
		T4_ = isMetaType__aVxWxXLmf103vwE8uZ9cXRw(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = !((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 25))&63U)))!=0));
		LA6_: ;
		if (!T3_) goto LA7_;
		{
			NIM_BOOL T11_;
			NIM_BOOL T12_;
			NI T14_;
			NimStringDesc* T18_;
			NimStringDesc* T19_;
			T11_ = (NIM_BOOL)0;
			T12_ = (NIM_BOOL)0;
			T12_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51));
			if (!(T12_)) goto LA13_;
			T14_ = (NI)0;
			T14_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T12_ = (T14_ == ((NI) 1));
			LA13_: ;
			T11_ = T12_;
			if (!(T11_)) goto LA15_;
			T11_ = ((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
			LA15_: ;
			if (!T11_) goto LA16_;
			T18_ = (NimStringDesc*)0;
			T18_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T19_ = (NimStringDesc*)0;
			T19_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_744), T18_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T19_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_745, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA9_;
		LA16_: ;
		{
			NimStringDesc* T21_;
			NimStringDesc* T22_;
			T21_ = (NimStringDesc*)0;
			T21_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T22_ = (NimStringDesc*)0;
			T22_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_478), T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T22_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_746, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
	}
	LA7_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, checkForMetaFields__NRIJDWZtATzMum7OEjYC2g_16)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!(n == 0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
			s = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA9;
						i = i_2;
						s = (*n)._kind_6.sons->data[i];
						checkForMetaFields__NRIJDWZtATzMum7OEjYC2g_16(c, s);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_2 += ((NI) 1);
					} LA9: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		checkForMetaFields__NRIJDWZtATzMum7OEjYC2g_16(c, T11_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		t = (*(*n)._kind_4.sym).typ;
		switch ((*t).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
		{
			NI start;
			start = ((2560 &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_4 = start;
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA16;
						i_3 = i_4;
						checkMeta__ZPW6MqdUk6rECHJvUIgrnA_2(c, n, (*t).sons->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_4 += ((NI) 1);
					} LA16: ;
				}
			}
		}
		break;
		default:
		{
			checkMeta__ZPW6MqdUk6rECHJvUIgrnA_2(c, n, t);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		}
	}
	break;
	default:
	{
		{
			NimStringDesc* argX60gensym3060_;
			if (!NIM_TRUE) goto LA21_;
			argX60gensym3060_ = toFileLineCol__fTQr4TRmeNwYlKvcPy3kYAmsgs(TM__rF9caJawfOjYTjsgLVUSGFA_747);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, TM__rF9caJawfOjYTjsgLVUSGFA_72, argX60gensym3060_, TM__rF9caJawfOjYTjsgLVUSGFA_747);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA21_: ;
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, typeSectionFinalPass__NRIJDWZtATzMum7OEjYC2g_15)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* name;
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA7_;
						goto LA4;
					}
					LA7_: ;
					name = typeSectionTypeName__7YxUILpPxooC5qqa89a54dw_47(c, (*a)._kind_6.sons->data[((NI) 0)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					s = (*name)._kind_4.sym;
					{
						if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA11_;
						nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*s).info, s, (*s).kind);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA11_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
						if (!((*(*a)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA15_;
						x = (*a)._kind_6.sons->data[((NI) 2)];
						{
							NIM_BOOL T19_;
							T19_ = (NIM_BOOL)0;
							T19_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
							if (!(T19_)) goto LA20_;
							T19_ = (((*x).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7))&31U)))!=0);
							LA20_: ;
							if (!T19_) goto LA21_;
						}
						goto LA17_;
						LA21_: ;
						{
							{
								while (1) {
									NIM_BOOL T26_;
									NI T28_;
									T26_ = (NIM_BOOL)0;
									T26_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126));
									if (!(T26_)) goto LA27_;
									T28_ = (NI)0;
									T28_ = len__P89cqdlERShb9alU3iC0yj8wast(x);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									T26_ = (((NI) 0) < T28_);
									LA27_: ;
									if (!T26_) goto LA25;
									x = lastSon__UPSW0jLTX5qJL51YMUAHgw(x);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								} LA25: ;
							}
							{
								NIM_BOOL T31_;
								tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T33_;
								tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
								T31_ = (NIM_BOOL)0;
								T31_ = !(((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 146) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
								if (!(T31_)) goto LA32_;
								T33_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
								T33_ = safeSkipTypes__qgwlffIIb2pFkSZek4igDA((*s).typ, IL64(36275087638309136));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T31_ = !(((147456 &((NU64)1<<((NU)((*T33_).kind)&63U)))!=0));
								LA32_: ;
								if (!T31_) goto LA34_;
								t = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, x, NIM_NIL);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								{
									NIM_BOOL T38_;
									T38_ = (NIM_BOOL)0;
									T38_ = !(((*s).typ == NIM_NIL));
									if (!(T38_)) goto LA39_;
									T38_ = !(((IL64(70368744177680) &((NU64)1<<((NU)((*(*s).typ).kind)&63U)))!=0));
									LA39_: ;
									if (!T38_) goto LA40_;
									{
										NIM_BOOL T44_;
										NIM_BOOL T46_;
										T44_ = (NIM_BOOL)0;
										T44_ = ((33556480 &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
										if (!(T44_)) goto LA45_;
										T46_ = (NIM_BOOL)0;
										T46_ = isMetaType__aVxWxXLmf103vwE8uZ9cXRw(t);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										T44_ = !(T46_);
										LA45_: ;
										if (!T44_) goto LA47_;
										assignType__RDstL9c8H9bSHUphDz0iB0hg((*s).typ, t);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										(*(*s).typ).Sup.id = (*t).Sup.id;
									}
									goto LA42_;
									LA47_: ;
									{
										if (!((155648 &((NU64)1<<((NU)((*t).kind)&63U)))!=0)) goto LA50_;
										assignType__RDstL9c8H9bSHUphDz0iB0hg((*s).typ, t);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										(*(*s).typ).Sup.id = (*t).Sup.id;
									}
									goto LA42_;
									LA50_: ;
									LA42_: ;
								}
								LA40_: ;
							}
							LA34_: ;
							checkConstructedType__09chTcGpP9cwUssGPOfkWIGw((*(*c).graph).config, (*s).info, (*s).typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								NIM_BOOL T54_;
								T54_ = (NIM_BOOL)0;
								T54_ = ((393216 &((NU64)1<<((NU)((*(*s).typ).kind)&63U)))!=0);
								if (!(T54_)) goto LA55_;
								T54_ = !(((*(*s).typ).n == 0));
								LA55_: ;
								if (!T54_) goto LA56_;
								checkForMetaFields__NRIJDWZtATzMum7OEjYC2g_16(c, (*(*s).typ).n);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								{
									NIM_BOOL T60_;
									NIM_BOOL T62_;
									T60_ = (NIM_BOOL)0;
									T60_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
									if (!(T60_)) goto LA61_;
									T62_ = (NIM_BOOL)0;
									T62_ = isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata(c);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									T60_ = !(T62_);
									LA61_: ;
									if (!T60_) goto LA63_;
									(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36)) & 63);
								}
								LA63_: ;
							}
							LA56_: ;
						}
						LA17_: ;
					}
					LA15_: ;
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTypeSection__7YxUILpPxooC5qqa89a54dw_46)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((((*(*c).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0));
		if (T3_) goto LA4_;
		T3_ = !((((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7))&31U)))!=0));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*c).inTypeContext += ((NI) 1);
		typeSectionLeftSidePass__NRIJDWZtATzMum7OEjYC2g_13(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		typeSectionRightSidePass__NRIJDWZtATzMum7OEjYC2g_14(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		typeSectionFinalPass__NRIJDWZtATzMum7OEjYC2g_15(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*c).inTypeContext -= ((NI) 1);
	}
	LA5_: ;
	result = n;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDiscard__7YxUILpPxooC5qqa89a54dw_48)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 1), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* sonType;
		tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw sonKind;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T5_;
		sonType = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
		sonKind = (*(*n)._kind_6.sons->data[((NI) 0)]).kind;
		{
			NIM_BOOL T8_;
			NIM_BOOL T9_;
			T8_ = (NIM_BOOL)0;
			T9_ = (NIM_BOOL)0;
			T9_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast(sonType);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T9_) goto LA10_;
			T9_ = ((257 &((NU64)1<<((NU)((*sonType).kind)&63U)))!=0);
			LA10_: ;
			T8_ = T9_;
			if (T8_) goto LA11_;
			T8_ = (sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132));
			LA11_: ;
			if (!T8_) goto LA12_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_748), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_749, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA12_: ;
		{
			NIM_BOOL T16_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T20_;
			NimStringDesc* T21_;
			NimStringDesc* T22_;
			T16_ = (NIM_BOOL)0;
			T16_ = ((*sonType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T16_)) goto LA17_;
			T16_ = !((sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)));
			LA17_: ;
			if (!T16_) goto LA18_;
			T20_ = (*n).info;
			T21_ = (NimStringDesc*)0;
			T22_ = (NimStringDesc*)0;
			T22_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A((*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T21_ = rawNewString((T22_ ? T22_->Sup.len : 0) + 38);
appendString(T21_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_750));
appendString(T21_, T22_);
appendString(T21_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_194));
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T20_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_751, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA18_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semWhile__vJZwz9bfROKrfrtM50y74CQ_31)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
	T2_ = c;
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T4_ = forceBool__7YxUILpPxooC5qqa89a54dw_4(T2_, T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 0)] = T4_;
	(*(*c).p).nestedLoopCounter += ((NI) 1);
	T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T5_ = semStmt__vJZwz9bfROKrfrtM50y74CQ_4(c, (*n)._kind_6.sons->data[((NI) 1)], flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 1)] = T5_;
	(*(*c).p).nestedLoopCounter -= ((NI) 1);
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!((*(*n)._kind_6.sons->data[((NI) 1)]).typ == (*c).enforceVoidContext)) goto LA8_;
		(*result).typ = (*c).enforceVoidContext;
	}
	goto LA6_;
	LA8_: ;
	{
		if (!((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 2))&31U)))!=0)) goto LA11_;
		(*result).typ = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	}
	goto LA6_;
	LA11_: ;
	LA6_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTry__vJZwz9bfROKrfrtM50y74CQ_32)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg check;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	NI last;
	NI T3_;
	NI catchAllExcepts;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&check));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = n;
	(*(*c).p).inTryStmt += ((NI) 1);
	checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) newObj((&NTI__AgIT5feFR9a9aoVjv9cx2rOtg_), sizeof(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ));
	(*T1_).Sup.Sup.m_type = (&NTI__v9ae2Dpu13OW2ZJ2U9bNMd9cQ_);
	(*T1_).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6);
	typ = T1_;
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = semExprBranchScope__7YxUILpPxooC5qqa89a54dw_42(c, (*n)._kind_6.sons->data[((NI) 0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 0)] = T2_;
	typ = commonType__hfwrZ5ThSx8sbABQFEwdHg(typ, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (NI)0;
	T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	last = (NI)(T3_ - ((NI) 1));
	catchAllExcepts = ((NI) 0);
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T7_;
				NI T103_;
				NI T104_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T105_;
				if (!(res <= last)) goto LA6;
				i = res;
				a = (*n)._kind_6.sons->data[i];
				checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a, ((NI) 1), (*(*c).graph).config);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T7_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
				T7_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87))) goto LA10_;
					{
						NIM_BOOL T14_;
						NI T15_;
						tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T19_;
						T14_ = (NIM_BOOL)0;
						T15_ = (NI)0;
						T15_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T14_ = (T15_ == ((NI) 2));
						if (!(T14_)) goto LA16_;
						T14_ = ((*(*a)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41));
						LA16_: ;
						if (!T14_) goto LA17_;
						T19_ = dotdot___BokNSDrKN1xmV1nA01G9brAsystem(((NI) 0), ((NI) 0));
						X5BX5Deq___txCax6HTxTvaDY9bSHIRipg((&(*a)._kind_6.sons), T19_, (*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data, ((*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0));
					}
					LA17_: ;
					{
						NIM_BOOL T22_;
						NI T23_;
						NIM_BOOL isImported;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typX60gensym2301_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T27_;
						NIM_BOOL isImportedX60gensym2301_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T42_;
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* symbol;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T49_;
						T22_ = (NIM_BOOL)0;
						T23_ = (NI)0;
						T23_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T22_ = (T23_ == ((NI) 2));
						if (!(T22_)) goto LA24_;
						T22_ = isInfixAs__CZaoTkWCFI9acor4BmYF3Yw((*a)._kind_6.sons->data[((NI) 0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						LA24_: ;
						if (!T22_) goto LA25_;
						T27_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T27_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], NIM_NIL);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						typX60gensym2301_ = toObject__IIQZtbSxQZOu2WmBJ9bnpCg_2(T27_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						isImportedX60gensym2301_ = NIM_FALSE;
						{
							NIM_BOOL T30_;
							T30_ = (NIM_BOOL)0;
							T30_ = isImportedException__dZW9czpRSiiVl9cyT6tyk84A(typX60gensym2301_, (*(*c).graph).config);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!T30_) goto LA31_;
							isImportedX60gensym2301_ = NIM_TRUE;
						}
						goto LA28_;
						LA31_: ;
						{
							NIM_BOOL T34_;
							T34_ = (NIM_BOOL)0;
							T34_ = isException__YPjOkGV9axAnGR3UfLeWZ1g_13(typX60gensym2301_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(T34_)) goto LA35_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_663), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_752, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA28_;
						LA35_: ;
						LA28_: ;
						{
							NIM_BOOL T39_;
							T39_ = (NIM_BOOL)0;
							T39_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&check), (*typX60gensym2301_).Sup.id);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!T39_) goto LA40_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_753), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_754, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA40_: ;
						T42_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T42_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).info, typX60gensym2301_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)] = T42_;
						isImported = isImportedX60gensym2301_;
						symbol = newSymG__z0Xq7x7aKOzONyxr8mX73A(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9), (*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 2)], c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!isImported) goto LA45_;
							(*symbol).typ = (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).typ;
						}
						goto LA43_;
						LA45_: ;
						{
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T48_;
							T48_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T48_ = toRef__IIQZtbSxQZOu2WmBJ9bnpCg((*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).typ);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*symbol).typ = T48_;
						}
						LA43_: ;
						addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, symbol);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T49_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T49_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(symbol, (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 2)]).info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 2)] = T49_;
					}
					goto LA20_;
					LA25_: ;
					{
						NI T51_;
						T51_ = (NI)0;
						T51_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!(T51_ == ((NI) 1))) goto LA52_;
						catchAllExcepts += ((NI) 1);
					}
					goto LA20_;
					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__P89cqdlERShb9alU3iC0yj8wast(a);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							colontmp_ = (NI)(T60_ - ((NI) 1));
							i_2 = ((NI) 0);
							{
								while (1) {
									NIM_BOOL tmp;
									tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typX60gensym2321_;
									tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T63_;
									NIM_BOOL isImportedX60gensym2321_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T78_;
									if (!(i_2 < colontmp_)) goto LA62;
									j = i_2;
									T63_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
									T63_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*a)._kind_6.sons->data[j], NIM_NIL);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									typX60gensym2321_ = toObject__IIQZtbSxQZOu2WmBJ9bnpCg_2(T63_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									isImportedX60gensym2321_ = NIM_FALSE;
									{
										NIM_BOOL T66_;
										T66_ = (NIM_BOOL)0;
										T66_ = isImportedException__dZW9czpRSiiVl9cyT6tyk84A(typX60gensym2321_, (*(*c).graph).config);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										if (!T66_) goto LA67_;
										isImportedX60gensym2321_ = NIM_TRUE;
									}
									goto LA64_;
									LA67_: ;
									{
										NIM_BOOL T70_;
										T70_ = (NIM_BOOL)0;
										T70_ = isException__YPjOkGV9axAnGR3UfLeWZ1g_13(typX60gensym2321_);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										if (!!(T70_)) goto LA71_;
										liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_663), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_752, NIM_FALSE);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									goto LA64_;
									LA71_: ;
									LA64_: ;
									{
										NIM_BOOL T75_;
										T75_ = (NIM_BOOL)0;
										T75_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&check), (*typX60gensym2321_).Sup.id);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										if (!T75_) goto LA76_;
										liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_753), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_754, NIM_FALSE);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									LA76_: ;
									T78_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T78_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*(*a)._kind_6.sons->data[j]).info, typX60gensym2321_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*a)._kind_6.sons->data[j] = T78_;
									tmp = isImportedX60gensym2321_;
									{
										if (!tmp) goto LA81_;
										isImported_2 = NIM_TRUE;
									}
									goto LA79_;
									LA81_: ;
									{
										isNative = NIM_TRUE;
									}
									LA79_: ;
									i_2 += ((NI) 1);
								} LA62: ;
							}
						}
						{
							NIM_BOOL T86_;
							T86_ = (NIM_BOOL)0;
							T86_ = isNative;
							if (!(T86_)) goto LA87_;
							T86_ = isImported_2;
							LA87_: ;
							if (!T86_) goto LA88_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*a)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_755), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_756, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA88_: ;
					}
					LA20_: ;
				}
				goto LA8_;
				LA10_: ;
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA91_;
					{
						NI T95_;
						T95_ = (NI)0;
						T95_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!!((i == (NI)(T95_ - ((NI) 1))))) goto LA96_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_757), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_758, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA96_: ;
				}
				goto LA8_;
				LA91_: ;
				{
					illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA8_: ;
				{
					if (!(((NI) 1) < catchAllExcepts)) goto LA101_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_759), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_760, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA101_: ;
				T103_ = (NI)0;
				T103_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T104_ = (NI)0;
				T104_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T105_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T105_ = semExprBranchScope__7YxUILpPxooC5qqa89a54dw_42(c, (*a)._kind_6.sons->data[(NI)(T104_ - ((NI) 1))]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*a)._kind_6.sons->data[(NI)(T103_ - ((NI) 1))] = T105_;
				{
					NI T110_;
					if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107)))) goto LA108_;
					T110_ = (NI)0;
					T110_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					typ = commonType__wEK756YRi9c3lsyIxi9aFXSg(typ, (*a)._kind_6.sons->data[(NI)(T110_ - ((NI) 1))]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA106_;
				LA108_: ;
				{
					last -= ((NI) 1);
				}
				LA106_: ;
				closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				res += ((NI) 1);
			} LA6: ;
		}
	}
	(*(*c).p).inTryStmt -= ((NI) 1);
	{
		NIM_BOOL T114_;
		T114_ = (NIM_BOOL)0;
		T114_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast(typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (T114_) goto LA115_;
		T114_ = ((96 &((NU64)1<<((NU)((*typ).kind)&63U)))!=0);
		LA115_: ;
		if (!T114_) goto LA116_;
		discardCheck__tp7yV6CFb40nVuGT1TBFpw(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T121_;
					if (!(i_4 < colontmp__2)) goto LA120;
					i_3 = i_4;
					T121_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T121_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*n)._kind_6.sons->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					discardCheck__tp7yV6CFb40nVuGT1TBFpw(c, T121_, flags);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_4 += ((NI) 1);
				} LA120: ;
			}
		}
		{
			if (!(typ == (*c).enforceVoidContext)) goto LA124_;
			(*result).typ = (*c).enforceVoidContext;
		}
		LA124_: ;
	}
	goto LA112_;
	LA116_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T134_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T135_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T129_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T132_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T133_;
			T129_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T129_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((*T129_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA130_;
			T132_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T132_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T133_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T133_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(T132_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			discardCheck__tp7yV6CFb40nVuGT1TBFpw(c, T133_, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA130_: ;
		T134_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T134_ = (*n)._kind_6.sons->data[((NI) 0)];
		T135_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T135_ = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, typ, T134_, (*(*n)._kind_6.sons->data[((NI) 0)]).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T135_;
		{
			NI i_5;
			NI res_2;
			i_5 = (NI)0;
			res_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					NI j_2;
					NI T139_;
					if (!(res_2 <= last)) goto LA138;
					i_5 = res_2;
					it = (*n)._kind_6.sons->data[i_5];
					T139_ = (NI)0;
					T139_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_2 = (NI)(T139_ - ((NI) 1));
					{
						NIM_BOOL T142_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T145_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T146_;
						T142_ = (NIM_BOOL)0;
						T142_ = endsInNoReturn__OiccTa3ruRNl9anoSqZh2Sg_6((*it)._kind_6.sons->data[j_2]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!!(T142_)) goto LA143_;
						T145_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T145_ = (*it)._kind_6.sons->data[j_2];
						T146_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T146_ = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, typ, T145_, (*(*it)._kind_6.sons->data[j_2]).info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*it)._kind_6.sons->data[j_2] = T146_;
					}
					LA143_: ;
					res_2 += ((NI) 1);
				} LA138: ;
			}
		}
		(*result).typ = typ;
	}
	LA112_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBreakOrContinue__7YxUILpPxooC5qqa89a54dw_49)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 1), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
			if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111)))) goto LA7_;
			s = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			switch ((*(*n)._kind_6.sons->data[((NI) 0)]).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
			{
				s = lookUp__CLMmoDuBHkJLvNsKvljGNw_2(c, (*n)._kind_6.sons->data[((NI) 0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
			{
				s = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			}
			break;
			default:
			{
				illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			}
			s = getGenSym__pT6glwCH57hiSrY6Jp4rug(c, s);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T14_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
				tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T18_;
				T14_ = (NIM_BOOL)0;
				T14_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 22));
				if (!(T14_)) goto LA15_;
				T14_ = ((*(*s).owner).Sup.id == (*(*(*c).p).owner).Sup.id);
				LA15_: ;
				if (!T14_) goto LA16_;
				x = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*x).info = (*n).info;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				(*n)._kind_6.sons->data[((NI) 0)] = x;
				T18_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
				T18_ = (*(*c).graph).config;
				suggestSym__c4UsAt49bYALbZKCjgqOrCQsigmatch(T18_, (*x).info, s, &(*(*c).graph).usageSym, NIM_TRUE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA12_;
			LA16_: ;
			{
				NimStringDesc* T20_;
				T20_ = (NimStringDesc*)0;
				T20_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_761), (*(*s).name).s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T20_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_762, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA12_: ;
		}
		goto LA5_;
		LA7_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_763), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_764, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T23_;
		NIM_BOOL T25_;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T29_;
		NimStringDesc* T30_;
		NimStringDesc* T31_;
		T23_ = (NIM_BOOL)0;
		T23_ = ((*(*c).p).nestedLoopCounter <= ((NI) 0));
		if (!(T23_)) goto LA24_;
		T25_ = (NIM_BOOL)0;
		T25_ = ((*(*c).p).nestedBlockCounter <= ((NI) 0));
		if (T25_) goto LA26_;
		T25_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111));
		LA26_: ;
		T23_ = T25_;
		LA24_: ;
		if (!T23_) goto LA27_;
		T29_ = (*n).info;
		T30_ = (NimStringDesc*)0;
		T30_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T31_ = (NimStringDesc*)0;
		T31_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_761), T30_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T29_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T31_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_765, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA27_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleStmtMacro__15J7kYDEVfuA6C4REjC7dA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* selector, NimStringDesc* magicType, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* maType;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol;
		tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* match;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* symx;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* callExpr;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
		if (!((*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA3_;
		maType = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA((*c).graph, magicType);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(maType == NIM_NIL)) goto LA7_;
			goto BeforeRet_;
		}
		LA7_: ;
		headSymbol = (*selector)._kind_6.sons->data[((NI) 0)];
		nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
		match = NIM_NIL;
		symx = initOverloadIter__yTTeeqtnENsm0xyCro9a61w((&o), c, headSymbol);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			while (1) {
				if (!!((symx == NIM_NIL))) goto LA10;
				{
					if (!((393216 &(1U<<((NU)((*symx).kind)&31U)))!=0)) goto LA13_;
					{
						NIM_BOOL T17_;
						NI T18_;
						T17_ = (NIM_BOOL)0;
						T18_ = (NI)0;
						T18_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*symx).typ);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T17_ = (T18_ == ((NI) 2));
						if (!(T17_)) goto LA19_;
						T17_ = ((*(*symx).typ).sons->data[((NI) 1)] == (*maType).typ);
						LA19_: ;
						if (!T17_) goto LA20_;
						{
							if (!(match == NIM_NIL)) goto LA24_;
							match = symx;
						}
						goto LA22_;
						LA24_: ;
						{
							tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T27_;
							tyArray__24KAM9afIUgUaqBaEBB6r9bg T28_;
							NimStringDesc* T29_;
							NimStringDesc* T30_;
							NimStringDesc* T31_;
							NimStringDesc* T32_;
							T27_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
							T27_ = (*(*c).graph).config;
							nimZeroMem((void*)T28_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
							T29_ = (NimStringDesc*)0;
							T29_ = getProcHeader__bRG2xX9ar5tfMW3c7xo9ccKQ((*(*c).graph).config, match, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), NIM_TRUE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T28_[0] = T29_;
							T30_ = (NimStringDesc*)0;
							T30_ = getProcHeader__bRG2xX9ar5tfMW3c7xo9ccKQ((*(*c).graph).config, symx, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), NIM_TRUE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T28_[1] = T30_;
							T31_ = (NimStringDesc*)0;
							T31_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(selector);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T28_[2] = T31_;
							T32_ = (NimStringDesc*)0;
							T32_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_372), T28_, 3);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew(T27_, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T32_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_766, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA22_: ;
					}
					LA20_: ;
				}
				LA13_: ;
				symx = nextOverloadIter__yTTeeqtnENsm0xyCro9a61w_2((&o), c, headSymbol);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA10: ;
		}
		{
			if (!(match == NIM_NIL)) goto LA35_;
			goto BeforeRet_;
		}
		LA35_: ;
		callExpr = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T37_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T37_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(match);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(callExpr, T37_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(callExpr, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		switch ((*match).kind) {
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
		{
			result = semMacroExpr__GFpnqBAgGBu4p8rc0WsOTw(c, callExpr, callExpr, match, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
		{
			result = semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog(c, callExpr, match, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		default:
		{
			result = NIM_NIL;
		}
		break;
		}
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleForLoopMacro__vJZwz9bfROKrfrtM50y74CQ_34)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	NI T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = n;
	T2_ = (NI)0;
	T2_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = handleStmtMacro__15J7kYDEVfuA6C4REjC7dA(c, T1_, (*n)._kind_6.sons->data[(NI)(T2_ - ((NI) 2))], ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_767), flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprNoDeref__vJZwz9bfROKrfrtM50y74CQ_35)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = semExprCheck__vJZwz9bfROKrfrtM50y74CQ_2(c, n, flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
		if (!((*result).typ == NIM_NIL)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(result, 4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = (NimStringDesc*)0;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_768), T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_769, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T7_ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T7_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrivalStmtExpr__OiccTa3ruRNl9anoSqZh2Sg_7)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmp_ = (NI)(T2_ - ((NI) 1));
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					if (!!(((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125)))) goto LA7_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA7_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, symForVar__AO57Q9bSpsZiuv7kwwoM7yw_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA3_;
		m = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		m = n;
	}
	LA1_: ;
	result = newSymG__z0Xq7x7aKOzONyxr8mX73A(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21), m, c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA8_;
		nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*result).info, result, (*result).kind);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA8_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA12_;
		pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_771, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA12_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semForVars__vJZwz9bfROKrfrtM50y74CQ_36)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* iterBase;
	NI T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* iter;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* iterAfterVarLent;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T146_;
	NI T147_;
	NI T148_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T149_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	T1_ = (NI)0;
	T1_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	iterBase = (*(*n)._kind_6.sons->data[(NI)(T1_ - ((NI) 2))]).typ;
	iter = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(iterBase, IL64(105553116268560));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	iterAfterVarLent = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(iter, IL64(140737496743936));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T4_;
		NI T6_;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*iterAfterVarLent).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18)));
		if (T4_) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (T6_ == ((NI) 3));
		LA5_: ;
		if (!T4_) goto LA7_;
		{
			NI T11_;
			T11_ = (NI)0;
			T11_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T11_ == ((NI) 3))) goto LA12_;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA16_;
				{
					NI T20_;
					NI T21_;
					T20_ = (NI)0;
					T20_ = len__P89cqdlERShb9alU3iC0yj8wast((*n)._kind_6.sons->data[((NI) 0)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T21_ = (NI)0;
					T21_ = len__5mJADrRYkP3r9auuiuDZN9cQast(iterAfterVarLent);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!!(((NI)(T20_ - ((NI) 1)) == T21_))) goto LA22_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_546), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_770, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA22_: ;
				{
					NI i;
					NI colontmp_;
					NI T25_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					T25_ = (NI)0;
					T25_ = len__P89cqdlERShb9alU3iC0yj8wast((*n)._kind_6.sons->data[((NI) 0)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					colontmp_ = (NI)(T25_ - ((NI) 1));
					i_2 = ((NI) 0);
					{
						while (1) {
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T40_;
							if (!(i_2 < colontmp_)) goto LA27;
							i = i_2;
							v = symForVar__AO57Q9bSpsZiuv7kwwoM7yw_3(c, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[i]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T30_;
								T30_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
								T30_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!((*T30_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6))) goto LA31_;
								(*v).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
							}
							LA31_: ;
							switch ((*iter).kind) {
							case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
							case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
							{
								tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T34_;
								T34_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
								T34_ = newTypeS__xb5E2cGIynZweqWlCP8Tig((*iter).kind, c);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*v).typ = T34_;
								add__9a8CdZqChTyqzq5bpSL3TzA((*v).typ, (*iterAfterVarLent).sons->data[i]);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								{
									if (!(((*iter).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20))&63U)))!=0)) goto LA37_;
									(*(*v).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20)) & 63);
								}
								LA37_: ;
							}
							break;
							default:
							{
								(*v).typ = (*iter).sons->data[i];
							}
							break;
							}
							T40_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T40_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(v);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[i] = T40_;
							{
								if (!!((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0))) goto LA43_;
								addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, v);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							goto LA41_;
							LA43_: ;
							{
								tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T48_;
								if (!((*v).owner == NIM_NIL)) goto LA46_;
								T48_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
								T48_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*v).owner = T48_;
							}
							goto LA41_;
							LA46_: ;
							LA41_: ;
							i_2 += ((NI) 1);
						} LA27: ;
					}
				}
			}
			goto LA14_;
			LA16_: ;
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v_2;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T55_;
				v_2 = symForVar__AO57Q9bSpsZiuv7kwwoM7yw_3(c, (*n)._kind_6.sons->data[((NI) 0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T52_;
					T52_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
					T52_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!((*T52_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6))) goto LA53_;
					(*v_2).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
				}
				LA53_: ;
				(*v_2).typ = iterBase;
				T55_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T55_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(v_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 0)] = T55_;
				{
					if (!!((((*v_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0))) goto LA58_;
					addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, v_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA56_;
				LA58_: ;
				{
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T63_;
					if (!((*v_2).owner == NIM_NIL)) goto LA61_;
					T63_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
					T63_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*v_2).owner = T63_;
				}
				goto LA56_;
				LA61_: ;
				LA56_: ;
			}
			LA14_: ;
		}
		goto LA9_;
		LA12_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_546), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_772, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
	}
	goto LA2_;
	LA7_: ;
	{
		NI T66_;
		NI T67_;
		T66_ = (NI)0;
		T66_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T67_ = (NI)0;
		T67_ = len__5mJADrRYkP3r9auuiuDZN9cQast(iterAfterVarLent);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(((NI)(T66_ - ((NI) 2)) == T67_))) goto LA68_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_546), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_773, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA2_;
	LA68_: ;
	{
		{
			NI i_3;
			NI colontmp__2;
			NI T72_;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T72_ = (NI)0;
			T72_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp__2 = (NI)(T72_ - ((NI) 2));
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA74;
					i_3 = i_4;
					{
						NIM_BOOL mutable_1;
						NIM_BOOL isLent;
						if (!((*(*n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA77_;
						mutable_1 = NIM_FALSE;
						isLent = NIM_FALSE;
						switch ((*(*iter).sons->data[i_3]).kind) {
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
						{
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T80_;
							mutable_1 = NIM_TRUE;
							T80_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T80_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*iter).sons->data[i_3], 8388608);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*iter).sons->data[i_3] = T80_;
						}
						break;
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
						{
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T82_;
							isLent = NIM_TRUE;
							T82_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T82_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*iter).sons->data[i_3], IL64(140737488355328));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*iter).sons->data[i_3] = T82_;
						}
						break;
						default:
						{
						}
						break;
						}
						{
							NI T86_;
							NI T87_;
							T86_ = (NI)0;
							T86_ = len__P89cqdlERShb9alU3iC0yj8wast((*n)._kind_6.sons->data[i_3]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T87_ = (NI)0;
							T87_ = len__5mJADrRYkP3r9auuiuDZN9cQast((*iter).sons->data[i_3]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(((NI)(T86_ - ((NI) 1)) == T87_))) goto LA88_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[i_3]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_546), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_774, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA88_: ;
						{
							NI j;
							NI colontmp__3;
							NI T91_;
							NI i_5;
							j = (NI)0;
							colontmp__3 = (NI)0;
							T91_ = (NI)0;
							T91_ = len__P89cqdlERShb9alU3iC0yj8wast((*n)._kind_6.sons->data[i_3]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							colontmp__3 = (NI)(T91_ - ((NI) 1));
							i_5 = ((NI) 0);
							{
								while (1) {
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v_3;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T109_;
									if (!(i_5 < colontmp__3)) goto LA93;
									j = i_5;
									v_3 = symForVar__AO57Q9bSpsZiuv7kwwoM7yw_3(c, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[j]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									{
										tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T96_;
										T96_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
										T96_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										if (!((*T96_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6))) goto LA97_;
										(*v_3).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
									}
									LA97_: ;
									{
										tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T103_;
										if (!mutable_1) goto LA101_;
										T103_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
										T103_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23), c);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										(*v_3).typ = T103_;
										add__9a8CdZqChTyqzq5bpSL3TzA((*v_3).typ, (*(*iter).sons->data[i_3]).sons->data[j]);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									goto LA99_;
									LA101_: ;
									{
										tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T107_;
										if (!isLent) goto LA105_;
										T107_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
										T107_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47), c);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										(*v_3).typ = T107_;
										add__9a8CdZqChTyqzq5bpSL3TzA((*v_3).typ, (*(*iter).sons->data[i_3]).sons->data[j]);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									goto LA99_;
									LA105_: ;
									{
										(*v_3).typ = (*(*iter).sons->data[i_3]).sons->data[j];
									}
									LA99_: ;
									T109_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T109_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(v_3);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[j] = T109_;
									{
										NIM_BOOL T112_;
										T112_ = (NIM_BOOL)0;
										T112_ = isDiscardUnderscore__Brh9b6lg9c65wJVd9bszm1D1g(v_3);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										if (!!(T112_)) goto LA113_;
										addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, v_3);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									goto LA110_;
									LA113_: ;
									{
										tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T118_;
										if (!((*v_3).owner == NIM_NIL)) goto LA116_;
										T118_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
										T118_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										(*v_3).owner = T118_;
									}
									goto LA110_;
									LA116_: ;
									LA110_: ;
									i_5 += ((NI) 1);
								} LA93: ;
							}
						}
					}
					goto LA75_;
					LA77_: ;
					{
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v_4;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T132_;
						v_4 = symForVar__AO57Q9bSpsZiuv7kwwoM7yw_3(c, (*n)._kind_6.sons->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T122_;
							T122_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
							T122_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!((*T122_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6))) goto LA123_;
							(*v_4).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
						}
						LA123_: ;
						switch ((*iter).kind) {
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
						{
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T126_;
							T126_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T126_ = newTypeS__xb5E2cGIynZweqWlCP8Tig((*iter).kind, c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*v_4).typ = T126_;
							add__9a8CdZqChTyqzq5bpSL3TzA((*v_4).typ, (*iterAfterVarLent).sons->data[i_3]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								if (!(((*iter).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20))&63U)))!=0)) goto LA129_;
								(*(*v_4).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20)) & 63);
							}
							LA129_: ;
						}
						break;
						default:
						{
							(*v_4).typ = (*iter).sons->data[i_3];
						}
						break;
						}
						T132_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T132_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(v_4);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*n)._kind_6.sons->data[i_3] = T132_;
						{
							if (!!((((*v_4).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0))) goto LA135_;
							{
								NIM_BOOL T139_;
								T139_ = (NIM_BOOL)0;
								T139_ = isDiscardUnderscore__Brh9b6lg9c65wJVd9bszm1D1g(v_4);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!!(T139_)) goto LA140_;
								addDecl__aPXKqZJT9c7r7gT8X3uZAHw(c, v_4);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA140_: ;
						}
						goto LA133_;
						LA135_: ;
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T145_;
							if (!((*v_4).owner == NIM_NIL)) goto LA143_;
							T145_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
							T145_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*v_4).owner = T145_;
						}
						goto LA133_;
						LA143_: ;
						LA133_: ;
					}
					LA75_: ;
					i_4 += ((NI) 1);
				} LA74: ;
			}
		}
	}
	LA2_: ;
	(*(*c).p).nestedLoopCounter += ((NI) 1);
	T146_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T146_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T147_ = (NI)0;
	T147_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T148_ = (NI)0;
	T148_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T149_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T149_ = semExprBranch__vJZwz9bfROKrfrtM50y74CQ_28(c, (*n)._kind_6.sons->data[(NI)(T148_ - ((NI) 1))], flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[(NI)(T147_ - ((NI) 1))] = T149_;
	{
		NI T154_;
		if (!!(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 2))&31U)))!=0))) goto LA152_;
		T154_ = (NI)0;
		T154_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		discardCheck__tp7yV6CFb40nVuGT1TBFpw(c, (*n)._kind_6.sons->data[(NI)(T154_ - ((NI) 1))], flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA152_: ;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*c).p).nestedLoopCounter -= ((NI) 1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, instFieldLoopBody__NWigU6dr5apz5g827GjO4w)(tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* forLoop) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*c).field == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*c).field).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA4_: ;
		if (!T3_) goto LA5_;
		result = newNode__PMZ27S9ai4FB3gXOMDXvwsQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA5_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
		result = n;
		ident = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw((*c).c, n, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(*c).replaceByFieldName) goto LA11_;
			{
				tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T15_;
				NimStringDesc* fieldName;
				T15_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
				T15_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw((*c).c, (*forLoop)._kind_6.sons->data[((NI) 0)], NIM_NIL);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!((*ident).Sup.id == (*T15_).Sup.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_ = (NimStringDesc*)0;
					T26_ = (NimStringDesc*)0;
					T26_ = nimIntToStr((*c).tupleIndex);
					T25_ = rawNewString((T26_ ? T26_->Sup.len : 0) + 5);
appendString(T25_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_782));
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__zLcHGdlEbBYFtoCoan9agkg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), fieldName);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				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__P89cqdlERShb9alU3iC0yj8wast(forLoop);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp__2 = (NI)(T29_ - ((NI) 2));
			i_2 = colontmp_;
			{
				while (1) {
					if (!(i_2 < colontmp__2)) goto LA31;
					i = i_2;
					{
						tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T34_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
						NI T37_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tupl;
						T34_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
						T34_ = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw((*c).c, (*forLoop)._kind_6.sons->data[i], NIM_NIL);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!((*ident).Sup.id == (*T34_).Sup.id)) goto LA35_;
						T37_ = (NI)0;
						T37_ = len__P89cqdlERShb9alU3iC0yj8wast(forLoop);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						call = (*forLoop)._kind_6.sons->data[(NI)(T37_ - ((NI) 2))];
						tupl = (*call)._kind_6.sons->data[(NI)((NI)(i + ((NI) 1)) - (*c).replaceByFieldName)];
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T42_;
							if (!((*c).field == 0)) goto LA40_;
							result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), (*n).info);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(result, tupl);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T42_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T42_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((*c).tupleIndex)));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(result, T42_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA38_;
						LA40_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T44_;
							result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), (*n).info);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(result, tupl);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T44_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T44_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig((*c).field, (*n).info);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(result, T44_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA38_: ;
						goto LA28;
					}
					LA35_: ;
					i_2 += ((NI) 1);
				} LA31: ;
			}
		} LA28: ;
	}
	break;
	default:
	{
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111))) goto LA48_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_783), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_784, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA48_: ;
		result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_3;
			NI colontmp__3;
			NI i_4;
			i_3 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T53_;
					if (!(i_4 < colontmp__3)) goto LA52;
					i_3 = i_4;
					T53_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T53_ = instFieldLoopBody__NWigU6dr5apz5g827GjO4w(c, (*n)._kind_6.sons->data[i_3], forLoop);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result)._kind_6.sons->data[i_3] = T53_;
					i_4 += ((NI) 1);
				} LA52: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semForObjectFields__QePBJ9bHaUde9cnkvf6xqUYQ)(tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typ, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* forLoop, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	switch ((*typ).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA fc;
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T2_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
		nimZeroMem((void*)(&fc), sizeof(tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA));
		fc.c = c.c;
		fc.field = (*typ)._kind_4.sym;
		fc.replaceByFieldName = (c.m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 129));
		T2_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
		T2_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c.c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*c.c).inUnrolledContext += ((NI) 1);
		T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T3_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(forLoop);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		body = instFieldLoopBody__NWigU6dr5apz5g827GjO4w((&fc), T3_, forLoop);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T4_ = semStmt__vJZwz9bfROKrfrtM50y74CQ_4(c.c, body, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(father, T4_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*c.c).inUnrolledContext -= ((NI) 1);
		closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c.c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
		NI T7_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseStmt;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* access;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
		T7_ = (NI)0;
		T7_ = len__P89cqdlERShb9alU3iC0yj8wast(forLoop);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		call = (*forLoop)._kind_6.sons->data[(NI)(T7_ - ((NI) 2))];
		{
			NI T10_;
			T10_ = (NI)0;
			T10_ = len__P89cqdlERShb9alU3iC0yj8wast(call);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI) 2) < T10_)) goto LA11_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c.c).graph).config, (*forLoop).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_785), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_786, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		LA11_: ;
		semForObjectFields__QePBJ9bHaUde9cnkvf6xqUYQ(c, (*typ)._kind_6.sons->data[((NI) 0)], forLoop, father);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		caseStmt = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97), (*forLoop).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		access = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), (*forLoop).info, ((NI) 2));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*access)._kind_6.sons->data[((NI) 0)] = (*call)._kind_6.sons->data[((NI) 1)];
		T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T13_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig((*(*typ)._kind_6.sons->data[((NI) 0)])._kind_4.sym, (*forLoop).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*access)._kind_6.sons->data[((NI) 1)] = T13_;
		T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T14_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c.c, access, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(caseStmt, T14_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
					NI T18_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
					NI T22_;
					if (!(i_2 < colontmp_)) goto LA17;
					i = i_2;
					branch = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*typ)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T18_ = (NI)0;
					T18_ = len__P89cqdlERShb9alU3iC0yj8wast(branch);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T19_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T19_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*forLoop).info);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*branch)._kind_6.sons->data[(NI)(T18_ - ((NI) 1))] = T19_;
					T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T20_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*typ)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T21_ = T20_;
					T22_ = (NI)0;
					T22_ = len__P89cqdlERShb9alU3iC0yj8wast(branch);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					semForObjectFields__QePBJ9bHaUde9cnkvf6xqUYQ(c, T21_, forLoop, (*branch)._kind_6.sons->data[(NI)(T22_ - ((NI) 1))]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__P8dDSotTW25BkfbyspojGg(caseStmt, branch);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI) 1);
				} LA17: ;
			}
		}
		add__P8dDSotTW25BkfbyspojGg(father, caseStmt);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t;
			t = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_4 = ((NI) 0);
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA27;
						i_3 = i_4;
						t = (*typ)._kind_6.sons->data[i_3];
						semForObjectFields__QePBJ9bHaUde9cnkvf6xqUYQ(c, t, forLoop, father);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_4 += ((NI) 1);
					} LA27: ;
				}
			}
		}
	}
	break;
	default:
	{
		illFormedAstLocal__aOnJJ9cXkOooTyUuLmnc09bw_2(typ, (*(*c.c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semForFields__7e8kUc3a9a4gEAcnG7wUcyQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* trueSymbol;
	tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA T1_;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* stmts;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
	NI T12_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tupleTypeA;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96), (*n).info, ((NI) 2));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)(&T1_), sizeof(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA));
	T1_.counter = (*(*(*c).graph).systemModule)._kind_3.tab.counter;
	T1_.data = (*(*(*c).graph).systemModule)._kind_3.tab.data;
	T2_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T2_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_775));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	trueSymbol = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ(T1_, T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T7_;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T8_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T9_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		if (!(trueSymbol == NIM_NIL)) goto LA5_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_776), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_777, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T7_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_775));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T8_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T8_ = T7_;
		T9_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T9_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		trueSymbol = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0), T8_, T9_, (*n).info, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*trueSymbol).typ = T10_;
	}
	LA5_: ;
	T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T11_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(trueSymbol, (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_6.sons->data[((NI) 0)] = T11_;
	stmts = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_6.sons->data[((NI) 1)] = stmts;
	T12_ = (NI)0;
	T12_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	call = (*n)._kind_6.sons->data[(NI)(T12_ - ((NI) 2))];
	{
		NI T15_;
		NI T16_;
		T15_ = (NI)0;
		T15_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T16_ = (NI)0;
		T16_ = len__P89cqdlERShb9alU3iC0yj8wast(call);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(((NI)(T15_ - ((NI) 2)) == (NI)((NI)(T16_ - ((NI) 1)) + (m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 129)))))) goto LA17_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_546), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_779, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA17_: ;
	tupleTypeA = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*call)._kind_6.sons->data[((NI) 1)]).typ, IL64(49785886514128912));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((393216 &((NU64)1<<((NU)((*tupleTypeA).kind)&63U)))!=0))) goto LA21_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_780), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_781, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	LA21_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(call);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tupleTypeB;
				if (!(i_2 < colontmp_)) goto LA25;
				i = i_2;
				tupleTypeB = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*call)._kind_6.sons->data[i]).typ, IL64(49785886514128912));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T28_;
					T28_ = (NIM_BOOL)0;
					T28_ = sameType__3isNyHKb0U1OCnClmflXSg(tupleTypeA, tupleTypeB, 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!!(T28_)) goto LA29_;
					typeMismatch__1xxyFIws27lai2cG4n31Ow((*(*c).graph).config, (*(*call)._kind_6.sons->data[i]).info, tupleTypeA, tupleTypeB);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA29_: ;
				i_2 += ((NI) 1);
			} LA25: ;
		}
	}
	(*(*c).p).nestedLoopCounter += ((NI) 1);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loopBody;
		NI T35_;
		if (!((*tupleTypeA).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA33_;
		T35_ = (NI)0;
		T35_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		loopBody = (*n)._kind_6.sons->data[(NI)(T35_ - ((NI) 1))];
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__5mJADrRYkP3r9auuiuDZN9cQast(tupleTypeA);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T39_;
					tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA fc;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T40_;
					if (!(i_4 < colontmp__2)) goto LA38;
					i_3 = i_4;
					T39_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
					T39_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					nimZeroMem((void*)(&fc), sizeof(tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA));
					fc.tupleType = tupleTypeA;
					fc.tupleIndex = i_3;
					fc.c = c;
					fc.replaceByFieldName = (m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 129));
					body = instFieldLoopBody__NWigU6dr5apz5g827GjO4w((&fc), loopBody, n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*c).inUnrolledContext += ((NI) 1);
					T40_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T40_ = semStmt__vJZwz9bfROKrfrtM50y74CQ_4(c, body, 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__P8dDSotTW25BkfbyspojGg(stmts, T40_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*c).inUnrolledContext -= ((NI) 1);
					closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_4 += ((NI) 1);
				} LA38: ;
			}
		}
	}
	goto LA31_;
	LA33_: ;
	{
		tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw fc_2;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		nimZeroMem((void*)(&fc_2), sizeof(tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw));
		fc_2.m = m;
		fc_2.c = c;
		t = tupleTypeA;
		{
			while (1) {
				if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA43;
				semForObjectFields__QePBJ9bHaUde9cnkvf6xqUYQ(fc_2, (*t).n, n, stmts);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!((*t).sons->data[((NI) 0)] == NIM_NIL)) goto LA46_;
					goto LA42;
				}
				LA46_: ;
				t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(36275087638268176));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA43: ;
		} LA42: ;
	}
	LA31_: ;
	(*(*c).p).nestedLoopCounter -= ((NI) 1);
	{
		NIM_BOOL T50_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T53_;
		T50_ = (NIM_BOOL)0;
		T50_ = containsNode__3PkUvehQ5keciM9cue9ayMTw(stmts, TM__rF9caJawfOjYTjsgLVUSGFA_787);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T50_) goto LA51_;
		b = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T53_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T53_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(b, T53_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(stmts, b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA48_;
	LA51_: ;
	{
		result = stmts;
	}
	LA48_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isClosureIterator__EhCVbB6PynSh7XFAFVMiJA_3ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
	if (!(T2_)) goto LA3_;
	T2_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, implicitIterator__p09bRKOzs8qJ4GcAQ9czOv9bQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, NimStringDesc* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*arg).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T1_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, it);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T1_, (*arg).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		T5_ = (NIM_BOOL)0;
		T5_ = !(((*arg).typ == NIM_NIL));
		if (!(T5_)) goto LA6_;
		T5_ = ((IL64(140737496743936) &((NU64)1<<((NU)((*(*arg).typ).kind)&63U)))!=0);
		LA6_: ;
		if (!T5_) goto LA7_;
		T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T9_ = newDeref__RzKgK8tcIIFHt7HBTQVoYQlowerings(arg);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T9_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA3_;
	LA7_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, arg);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	result = semExprNoDeref__vJZwz9bfROKrfrtM50y74CQ_35(c, result, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semFor__vJZwz9bfROKrfrtM50y74CQ_33)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T9_;
	NI T10_;
	NI T11_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
	NI T13_;
	NIM_BOOL isCallExpr;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 3), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(((*c).features &(1U<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 7))&15U)))!=0)) goto LA3_;
		result = handleForLoopMacro__vJZwz9bfROKrfrtM50y74CQ_34(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((result == NIM_NIL))) goto LA7_;
			goto BeforeRet_;
		}
		LA7_: ;
	}
	LA3_: ;
	T9_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T9_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = n;
	T10_ = (NI)0;
	T10_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T11_ = (NI)0;
	T11_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T12_ = semExprNoDeref__vJZwz9bfROKrfrtM50y74CQ_35(c, (*n)._kind_6.sons->data[(NI)(T11_ - ((NI) 2))], 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[(NI)(T10_ - ((NI) 2))] = T12_;
	T13_ = (NI)0;
	T13_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	call = (*n)._kind_6.sons->data[(NI)(T13_ - ((NI) 2))];
	{
		NIM_BOOL T16_;
		NI T20_;
		T16_ = (NIM_BOOL)0;
		T16_ = ((*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126));
		if (!(T16_)) goto LA17_;
		T16_ = isTrivalStmtExpr__OiccTa3ruRNl9anoSqZh2Sg_7(call);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA17_: ;
		if (!T16_) goto LA18_;
		call = lastSon__UPSW0jLTX5qJL51YMUAHgw(call);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T20_ = (NI)0;
		T20_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[(NI)(T20_ - ((NI) 2))] = call;
	}
	LA18_: ;
	isCallExpr = ((*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
	{
		NIM_BOOL T23_;
		NIM_BOOL T24_;
		T23_ = (NIM_BOOL)0;
		T24_ = (NIM_BOOL)0;
		T24_ = isCallExpr;
		if (!(T24_)) goto LA25_;
		T24_ = ((*(*call)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		LA25_: ;
		T23_ = T24_;
		if (!(T23_)) goto LA26_;
		T23_ = ((*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 128) || (*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 129) || (*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 130));
		LA26_: ;
		if (!T23_) goto LA27_;
		{
			if (!((*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 130))) goto LA31_;
			result = semForVars__vJZwz9bfROKrfrtM50y74CQ_36(c, n, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 95));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA29_;
		LA31_: ;
		{
			result = semForFields__7e8kUc3a9a4gEAcnG7wUcyQ_2(c, n, (*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA29_: ;
	}
	goto LA21_;
	LA27_: ;
	{
		NIM_BOOL T35_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T37_;
		T35_ = (NIM_BOOL)0;
		T35_ = isCallExpr;
		if (!(T35_)) goto LA36_;
		T37_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T37_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*call)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T35_ = isClosureIterator__EhCVbB6PynSh7XFAFVMiJA_3ast(T37_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA36_: ;
		if (!T35_) goto LA38_;
		result = semForVars__vJZwz9bfROKrfrtM50y74CQ_36(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA21_;
	LA38_: ;
	{
		NIM_BOOL T41_;
		NIM_BOOL T42_;
		T41_ = (NIM_BOOL)0;
		T42_ = (NIM_BOOL)0;
		T42_ = !(isCallExpr);
		if (T42_) goto LA43_;
		T42_ = !(((*(*call)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		LA43_: ;
		T41_ = T42_;
		if (T41_) goto LA44_;
		T41_ = !(((*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15)));
		LA44_: ;
		if (!T41_) goto LA45_;
		{
			NI T49_;
			NI T52_;
			NI T53_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T54_;
			T49_ = (NI)0;
			T49_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T49_ == ((NI) 3))) goto LA50_;
			T52_ = (NI)0;
			T52_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T53_ = (NI)0;
			T53_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T54_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T54_ = implicitIterator__p09bRKOzs8qJ4GcAQ9czOv9bQ(c, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_788), (*n)._kind_6.sons->data[(NI)(T53_ - ((NI) 2))]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[(NI)(T52_ - ((NI) 2))] = T54_;
		}
		goto LA47_;
		LA50_: ;
		{
			NI T56_;
			NI T59_;
			NI T60_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T61_;
			T56_ = (NI)0;
			T56_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T56_ == ((NI) 4))) goto LA57_;
			T59_ = (NI)0;
			T59_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T60_ = (NI)0;
			T60_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T61_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T61_ = implicitIterator__p09bRKOzs8qJ4GcAQ9czOv9bQ(c, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_789), (*n)._kind_6.sons->data[(NI)(T60_ - ((NI) 2))]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[(NI)(T59_ - ((NI) 2))] = T61_;
		}
		goto LA47_;
		LA57_: ;
		{
			NI T63_;
			T63_ = (NI)0;
			T63_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[(NI)(T63_ - ((NI) 2))]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_790), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_791, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA47_: ;
		result = semForVars__vJZwz9bfROKrfrtM50y74CQ_36(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA21_;
	LA45_: ;
	{
		result = semForVars__vJZwz9bfROKrfrtM50y74CQ_36(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA21_: ;
	{
		NI T67_;
		T67_ = (NI)0;
		T67_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!((*(*n)._kind_6.sons->data[(NI)(T67_ - ((NI) 1))]).typ == (*c).enforceVoidContext)) goto LA68_;
		(*result).typ = (*c).enforceVoidContext;
	}
	goto LA65_;
	LA68_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T73_;
		if (!((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 2))&31U)))!=0)) goto LA71_;
		T73_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T73_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = (*T73_).typ;
	}
	goto LA65_;
	LA71_: ;
	LA65_: ;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleCaseStmtMacro__vJZwz9bfROKrfrtM50y74CQ_38)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* toResolve;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	tySequence__0dpGN6F4ocevqUQGsaf41w* errors;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA r;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	toResolve = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T1_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_792));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T1_, (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(toResolve, T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(toResolve, (*n)._kind_6.sons->data[((NI) 0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	errors = (tySequence__0dpGN6F4ocevqUQGsaf41w*)0;
	nimZeroMem((void*)(&r), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	resolveOverloads__deoiEhU508ju9btmg2AXeFw(c, toResolve, toResolve, 393216, 0, (&errors), NIM_FALSE, (&r));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* match;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* toExpand;
		if (!(r.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1))) goto LA5_;
		match = r.calleeSym;
		markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*(*n)._kind_6.sons->data[((NI) 0)]).info, match);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*r.call)._kind_6.sons->data[((NI) 1)] = n;
		toExpand = semResolvedCall__tI9alV34Tv2MGPKAeQ6xsmw(c, (&r), r.call, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		switch ((*match).kind) {
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
		{
			result = semMacroExpr__GFpnqBAgGBu4p8rc0WsOTw(c, toExpand, toExpand, match, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
		{
			result = semTemplateExpr__NYxU2DkHA0Gt5fsL9bYZdog(c, toExpand, match, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		default:
		{
			result = NIM_NIL;
		}
		break;
		}
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCase__vJZwz9bfROKrfrtM50y74CQ_37)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	NIM_BOOL chckCovered;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA covered;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
	NIM_BOOL hasElse;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* caseTyp;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	pushCaseContext__Hz1YayV9c9aSkUcvf7h2lHXQ(c, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 0)] = T2_;
	chckCovered = NIM_FALSE;
	covered = toInt128__161i7kexvUAISxPtGBRWYw(((NI) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) newObj((&NTI__AgIT5feFR9a9aoVjv9cx2rOtg_), sizeof(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ));
	(*T3_).Sup.Sup.m_type = (&NTI__v9ae2Dpu13OW2ZJ2U9bNMd9cQ_);
	(*T3_).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6);
	typ = T3_;
	hasElse = NIM_FALSE;
	caseTyp = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36275087632017424));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch ((*caseTyp).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43):
	{
		chckCovered = NIM_TRUE;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
			T8_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T8_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*caseTyp).sons->data[((NI) 0)], IL64(36134350135273744));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((IL64(16559246426118) &((NU64)1<<((NU)((*T8_).kind)&63U)))!=0)) goto LA9_;
			chckCovered = NIM_TRUE;
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
	{
	}
	break;
	default:
	{
		popCaseContext__9aY89b9aR25iMJ8fPdM84CvQg_3(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(((*c).features &(1U<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 8))&15U)))!=0)) goto LA15_;
			result = handleCaseStmtMacro__vJZwz9bfROKrfrtM50y74CQ_38(c, n, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!((result == NIM_NIL))) goto LA19_;
				goto BeforeRet_;
			}
			LA19_: ;
		}
		LA15_: ;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_793), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_794, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	}
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
				if (!(i_2 < colontmp_)) goto LA23;
				i = i_2;
				setCaseContextIdx__jiOUhpYURJJFfrdMgAQxPQ(c, i);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				x = (*n)._kind_6.sons->data[i];
				switch ((*x).kind) {
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
				{
					NI last;
					NI T25_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
					checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(x, ((NI) 2), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					semCaseBranch__v9aNPEhC9bTKfOzSbulyV4jw(c, n, x, i, (&covered));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T25_ = (NI)0;
					T25_ = len__P89cqdlERShb9alU3iC0yj8wast(x);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					last = (NI)(T25_ - ((NI) 1));
					T26_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T26_ = semExprBranchScope__7YxUILpPxooC5qqa89a54dw_42(c, (*x)._kind_6.sons->data[last]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*x)._kind_6.sons->data[last] = T26_;
					typ = commonType__wEK756YRi9c3lsyIxi9aFXSg(typ, (*x)._kind_6.sons->data[last]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
				{
					tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T28_;
					tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T29_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
					chckCovered = NIM_FALSE;
					checkSonsLen__EezdXeDvu4rB7fR84AJZgw(x, ((NI) 2), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T28_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
					T28_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T29_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
					T29_ = c;
					T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T30_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*x)._kind_6.sons->data[((NI) 0)], 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T31_ = forceBool__7YxUILpPxooC5qqa89a54dw_4(T29_, T30_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*x)._kind_6.sons->data[((NI) 0)] = T31_;
					T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T32_ = semExprBranch__vJZwz9bfROKrfrtM50y74CQ_28(c, (*x)._kind_6.sons->data[((NI) 1)], 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*x)._kind_6.sons->data[((NI) 1)] = T32_;
					typ = commonType__wEK756YRi9c3lsyIxi9aFXSg(typ, (*x)._kind_6.sons->data[((NI) 1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T34_;
					checkSonsLen__EezdXeDvu4rB7fR84AJZgw(x, ((NI) 1), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T34_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T34_ = semExprBranchScope__7YxUILpPxooC5qqa89a54dw_42(c, (*x)._kind_6.sons->data[((NI) 0)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*x)._kind_6.sons->data[((NI) 0)] = T34_;
					typ = commonType__wEK756YRi9c3lsyIxi9aFXSg(typ, (*x)._kind_6.sons->data[((NI) 0)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NIM_BOOL T37_;
						NIM_BOOL T38_;
						tyObject_Int128__9a9axPfb75jdWY25AamJewkA T40_;
						T37_ = (NIM_BOOL)0;
						T38_ = (NIM_BOOL)0;
						T38_ = chckCovered;
						if (!(T38_)) goto LA39_;
						T40_ = toCover__VyVU6SDhkTqKxSsQUZSePg(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T38_ = eqeq___7c5Zw7H31uJfWmmhZe9aEqw(covered, T40_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						LA39_: ;
						T37_ = T38_;
						if (T37_) goto LA41_;
						T37_ = hasElse;
						LA41_: ;
						if (!T37_) goto LA42_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*x).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 37), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_795, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA42_: ;
					hasElse = NIM_TRUE;
					chckCovered = NIM_FALSE;
				}
				break;
				default:
				{
					illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(x, (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				break;
				}
				i_2 += ((NI) 1);
			} LA23: ;
		}
	}
	{
		if (!chckCovered) goto LA47_;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T51_;
			NIM_BOOL T52_;
			T51_ = toCover__VyVU6SDhkTqKxSsQUZSePg(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T52_ = (NIM_BOOL)0;
			T52_ = eqeq___7c5Zw7H31uJfWmmhZe9aEqw(covered, T51_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T52_) goto LA53_;
			hasElse = NIM_TRUE;
		}
		goto LA49_;
		LA53_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T56_;
			tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T59_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T60_;
			NimStringDesc* T61_;
			NimStringDesc* T62_;
			T56_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T56_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350136322320));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((16388 &((NU64)1<<((NU)((*T56_).kind)&63U)))!=0)) goto LA57_;
			T59_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
			T59_ = (*(*c).graph).config;
			T60_ = (*n).info;
			T61_ = (NimStringDesc*)0;
			T61_ = formatMissingEnums__zUJc3JNayUkQ8i11jOQJeQ(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T62_ = (NimStringDesc*)0;
			T62_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_415), T61_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew(T59_, T60_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T62_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_796, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA49_;
		LA57_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_420), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_797, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA49_: ;
	}
	LA47_: ;
	popCaseContext__9aY89b9aR25iMJ8fPdM84CvQg_3(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T66_;
		NIM_BOOL T67_;
		NIM_BOOL T70_;
		T66_ = (NIM_BOOL)0;
		T67_ = (NIM_BOOL)0;
		T67_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast(typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (T67_) goto LA68_;
		T67_ = ((96 &((NU64)1<<((NU)((*typ).kind)&63U)))!=0);
		LA68_: ;
		T66_ = T67_;
		if (T66_) goto LA69_;
		T70_ = (NIM_BOOL)0;
		T70_ = !(hasElse);
		if (!(T70_)) goto LA71_;
		T70_ = !(((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 2))&31U)))!=0));
		LA71_: ;
		T66_ = T70_;
		LA69_: ;
		if (!T66_) goto LA72_;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T77_;
					if (!(i_4 < colontmp__2)) goto LA76;
					i_3 = i_4;
					T77_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T77_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*n)._kind_6.sons->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					discardCheck__tp7yV6CFb40nVuGT1TBFpw(c, T77_, flags);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_4 += ((NI) 1);
				} LA76: ;
			}
		}
		{
			if (!(typ == (*c).enforceVoidContext)) goto LA80_;
			(*result).typ = (*c).enforceVoidContext;
		}
		LA80_: ;
	}
	goto LA64_;
	LA72_: ;
	{
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_6 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					NI j;
					NI T86_;
					if (!(i_6 < colontmp__3)) goto LA85;
					i_5 = i_6;
					it = (*n)._kind_6.sons->data[i_5];
					T86_ = (NI)0;
					T86_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j = (NI)(T86_ - ((NI) 1));
					{
						NIM_BOOL T89_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T92_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T93_;
						T89_ = (NIM_BOOL)0;
						T89_ = endsInNoReturn__OiccTa3ruRNl9anoSqZh2Sg_6((*it)._kind_6.sons->data[j]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!!(T89_)) goto LA90_;
						T92_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T92_ = (*it)._kind_6.sons->data[j];
						T93_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T93_ = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, typ, T92_, (*(*it)._kind_6.sons->data[j]).info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*it)._kind_6.sons->data[j] = T93_;
					}
					LA90_: ;
					i_6 += ((NI) 1);
				} LA85: ;
			}
		}
		(*result).typ = typ;
	}
	LA64_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semReturn__7YxUILpPxooC5qqa89a54dw_50)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 1), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((225280 &(1U<<((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__EhCVbB6PynSh7XFAFVMiJA_3ast((*(*(*c).p).owner).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA11_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
				if (!!(((*(*c).p).resultSym == NIM_NIL))) goto LA15_;
				a = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T17_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*(*c).p).resultSym);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(a, T17_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(a, (*n)._kind_6.sons->data[((NI) 0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T18_ = semAsgn__mkzYzG9avRzHz5NmIFyZdRg(c, a, ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 0));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 0)] = T18_;
				{
					NIM_BOOL T21_;
					T21_ = (NIM_BOOL)0;
					T21_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					if (!(T21_)) goto LA22_;
					T21_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)])._kind_4.sym == (*(*c).p).resultSym);
					LA22_: ;
					if (!T21_) goto LA23_;
					(*n)._kind_6.sons->data[((NI) 0)] = (*(*c).graph).emptyNode;
				}
				LA23_: ;
			}
			goto LA13_;
			LA15_: ;
			{
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_798), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_799, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA13_: ;
		}
		LA11_: ;
	}
	goto LA1_;
	LA7_: ;
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_800), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_801, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semUsing__7YxUILpPxooC5qqa89a54dw_51)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = (*(*c).graph).emptyNode;
	{
		NIM_BOOL T3_;
		NimStringDesc* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T3_)) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_802));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_803, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*(*(*c).graph).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 14))) goto LA13_;
						suggestStmt__wb6KhAx6bZ5NV37kY4bXJw_4(c, a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA13_: ;
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA17_;
						goto LA10;
					}
					LA17_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102)))) goto LA21_;
						illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(a, (*(*c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA21_: ;
					checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(a, ((NI) 3), (*(*c).graph).config);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NI T25_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
						NI T28_;
						T25_ = (NI)0;
						T25_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T25_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA26_;
						T28_ = (NI)0;
						T28_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						typ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, (*a)._kind_6.sons->data[(NI)(T28_ - ((NI) 2))], NIM_NIL);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							NI j;
							NI colontmp__2;
							NI T30_;
							NI i_3;
							j = (NI)0;
							colontmp__2 = (NI)0;
							T30_ = (NI)0;
							T30_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							colontmp__2 = (NI)(T30_ - ((NI) 2));
							i_3 = ((NI) 0);
							{
								while (1) {
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v;
									NIM_BOOL T37_;
									if (!(i_3 < colontmp__2)) goto LA32;
									j = i_3;
									v = semIdentDef__L2b79bZBCkiyCHeJkLWxPlQ(c, (*a)._kind_6.sons->data[j], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									{
										if (!!(((49152 & (*(*(*c).graph).config).globalOptions) == 0))) goto LA35_;
										nep1CheckDefImpl__6AhukMkhQSFShlHi9bHQBWw((*(*c).graph).config, (*v).info, v, (*v).kind);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									LA35_: ;
									(*v).typ = typ;
									T37_ = (NIM_BOOL)0;
									T37_ = strTableIncl__4C9ciVlXutN6a0CSSeSkVDA((&(*c).signatures), v, NIM_FALSE);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									i_3 += ((NI) 1);
								} LA32: ;
							}
						}
					}
					goto LA23_;
					LA26_: ;
					{
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_804), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_805, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA23_: ;
					def = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					{
						NI T41_;
						T41_ = (NI)0;
						T41_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T41_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA42_;
						liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_806), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_807, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA42_: ;
				} LA10: ;
				i_2 += ((NI) 1);
			} LA9: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsm__7YxUILpPxooC5qqa89a54dw_52)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_CHAR marker;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	marker = pragmaAsm__BMqa01f86BatswrKktaxCw(c, (*n)._kind_6.sons->data[((NI) 0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!((NU8)(marker) == (NU8)(0))) goto LA3_;
		marker = 96;
	}
	LA3_: ;
	result = semAsmOrEmit__7on6juYQ5yDeHojpmzlBFg(c, n, marker);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semYieldVarResult__RmzIhIZBxhW1YDiKMLOGcQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* restype) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(restype, IL64(70368744179728));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20)) & 63);
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59))) goto LA4_;
			(*n)._kind_6.sons->data[((NI) 0)] = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)];
		}
		LA4_: ;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = takeImplicitAddr__x3K9b1cKzX9bI8nPJA1N22wQ(c, (*n)._kind_6.sons->data[((NI) 0)], ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T6_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* e;
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					e = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[i], IL64(70368744179728));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tupleConstr;
						if (!((IL64(140737496743936) &((NU64)1<<((NU)((*e).kind)&63U)))!=0)) goto LA13_;
						(*e).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20)) & 63);
						{
							if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59))) goto LA17_;
							tupleConstr = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)];
						}
						goto LA15_;
						LA17_: ;
						{
							tupleConstr = (*n)._kind_6.sons->data[((NI) 0)];
						}
						LA15_: ;
						{
							if (!((*tupleConstr).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*tupleConstr).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160))) goto LA22_;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
								if (!((*(*tupleConstr)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA26_;
								T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T28_ = takeImplicitAddr__x3K9b1cKzX9bI8nPJA1N22wQ(c, (*(*tupleConstr)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], ((*e).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47)));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*(*tupleConstr)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)] = T28_;
							}
							goto LA24_;
							LA26_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
								T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T30_ = takeImplicitAddr__x3K9b1cKzX9bI8nPJA1N22wQ(c, (*tupleConstr)._kind_6.sons->data[i], ((*e).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47)));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*tupleConstr)._kind_6.sons->data[i] = T30_;
							}
							LA24_: ;
						}
						goto LA20_;
						LA22_: ;
						{
							liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 4), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_812), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_813, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA20_: ;
					}
					LA13_: ;
					i_2 += ((NI) 1);
				} LA10: ;
			}
		}
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semYield__7YxUILpPxooC5qqa89a54dw_53)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 1), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*c).p).owner == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15)));
		LA4_: ;
		if (!T3_) goto LA5_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_808), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_809, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* iterType;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* restype;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA8_;
		T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T10_ = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T10_;
		iterType = (*(*(*c).p).owner).typ;
		restype = (*iterType).sons->data[((NI) 0)];
		{
			if (!!((restype == NIM_NIL))) goto LA13_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
				if (!!(((*restype).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6)))) goto LA17_;
				T19_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T19_ = fitNode__3gQ9buvlr7tPLmWwfmGV7fw(c, restype, (*n)._kind_6.sons->data[((NI) 0)], (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 0)] = T19_;
			}
			LA17_: ;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).typ == NIM_NIL)) goto LA22_;
				internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_810), TM__rF9caJawfOjYTjsgLVUSGFA_811);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA22_: ;
			{
				NIM_BOOL T26_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* inferred;
				T26_ = (NIM_BOOL)0;
				T26_ = isMetaType__aVxWxXLmf103vwE8uZ9cXRw(restype);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T26_)) goto LA27_;
				T26_ = !(((*restype).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)));
				LA27_: ;
				if (!T26_) goto LA28_;
				inferred = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
				(*iterType).sons->data[((NI) 0)] = inferred;
				{
					if (!!(((*(*c).p).resultSym == NIM_NIL))) goto LA32_;
					(*(*(*c).p).resultSym).typ = inferred;
				}
				LA32_: ;
			}
			LA28_: ;
			semYieldVarResult__RmzIhIZBxhW1YDiKMLOGcQ(c, n, restype);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA11_;
		LA13_: ;
		{
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_814), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_815, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA11_: ;
	}
	goto LA1_;
	LA8_: ;
	{
		if (!!(((*(*(*(*c).p).owner).typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA36_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_816), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_817, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA36_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIterator__7YxUILpPxooC5qqa89a54dw_54)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T5_;
		if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		T5_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T5_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).owner = T5_;
		transitionRoutineSymKind__IAW6i9bfWpSsueZudnBZzHQ((*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym, ((tyEnum_TSymKind__uwRDzlpaGW5WJzgBn4R8Eg) 15));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	result = semProcAux__HtuGXsziiAueY6wARBVVAA(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15), TM__rF9caJawfOjYTjsgLVUSGFA_819, ((tyEnum_TProcCompilationSteps__2LY1MARGn5z4Y5kU8eJFMg) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((*result).kind == (*n).kind))) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	s = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	t = (*s).typ;
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*t).sons->data[((NI) 0)] == NIM_NIL);
		if (!(T12_)) goto LA13_;
		T12_ = !(((*(*s).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9)));
		LA13_: ;
		if (!T12_) goto LA14_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_820), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_821, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA14_: ;
	{
		if (!((*(*s).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9))) goto LA18_;
		(*(*s).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 12)) & 63);
	}
	goto LA16_;
	LA18_: ;
	{
		(*(*s).typ).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 5);
	}
	LA16_: ;
	{
		NIM_BOOL T23_;
		NimStringDesc* T27_;
		T23_ = (NIM_BOOL)0;
		T23_ = ((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		if (!(T23_)) goto LA24_;
		T23_ = ((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
		LA24_: ;
		if (!T23_) goto LA25_;
		T27_ = (NimStringDesc*)0;
		T27_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_352), (*(*s).name).s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T27_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_822, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA25_: ;
	{
		NIM_BOOL T30_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T34_;
		T30_ = (NIM_BOOL)0;
		T30_ = (((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0);
		if (!(T30_)) goto LA31_;
		T30_ = !(((*result).typ == NIM_NIL));
		LA31_: ;
		if (!T30_) goto LA32_;
		T34_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T34_ = makeVarType__45x39aIZGLTdqqo59b4NHvLw(c, (*result).typ, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T34_;
		(*(*result).typ).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9);
	}
	LA32_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProc__7YxUILpPxooC5qqa89a54dw_55)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = semProcAux__HtuGXsziiAueY6wARBVVAA(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12), TM__rF9caJawfOjYTjsgLVUSGFA_823, ((tyEnum_TProcCompilationSteps__2LY1MARGn5z4Y5kU8eJFMg) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semFunc__7YxUILpPxooC5qqa89a54dw_56)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = semProcAux__HtuGXsziiAueY6wARBVVAA(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13), TM__rF9caJawfOjYTjsgLVUSGFA_823, ((tyEnum_TProcCompilationSteps__2LY1MARGn5z4Y5kU8eJFMg) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMethod__7YxUILpPxooC5qqa89a54dw_57)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* disp;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NimStringDesc* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T3_)) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_824));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_825, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	result = semProcAux__HtuGXsziiAueY6wARBVVAA(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14), TM__rF9caJawfOjYTjsgLVUSGFA_826, ((tyEnum_TProcCompilationSteps__2LY1MARGn5z4Y5kU8eJFMg) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI T9_;
		T9_ = (NI)0;
		T9_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T9_ <= ((NI) 0))) goto LA10_;
		goto BeforeRet_;
	}
	LA10_: ;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80)))) goto LA14_;
		goto BeforeRet_;
	}
	LA14_: ;
	s = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	disp = getDispatcher__L29cJgZ3WUDC7PfTSciv49cw(s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T18_;
		NIM_BOOL T19_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ret;
		T18_ = (NIM_BOOL)0;
		T19_ = (NIM_BOOL)0;
		T19_ = !((disp == NIM_NIL));
		if (!(T19_)) goto LA20_;
		T19_ = !(((*(*disp).typ).sons->data[((NI) 0)] == NIM_NIL));
		LA20_: ;
		T18_ = T19_;
		if (!(T18_)) goto LA21_;
		T18_ = ((*(*(*disp).typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
		LA21_: ;
		if (!T18_) goto LA22_;
		ret = (*(*s).typ).sons->data[((NI) 0)];
		(*(*disp).typ).sons->data[((NI) 0)] = ret;
		{
			if (!((*(*(*disp).ast)._kind_6.sons->data[((NI) 7)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA26_;
			{
				NIM_BOOL T30_;
				T30_ = (NIM_BOOL)0;
				T30_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast(ret);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T30_) goto LA31_;
				(*(*disp).ast)._kind_6.sons->data[((NI) 7)] = (*(*c).graph).emptyNode;
			}
			goto LA28_;
			LA31_: ;
			{
				(*(*(*(*disp).ast)._kind_6.sons->data[((NI) 7)])._kind_4.sym).typ = ret;
			}
			LA28_: ;
		}
		LA26_: ;
	}
	LA22_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConverterDef__7YxUILpPxooC5qqa89a54dw_58)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NimStringDesc* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T3_)) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_827));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_828, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 7), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = semProcAux__HtuGXsziiAueY6wARBVVAA(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16), TM__rF9caJawfOjYTjsgLVUSGFA_823, ((tyEnum_TProcCompilationSteps__2LY1MARGn5z4Y5kU8eJFMg) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI T9_;
		T9_ = (NI)0;
		T9_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T9_ <= ((NI) 0))) goto LA10_;
		goto BeforeRet_;
	}
	LA10_: ;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81)))) goto LA14_;
		goto BeforeRet_;
	}
	LA14_: ;
	s = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	t = (*s).typ;
	{
		NimStringDesc* T20_;
		if (!((*t).sons->data[((NI) 0)] == NIM_NIL)) goto LA18_;
		T20_ = (NimStringDesc*)0;
		T20_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_829), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_827));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T20_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_830, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA18_: ;
	{
		NI T23_;
		T23_ = (NI)0;
		T23_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!((T23_ == ((NI) 2)))) goto LA24_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_831), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_832, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA24_: ;
	addConverter__ymX9afTGg7YU9b9aXV3gliVtA(c, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMacroDef__7YxUILpPxooC5qqa89a54dw_59)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NIM_BOOL allUntyped;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 7), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = semProcAux__HtuGXsziiAueY6wARBVVAA(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17), TM__rF9caJawfOjYTjsgLVUSGFA_833, ((tyEnum_TProcCompilationSteps__2LY1MARGn5z4Y5kU8eJFMg) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ <= ((NI) 0))) goto LA4_;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82)))) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	s = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	t = (*s).typ;
	allUntyped = NIM_TRUE;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast((*t).n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
				if (!(i_2 < colontmp_)) goto LA12;
				i = i_2;
				param = (*(*(*t).n)._kind_6.sons->data[i])._kind_4.sym;
				{
					if (!!(((*(*param).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6)))) goto LA15_;
					allUntyped = NIM_FALSE;
				}
				LA15_: ;
				i_2 += ((NI) 1);
			} LA12: ;
		}
	}
	{
		if (!allUntyped) goto LA19_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9)) & 63);
	}
	LA19_: ;
	{
		NimStringDesc* T25_;
		if (!((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA23_;
		T25_ = (NimStringDesc*)0;
		T25_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_352), (*(*s).name).s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T25_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_834, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA23_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, incMod__AE9a7ubTroOu3uw1tThDp7g)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* includeStmtResult) {
	NI32 f;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	f = checkModuleName__fDy39b69bb9cFVEyPkMJp3GTg((*(*c).graph).config, it, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((f == ((NI32) -1)))) goto LA3_;
		{
			NIM_BOOL T7_;
			tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T10_;
			NimStringDesc* T11_;
			NimStringDesc* T12_;
			T7_ = (NIM_BOOL)0;
			T7_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*c).includedFiles), ((NI) (f)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T7_) goto LA8_;
			T10_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
			T10_ = (*(*c).graph).config;
			T11_ = (NimStringDesc*)0;
			T11_ = toMsgFilename__eX9aCxa5NfPq9alDDS1zYbvw((*(*c).graph).config, f);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T12_ = (NimStringDesc*)0;
			T12_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9), T11_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew(T10_, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T12_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_844, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA5_;
		LA8_: ;
		{
			tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T14_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
			T14_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
			T14_ = c;
			T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T15_ = (*(*c).graph).includeFileCallback((*c).graph, (*c).module, f);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T16_ = semStmt__vJZwz9bfROKrfrtM50y74CQ_4(T14_, T15_, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(includeStmtResult, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			excl__jENnK9c9bPE73pKmo2vYjpqg_2((&(*c).includedFiles), ((NI) (f)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA5_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalInclude__7YxUILpPxooC5qqa89a54dw_60)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(result, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* imp;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				imp = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				it = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T6_;
					NIM_BOOL T7_;
					NI T9_;
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T13_;
					NimStringDesc* T14_;
					T6_ = (NIM_BOOL)0;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29));
					if (!(T7_)) goto LA8_;
					T9_ = (NI)0;
					T9_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T7_ = (T9_ == ((NI) 3));
					LA8_: ;
					T6_ = T7_;
					if (!(T6_)) goto LA10_;
					T6_ = !(eqStrings((*(*(*it)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_840)));
					LA10_: ;
					if (!T6_) goto LA11_;
					T13_ = (*it).info;
					T14_ = (NimStringDesc*)0;
					T14_ = 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(T14_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_841));
appendString(T14_, (*(*(*it)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s);
appendString(T14_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_842));
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T13_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T14_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_843, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA11_: ;
				{
					NIM_BOOL T17_;
					NIM_BOOL T18_;
					NI T20_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sep;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dir;
					T17_ = (NIM_BOOL)0;
					T18_ = (NIM_BOOL)0;
					T18_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29));
					if (!(T18_)) goto LA19_;
					T20_ = (NI)0;
					T20_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T18_ = (T20_ == ((NI) 3));
					LA19_: ;
					T17_ = T18_;
					if (!(T17_)) goto LA21_;
					T17_ = ((*(*it)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41));
					LA21_: ;
					if (!T17_) goto LA22_;
					sep = (*it)._kind_6.sons->data[((NI) 0)];
					dir = (*it)._kind_6.sons->data[((NI) 1)];
					imp = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (*it).info);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__P8dDSotTW25BkfbyspojGg(imp, sep);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__P8dDSotTW25BkfbyspojGg(imp, dir);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					add__P8dDSotTW25BkfbyspojGg(imp, sep);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp__2;
						x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						colontmp__2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						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__P89cqdlERShb9alU3iC0yj8w_2ast(colontmp__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							i_4 = ((NI) 0);
							{
								while (1) {
									if (!(i_4 < colontmp__3)) goto LA27;
									i_3 = i_4;
									x = (*colontmp__2)._kind_6.sons->data[i_3];
									(*imp)._kind_6.sons->data[((NI) 2)] = x;
									incMod__AE9a7ubTroOu3uw1tThDp7g(c, n, imp, result);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									i_4 += ((NI) 1);
								} LA27: ;
							}
						}
					}
				}
				goto LA15_;
				LA22_: ;
				{
					incMod__AE9a7ubTroOu3uw1tThDp7g(c, n, it, result);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA15_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExport__7YxUILpPxooC5qqa89a54dw_61)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
				s = initOverloadIter__yTTeeqtnENsm0xyCro9a61w((&o), c, a);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T8_;
					NimStringDesc* T9_;
					NimStringDesc* T10_;
					if (!(s == NIM_NIL)) goto LA6_;
					T8_ = (*a).info;
					T9_ = (NimStringDesc*)0;
					T10_ = (NimStringDesc*)0;
					T10_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(a, 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T9_ = rawNewString((T10_ ? T10_->Sup.len : 0) + 15);
appendString(T9_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_846));
appendString(T9_, T10_);
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T8_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T9_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_847, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA4_;
				LA6_: ;
				{
					tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg ti;
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* it;
					if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6))) goto LA12_;
					strTableAdd__tyTgUybFIoow4CX2l5beug((&(*(*c).module)._kind_3.tab), s);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					nimZeroMem((void*)(&ti), sizeof(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg));
					it = initTabIter__Ag5U6LHpF7iSy3G6AzXM9cw((&ti), (*s)._kind_3.tab);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						while (1) {
							if (!!((it == NIM_NIL))) goto LA15;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
								if (!((43513792 &(1U<<((NU)((*it).kind)&31U)))!=0)) goto LA18_;
								strTableAdd__tyTgUybFIoow4CX2l5beug((&(*(*c).module)._kind_3.tab), it);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T20_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(it, (*a).info);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								add__P8dDSotTW25BkfbyspojGg(result, T20_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA18_: ;
							it = nextIter__Ag5U6LHpF7iSy3G6AzXM9cw_2((&ti), (*s)._kind_3.tab);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						} LA15: ;
					}
					markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA4_;
				LA12_: ;
				{
					{
						while (1) {
							if (!!((s == NIM_NIL))) goto LA23;
							{
								tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T28_;
								NimStringDesc* T29_;
								NimStringDesc* T30_;
								if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20))) goto LA26_;
								T28_ = (*a).info;
								T29_ = (NimStringDesc*)0;
								T30_ = (NimStringDesc*)0;
								T30_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(a, 0);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T29_ = rawNewString((T30_ ? T30_->Sup.len : 0) + 59);
appendString(T29_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_846));
appendString(T29_, T30_);
appendString(T29_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_848));
								liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T28_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T29_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_849, NIM_FALSE);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA26_: ;
							{
								NIM_BOOL T33_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
								T33_ = (NIM_BOOL)0;
								T33_ = ((43513792 &(1U<<((NU)((*s).kind)&31U)))!=0);
								if (!(T33_)) goto LA34_;
								T33_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0));
								LA34_: ;
								if (!T33_) goto LA35_;
								T37_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T37_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*a).info);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								add__P8dDSotTW25BkfbyspojGg(result, T37_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								strTableAdd__tyTgUybFIoow4CX2l5beug((&(*(*c).module)._kind_3.tab), s);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, s);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA35_: ;
							s = nextOverloadIter__yTTeeqtnENsm0xyCro9a61w_2((&o), c, a);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						} LA23: ;
					}
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExportExcept__7YxUILpPxooC5qqa89a54dw_62)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* moduleName;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg exceptSet;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* exported;
	tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg i;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	moduleName = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*moduleName).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T3_) goto LA4_;
		T3_ = !(((*(*moduleName)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)));
		LA4_: ;
		if (!T3_) goto LA5_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_851), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_852, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = n;
		goto BeforeRet_;
	}
	LA5_: ;
	nimZeroMem((void*)(&exceptSet), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	readExceptSet__t9cI0oYChx2XYqk1hhh0lvA(c, n, (&exceptSet));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	exported = (*moduleName)._kind_4.sym;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	strTableAdd__tyTgUybFIoow4CX2l5beug((&(*(*c).module)._kind_3.tab), exported);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)(&i), sizeof(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg));
	s = initTabIter__Ag5U6LHpF7iSy3G6AzXM9cw((&i), (*exported)._kind_3.tab);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		while (1) {
			if (!!((s == NIM_NIL))) goto LA8;
			{
				NIM_BOOL T11_;
				NIM_BOOL T12_;
				NIM_BOOL T14_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
				T11_ = (NIM_BOOL)0;
				T12_ = (NIM_BOOL)0;
				T12_ = ((43513792 &(1U<<((NU)((*s).kind)&31U)))!=0);
				if (!(T12_)) goto LA13_;
				T14_ = (NIM_BOOL)0;
				T14_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&exceptSet), (*(*s).name).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T12_ = !(T14_);
				LA13_: ;
				T11_ = T12_;
				if (!(T11_)) goto LA15_;
				T11_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0));
				LA15_: ;
				if (!T11_) goto LA16_;
				strTableAdd__tyTgUybFIoow4CX2l5beug((&(*(*c).module)._kind_3.tab), s);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T18_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(s, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(result, T18_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA16_: ;
			s = nextIter__Ag5U6LHpF7iSy3G6AzXM9cw_2((&i), (*exported)._kind_3.tab);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	markUsed__QlWTWY7567sCdiTkeUTTDA(c, (*n).info, exported);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setLine__eTuk9brfDSpx17jJ53NDUag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				setLine__eTuk9brfDSpx17jJ53NDUag((*n)._kind_6.sons->data[i], info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	(*n).info = info;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPragmaBlock__7YxUILpPxooC5qqa89a54dw_63)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmaList;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	pragmaList = (*n)._kind_6.sons->data[((NI) 0)];
	pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, NIM_NIL, pragmaList, TM__rF9caJawfOjYTjsgLVUSGFA_853, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n)._kind_6.sons->data[((NI) 1)] = T1_;
	result = n;
	(*result).typ = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(pragmaList);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T5_;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				T5_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
				T5_ = whichPragma__Pjztiiq9bHmTTxDuLd39cNRw((*pragmaList)._kind_6.sons->data[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				switch (T5_) {
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 122):
				{
					setLine__eTuk9brfDSpx17jJ53NDUag(result, (*(*pragmaList)._kind_6.sons->data[i]).info);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				break;
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 185):
				{
					(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 6)) & 31);
				}
				break;
				default:
				{
				}
				break;
				}
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStaticStmt__7YxUILpPxooC5qqa89a54dw_64)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	(*c).inStaticContext += ((NI) 1);
	T1_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T1_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	a = semStmt__vJZwz9bfROKrfrtM50y74CQ_4(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*c).inStaticContext -= ((NI) 1);
	(*n)._kind_6.sons->data[((NI) 0)] = a;
	evalStaticStmt__4ISne8kQ4QKaNjEY5dqxUg((*c).module, (*c).graph, a, (*(*c).p).owner);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114), (*n).info, ((NI) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_6.sons->data[((NI) 0)] = (*(*c).graph).emptyNode;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExpr__vJZwz9bfROKrfrtM50y74CQ_3)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		if (!((*(*(*c).graph).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 14))) goto LA3_;
		suggestExpr__wb6KhAx6bZ5NV37kY4bXJw(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7))&31U)))!=0)) goto LA7_;
		goto BeforeRet_;
	}
	LA7_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		tySet_tyEnum_TLookupFlag__ObWMY5GMSl1GiMcrKaAhKQ checks;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		{
			if (!((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 14))&31U)))!=0)) goto LA12_;
			checks = 10;
		}
		goto LA10_;
		LA12_: ;
		{
			if (!((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 15))&31U)))!=0)) goto LA15_;
			checks = 14;
		}
		goto LA10_;
		LA15_: ;
		{
			checks = 15;
		}
		LA10_: ;
		s = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag(c, n, checks);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*c).matchedConcept == NIM_NIL)) goto LA20_;
			semCaptureSym__h6aJJZj4uWFwM8eXN4VDAw(s, (*(*c).p).owner);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA20_: ;
		{
			if (!((126976 &(1U<<((NU)((*s).kind)&31U)))!=0)) goto LA24_;
			result = symChoice__ce08GbPIDAcM29cbr3lVUxg(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA28_;
				markIndirect__OGrPg9bGc5rou9aBRgLK606Qsemdata(c, (*result)._kind_4.sym);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA28_: ;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T34_;
				if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA32_;
				T34_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T34_ = makeVarType__45x39aIZGLTdqqo59b4NHvLw(c, (*result).typ, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).typ = T34_;
			}
			LA32_: ;
		}
		goto LA22_;
		LA24_: ;
		{
			result = semSym__20OKsvfFnNZXONk4IBzYgg(c, n, s, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA22_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = semSym__20OKsvfFnNZXONk4IBzYgg(c, n, (*n)._kind_4.sym, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T43_;
			if (!((*result).typ == NIM_NIL)) goto LA41_;
			T43_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T43_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T43_;
		}
		LA41_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6):
	{
		{
			if (!((*result).typ == NIM_NIL)) goto LA47_;
			setIntLitType__JsZMQGDyZXnGr9cg0jxXW0w((*c).graph, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA47_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 7):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T54_;
			if (!((*result).typ == NIM_NIL)) goto LA52_;
			T54_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T54_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T54_;
		}
		LA52_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 8):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T60_;
			if (!((*result).typ == NIM_NIL)) goto LA58_;
			T60_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T60_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T60_;
		}
		LA58_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 9):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T66_;
			if (!((*result).typ == NIM_NIL)) goto LA64_;
			T66_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T66_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T66_;
		}
		LA64_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T72_;
			if (!((*result).typ == NIM_NIL)) goto LA70_;
			T72_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T72_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T72_;
		}
		LA70_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 11):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T78_;
			if (!((*result).typ == NIM_NIL)) goto LA76_;
			T78_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T78_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T78_;
		}
		LA76_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 12):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T84_;
			if (!((*result).typ == NIM_NIL)) goto LA82_;
			T84_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T84_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T84_;
		}
		LA82_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 13):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T90_;
			if (!((*result).typ == NIM_NIL)) goto LA88_;
			T90_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T90_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T90_;
		}
		LA88_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 14):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T96_;
			if (!((*result).typ == NIM_NIL)) goto LA94_;
			T96_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T96_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T96_;
		}
		LA94_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T102_;
			if (!((*result).typ == NIM_NIL)) goto LA100_;
			T102_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T102_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T102_;
		}
		LA100_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 17):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T108_;
			if (!((*result).typ == NIM_NIL)) goto LA106_;
			T108_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T108_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T108_;
		}
		LA106_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T114_;
			if (!((*result).typ == NIM_NIL)) goto LA112_;
			T114_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T114_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 38));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T114_;
		}
		LA112_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 19):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T120_;
			if (!((*result).typ == NIM_NIL)) goto LA118_;
			T120_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T120_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T120_;
		}
		LA118_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T126_;
			if (!((*result).typ == NIM_NIL)) goto LA124_;
			T126_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T126_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T126_;
		}
		LA124_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T132_;
			if (!((*result).typ == NIM_NIL)) goto LA130_;
			T132_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T132_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = T132_;
		}
		LA130_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		result = semFieldAccess__vJZwz9bfROKrfrtM50y74CQ_14(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 25))) goto LA136_;
			transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 27));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, result, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA136_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 55):
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 16), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_559), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_560, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 134):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 135):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 137):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T162_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T163_;
		{
			NIM_BOOL T142_;
			NI T144_;
			tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag modifier;
			T142_ = (NIM_BOOL)0;
			T142_ = !(((*c).matchedConcept == NIM_NIL));
			if (!(T142_)) goto LA143_;
			T144_ = (NI)0;
			T144_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T142_ = (T144_ == ((NI) 1));
			LA143_: ;
			if (!T142_) goto LA145_;
			switch ((*n).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143):
			{
				modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141):
			{
				modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142):
			{
				modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 137):
			{
				modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
			{
				modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8);
			}
			break;
			default:
			{
				modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0);
			}
			break;
			}
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T157_;
				tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T158_;
				tySequence__Ef05srmQTDulnBdXR4Ja6Q* T159_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T160_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T161_;
				if (!!((modifier == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)))) goto LA155_;
				T157_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T157_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				baseType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*T157_).typ, 256);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T158_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
				T158_ = c;
				T159_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
				T159_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) newSeq((&NTI__Ef05srmQTDulnBdXR4Ja6Q_), 1);
				T159_->data[0] = baseType;
				T160_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T160_ = newTypeWithSons__7doBlU1jfuQUQdCuB7BM4Q(c, modifier, T159_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T161_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T161_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(T158_, T160_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).typ = T161_;
				goto BeforeRet_;
			}
			LA155_: ;
		}
		LA145_: ;
		T162_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T162_ = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, n, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T162_, 256);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T163_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T163_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(c, typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T163_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 128):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T165_;
		typ_2 = semTypeNode__O8zf75mcUwo9cfPQUQRaEug(c, n, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T165_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T165_ = makeTypeDesc__BhLel1oiCddEysrc3uc6iQ(c, typ_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T165_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28):
	{
		tySet_tyEnum_TLookupFlag__ObWMY5GMSl1GiMcrKaAhKQ mode;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 1), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 9))&31U)))!=0)) goto LA169_;
			mode = 0;
		}
		goto LA167_;
		LA169_: ;
		{
			mode = 2;
		}
		LA167_: ;
		s_2 = qualifiedLookUp__WrQDIfycs0nL9b0mMXbSC9ag(c, (*n)._kind_6.sons->data[((NI) 0)], mode);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((s_2 == NIM_NIL))) goto LA174_;
			switch ((*s_2).kind) {
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
			{
				result = semDirectOp__vJZwz9bfROKrfrtM50y74CQ_6(c, n, flags);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
			{
				NIM_BOOL ambig;
				ambig = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*c).ambiguousSymbols), (*s_2).Sup.id);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T180_;
					NIM_BOOL T181_;
					NI T184_;
					T180_ = (NIM_BOOL)0;
					T181_ = (NIM_BOOL)0;
					T181_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
					if (!(T181_)) goto LA182_;
					T181_ = ambig;
					LA182_: ;
					T180_ = !(T181_);
					if (!(T180_)) goto LA183_;
					T184_ = (NI)0;
					T184_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T180_ = (T184_ == ((NI) 2));
					LA183_: ;
					if (!T180_) goto LA185_;
					result = semConv__7YxUILpPxooC5qqa89a54dw_32(c, n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA178_;
				LA185_: ;
				{
					NIM_BOOL T188_;
					NI T190_;
					T188_ = (NIM_BOOL)0;
					T188_ = ambig;
					if (!(T188_)) goto LA189_;
					T190_ = (NI)0;
					T190_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T188_ = (T190_ == ((NI) 1));
					LA189_: ;
					if (!T188_) goto LA191_;
					errorUseQualifier__t5EWYooFsFPeMiRTzdCWFw(c, (*n).info, s_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA178_;
				LA191_: ;
				{
					NI T194_;
					T194_ = (NI)0;
					T194_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!(T194_ == ((NI) 1))) goto LA195_;
					result = semObjConstr__vJZwz9bfROKrfrtM50y74CQ_15(c, n, flags);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA178_;
				LA195_: ;
				{
					if (!((*s_2).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0))) goto LA198_;
					result = semDirectOp__vJZwz9bfROKrfrtM50y74CQ_6(c, n, flags);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA178_;
				LA198_: ;
				{
					result = semMagic__NYxU2DkHA0Gt5fsL9bYZdog_2(c, n, s_2, flags);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA178_: ;
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15):
			{
				{
					if (!((*s_2).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0))) goto LA204_;
					result = semDirectOp__vJZwz9bfROKrfrtM50y74CQ_6(c, n, flags);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA202_;
				LA204_: ;
				{
					result = semMagic__NYxU2DkHA0Gt5fsL9bYZdog_2(c, n, s_2, flags);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA202_: ;
			}
			break;
			default:
			{
				result = semIndirectOp__vJZwz9bfROKrfrtM50y74CQ_20(c, n, flags);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			}
		}
		goto LA172_;
		LA174_: ;
		{
			NIM_BOOL T209_;
			NIM_BOOL T210_;
			T209_ = (NIM_BOOL)0;
			T210_ = (NIM_BOOL)0;
			T210_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
			if (T210_) goto LA211_;
			T210_ = shouldBeBracketExpr__OiccTa3ruRNl9anoSqZh2Sg_5(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA211_: ;
			T209_ = T210_;
			if (!(T209_)) goto LA212_;
			T209_ = isSymChoice__crbaOhZgTohCnKAdtWPkSQ_3sem((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA212_: ;
			if (!T209_) goto LA213_;
			setGenericParams__NRIJDWZtATzMum7OEjYC2g_12(c, (*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = semDirectOp__vJZwz9bfROKrfrtM50y74CQ_6(c, n, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA172_;
		LA213_: ;
		{
			NIM_BOOL T216_;
			T216_ = (NIM_BOOL)0;
			T216_ = isSymChoice__crbaOhZgTohCnKAdtWPkSQ_3sem((*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T216_) goto LA217_;
			T216_ = (((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 9))&31U)))!=0);
			LA217_: ;
			if (!T216_) goto LA218_;
			result = semDirectOp__vJZwz9bfROKrfrtM50y74CQ_6(c, n, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA172_;
		LA218_: ;
		{
			result = semIndirectOp__vJZwz9bfROKrfrtM50y74CQ_20(c, n, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA172_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		{
			if (!((flags &(1U<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 6))&31U)))!=0)) goto LA224_;
			result = semWhen__5C4HPXQuhxlMYIzPbe36lg(c, n, NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA222_;
		LA224_: ;
		{
			result = semWhen__5C4HPXQuhxlMYIzPbe36lg(c, n, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!(result == n)) goto LA229_;
				result = semWhen__5C4HPXQuhxlMYIzPbe36lg(c, n, NIM_TRUE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA227_;
			LA229_: ;
			{
				result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, result, flags);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA227_: ;
		}
		LA222_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 1), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semArrayAccess__vJZwz9bfROKrfrtM50y74CQ_21(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
	{
		tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T234_;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T235_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T236_;
		T234_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
		T234_ = c;
		T235_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T235_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_113));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T236_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T236_ = buildOverloadedSubscripts__nefR35PSczfhlx6FSH1N7w(n, T235_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(T234_, T236_, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragma;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* pragmaName;
		tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags_2;
		tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg finalNodeFlags;
		tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T238_;
		pragma = (*n)._kind_6.sons->data[((NI) 1)];
		pragmaName = considerQuotedIdent__HlOitK5F0BLVCXzV9aaF4aw(c, (*pragma)._kind_6.sons->data[((NI) 0)], NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		flags_2 = flags;
		finalNodeFlags = 0;
		T238_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
		T238_ = whichKeyword__sZUQNPhNGEM8MllfcWvRiw(pragmaName);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		switch (T238_) {
		case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 219):
		{
			flags_2 |= ((NU32)1)<<((((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 9)) & 31);
		}
		break;
		case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 161):
		{
			finalNodeFlags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 20)) & 31);
		}
		break;
		default:
		{
			invalidPragma__0LSWh2UqkqDBtNGS0Kh9cNQ_2(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		}
		result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[((NI) 0)], flags_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).flags = ((*result).flags | finalNodeFlags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg T243_;
		T243_ = (tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg)0;
		T243_ = checkPar__l5Y3wSn9c2wuzfpP3PtAptA(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		switch (T243_) {
		case ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 0):
		{
			result = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 3):
		{
			result = semTupleConstr__vJZwz9bfROKrfrtM50y74CQ_22(c, n, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 2):
		{
			result = semTupleFieldsConstr__vJZwz9bfROKrfrtM50y74CQ_24(c, n, flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 1):
		{
			result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		result = semSetConstr__7YxUILpPxooC5qqa89a54dw_40(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		result = semArrayConstr__vJZwz9bfROKrfrtM50y74CQ_25(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		result = semObjConstr__vJZwz9bfROKrfrtM50y74CQ_15(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		result = semLambda__vJZwz9bfROKrfrtM50y74CQ_26(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	{
		result = semDeref__7YxUILpPxooC5qqa89a54dw_16(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T254_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T255_;
		result = n;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 1), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T254_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T254_ = semAddrArg__kiPmghV1gaPm718CtGyhQw(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 0)] = T254_;
		T255_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T255_ = makePtrType__PDWeh9cjpi22xXdNggYvsWA(c, (*(*result)._kind_6.sons->data[((NI) 0)]).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T255_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T257_;
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 1), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T257_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T257_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T257_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		result = semCast__7YxUILpPxooC5qqa89a54dw_41(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	{
		result = semIf__vJZwz9bfROKrfrtM50y74CQ_27(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		considerGenSyms__mQRLEYWj7fi9a0kZxdT9cvjQ(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 71):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 72):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	{
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 1), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		considerGenSyms__mQRLEYWj7fi9a0kZxdT9cvjQ(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
	{
		checkSonsLen__EezdXeDvu4rB7fR84AJZgw(n, ((NI) 3), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		considerGenSyms__mQRLEYWj7fi9a0kZxdT9cvjQ(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		checkMinSonsLen__EezdXeDvu4rB7fR84AJZgw_2(n, ((NI) 2), (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		considerGenSyms__mQRLEYWj7fi9a0kZxdT9cvjQ(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 54):
	{
		result = semTableConstr__7YxUILpPxooC5qqa89a54dw_43(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 62):
	{
		result = semStaticExpr__7YxUILpPxooC5qqa89a54dw_33(c, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	{
		result = semAsgn__mkzYzG9avRzHz5NmIFyZdRg(c, n, ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	{
		result = semBlock__vJZwz9bfROKrfrtM50y74CQ_29(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		result = semStmtList__vJZwz9bfROKrfrtM50y74CQ_30(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		result = semRaise__7YxUILpPxooC5qqa89a54dw_44(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	{
		result = semVarOrLet__9aaeuZC3SovMoEd6yN1pUdg(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		result = semVarOrLet__9aaeuZC3SovMoEd6yN1pUdg(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
	{
		result = semConst__7YxUILpPxooC5qqa89a54dw_45(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	{
		result = semTypeSection__7YxUILpPxooC5qqa89a54dw_46(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114):
	{
		result = semDiscard__7YxUILpPxooC5qqa89a54dw_48(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		result = semWhile__vJZwz9bfROKrfrtM50y74CQ_31(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		result = semTry__vJZwz9bfROKrfrtM50y74CQ_32(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111):
	{
		result = semBreakOrContinue__7YxUILpPxooC5qqa89a54dw_49(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 94):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
	{
		result = semFor__vJZwz9bfROKrfrtM50y74CQ_33(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		result = semCase__vJZwz9bfROKrfrtM50y74CQ_37(c, n, flags);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		result = semReturn__7YxUILpPxooC5qqa89a54dw_50(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 124):
	{
		result = semUsing__7YxUILpPxooC5qqa89a54dw_51(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 89):
	{
		result = semAsm__7YxUILpPxooC5qqa89a54dw_52(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 104):
	{
		result = semYield__7YxUILpPxooC5qqa89a54dw_53(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
	{
		pragma__m5gdSrENJIwAi9aMdDiUT9bg(c, (*(*c).p).owner, n, TM__rF9caJawfOjYTjsgLVUSGFA_818, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	{
		result = semIterator__7YxUILpPxooC5qqa89a54dw_54(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79):
	{
		result = semProc__7YxUILpPxooC5qqa89a54dw_55(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		result = semFunc__7YxUILpPxooC5qqa89a54dw_56(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80):
	{
		result = semMethod__7YxUILpPxooC5qqa89a54dw_57(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	{
		result = semConverterDef__7YxUILpPxooC5qqa89a54dw_58(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
	{
		result = semMacroDef__7YxUILpPxooC5qqa89a54dw_59(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
	{
		result = semTemplateDef__7YxUILpPxooC5qqa89a54dw_37(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
	{
		{
			NimStringDesc* T298_;
			if (!((NI)(((NI) 2) + (*c).compilesContextId) < (*(*c).currentScope).depthLevel)) goto LA296_;
			T298_ = (NimStringDesc*)0;
			T298_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_835));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T298_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_836, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA296_: ;
		result = evalImport__xmufAMBjGiK9cy1UljniTyg(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 117):
	{
		{
			NIM_BOOL T302_;
			NimStringDesc* T305_;
			T302_ = (NIM_BOOL)0;
			T302_ = isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T302_)) goto LA303_;
			T305_ = (NimStringDesc*)0;
			T305_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_835));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T305_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_837, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA303_: ;
		result = evalImportExcept__xmufAMBjGiK9cy1UljniTyg_3(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 120):
	{
		{
			NIM_BOOL T309_;
			NimStringDesc* T312_;
			T309_ = (NIM_BOOL)0;
			T309_ = isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T309_)) goto LA310_;
			T312_ = (NimStringDesc*)0;
			T312_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_838));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T312_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_839, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA310_: ;
		result = evalFrom__xmufAMBjGiK9cy1UljniTyg_4(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121):
	{
		result = evalInclude__7YxUILpPxooC5qqa89a54dw_60(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118):
	{
		{
			NIM_BOOL T317_;
			NimStringDesc* T320_;
			T317_ = (NIM_BOOL)0;
			T317_ = isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T317_)) goto LA318_;
			T320_ = (NimStringDesc*)0;
			T320_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_103));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T320_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_845, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA318_: ;
		result = semExport__7YxUILpPxooC5qqa89a54dw_61(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 119):
	{
		{
			NIM_BOOL T324_;
			NimStringDesc* T327_;
			T324_ = (NIM_BOOL)0;
			T324_ = isTopLevel__9cOn2KgYDErIsBqHhwhr9b4Qsemdata(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T324_)) goto LA325_;
			T327_ = (NimStringDesc*)0;
			T327_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_103));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T327_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_850, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA325_: ;
		result = semExportExcept__7YxUILpPxooC5qqa89a54dw_62(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		result = semPragmaBlock__7YxUILpPxooC5qqa89a54dw_63(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	{
		result = semStaticStmt__7YxUILpPxooC5qqa89a54dw_64(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 105):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T335_;
		{
			if (!((*c).currentScope == (*c).topLevelScope)) goto LA333_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_854), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_855, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA333_: ;
		T335_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T335_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T335_;
		{
			NIM_BOOL T338_;
			NIM_BOOL T339_;
			NIM_BOOL T341_;
			T338_ = (NIM_BOOL)0;
			T339_ = (NIM_BOOL)0;
			T339_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T338_ = !(T339_);
			if (!(T338_)) goto LA340_;
			T341_ = (NIM_BOOL)0;
			T341_ = implicitlyDiscardable__OiccTa3ruRNl9anoSqZh2Sg((*n)._kind_6.sons->data[((NI) 0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T338_ = !(T341_);
			LA340_: ;
			if (!T338_) goto LA342_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_856), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_857, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA342_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 157):
	{
		{
			NIM_BOOL T347_;
			NI T348_;
			NI T350_;
			T347_ = (NIM_BOOL)0;
			T348_ = (NI)0;
			T348_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T347_ = !((T348_ == ((NI) 1)));
			if (!(T347_)) goto LA349_;
			T350_ = (NI)0;
			T350_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T347_ = !((T350_ == ((NI) 2)));
			LA349_: ;
			if (!T347_) goto LA351_;
			illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA351_: ;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T356_;
					if (!(i_2 < colontmp_)) goto LA355;
					i = i_2;
					T356_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T356_ = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, (*n)._kind_6.sons->data[i], 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i] = T356_;
					i_2 += ((NI) 1);
				} LA355: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	default:
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T359_;
		NimStringDesc* T360_;
		NimStringDesc* T361_;
		T359_ = (*n).info;
		T360_ = (NimStringDesc*)0;
		T361_ = (NimStringDesc*)0;
		T361_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T360_ = rawNewString((T361_ ? T361_->Sup.len : 0) + 20);
appendString(T360_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_858));
appendString(T360_, T361_);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T359_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T360_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_859, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	{
		if (!!((result == NIM_NIL))) goto LA364_;
		(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7)) & 31);
	}
	LA364_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprCheck__vJZwz9bfROKrfrtM50y74CQ_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA3_;
		illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, n, (flags | 2048));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringDesc* T9_;
		NimStringDesc* T10_;
		if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA7_;
		T9_ = (NimStringDesc*)0;
		T9_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(result, 4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T10_ = (NimStringDesc*)0;
		T10_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_768), T9_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T10_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_860, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA7_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprWithType__vJZwz9bfROKrfrtM50y74CQ)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = semExprCheck__vJZwz9bfROKrfrtM50y74CQ_2(c, n, flags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		NimStringDesc* T7_;
		NimStringDesc* T8_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*result).typ == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = ((*result).typ == (*c).enforceVoidContext);
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T7_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(result, 4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T8_ = (NimStringDesc*)0;
		T8_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_768), T7_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T8_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_861, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T9_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T9_ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T9_;
	}
	goto LA1_;
	LA5_: ;
	{
		{
			if (!((IL64(140737496743936) &((NU64)1<<((NU)((*(*result).typ).kind)&63U)))!=0)) goto LA13_;
			result = newDeref__RzKgK8tcIIFHt7HBTQVoYQlowerings(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA13_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConstExpr__7YxUILpPxooC5qqa89a54dw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	e = semExprWithType__vJZwz9bfROKrfrtM50y74CQ(c, n, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(e == NIM_NIL)) goto LA3_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_318), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_862, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = n;
		goto BeforeRet_;
	}
	LA3_: ;
	result = getConstExpr__A7gcXCy5E3uGBy5F37NoHA((*c).module, e, (*c).graph);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(result == NIM_NIL)) goto LA7_;
		result = evalConstExpr__P8uF2QSxl7YdNpBnl0Ybqg((*c).module, (*c).graph, e);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = (result == NIM_NIL);
			if (T11_) goto LA12_;
			T11_ = ((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
			LA12_: ;
			if (!T11_) goto LA13_;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = eqeq___59bygf5b7AsTVb9a1lVM66oA((*e).info, (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!(T17_)) goto LA18_;
				pushInfoContext__uDLK9aoAOWwwFTev4NOwF7Q((*(*c).graph).config, (*n).info, ((NimStringDesc*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*e).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_318), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_863, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				popInfoContext__O9arH9bYenXLOr27ZSmcQnEw((*(*c).graph).config);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA15_;
			LA18_: ;
			{
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*e).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_318), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_864, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA15_: ;
			result = e;
		}
		goto LA9_;
		LA13_: ;
		{
			result = fixupTypeAfterEval__uWNSz7p50zmqqN864XaVBA(c, result, e);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
	}
	LA7_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOperand__vJZwz9bfROKrfrtM50y74CQ_39)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA3_;
		illFormedAst__aOnJJ9cXkOooTyUuLmnc09bw(n, (*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, n, (flags | 4096));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((*result).typ == NIM_NIL))) goto LA7_;
		{
			NIM_BOOL T11_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T15_;
			NimStringDesc* T16_;
			NimStringDesc* T17_;
			T11_ = (NIM_BOOL)0;
			T11_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T11_)) goto LA12_;
			T11_ = (((*(*result).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0);
			LA12_: ;
			if (!T11_) goto LA13_;
			T15_ = (*n).info;
			T16_ = (NimStringDesc*)0;
			T16_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T17_ = (NimStringDesc*)0;
			T17_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_670), T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T15_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T17_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_865, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA13_: ;
		{
			if (!((IL64(140737496743936) &((NU64)1<<((NU)((*(*result).typ).kind)&63U)))!=0)) goto LA20_;
			result = newDeref__RzKgK8tcIIFHt7HBTQVoYQlowerings(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA20_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
		if (!!(((192 & flags) == 0))) goto LA23_;
		T25_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T25_ = newTypeS__xb5E2cGIynZweqWlCP8Tig(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63), c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T25_;
	}
	goto LA5_;
	LA23_: ;
	{
		NimStringDesc* T27_;
		NimStringDesc* T28_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T29_;
		T27_ = (NimStringDesc*)0;
		T27_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(result, 4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T28_ = (NimStringDesc*)0;
		T28_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_768), T27_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T28_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_866, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T29_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T29_ = errorType__9aXTnVBVS5pbBC3zrwMhttg(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T29_;
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semInferredLambda__s5ZNJifOyxLa9bFOCUqHCXg)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* original;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T10_;
	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* T11_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	n_2 = n;
	original = (*(*n_2)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	s = original;
	n_2 = replaceTypesInBody__JQMwbj1fgdFwBCg7mhUBRQ(c, pt, n_2, original, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = n_2;
	(*s).ast = result;
	(*(*n_2)._kind_6.sons->data[((NI) 0)])._kind_4.sym = s;
	(*n_2)._kind_6.sons->data[((NI) 2)] = (*(*c).graph).emptyNode;
	params = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*(*n_2).typ).n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*n_2)._kind_6.sons->data[((NI) 3)] = params;
	(*s).typ = (*n_2).typ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(params);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T8_;
					NimStringDesc* T9_;
					if (!((IL64(3420483916987896064) &((NU64)1<<((NU)((*(*(*params)._kind_6.sons->data[i]).typ).kind)&63U)))!=0)) goto LA6_;
					T8_ = (*(*params)._kind_6.sons->data[i]).info;
					T9_ = (NimStringDesc*)0;
					T9_ = 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(T9_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_867));
appendString(T9_, (*(*(*(*params)._kind_6.sons->data[i])._kind_4.sym).name).s);
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T8_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T9_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_868, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA6_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	T10_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T10_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	pushOwner__AqgO9b89aLwRYAgSHN9aBrlHQ(c, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	addParams__XjZLpvNqVUTx1J6TXREPBQ_2(c, params, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	pushProcCon__jWGpC0lY8vG9b1MhOYJ9cFiQ_3(c, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	addResult__7eBNKE6IPVEZgtGluTicdQ(c, (*(*n_2).typ).sons->data[((NI) 0)], (*n_2).info, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	addResultNode__NRIJDWZtATzMum7OEjYC2g_2(c, n_2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T11_ = (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*)0;
	T11_ = c;
	T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T12_ = semProcBody__7YxUILpPxooC5qqa89a54dw_5(c, (*n_2)._kind_6.sons->data[((NI) 6)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T13_ = hloBody__7YxUILpPxooC5qqa89a54dw_10(T11_, T12_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*s).ast)._kind_6.sons->data[((NI) 6)] = T13_;
	trackProc__P9bJkIGwY9beKGfhhcBedbpg(c, s, (*(*s).ast)._kind_6.sons->data[((NI) 6)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	popProcCon__SjrsaPFXVDopDGJmDQUKewsemdata(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	popOwner__9aY89b9aR25iMJ8fPdM84CvQg_2(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T16_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
		T16_ = (NIM_BOOL)0;
		T16_ = (((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0);
		if (!(T16_)) goto LA17_;
		T16_ = !(((*result).typ == NIM_NIL));
		LA17_: ;
		if (!T16_) goto LA18_;
		T20_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T20_ = makeVarType__45x39aIZGLTdqqo59b4NHvLw(c, (*result).typ, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).typ = T20_;
	}
	LA18_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, myOpen__aOG8hV039bfSL2VAm1lrf0Q)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module) {
	tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* result;
	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
	tyProc__3cacbJ4la9bDJNibHybQSnA T5_;
	tyProc__L4XfH7VEp8aJssG3EbEBaQ T6_;
	tyProc__7JwrY3AhkVNlleAJXClX9cw T7_;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T8_;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T13_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*)0;
	c = newContext__dfWKKRV6rIabJ2ctPOd59aA(graph, module);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((*c).p == NIM_NIL))) goto LA3_;
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*graph).config, (*module).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_2), TM__rF9caJawfOjYTjsgLVUSGFA_3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	(*c).semConstExpr = semConstExpr__7YxUILpPxooC5qqa89a54dw;
	(*c).semExpr = semExpr__vJZwz9bfROKrfrtM50y74CQ_3;
	(*c).semTryExpr = tryExpr__vJZwz9bfROKrfrtM50y74CQ_17;
	(*c).semTryConstExpr = tryConstExpr__7YxUILpPxooC5qqa89a54dw_30;
	(*c).computeRequiresInit = computeRequiresInit__p5rbEi9c5JmURA4qGF6bxhg;
	(*c).semOperand = semOperand__vJZwz9bfROKrfrtM50y74CQ_39;
	(*c).semConstBoolExpr = semConstBoolExpr__7YxUILpPxooC5qqa89a54dw_3;
	(*c).semOverloadedCall = semOverloadedCall__pBkKnME6t9c8v6khuDD76Fg;
	nimZeroMem((void*)(&T5_), sizeof(tyProc__3cacbJ4la9bDJNibHybQSnA));
	T5_.ClP_0 = ((TM__rF9caJawfOjYTjsgLVUSGFA_869) (semInferredLambda__s5ZNJifOyxLa9bFOCUqHCXg)); T5_.ClE_0 = NIM_NIL;
	(*c).semInferredLambda.ClE_0 = T5_.ClE_0;
	(*c).semInferredLambda.ClP_0 = T5_.ClP_0;
	nimZeroMem((void*)(&T6_), sizeof(tyProc__L4XfH7VEp8aJssG3EbEBaQ));
	T6_.ClP_0 = ((TM__rF9caJawfOjYTjsgLVUSGFA_870) (generateInstance__Bbmaz5QjetnTaor7LYngPg)); T6_.ClE_0 = NIM_NIL;
	(*c).semGenerateInstance.ClE_0 = T6_.ClE_0;
	(*c).semGenerateInstance.ClP_0 = T6_.ClP_0;
	(*c).semTypeNode = semTypeNode__O8zf75mcUwo9cfPQUQRaEug;
	(*c).instTypeBoundOp = instTypeBoundOp__Kdk4BCAjDmsFKO9cO4U4ccw;
	nimZeroMem((void*)(&T7_), sizeof(tyProc__7JwrY3AhkVNlleAJXClX9cw));
	T7_.ClP_0 = ((TM__rF9caJawfOjYTjsgLVUSGFA_871) (hasUnresolvedArgs__iY9a3KG6T9aTt3fJH8J6BrJQ)); T7_.ClE_0 = NIM_NIL;
	(*c).hasUnresolvedArgs.ClE_0 = T7_.ClE_0;
	(*c).hasUnresolvedArgs.ClP_0 = T7_.ClP_0;
	(*c).templInstCounter = new__wSSF51wLRD8g2UFxfG6Hvg();
	pushProcCon__jWGpC0lY8vG9b1MhOYJ9cFiQ_3(c, module);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	pushOwner__AqgO9b89aLwRYAgSHN9aBrlHQ(c, (*c).module);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T8_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T8_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*c).importTable = T8_;
	strTableAdd__tyTgUybFIoow4CX2l5beug((&(*(*c).importTable).symbols), module);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(((*module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0)) goto LA11_;
		(*graph).systemModule = module;
	}
	LA11_: ;
	T13_ = (tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*)0;
	T13_ = openScope__HbQKk9aDdsJVs9bASTXwa5Lw(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*c).topLevelScope = T13_;
	result = &c->Sup;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportSystemStmt__Py1GUj7PccyIa3ac40A6MA)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		if (!((*g).systemModule == NIM_NIL)) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA9;
						i = i_2;
						x = (*n)._kind_6.sons->data[i];
						{
							NI32 f;
							if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA12_;
							f = checkModuleName__fDy39b69bb9cFVEyPkMJp3GTg((*g).config, x, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								if (!(f == (*(*g).systemModule).info.fileIndex)) goto LA16_;
								result = NIM_TRUE;
								goto BeforeRet_;
							}
							LA16_: ;
						}
						LA12_: ;
						i_2 += ((NI) 1);
					} LA9: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 117):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 120):
	{
		{
			NI32 f_2;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA21_;
			f_2 = checkModuleName__fDy39b69bb9cFVEyPkMJp3GTg((*g).config, (*n)._kind_6.sons->data[((NI) 0)], NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				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__OiccTa3ruRNl9anoSqZh2Sg_8)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
			it = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				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__OiccTa3ruRNl9anoSqZh2Sg_8(it);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(T8_)) goto LA9_;
							result = NIM_FALSE;
							goto BeforeRet_;
						}
						LA9_: ;
						i_2 += ((NI) 1);
					} LA5: ;
				}
			}
		}
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	{
		result = NIM_TRUE;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gatherStmts__9a9a1Ojxj7NR51moAUvzAVIw)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					NI32 f;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					f = checkModuleName__fDy39b69bb9cFVEyPkMJp3GTg((*(*c).graph).config, (*n)._kind_6.sons->data[i], NIM_TRUE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!((f == ((NI32) -1)))) goto LA7_;
						{
							NIM_BOOL T11_;
							tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T14_;
							NimStringDesc* T15_;
							NimStringDesc* T16_;
							T11_ = (NIM_BOOL)0;
							T11_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*c).includedFiles), ((NI) (f)));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!T11_) goto LA12_;
							T14_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
							T14_ = (*(*c).graph).config;
							T15_ = (NimStringDesc*)0;
							T15_ = toMsgFilename__eX9aCxa5NfPq9alDDS1zYbvw((*(*c).graph).config, f);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T16_ = (NimStringDesc*)0;
							T16_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9), T15_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							liMessage__Q6JNH4uRwLyZrj0dJakHew(T14_, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T16_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_872, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA9_;
						LA12_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* code;
							code = (*(*c).graph).includeFileCallback((*c).graph, (*c).module, f);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							gatherStmts__9a9a1Ojxj7NR51moAUvzAVIw(c, code, result);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							excl__jENnK9c9bPE73pKmo2vYjpqg_2((&(*c).includedFiles), ((NI) (f)));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA9_: ;
					}
					LA7_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	{
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA21;
					i_3 = i_4;
					gatherStmts__9a9a1Ojxj7NR51moAUvzAVIw(c, (*n)._kind_6.sons->data[i_3], result);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_4 += ((NI) 1);
				} LA21: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	{
		(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7)) & 31);
		typeSectionLeftSidePass__NRIJDWZtATzMum7OEjYC2g_13(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		add__P8dDSotTW25BkfbyspojGg(result, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAllTypeSections__7YxUILpPxooC5qqa89a54dw_66)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	gatherStmts__9a9a1Ojxj7NR51moAUvzAVIw(c, n, result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI iX60gensym3096_;
		NI colontmp_;
		NI i;
		iX60gensym3096_ = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i = ((NI) 0);
		{
			while (1) {
				if (!(i < colontmp_)) goto LA3;
				iX60gensym3096_ = i;
				{
					if (!((*(*result)._kind_6.sons->data[iX60gensym3096_]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98))) goto LA6_;
					typeSectionRightSidePass__NRIJDWZtATzMum7OEjYC2g_14(c, (*result)._kind_6.sons->data[iX60gensym3096_]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA6_: ;
				i += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI iX60gensym3099_;
		NI colontmp__2;
		NI i_2;
		iX60gensym3099_ = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp__2)) goto LA10;
				iX60gensym3099_ = i_2;
				{
					if (!((*(*result)._kind_6.sons->data[iX60gensym3099_]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98))) goto LA13_;
					typeSectionFinalPass__NRIJDWZtATzMum7OEjYC2g_15(c, (*result)._kind_6.sons->data[iX60gensym3099_]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA13_: ;
				i_2 += ((NI) 1);
			} LA10: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, hloStmt__7YxUILpPxooC5qqa89a54dw_67)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		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 &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 23))&31U)))!=0));
		LA5_: ;
		if (!T3_) goto LA6_;
		result = n;
		goto BeforeRet_;
	}
	LA6_: ;
	(*c).hloLoopDetector = ((NI) 0);
	result = hlo__7YxUILpPxooC5qqa89a54dw_11(c, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildEchoStmt__7YxUILpPxooC5qqa89a54dw_68)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* e;
	tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA T1_;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)(&T1_), sizeof(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA));
	T1_.counter = (*(*(*c).graph).systemModule)._kind_3.tab.counter;
	T1_.data = (*(*(*c).graph).systemModule)._kind_3.tab.data;
	T2_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T2_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_873));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	e = strTableGet__2ZDXFT8aKmu3vdgfJFQCgQ(T1_, T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		if (!!((e == NIM_NIL))) goto LA5_;
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(e);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T7_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA3_;
	LA5_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_874), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_875, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T9_ = errorNode__g3ODV709caO5lfQfPGeUxSQ_2(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T9_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	add__P8dDSotTW25BkfbyspojGg(result, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = semExpr__vJZwz9bfROKrfrtM50y74CQ_3(c, result, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStmtAndGenerateGenerics__7YxUILpPxooC5qqa89a54dw_65)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		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__Py1GUj7PccyIa3ac40A6MA((*c).graph, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		{
			NIM_BOOL T10_;
			NIM_BOOL T12_;
			T10_ = (NIM_BOOL)0;
			T10_ = !((((*(*c).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0));
			if (!(T10_)) goto LA11_;
			T12_ = (NIM_BOOL)0;
			T12_ = isEmptyTree__OiccTa3ruRNl9anoSqZh2Sg_8(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T10_ = !(T12_);
			LA11_: ;
			if (!T10_) goto LA13_;
			strTableAdd__tyTgUybFIoow4CX2l5beug((&(*(*c).importTable).symbols), (*(*c).graph).systemModule);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			importAllSymbols__9bonb4OC5BOScb4pv7w7J1Q(c, (*(*c).graph).systemModule);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*c).topStmts += ((NI) 1);
		}
		LA13_: ;
	}
	goto LA1_;
	LA6_: ;
	{
		(*c).topStmts += ((NI) 1);
	}
	LA1_: ;
	{
		if (!(((*(*c).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0)) goto LA18_;
		result = semAllTypeSections__7YxUILpPxooC5qqa89a54dw_66(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA16_;
	LA18_: ;
	{
		result = n;
	}
	LA16_: ;
	result = semStmt__vJZwz9bfROKrfrtM50y74CQ_4(c, result, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = hloStmt__7YxUILpPxooC5qqa89a54dw_67(c, result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T23_;
		NIM_BOOL T25_;
		T23_ = (NIM_BOOL)0;
		T23_ = ((*(*(*c).graph).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 18));
		if (!(T23_)) goto LA24_;
		T25_ = (NIM_BOOL)0;
		T25_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*result).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T23_ = !(T25_);
		LA24_: ;
		if (!T23_) goto LA26_;
		result = buildEchoStmt__7YxUILpPxooC5qqa89a54dw_68(c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA26_: ;
	{
		if (!((*(*(*c).graph).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 14))) goto LA30_;
		appendToModule__T4o9clzgbAgGY4ORbfP6LmQ((*c).module, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA30_: ;
	trackStmt__QaQdy9beybDhOWYNIJD0SGA(c, (*c).module, result, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, recoverContext__Zisdl5hRh5Vv9bXMXRnK8QA)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	(*c).currentScope = (*c).topLevelScope;
	{
		while (1) {
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T3_;
			T3_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			T3_ = getCurrOwner__ETdcFH1xSyhy8lRl3iwf6w(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(((*T3_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)))) goto LA2;
			popOwner__9aY89b9aR25iMJ8fPdM84CvQg_2(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA2: ;
	}
	{
		while (1) {
			NIM_BOOL T6_;
			T6_ = (NIM_BOOL)0;
			T6_ = !(((*c).p == NIM_NIL));
			if (!(T6_)) goto LA7_;
			T6_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)));
			LA7_: ;
			if (!T6_) goto LA5;
			(*c).p = (*(*c).p).next;
		} LA5: ;
	}
	}BeforeRet_: ;
}
static N_INLINE(Exception*, getCurrentException)(void) {
	Exception* result;
	result = (Exception*)0;
	result = currException__9bVPeDJlYTi9bQApZpfH8wjg;
	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__H8B7g6iFRPI5Em52KFoD6w(obj, subclass, cache);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, myProcess__QAJdPOwMq9buTNGNGQO3ImA)(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* context, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	c = ((tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*) (context));
	{
		if (!((*(*(*c).graph).config).errorMax <= ((NI) 1))) goto LA3_;
		result = semStmtAndGenerateGenerics__7YxUILpPxooC5qqa89a54dw_65(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		NI oldContextLen;
		NI oldInGenericInst;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		oldContextLen = getInfoContextLen__QY5gXnIUBOUa79b5tGece0A((*(*c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		oldInGenericInst = (*c).inGenericInst;
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = semStmtAndGenerateGenerics__7YxUILpPxooC5qqa89a54dw_65(c, n);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		result = T7_;
		if (NIM_UNLIKELY(*nimErr_)) {
			LA6_:;
			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTI__IxbcvonC7TQkv166Uvdu1g_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTI__cDtWY9cE7zf8BAC5QcEZZkQ_))) {
				*nimErr_ = NIM_FALSE;
				recoverContext__Zisdl5hRh5Vv9bXMXRnK8QA(c);
				if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
				(*c).inGenericInst = oldInGenericInst;
				setInfoContextLen__JRH1QeGlTzlBOChAZ7bvoQ((*(*c).graph).config, oldContextLen);
				if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
				{
					Exception* T13_;
					T13_ = (Exception*)0;
					T13_ = getCurrentException();
					if (!((T13_) && (isObjWithCache((*T13_).Sup.m_type, (&NTI__cDtWY9cE7zf8BAC5QcEZZkQ_), Nim_OfCheck_CACHE877)))) goto LA14_;
					(*c).suggestionsMade = NIM_TRUE;
					result = NIM_NIL;
				}
				goto LA11_;
				LA14_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
					T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T17_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					result = T17_;
				}
				LA11_: ;
				popCurrentException();
				LA9_:;
			}
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, reportUnusedModules__Zisdl5hRh5Vv9bXMXRnK8QA_2)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (((*c).unusedImports ? (*c).unusedImports->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					if (!!((((*(*c).unusedImports->data[i].Field0).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0))&63U)))!=0))) goto LA7_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*c).unusedImports->data[i].Field1, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 29), (*(*(*c).unusedImports->data[i].Field0).name).s, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_877, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA7_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addCodeForGenerics__NRIJDWZtATzMum7OEjYC2g_17)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI T20_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		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__JpsEh5i1AcKChGYbg7aV4w* 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 &(1U<<((NU)((*prc).kind)&31U)))!=0);
					if (!(T7_)) goto LA8_;
					T7_ = ((*prc).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
					LA8_: ;
					if (!T7_) goto LA9_;
					{
						NIM_BOOL T13_;
						tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T17_;
						NimStringDesc* T18_;
						T13_ = (NIM_BOOL)0;
						T13_ = ((*prc).ast == NIM_NIL);
						if (T13_) goto LA14_;
						T13_ = ((*(*prc).ast)._kind_6.sons->data[((NI) 6)] == NIM_NIL);
						LA14_: ;
						if (!T13_) goto LA15_;
						T17_ = (*prc).info;
						T18_ = (NimStringDesc*)0;
						T18_ = rawNewString(((*(*prc).name).s ? (*(*prc).name).s->Sup.len : 0) + 12);
appendString(T18_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_880));
appendString(T18_, (*(*prc).name).s);
						internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, T17_, T18_, TM__rF9caJawfOjYTjsgLVUSGFA_881);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA11_;
					LA15_: ;
					{
						add__P8dDSotTW25BkfbyspojGg(n, (*prc).ast);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA11_: ;
				}
				LA9_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	T20_ = ((*c).generics ? (*c).generics->Sup.len : 0);
	(*c).lastGenericIdx = T20_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, myClose__q2jGmbBjsPumxfsrswciWg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* context, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	c = ((tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*) (context));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*c).graph).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 14));
		if (!(T3_)) goto LA4_;
		T3_ = !((*c).suggestionsMade);
		LA4_: ;
		if (!T3_) goto LA5_;
		suggestSentinel__9bcrXlTwB3ELAkoCqH9bihfA(c);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	closeScope__TX9bi5b9bIHR13FiwHwV59a4w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	rawCloseScope__TX9bi5b9bIHR13FiwHwV59a4w_2(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	reportUnusedModules__Zisdl5hRh5Vv9bXMXRnK8QA_2(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newNode__PMZ27S9ai4FB3gXOMDXvwsQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((n == NIM_NIL))) goto LA9_;
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_878), TM__rF9caJawfOjYTjsgLVUSGFA_879);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA9_: ;
	addCodeForGenerics__NRIJDWZtATzMum7OEjYC2g_17(c, result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((*(*c).module).ast == NIM_NIL))) goto LA13_;
		add__P8dDSotTW25BkfbyspojGg(result, (*(*c).module).ast);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA13_: ;
	popOwner__9aY89b9aR25iMJ8fPdM84CvQg_2(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	popProcCon__SjrsaPFXVDopDGJmDQUKewsemdata(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_semDatInit000)(void) {

/* section: NIM_merge_TYPE_INIT1 */
static TNimNode* TM__rF9caJawfOjYTjsgLVUSGFA_320_3[3];
static TNimNode* TM__rF9caJawfOjYTjsgLVUSGFA_329_2[2];
static TNimNode* TM__rF9caJawfOjYTjsgLVUSGFA_359_2[2];
static TNimNode* TM__rF9caJawfOjYTjsgLVUSGFA_714_2[2];
static TNimNode TM__rF9caJawfOjYTjsgLVUSGFA_0[13];

/* section: NIM_merge_TYPE_INIT3 */
NTI__LF0eKAnygFo4etNDdpTetg_.size = sizeof(tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg);
NTI__LF0eKAnygFo4etNDdpTetg_.align = NIM_ALIGNOF(tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg);
NTI__LF0eKAnygFo4etNDdpTetg_.kind = 17;
NTI__LF0eKAnygFo4etNDdpTetg_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_);
TM__rF9caJawfOjYTjsgLVUSGFA_320_3[0] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[1];
TM__rF9caJawfOjYTjsgLVUSGFA_0[1].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[1].offset = offsetof(tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg, colonstate_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[1].typ = (&NTI__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[1].name = ":state";
TM__rF9caJawfOjYTjsgLVUSGFA_320_3[1] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[2];
TM__rF9caJawfOjYTjsgLVUSGFA_0[2].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[2].offset = offsetof(tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg, c1);
TM__rF9caJawfOjYTjsgLVUSGFA_0[2].typ = (&NTI__EjEifkTC8tg9afiUW4StSSA_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[2].name = "c1";
TM__rF9caJawfOjYTjsgLVUSGFA_320_3[2] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[3];
TM__rF9caJawfOjYTjsgLVUSGFA_0[3].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[3].offset = offsetof(tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg, scope2);
TM__rF9caJawfOjYTjsgLVUSGFA_0[3].typ = (&NTI__N89ckikRqMir57209a3tEeqw_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[3].name = "scope2";
TM__rF9caJawfOjYTjsgLVUSGFA_0[0].len = 3; TM__rF9caJawfOjYTjsgLVUSGFA_0[0].kind = 2; TM__rF9caJawfOjYTjsgLVUSGFA_0[0].sons = &TM__rF9caJawfOjYTjsgLVUSGFA_320_3[0];
NTI__LF0eKAnygFo4etNDdpTetg_.node = &TM__rF9caJawfOjYTjsgLVUSGFA_0[0];
NTI__IqGNbqKVyQ9b9an5n9bN8QJsQ_.size = sizeof(tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg*);
NTI__IqGNbqKVyQ9b9an5n9bN8QJsQ_.align = NIM_ALIGNOF(tyObject_Env_semmagicdotnim___LF0eKAnygFo4etNDdpTetg*);
NTI__IqGNbqKVyQ9b9an5n9bN8QJsQ_.kind = 22;
NTI__IqGNbqKVyQ9b9an5n9bN8QJsQ_.base = (&NTI__LF0eKAnygFo4etNDdpTetg_);
NTI__IqGNbqKVyQ9b9an5n9bN8QJsQ_.marker = Marker_tyRef__IqGNbqKVyQ9b9an5n9bN8QJsQ;
NTI__UaUb9bgQbqCS7gyXItZuJNg_.size = sizeof(tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg);
NTI__UaUb9bgQbqCS7gyXItZuJNg_.align = NIM_ALIGNOF(tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg);
NTI__UaUb9bgQbqCS7gyXItZuJNg_.kind = 17;
NTI__UaUb9bgQbqCS7gyXItZuJNg_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_);
TM__rF9caJawfOjYTjsgLVUSGFA_329_2[0] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[5];
TM__rF9caJawfOjYTjsgLVUSGFA_0[5].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[5].offset = offsetof(tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg, colonstate_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[5].typ = (&NTI__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[5].name = ":state";
TM__rF9caJawfOjYTjsgLVUSGFA_329_2[1] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[6];
TM__rF9caJawfOjYTjsgLVUSGFA_0[6].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[6].offset = offsetof(tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg, orig1);
TM__rF9caJawfOjYTjsgLVUSGFA_0[6].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[6].name = "orig1";
TM__rF9caJawfOjYTjsgLVUSGFA_0[4].len = 2; TM__rF9caJawfOjYTjsgLVUSGFA_0[4].kind = 2; TM__rF9caJawfOjYTjsgLVUSGFA_0[4].sons = &TM__rF9caJawfOjYTjsgLVUSGFA_329_2[0];
NTI__UaUb9bgQbqCS7gyXItZuJNg_.node = &TM__rF9caJawfOjYTjsgLVUSGFA_0[4];
NTI__NaDYkbcAjZXYRP9arR0vzYg_.size = sizeof(tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg*);
NTI__NaDYkbcAjZXYRP9arR0vzYg_.align = NIM_ALIGNOF(tyObject_Env_semmagicdotnim___UaUb9bgQbqCS7gyXItZuJNg*);
NTI__NaDYkbcAjZXYRP9arR0vzYg_.kind = 22;
NTI__NaDYkbcAjZXYRP9arR0vzYg_.base = (&NTI__UaUb9bgQbqCS7gyXItZuJNg_);
NTI__NaDYkbcAjZXYRP9arR0vzYg_.marker = Marker_tyRef__NaDYkbcAjZXYRP9arR0vzYg;
NTI__K9bYwLtGKmFQYg8TwmqoG3Q_.size = sizeof(tyTuple__K9bYwLtGKmFQYg8TwmqoG3Q);
NTI__K9bYwLtGKmFQYg8TwmqoG3Q_.align = NIM_ALIGNOF(tyTuple__K9bYwLtGKmFQYg8TwmqoG3Q);
NTI__K9bYwLtGKmFQYg8TwmqoG3Q_.kind = 18;
NTI__K9bYwLtGKmFQYg8TwmqoG3Q_.base = 0;
NTI__K9bYwLtGKmFQYg8TwmqoG3Q_.flags = 2;
TM__rF9caJawfOjYTjsgLVUSGFA_359_2[0] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[8];
TM__rF9caJawfOjYTjsgLVUSGFA_0[8].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[8].offset = offsetof(tyTuple__K9bYwLtGKmFQYg8TwmqoG3Q, Field0);
TM__rF9caJawfOjYTjsgLVUSGFA_0[8].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[8].name = "Field0";
TM__rF9caJawfOjYTjsgLVUSGFA_359_2[1] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[9];
TM__rF9caJawfOjYTjsgLVUSGFA_0[9].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[9].offset = offsetof(tyTuple__K9bYwLtGKmFQYg8TwmqoG3Q, Field1);
TM__rF9caJawfOjYTjsgLVUSGFA_0[9].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[9].name = "Field1";
TM__rF9caJawfOjYTjsgLVUSGFA_0[7].len = 2; TM__rF9caJawfOjYTjsgLVUSGFA_0[7].kind = 2; TM__rF9caJawfOjYTjsgLVUSGFA_0[7].sons = &TM__rF9caJawfOjYTjsgLVUSGFA_359_2[0];
NTI__K9bYwLtGKmFQYg8TwmqoG3Q_.node = &TM__rF9caJawfOjYTjsgLVUSGFA_0[7];
NTI__P9bWebqKHkrGHwy9aZW9bw0TA_.size = sizeof(tySequence__P9bWebqKHkrGHwy9aZW9bw0TA*);
NTI__P9bWebqKHkrGHwy9aZW9bw0TA_.align = NIM_ALIGNOF(tySequence__P9bWebqKHkrGHwy9aZW9bw0TA*);
NTI__P9bWebqKHkrGHwy9aZW9bw0TA_.kind = 24;
NTI__P9bWebqKHkrGHwy9aZW9bw0TA_.base = (&NTI__K9bYwLtGKmFQYg8TwmqoG3Q_);
NTI__P9bWebqKHkrGHwy9aZW9bw0TA_.flags = 2;
NTI__P9bWebqKHkrGHwy9aZW9bw0TA_.marker = Marker_tySequence__P9bWebqKHkrGHwy9aZW9bw0TA;
NTI__GnXaFIlVxvDpiKnOUsLlMw_.size = sizeof(tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw);
NTI__GnXaFIlVxvDpiKnOUsLlMw_.align = NIM_ALIGNOF(tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw);
NTI__GnXaFIlVxvDpiKnOUsLlMw_.kind = 17;
NTI__GnXaFIlVxvDpiKnOUsLlMw_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_);
TM__rF9caJawfOjYTjsgLVUSGFA_714_2[0] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[11];
TM__rF9caJawfOjYTjsgLVUSGFA_0[11].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[11].offset = offsetof(tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw, colonstate_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[11].typ = (&NTI__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[11].name = ":state";
TM__rF9caJawfOjYTjsgLVUSGFA_714_2[1] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[12];
TM__rF9caJawfOjYTjsgLVUSGFA_0[12].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[12].offset = offsetof(tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw, genericType1);
TM__rF9caJawfOjYTjsgLVUSGFA_0[12].typ = (&NTI__AgIT5feFR9a9aoVjv9cx2rOtg_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[12].name = "genericType1";
TM__rF9caJawfOjYTjsgLVUSGFA_0[10].len = 2; TM__rF9caJawfOjYTjsgLVUSGFA_0[10].kind = 2; TM__rF9caJawfOjYTjsgLVUSGFA_0[10].sons = &TM__rF9caJawfOjYTjsgLVUSGFA_714_2[0];
NTI__GnXaFIlVxvDpiKnOUsLlMw_.node = &TM__rF9caJawfOjYTjsgLVUSGFA_0[10];
NTI__hW0nFkOHm9b8Hn43XRoDtzQ_.size = sizeof(tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw*);
NTI__hW0nFkOHm9b8Hn43XRoDtzQ_.align = NIM_ALIGNOF(tyObject_Env_semstmtsdotnim___GnXaFIlVxvDpiKnOUsLlMw*);
NTI__hW0nFkOHm9b8Hn43XRoDtzQ_.kind = 22;
NTI__hW0nFkOHm9b8Hn43XRoDtzQ_.base = (&NTI__GnXaFIlVxvDpiKnOUsLlMw_);
NTI__hW0nFkOHm9b8Hn43XRoDtzQ_.marker = Marker_tyRef__hW0nFkOHm9b8Hn43XRoDtzQ;
}

