/* Generated by Nim Compiler v0.19.0 */
/*   (c) 2018 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_NEW_MANGLING_RULES
#define NIM_INTBITS 32

#include "nimbase.h"
#include <setjmp.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
typedef struct tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w;
typedef struct tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA;
typedef struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tySequence_Ef05srmQTDulnBdXR4Ja6Q tySequence_Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tySequence_DXS6mEo7PVUFJkirsQ9bNQA tySequence_DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA;
typedef struct tySequence_DfgJFJEYoj4YBAHLZPl5lQ tySequence_DfgJFJEYoj4YBAHLZPl5lQ;
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 tySequence_MvZmat48bhe9b6x9aUD58D5Q tySequence_MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack_7fytPA5bBsob6See21YMRA tyObject_GcStack_7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyTuple_ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg;
typedef struct tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyTuple_UpiOGlu5Ux6DLM73wSrdpg tyTuple_UpiOGlu5Ux6DLM73wSrdpg;
typedef struct tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg;
typedef struct tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ;
typedef struct tySequence_9brg1xNurxcus33lU4IE1Dw tySequence_9brg1xNurxcus33lU4IE1Dw;
typedef struct tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence_kxu4GK0onha2t9bo86mdVAg tySequence_kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence_48JTohSgTy339bRxHzUD8KA tySequence_48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tySequence_bWZXqEvLFwhLvAqSRoFNgQ tySequence_bWZXqEvLFwhLvAqSRoFNgQ;
typedef struct tyObject_IncrementalCtx_sdH7TnbKACuAzE7DBabnCA tyObject_IncrementalCtx_sdH7TnbKACuAzE7DBabnCA;
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 tyObject_Target_9abOl5DLX8suLujOaHSvGzw tyObject_Target_9abOl5DLX8suLujOaHSvGzw;
typedef struct tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tySequence_PJMRIt5QxCm6bRaVyQ5CGA tySequence_PJMRIt5QxCm6bRaVyQ5CGA;
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 tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ tySequence_sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw tySequence_pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyTuple_5L3fCt9bX0gyEcO30ervPLw tyTuple_5L3fCt9bX0gyEcO30ervPLw;
typedef struct Exception Exception;
typedef struct tySequence_uB9b75OUPRENsBAu4AnoePA tySequence_uB9b75OUPRENsBAu4AnoePA;
typedef struct TSafePoint TSafePoint;
typedef struct tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA;
typedef struct tyObject_HSlice_9cw2LolctLHcrKhmq01qQEw tyObject_HSlice_9cw2LolctLHcrKhmq01qQEw;
typedef struct tyTuple_kN8up2W6YKc5YA9avn5mV5w tyTuple_kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple_zwpS6d6iewrdlBSTNFoyVA tyTuple_zwpS6d6iewrdlBSTNFoyVA;
typedef struct tyTuple_xDU9bZmv1ZbZkJDaATBekIQ tyTuple_xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple_quA39a2QdEQU9cSEIUSibApQ tyTuple_quA39a2QdEQU9cSEIUSibApQ;
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_xYhUhS7X82rKTqbT9bRfCnw tyTuple_xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw;
typedef struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw tyTuple_QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg;
typedef struct tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA;
struct tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
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;
} S1;
struct {NF floatVal;
} S2;
struct {NimStringDesc* strVal;
} S3;
struct {tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
} S4;
struct {tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* ident;
} S5;
struct {tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} S6;
} _Ukind;
NimStringDesc* comment;
};
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;
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_TIdObj_iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw;
struct tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* data;
};
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;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* dup;
};
struct tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence_Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
} S1;
struct {tySequence_DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
} S2;
struct {tySequence_DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA tab;
} S3;
struct {tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
} S4;
} _Ukind;
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 NU8 tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
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;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* destructor;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* deepCopy;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* assignment;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sink;
tySequence_MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 lockLevel;
tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
};
struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack_7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* tyArray_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef NU32 tyArray_BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* tyArray_N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray_N1u1nqOgmuJN9cSZrnMHgOQ tyArray_B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* tyArray_lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA {
tyArray_lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* tyArray_0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw {
tyArray_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyArray_LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray_LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray_SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
NU32 flBitmap;
tyArray_BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray_B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack_7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef NU64 tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_TEndian_bQ3yFYQJojZPNYsZnS7Zjg;
struct tyTuple_UpiOGlu5Ux6DLM73wSrdpg {
NimStringDesc* Field0;
NI Field1;
tyEnum_TEndian_bQ3yFYQJojZPNYsZnS7Zjg Field2;
NI Field3;
NI Field4;
};
typedef tyTuple_UpiOGlu5Ux6DLM73wSrdpg tyArray_2EeRc2Lr9cCM9aL82QsBOFXA[22];
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_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence_kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc_xdLb0cyzx3FuM6Q4NnRTpQ;
typedef tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray_OLX364rHC66WkzRbMp49aQg[64];
typedef tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray_6GDJmNRiFxkWAAdMgUie8g[70];
struct tyObject_IncrementalCtx_sdH7TnbKACuAzE7DBabnCA {
char dummy;
};
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;
};
struct tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ {
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* modules;
tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA packageSyms;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg deps;
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_xdLb0cyzx3FuM6Q4NnRTpQ 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;
tyProc_c6vdo1yHyj19b9bS17tijS2w importModuleCallback;
tyProc_d5yEkT9aXkAtHvVerr7IeCQ includeFileCallback;
tyProc_sP1I7TbCn358eLy9bX4IphA recordStmt;
tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
tyObject_Table_NttoEzoiq5CiphZe81oadg cacheCounters;
tyObject_Table_nagDFX4QHx0s6Fvma9blmSg cacheTables;
};
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_PJMRIt5QxCm6bRaVyQ5CGA* 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_SymbolFilesOption_gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg {
tySequence_4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU16 tySet_tyEnum_Feature_01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tyEnum_IdeCmd_1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tyEnum_TSystemCC_1eWBJUonHMOnlBwsOvpFmA;
typedef NU64 tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc_QYEVXrYc9beQ379crS3rzqRA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc_Q1W5D85O9cNu3iq9cZ9alS9aWA;
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_22mgIiTBBoqNe1T0FSw9ahQ;
struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw {
tyObject_Target_9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A m;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw cmd;
tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw selectedGC;
NI verbosity;
NI numberOfProcessors;
NimStringDesc* evalExpr;
NF lastCmdTime;
tyEnum_SymbolFilesOption_gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature_01UoAKYz1MxZiuG1X2VhNQ features;
NimStringDesc* arguments;
NIM_BOOL helpWritten;
tyEnum_IdeCmd_1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC_1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg enableNotes;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg disableNotes;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg foreignPackageNotes;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg notes;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
NI32 projectMainIdx;
NimStringDesc* command;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NIM_BOOL keepComments;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
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_QYEVXrYc9beQ379crS3rzqRA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc_Q1W5D85O9cNu3iq9cZ9alS9aWA writelnHook;
tyProc_22mgIiTBBoqNe1T0FSw9ahQ structuredErrorHook;
NimStringDesc* cppCustomNamespace;
};
typedef NU8 tySet_tyEnum_TInfoOSProp_thetQwB9agpeQ13qFmAcWhg;
struct tyTuple_5L3fCt9bX0gyEcO30ervPLw {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
NimStringDesc* Field3;
NimStringDesc* Field4;
NimStringDesc* Field5;
NimStringDesc* Field6;
NimStringDesc* Field7;
NimStringDesc* Field8;
NimStringDesc* Field9;
NimStringDesc* Field10;
NimStringDesc* Field11;
tySet_tyEnum_TInfoOSProp_thetQwB9agpeQ13qFmAcWhg Field12;
};
typedef tyTuple_5L3fCt9bX0gyEcO30ervPLw tyArray_AvOd9bOqQkvZ6R9aJoQwnnEg[28];
typedef NU8 tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw;
struct tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence_uB9b75OUPRENsBAu4AnoePA* trace;
NU raise_id;
Exception* up;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (Exception* e, void* ClE_0);
void* ClE_0;
} tyProc_NT9bSe2DDkjdtx7j9aov2Z6g;
struct TSafePoint {
TSafePoint* prev;
NI status;
jmp_buf context;
NIM_BOOL hasRaiseAction;
tyProc_NT9bSe2DDkjdtx7j9aov2Z6g raiseAction;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
struct tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA {
tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag a;
tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag b;
};
struct tyObject_HSlice_9cw2LolctLHcrKhmq01qQEw {
NI64 a;
NI64 b;
};
typedef NU8 tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA;
typedef NU8 tySet_tyEnum_TRenderFlag_wrPgUo1ExBlHvFnXN2nSHw;
struct tyTuple_kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef NU8 tySet_tyEnum_TTypeCmpFlag_72pgRXSg7774cr9aCWVPORw;
typedef NU8 tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg;
typedef NimStringDesc* tyArray_Re75IspeoxXy2oCZHwcRrA[2];
typedef NU8 tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw;
typedef NU8 tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg;
struct tyTuple_zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyTuple_xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyTuple_quA39a2QdEQU9cSEIUSibApQ {
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* Field0;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* Field1;
};
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;
};
struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
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;
};
struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA flags;
};
struct tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* 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_DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence_MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple_zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
struct tySequence_9brg1xNurxcus33lU4IE1Dw {
  TGenericSeq Sup;
  tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE];
};
struct tySequence_kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple_xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence_48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence_bWZXqEvLFwhLvAqSRoFNgQ {
  TGenericSeq Sup;
  tyTuple_quA39a2QdEQU9cSEIUSibApQ 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_PJMRIt5QxCm6bRaVyQ5CGA {
  TGenericSeq Sup;
  tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q 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_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
struct tySequence_uB9b75OUPRENsBAu4AnoePA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(NF, round_FL9bhksfuQsfLDCxRHuknsg)(NF x, NI places);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newSymNode_NJtIrnjsE5ii9ciiIDaE0HQ)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newType_dQhKkL6uAkw83dy6l4d7iQ)(tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr);
static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT_fCDI7oO1NNVXXURtxSzsRw)(tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit_IsUgUD6jUR9cHf7wFXGXH2A)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newIntNode_v2VGJAZNfKPVngZCqEXQtA)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getIntLitType_R31RMSlMd8WWIYpM0EKGkA)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* literal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newStrNode_8GaTnuPqpzGLNcerzDOURQ)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, NimStringDesc* strVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw)(NI64 intVal, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA)(NimStringDesc* strVal, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getDateStr_7lKwM9comFwDToEBdQl3ODA_2)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getClockStr_7lKwM9comFwDToEBdQl3ODA_3)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuToLowerAsciiStr)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getAppType_XJUiUT3P9aiC4nLcMO0ct1A)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw)(NF floatVal, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newFloatNode_TjQAA1fOcrmI6Hb9bZNtixw)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, NF floatVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getFloatLitType_gbUDJnd8WM9alItYI0K5VKA)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* literal);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined_TeEHxEj0zXnJc9aUarshH9aA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* symbol);
static N_INLINE(void, pushSafePoint)(TSafePoint* s);
N_LIB_PRIVATE N_NIMCALL(NI, nsuParseInt)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc**, nstTake)(tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* t, NimStringDesc* key);
static N_INLINE(void, popSafePoint)(void);
N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
static N_INLINE(Exception*, getCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, localError_NF6kBGchnhQYPbCedyefVA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
static N_INLINE(void, popCurrentException)(void);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef_9cAA5YuQAAC3MVbnGeV86swsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, decRef_MV4BBk6J1qu70IbBxwEn4wsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_NIMCALL(void, reraiseException)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, copyTree_lz8T1F9c0YwEOpUnrAUYgjg_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newSymNodeTypeDesc_LBSKfJWN58S5YV9bDMBn6bQ)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, base_BFFuB9cFDZ89c6QWZqEFAtdA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
static N_INLINE(NIM_BOOL, isIntLit_xUyAbEic5Yj9bmdDArJbHkQtypes)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, copyNode_lz8T1F9c0YwEOpUnrAUYgjg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getConstIfExpr_2kStqt7u4DPR9b4UNFMJdQg)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(NI, sonsLen_qPWPHw7WgJeEVYUdcaRIig)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAsigmatch)(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(NI64, getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, internalError_yTu5SGHF0j0P9cQrqN7YylA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg);
N_LIB_PRIVATE N_NIMCALL(NI64, computeSize_vCG1GF2Iu043oALVyuJfOw_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NI64, getSize_vCG1GF2Iu043oALVyuJfOw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NI64, firstOrd_4cSIntenL9aBXY6LAFsvXdQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NI64, lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NIM_BOOL fixedUnsigned);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getArrayConstr_A7gcXCy5E3uGBy5F37NoHA_2)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, magicCall_A7gcXCy5E3uGBy5F37NoHA_3)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, evalOp_naTMtRq9avUKkKDwI0csDMg)(tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* c, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(NI64, getInt_asVzx7Ey1eetKeO2f0L06A)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldUnarySub_h8VrKCJ8WNwF9c9cv9b42yFnw)(NI64 a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(NF, getFloat_byKNclgRvtC7QG1n2KY75w)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(NI64, cardSet_rIy8FkZfgdui9cmJlRrbtNA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA)(NimStringDesc* msg);
static N_INLINE(NIM_BOOL, contains_Q79akNsDbJpCYo4tQzRSE2Qsem)(tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA s, tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag value);
static N_INLINE(tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA, dotdot__2BOQQTJSgRdTj69bMDpS1Zwsem)(tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag a, tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag b);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem_2Mfumf6CnyNlShDWdIgobwsystem)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(NI64, lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldAbs_h8VrKCJ8WNwF9c9cv9b42yFnw_2)(NI64 a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldSub_sh6hr7wzGT8G7W4jEaOcpA)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkInRange_TKFv3NseM9b8mRlHohlbaRg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI64 res);
static N_INLINE(NIM_BOOL, contains_flNqLtrYYJ8PGjVdd06Vfwsemfold)(tyObject_HSlice_9cw2LolctLHcrKhmq01qQEw s, NI64 value);
static N_INLINE(tyObject_HSlice_9cw2LolctLHcrKhmq01qQEw, dotdot__irxUiVnjwt19bztFXgbM2Zwsemfold)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldAdd_sh6hr7wzGT8G7W4jEaOcpA_2)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldMul_sh6hr7wzGT8G7W4jEaOcpA_3)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldDiv_sh6hr7wzGT8G7W4jEaOcpA_4)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldMod_sh6hr7wzGT8G7W4jEaOcpA_5)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA, classify_rfodLs2J9b87EDgWnWZoObA)(NF x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getStr_Zk78ps1ie3XE3N7AlzjwWw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
static N_INLINE(NI, cmpStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem_DCrUjdaMvFDHaR1hs7sQGwropes)(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*, foldModU_sh6hr7wzGT8G7W4jEaOcpA_6)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldDivU_sh6hr7wzGT8G7W4jEaOcpA_7)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsSets_Jr5d2PbcnAZ0pFa4Ny88lg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalSets_Jr5d2PbcnAZ0pFa4Ny88lg_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, intersectSets_DJXyM0ZYUUgI9bAP6orixDA_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, unionSets_DJXyM0ZYUUgI9bAP6orixDA_3)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, diffSets_DJXyM0ZYUUgI9bAP6orixDA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, symdiffSets_DJXyM0ZYUUgI9bAP6orixDA_4)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getStrOrChar_Zk78ps1ie3XE3N7AlzjwWw_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inSet_VvyYhvd9atxl9bcAMuxQlSOg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* s, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* elem);
N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr_9bUFQ4OV1temcDF0GZp317g)(NimStringDesc* s, NI first);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr_TWXUwbnq0SWWvDLfr8LXYw)(NimStringDesc* s, NI first, NI last);
N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF f);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, ordinalValToString_1UtzyyNfA4Pde4QCgge15Q)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, testCompileOption_9bbrBm0brnGO9cOW9coVJSCaQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* switch_0, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, testCompileOptionArg_Wd9alT05EZZXVF7dib5G9cYg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* switch_0, NimStringDesc* arg, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent_XApnXRaD9btY9a4pkMO0ITTg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, NIM_BOOL strictSymEquality);
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*, foldConStrStr_A7gcXCy5E3uGBy5F37NoHA_4)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, evalIs_twF4ZwUpo78kqt4ytMvq6g)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* lhs, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(void, internalError_5hPl6LjCYJxMYxh9af9b9bXzw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* errMsg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__E5ya0OOlyISUCw4ENFn9bLA)(tyTuple_kN8up2W6YKc5YA9avn5mV5w x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
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(void, addSon_gCCf68XrWL79bKes6htzFjQ_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, leValueConv_7BZeIQfBp6XDNEtQI9b4eQA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString_QlvraUan7WbHowhAbvDvdA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw prefer);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldConv_MlnTAS4JHv81FgG2EV9ci3g)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, NIM_BOOL check);
N_LIB_PRIVATE N_NIMCALL(void, rangeCheck_sIXuJrfp8NppRGrQ0WgzQg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI64 value, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldArrayAccess_A7gcXCy5E3uGBy5F37NoHA_5)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__qX5C9b0n9bOP7jk69amC8dA7A)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldFieldAccess_A7gcXCy5E3uGBy5F37NoHA_6)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
extern TSafePoint* excHandler_rqLlY5bs9atDw2OXYqJEn5g;
extern TNimType NTI_5aqBlilCK53e9cDu4kUyN5Q_;
extern Exception* currException_9bVPeDJlYTi9bQApZpfH8wjg;
extern TNimType NTI_Ss6DFlX5iSZpHRZDmP74bg_;
extern TNimType NTI_vASt1Zy2CLWqyBeLxcXqow_;
extern NIM_CONST tyArray_2EeRc2Lr9cCM9aL82QsBOFXA CPU_uYXopJX8pM87pQDCtmgWfQ;
extern NIM_CONST tyArray_AvOd9bOqQkvZ6R9aJoQwnnEg OS_Jx0qy9c9bSo4fGkMxUfUaAaw;
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_2, "lib", 3);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_3, "staticlib", 9);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_4, "gui", 3);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_5, "console", 7);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_7, "expression is not an integer literal", 36);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_8, "getConstIfExpr()", 16);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_10, "cannot evaluate \'sizeof\' because its type is not defined comple"
"tely", 67);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_11, "/Users/andreasrumpf-mac/projects/build_nim_xz/build/Nim/compile"
"r/semfold.nim(223, 12) `contains({nkIntLit, nkCharLit}, n.kind)`"
" ", 128);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_12, "constant folding for shl", 24);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_13, "constant folding for shr", 24);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_14, "constant folding for ashr", 25);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_15, "false", 5);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_16, "true", 4);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_17, "ordinalValToString", 18);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_18, "no symbol for ordinal value: ", 29);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_20, "semfold.nim", 11);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_JtgqXuJaW0Uz9aqyNPWIZsw_19 = {((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_20),
((NI) 182),
((NI) 17)}
;
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_21, "closure", 7);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_22, "iterator", 8);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_23, "over- or underflow", 18);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_24, "division by zero", 16);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_25, "conversion from $1 to $2 is invalid", 35);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_26, "cannot convert ", 15);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_27, " to ", 4);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_28, "index out of bounds: ", 21);
STRING_LITERAL(TM_JtgqXuJaW0Uz9aqyNPWIZsw_29, "field not found: ", 17);

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, leValueConv_7BZeIQfBp6XDNEtQI9b4eQA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = NIM_FALSE;
	switch ((*a).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		switch ((*b).kind) {
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
		{
			result = ((*a)._Ukind.S1.intVal <= (*b)._Ukind.S1.intVal);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 19):
		{
			NF T4_;
			T4_ = (NF)0;
			T4_ = round_FL9bhksfuQsfLDCxRHuknsg((*b)._Ukind.S2.floatVal, ((NI) 0));
			result = ((*a)._Ukind.S1.intVal <= ((NI64) (((NI) (T4_)))));
		}
		break;
		default:
		{
			result = NIM_FALSE;
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 19):
	{
		switch ((*b).kind) {
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 19):
		{
			result = ((*a)._Ukind.S2.floatVal <= (*b)._Ukind.S2.floatVal);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
		{
			result = ((*a)._Ukind.S2.floatVal <= ((double) (((NI) ((*b)._Ukind.S1.intVal)))));
		}
		break;
		default:
		{
			result = NIM_FALSE;
		}
		break;
		}
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	return result;
}

static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* result;
	result = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result = ((tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (ptrdiff_t) (usr))) - (NU32)(((NI)sizeof(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g))))));
	return result;
}

static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c;
		if (!!((src == NIM_NIL))) goto LA3_;
		c = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src);
		(*c).refcount += ((NI) 8);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c_2;
		if (!!(((*dest) == NIM_NIL))) goto LA7_;
		c_2 = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest));
		{
			(*c_2).refcount -= ((NI) 8);
			if (!((NU32)((*c_2).refcount) < (NU32)(((NI) 8)))) goto LA11_;
			rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system(c_2);
		}
		LA11_: ;
	}
	LA7_: ;
	(*dest) = src;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newSymNodeTypeDesc_LBSKfJWN58S5YV9bDMBn6bQ)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newSymNode_NJtIrnjsE5ii9ciiIDaE0HQ(s, info);
	{
		if (!!(((*(*s).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8)))) goto LA3_;
		asgnRefNoCycle((void**) (&(*result).typ), newType_dQhKkL6uAkw83dy6l4d7iQ(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8), (*s).owner));
		addSonSkipIntLit_IsUgUD6jUR9cHf7wFXGXH2A((*result).typ, (*s).typ);
	}
	goto LA1_;
	LA3_: ;
	{
		asgnRefNoCycle((void**) (&(*result).typ), (*s).typ);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw)(NI64 intVal, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165772622096));
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31):
	{
		result = newIntNode_v2VGJAZNfKPVngZCqEXQtA(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6), intVal);
		{
			if (!((*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31))) goto LA5_;
			asgnRefNoCycle((void**) (&(*result).typ), getIntLitType_R31RMSlMd8WWIYpM0EKGkA(g, result));
		}
		goto LA3_;
		LA5_: ;
		{
			asgnRefNoCycle((void**) (&(*result).typ), (*n).typ);
		}
		LA3_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		result = newIntNode_v2VGJAZNfKPVngZCqEXQtA(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5), intVal);
		asgnRefNoCycle((void**) (&(*result).typ), (*n).typ);
	}
	break;
	default:
	{
		result = newIntNode_v2VGJAZNfKPVngZCqEXQtA(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6), intVal);
		asgnRefNoCycle((void**) (&(*result).typ), (*n).typ);
	}
	break;
	}
	(*result).info = (*n).info;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA)(NimStringDesc* strVal, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newStrNode_8GaTnuPqpzGLNcerzDOURQ(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20), strVal);
	asgnRefNoCycle((void**) (&(*result).typ), (*n).typ);
	(*result).info = (*n).info;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getAppType_XJUiUT3P9aiC4nLcMO0ct1A)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!(((*(*g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 7))&63U)))!=0)) goto LA3_;
		result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_2), n, g);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(((*(*g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 8))&63U)))!=0)) goto LA6_;
		result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_3), n, g);
	}
	goto LA1_;
	LA6_: ;
	{
		if (!(((*(*g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 9))&63U)))!=0)) goto LA9_;
		result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_4), n, g);
	}
	goto LA1_;
	LA9_: ;
	{
		result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_5), n, g);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw)(NF floatVal, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newFloatNode_TjQAA1fOcrmI6Hb9bZNtixw(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16), floatVal);
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165772622096));
		if (!((*T3_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36))) goto LA4_;
		asgnRefNoCycle((void**) (&(*result).typ), getFloatLitType_gbUDJnd8WM9alItYI0K5VKA(g, result));
	}
	goto LA1_;
	LA4_: ;
	{
		asgnRefNoCycle((void**) (&(*result).typ), (*n).typ);
	}
	LA1_: ;
	(*result).info = (*n).info;
	return result;
}

static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
	(*s).hasRaiseAction = NIM_FALSE;
	(*s).prev = excHandler_rqLlY5bs9atDw2OXYqJEn5g;
	excHandler_rqLlY5bs9atDw2OXYqJEn5g = s;
}

static N_INLINE(void, popSafePoint)(void) {
	excHandler_rqLlY5bs9atDw2OXYqJEn5g = (*excHandler_rqLlY5bs9atDw2OXYqJEn5g).prev;
}

static N_INLINE(Exception*, getCurrentException)(void) {
	Exception* result;
	result = (Exception*)0;
	result = currException_9bVPeDJlYTi9bQApZpfH8wjg;
	return result;
}

static N_INLINE(void, incRef_9cAA5YuQAAC3MVbnGeV86swsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = (NI)((NU32)((*c).refcount) + (NU32)(((NI) 8)));
}

static N_INLINE(void, decRef_MV4BBk6J1qu70IbBxwEn4wsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3_;
		rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system(c);
	}
	LA3_: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src);
		incRef_9cAA5YuQAAC3MVbnGeV86swsystem(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest));
		decRef_MV4BBk6J1qu70IbBxwEn4wsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}

static N_INLINE(void, popCurrentException)(void) {
	asgnRef((void**) (&currException_9bVPeDJlYTi9bQApZpfH8wjg), (*currException_9bVPeDJlYTi9bQApZpfH8wjg).up);
}

static N_INLINE(NIM_BOOL, isIntLit_xUyAbEic5Yj9bmdDArJbHkQtypes)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
	if (!(T2_)) goto LA3_;
	T2_ = !(((*t).n == NIM_NIL));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((*(*t).n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6));
	LA4_: ;
	result = T1_;
	return result;
}

static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAsigmatch)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._Ukind.S6.sons ? (*n)._Ukind.S6.sons->Sup.len : 0);
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getConstIfExpr_2kStqt7u4DPR9b4UNFMJdQg)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				it = (*n)._Ukind.S6.sons->data[i];
				{
					NI T7_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e;
					T7_ = (NI)0;
					T7_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(it);
					if (!(T7_ == ((NI) 2))) goto LA8_;
					e = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(c, (*it)._Ukind.S6.sons->data[((NI) 0)], g);
					{
						if (!(e == NIM_NIL)) goto LA12_;
						result = NIM_NIL;
						goto BeforeRet_;
					}
					LA12_: ;
					{
						NI64 T16_;
						T16_ = (NI64)0;
						T16_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(e);
						if (!!((T16_ == IL64(0)))) goto LA17_;
						{
							if (!(result == NIM_NIL)) goto LA21_;
							result = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(c, (*it)._Ukind.S6.sons->data[((NI) 1)], g);
							{
								if (!(result == NIM_NIL)) goto LA25_;
								goto BeforeRet_;
							}
							LA25_: ;
						}
						LA21_: ;
					}
					LA17_: ;
				}
				goto LA5_;
				LA8_: ;
				{
					NI T28_;
					T28_ = (NI)0;
					T28_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(it);
					if (!(T28_ == ((NI) 1))) goto LA29_;
					{
						if (!(result == NIM_NIL)) goto LA33_;
						result = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(c, (*it)._Ukind.S6.sons->data[((NI) 0)], g);
					}
					LA33_: ;
				}
				goto LA5_;
				LA29_: ;
				{
					internalError_yTu5SGHF0j0P9cQrqN7YylA((*g).config, (*it).info, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_8));
				}
				LA5_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getArrayConstr_A7gcXCy5E3uGBy5F37NoHA_2)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA3_;
		result = n;
	}
	goto LA1_;
	LA3_: ;
	{
		result = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, n, g);
		{
			if (!(result == NIM_NIL)) goto LA8_;
			result = n;
		}
		LA8_: ;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldUnarySub_h8VrKCJ8WNwF9c9cv9b42yFnw)(NI64 a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI64 T3_;
		T3_ = (NI64)0;
		T3_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*g).config, (*n).typ);
		if (!!((a == T3_))) goto LA4_;
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(-(a), n, g);
	}
	LA4_: ;
	return result;
}

static N_INLINE(NIM_BOOL, contains_Q79akNsDbJpCYo4tQzRSE2Qsem)(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(void, nimSetMem_2Mfumf6CnyNlShDWdIgobwsystem)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}

static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem_2Mfumf6CnyNlShDWdIgobwsystem(p, ((int) 0), size);
}

static N_INLINE(tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA, dotdot__2BOQQTJSgRdTj69bMDpS1Zwsem)(tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag a, tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag b) {
	tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA));
	result.a = a;
	result.b = b;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!(n == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5)))) goto LA7_;
		failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_11));
	}
	LA7_: ;
	result = n;
	typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165764233488));
	{
		tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA T11_;
		NIM_BOOL T12_;
		NI64 T15_;
		T11_ = dotdot__2BOQQTJSgRdTj69bMDpS1Zwsem(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40), ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 43));
		T12_ = (NIM_BOOL)0;
		T12_ = contains_Q79akNsDbJpCYo4tQzRSE2Qsem(T11_, (*typ).kind);
		if (!T12_) goto LA13_;
		T15_ = (NI64)0;
		T15_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ(c, typ, NIM_TRUE);
		(*result)._Ukind.S1.intVal = (NI64)((*result)._Ukind.S1.intVal & T15_);
	}
	LA13_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldAbs_h8VrKCJ8WNwF9c9cv9b42yFnw_2)(NI64 a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI64 T3_;
		T3_ = (NI64)0;
		T3_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*g).config, (*n).typ);
		if (!!((a == T3_))) goto LA4_;
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((a > 0? (a) : -(a)), n, g);
	}
	LA4_: ;
	return result;
}

static N_INLINE(NIM_BOOL, contains_flNqLtrYYJ8PGjVdd06Vfwsemfold)(tyObject_HSlice_9cw2LolctLHcrKhmq01qQEw s, NI64 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_9cw2LolctLHcrKhmq01qQEw, dotdot__irxUiVnjwt19bztFXgbM2Zwsemfold)(NI64 a, NI64 b) {
	tyObject_HSlice_9cw2LolctLHcrKhmq01qQEw result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice_9cw2LolctLHcrKhmq01qQEw));
	result.a = a;
	result.b = b;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkInRange_TKFv3NseM9b8mRlHohlbaRg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI64 res) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NI64 T3_;
		NI64 T4_;
		tyObject_HSlice_9cw2LolctLHcrKhmq01qQEw T5_;
		NIM_BOOL T6_;
		T3_ = (NI64)0;
		T3_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ(conf, (*n).typ);
		T4_ = (NI64)0;
		T4_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ(conf, (*n).typ, NIM_FALSE);
		T5_ = dotdot__irxUiVnjwt19bztFXgbM2Zwsemfold(T3_, T4_);
		T6_ = (NIM_BOOL)0;
		T6_ = contains_flNqLtrYYJ8PGjVdd06Vfwsemfold(T5_, res);
		if (!T6_) goto LA7_;
		result = NIM_TRUE;
	}
	LA7_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldSub_sh6hr7wzGT8G7W4jEaOcpA)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	NI64 res;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	res = (NI64)((NU64)(a) - (NU64)(b));
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = (IL64(0) <= (NI64)(res ^ a));
		if (T4_) goto LA5_;
		T4_ = (IL64(0) <= (NI64)(res ^ (NI64)((NU64) ~(b))));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = checkInRange_TKFv3NseM9b8mRlHohlbaRg((*g).config, n, res);
		LA6_: ;
		if (!T3_) goto LA7_;
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(res, n, g);
	}
	LA7_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldAdd_sh6hr7wzGT8G7W4jEaOcpA_2)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	NI64 res;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	res = (NI64)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = (IL64(0) <= (NI64)(res ^ a));
		if (T4_) goto LA5_;
		T4_ = (IL64(0) <= (NI64)(res ^ b));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = checkInRange_TKFv3NseM9b8mRlHohlbaRg((*g).config, n, res);
		LA6_: ;
		if (!T3_) goto LA7_;
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(res, n, g);
	}
	LA7_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldMul_sh6hr7wzGT8G7W4jEaOcpA_3)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	NI64 res;
	NF floatProd;
	NF resAsFloat;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	res = (NI64)((NU64)(a) * (NU64)(b));
	floatProd = ((NF)(((double) (a))) * (NF)(((double) (b))));
	resAsFloat = ((double) (res));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (resAsFloat == floatProd);
		if (!(T3_)) goto LA4_;
		T3_ = checkInRange_TKFv3NseM9b8mRlHohlbaRg((*g).config, n, res);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(res, n, g);
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = (((NF)(3.2000000000000000e+01) * (NF)((((NF)(resAsFloat) - (NF)(floatProd)) < 0? -(((NF)(resAsFloat) - (NF)(floatProd))) : (((NF)(resAsFloat) - (NF)(floatProd)))))) <= (floatProd < 0? -(floatProd) : (floatProd)));
		if (!(T9_)) goto LA10_;
		T9_ = checkInRange_TKFv3NseM9b8mRlHohlbaRg((*g).config, n, res);
		LA10_: ;
		if (!T9_) goto LA11_;
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(res, n, g);
		goto BeforeRet_;
	}
	LA11_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldDiv_sh6hr7wzGT8G7W4jEaOcpA_4)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI64 T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((b == IL64(0)));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T6_ = (NI64)0;
		T6_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*g).config, (*n).typ);
		T5_ = !((a == T6_));
		if (T5_) goto LA7_;
		T5_ = !((b == IL64(-1)));
		LA7_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA8_;
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)(a / b), n, g);
	}
	LA8_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldMod_sh6hr7wzGT8G7W4jEaOcpA_5)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!!((b == IL64(0)))) goto LA3_;
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)(a % b), n, g);
	}
	LA3_: ;
	return result;
}

static N_INLINE(NI, cmpStrings)(NimStringDesc* a, NimStringDesc* b) {
	NI result;
	NI alen;
	NI blen;
	NI minlen;
	result = (NI)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	minlen = ((alen <= blen) ? alen : blen);
	{
		int T5_;
		if (!(((NI) 0) < minlen)) goto LA3_;
		T5_ = (int)0;
		T5_ = memcmp(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), minlen);
		result = ((NI) (T5_));
		{
			if (!(result == ((NI) 0))) goto LA8_;
			result = (NI)(alen - blen);
		}
		LA8_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = (NI)(alen - blen);
	}
	LA1_: ;
	return result;
}

static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}

static N_INLINE(NIM_BOOL, equalMem_DCrUjdaMvFDHaR1hs7sQGwropes)(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_DCrUjdaMvFDHaR1hs7sQGwropes(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldModU_sh6hr7wzGT8G7W4jEaOcpA_6)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!!((b == IL64(0)))) goto LA3_;
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)((NU64)(a) % (NU64)(b)), n, g);
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldDivU_sh6hr7wzGT8G7W4jEaOcpA_7)(NI64 a, NI64 b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!!((b == IL64(0)))) goto LA3_;
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)((NU64)(a) / (NU64)(b)), n, g);
	}
	LA3_: ;
	return result;
}

static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}

static N_INLINE(void, copyMem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == NIM_NIL))) goto LA3_;
		copyMem_fPlwH3r9agN9aEHB6yCPMh0wsystem(((void*) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, ordinalValToString_1UtzyyNfA4Pde4QCgge15Q)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	NimStringDesc* result;
	NI64 x;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
{	result = (NimStringDesc*)0;
	x = getInt_asVzx7Ey1eetKeO2f0L06A(a);
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*a).typ, IL64(36099165764233488));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		result = nimCharToStr(((NIM_CHAR) (((NI) ((NI)(((NI) (x)) & ((NI) 255)))))));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
		NimStringDesc* T20_;
		NimStringDesc* T21_;
		n = (*t).n;
		{
			NI i;
			NI colontmp_;
			NI T4_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T4_ = (NI)0;
			T4_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp_ = (NI)(T4_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
					if (!(res <= colontmp_)) goto LA6;
					i = res;
					{
						if (!!(((*(*n)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA9_;
						internalError_yTu5SGHF0j0P9cQrqN7YylA((*g).config, (*a).info, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_17));
					}
					LA9_: ;
					field = (*(*n)._Ukind.S6.sons->data[i])._Ukind.S4.sym;
					{
						if (!(((NI64) ((*field).position)) == x)) goto LA13_;
						{
							if (!((*field).ast == NIM_NIL)) goto LA17_;
							result = copyString((*(*field).name).s);
							goto BeforeRet_;
						}
						goto LA15_;
						LA17_: ;
						{
							result = copyString((*(*field).ast)._Ukind.S3.strVal);
							goto BeforeRet_;
						}
						LA15_: ;
					}
					LA13_: ;
					res += ((NI) 1);
				} LA6: ;
			}
		}
		T20_ = (NimStringDesc*)0;
		T21_ = (NimStringDesc*)0;
		T21_ = nimInt64ToStr(x);
		T20_ = rawNewString((T21_ ? T21_->Sup.len : 0) + 29);
appendString(T20_, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_18));
appendString(T20_, T21_);
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*g).config, (*a).info, T20_);
	}
	break;
	default:
	{
		result = nimInt64ToStr(x);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, evalOp_naTMtRq9avUKkKDwI0csDMg)(tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* c, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = NIM_NIL;
	switch (m) {
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 30):
	{
		NI64 T2_;
		T2_ = (NI64)0;
		T2_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(T2_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 44):
	{
		NI64 T4_;
		T4_ = (NI64)0;
		T4_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(T4_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 99):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 100):
	{
		NI64 T6_;
		T6_ = (NI64)0;
		T6_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		result = foldUnarySub_h8VrKCJ8WNwF9c9cv9b42yFnw(T6_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 106):
	{
		NF T8_;
		T8_ = (NF)0;
		T8_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
		result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(-(T8_), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 102):
	{
		NI64 T10_;
		T10_ = (NI64)0;
		T10_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)(IL64(1) - T10_), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 43):
	{
		NI64 T12_;
		T12_ = (NI64)0;
		T12_ = cardSet_rIy8FkZfgdui9cmJlRrbtNA((*g).config, a);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(T12_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 104):
	{
		NI64 T14_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T15_;
		T14_ = (NI64)0;
		T14_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T15_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T15_ = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)((NU64) ~(T14_)), n, g);
		result = fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA((*g).config, T15_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 37):
	{
		NI64 T17_;
		T17_ = (NI64)0;
		T17_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*g).config, (*a).typ);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(T17_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 38):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 35):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 40):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 36):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 39):
	{
		{
			if (!((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA21_;
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(IL64(0), n, g);
		}
		goto LA19_;
		LA21_: ;
		{
			if (!((*a).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*a).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA24_;
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (((*a)._Ukind.S3.strVal ? (*a)._Ukind.S3.strVal->Sup.len : 0))), n, g);
		}
		goto LA19_;
		LA24_: ;
		{
			NI T27_;
			T27_ = (NI)0;
			T27_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(a);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (T27_)), n, g);
		}
		LA19_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 103):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 105):
	{
		result = a;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 117):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 118):
	{
		NI64 T30_;
		T30_ = (NI64)0;
		T30_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(((double) (((NI) (T30_)))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 119):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 120):
	{
		NF T32_;
		T32_ = (NF)0;
		T32_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (float64ToInt32(T32_))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 107):
	{
		NF T34_;
		T34_ = (NF)0;
		T34_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
		result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw((T34_ < 0? -(T34_) : (T34_)), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 101):
	{
		NI64 T36_;
		T36_ = (NI64)0;
		T36_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		result = foldAbs_h8VrKCJ8WNwF9c9cv9b42yFnw_2(T36_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 108):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 109):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 110):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 111):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 112):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 113):
	{
		NI64 T38_;
		NI64 T39_;
		T38_ = (NI64)0;
		T38_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T39_ = (NI64)0;
		T39_ = getSize_vCG1GF2Iu043oALVyuJfOw((*g).config, (*a).typ);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)(T38_ & ((NI64) ((NI)((NI)((NU64)(((NI) 1)) << (NU64)((NI64)(T39_ * IL64(8)))) - ((NI) 1))))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 114):
	{
		NI64 T41_;
		T41_ = (NI64)0;
		T41_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)(T41_ & IL64(255)), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 115):
	{
		NI64 T43_;
		T43_ = (NI64)0;
		T43_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)(T43_ & IL64(65535)), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 116):
	{
		NI64 T45_;
		T45_ = (NI64)0;
		T45_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)(T45_ & IL64(4294967295)), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 27):
	{
		NI64 T47_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T48_;
		T47_ = (NI64)0;
		T47_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
		T48_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T48_ = foldSub_sh6hr7wzGT8G7W4jEaOcpA(T47_, IL64(1), n, g);
		result = fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA((*g).config, T48_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 52):
	{
		NI64 T50_;
		NI64 T51_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T52_;
		T50_ = (NI64)0;
		T50_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
		T51_ = (NI64)0;
		T51_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		T52_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T52_ = foldAdd_sh6hr7wzGT8G7W4jEaOcpA_2(T50_, T51_, n, g);
		result = fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA((*g).config, T52_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 53):
	{
		NI64 T54_;
		NI64 T55_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T56_;
		T54_ = (NI64)0;
		T54_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
		T55_ = (NI64)0;
		T55_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		T56_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T56_ = foldSub_sh6hr7wzGT8G7W4jEaOcpA(T54_, T55_, n, g);
		result = fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA((*g).config, T56_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 47):
	{
		NI64 T58_;
		NI64 T59_;
		T58_ = (NI64)0;
		T58_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T59_ = (NI64)0;
		T59_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		result = foldAdd_sh6hr7wzGT8G7W4jEaOcpA_2(T58_, T59_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 48):
	{
		NI64 T61_;
		NI64 T62_;
		T61_ = (NI64)0;
		T61_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T62_ = (NI64)0;
		T62_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		result = foldSub_sh6hr7wzGT8G7W4jEaOcpA(T61_, T62_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 49):
	{
		NI64 T64_;
		NI64 T65_;
		T64_ = (NI64)0;
		T64_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T65_ = (NI64)0;
		T65_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		result = foldMul_sh6hr7wzGT8G7W4jEaOcpA_3(T64_, T65_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 64):
	{
		{
			NI64 T69_;
			NI64 T70_;
			NI64 T73_;
			T69_ = (NI64)0;
			T69_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			T70_ = (NI64)0;
			T70_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			if (!(T69_ < T70_)) goto LA71_;
			T73_ = (NI64)0;
			T73_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(T73_, n, g);
		}
		goto LA67_;
		LA71_: ;
		{
			NI64 T75_;
			T75_ = (NI64)0;
			T75_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(T75_, n, g);
		}
		LA67_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 65):
	{
		{
			NI64 T79_;
			NI64 T80_;
			NI64 T83_;
			T79_ = (NI64)0;
			T79_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			T80_ = (NI64)0;
			T80_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			if (!(T79_ < T80_)) goto LA81_;
			T83_ = (NI64)0;
			T83_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(T83_, n, g);
		}
		goto LA77_;
		LA81_: ;
		{
			NI64 T85_;
			T85_ = (NI64)0;
			T85_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(T85_, n, g);
		}
		LA77_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 59):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T87_;
		T87_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T87_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165764233488));
		switch ((*T87_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 32):
		{
			NI64 T89_;
			NI64 T90_;
			T89_ = (NI64)0;
			T89_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			T90_ = (NI64)0;
			T90_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((NI8)((NU8)(((NI8) (T89_))) << (NU8)(((NI8) (T90_)))))), n, g);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 33):
		{
			NI64 T92_;
			NI64 T93_;
			T92_ = (NI64)0;
			T92_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			T93_ = (NI64)0;
			T93_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((NI16)((NU16)(((NI16) (T92_))) << (NU16)(((NI16) (T93_)))))), n, g);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 34):
		{
			NI64 T95_;
			NI64 T96_;
			T95_ = (NI64)0;
			T95_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			T96_ = (NI64)0;
			T96_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((NI32)((NU32)(((NI32) (T95_))) << (NU32)(((NI32) (T96_)))))), n, g);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31):
		{
			NI64 T98_;
			NI64 T99_;
			T98_ = (NI64)0;
			T98_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			T99_ = (NI64)0;
			T99_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)((NU64)(T98_) << (NU64)(T99_)), n, g);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
		{
			NI64 T101_;
			NI64 T102_;
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T103_;
			T101_ = (NI64)0;
			T101_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			T102_ = (NI64)0;
			T102_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			T103_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T103_ = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)((NU64)(T101_) << (NU64)(T102_)), n, g);
			result = fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA((*g).config, T103_);
		}
		break;
		default:
		{
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*g).config, (*n).info, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_12));
		}
		break;
		}
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 58):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T106_;
		T106_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T106_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165764233488));
		switch ((*T106_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 32):
		{
			NI64 T108_;
			NI64 T109_;
			T108_ = (NI64)0;
			T108_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			T109_ = (NI64)0;
			T109_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((NI8)((NU8)(((NI8) (T108_))) >> (NU8)(((NI8) (T109_)))))), n, g);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 33):
		{
			NI64 T111_;
			NI64 T112_;
			T111_ = (NI64)0;
			T111_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			T112_ = (NI64)0;
			T112_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((NI16)((NU16)(((NI16) (T111_))) >> (NU16)(((NI16) (T112_)))))), n, g);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 34):
		{
			NI64 T114_;
			NI64 T115_;
			T114_ = (NI64)0;
			T114_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			T115_ = (NI64)0;
			T115_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((NI32)((NU32)(((NI32) (T114_))) >> (NU32)(((NI32) (T115_)))))), n, g);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
		{
			NI64 T117_;
			NI64 T118_;
			T117_ = (NI64)0;
			T117_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			T118_ = (NI64)0;
			T118_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)((NU64)(T117_) >> (NU64)(T118_)), n, g);
		}
		break;
		default:
		{
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*g).config, (*n).info, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_13));
		}
		break;
		}
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 60):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T121_;
		T121_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T121_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165764233488));
		switch ((*T121_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 32):
		{
			NI64 T123_;
			NI64 T124_;
			T123_ = (NI64)0;
			T123_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			T124_ = (NI64)0;
			T124_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((NI8)((NI8)(((NI8) (T123_))) >> (NU8)(((NI8) (T124_)))))), n, g);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 33):
		{
			NI64 T126_;
			NI64 T127_;
			T126_ = (NI64)0;
			T126_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			T127_ = (NI64)0;
			T127_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((NI16)((NI16)(((NI16) (T126_))) >> (NU16)(((NI16) (T127_)))))), n, g);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 34):
		{
			NI64 T129_;
			NI64 T130_;
			T129_ = (NI64)0;
			T129_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			T130_ = (NI64)0;
			T130_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((NI32)((NI32)(((NI32) (T129_))) >> (NU32)(((NI32) (T130_)))))), n, g);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31):
		{
			NI64 T132_;
			NI64 T133_;
			T132_ = (NI64)0;
			T132_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
			T133_ = (NI64)0;
			T133_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)((NI64)(T132_) >> (NU64)(T133_)), n, g);
		}
		break;
		default:
		{
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*g).config, (*n).info, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_14));
		}
		break;
		}
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 50):
	{
		NI64 T136_;
		NI64 T137_;
		T136_ = (NI64)0;
		T136_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T137_ = (NI64)0;
		T137_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		result = foldDiv_sh6hr7wzGT8G7W4jEaOcpA_4(T136_, T137_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 51):
	{
		NI64 T139_;
		NI64 T140_;
		T139_ = (NI64)0;
		T139_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T140_ = (NI64)0;
		T140_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		result = foldMod_sh6hr7wzGT8G7W4jEaOcpA_5(T139_, T140_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 54):
	{
		NF T142_;
		NF T143_;
		T142_ = (NF)0;
		T142_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
		T143_ = (NF)0;
		T143_ = getFloat_byKNclgRvtC7QG1n2KY75w(b);
		result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(((NF)(T142_) + (NF)(T143_)), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 55):
	{
		NF T145_;
		NF T146_;
		T145_ = (NF)0;
		T145_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
		T146_ = (NF)0;
		T146_ = getFloat_byKNclgRvtC7QG1n2KY75w(b);
		result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(((NF)(T145_) - (NF)(T146_)), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 56):
	{
		NF T148_;
		NF T149_;
		T148_ = (NF)0;
		T148_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
		T149_ = (NF)0;
		T149_ = getFloat_byKNclgRvtC7QG1n2KY75w(b);
		result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(((NF)(T148_) * (NF)(T149_)), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 57):
	{
		{
			NF T153_;
			T153_ = (NF)0;
			T153_ = getFloat_byKNclgRvtC7QG1n2KY75w(b);
			if (!(T153_ == 0.0)) goto LA154_;
			{
				NF T158_;
				T158_ = (NF)0;
				T158_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
				if (!(T158_ == 0.0)) goto LA159_;
				result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(NAN, n, g);
			}
			goto LA156_;
			LA159_: ;
			{
				NF T162_;
				tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA T163_;
				T162_ = (NF)0;
				T162_ = getFloat_byKNclgRvtC7QG1n2KY75w(b);
				T163_ = (tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA)0;
				T163_ = classify_rfodLs2J9b87EDgWnWZoObA(T162_);
				if (!(T163_ == ((tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA) 3))) goto LA164_;
				result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(-INF, n, g);
			}
			goto LA156_;
			LA164_: ;
			{
				result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(INF, n, g);
			}
			LA156_: ;
		}
		goto LA151_;
		LA154_: ;
		{
			NF T168_;
			NF T169_;
			T168_ = (NF)0;
			T168_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
			T169_ = (NF)0;
			T169_ = getFloat_byKNclgRvtC7QG1n2KY75w(b);
			result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(((NF)(T168_) / (NF)(T169_)), n, g);
		}
		LA151_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 67):
	{
		{
			NF T173_;
			NF T174_;
			NF T177_;
			T173_ = (NF)0;
			T173_ = getFloat_byKNclgRvtC7QG1n2KY75w(b);
			T174_ = (NF)0;
			T174_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
			if (!(T173_ < T174_)) goto LA175_;
			T177_ = (NF)0;
			T177_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
			result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(T177_, n, g);
		}
		goto LA171_;
		LA175_: ;
		{
			NF T179_;
			T179_ = (NF)0;
			T179_ = getFloat_byKNclgRvtC7QG1n2KY75w(b);
			result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(T179_, n, g);
		}
		LA171_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 66):
	{
		{
			NF T183_;
			NF T184_;
			NF T187_;
			T183_ = (NF)0;
			T183_ = getFloat_byKNclgRvtC7QG1n2KY75w(b);
			T184_ = (NF)0;
			T184_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
			if (!(T183_ < T184_)) goto LA185_;
			T187_ = (NF)0;
			T187_ = getFloat_byKNclgRvtC7QG1n2KY75w(b);
			result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(T187_, n, g);
		}
		goto LA181_;
		LA185_: ;
		{
			NF T189_;
			T189_ = (NF)0;
			T189_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
			result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(T189_, n, g);
		}
		LA181_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 160):
	{
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23)))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 91):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 88):
	{
		NI64 T192_;
		NI64 T193_;
		T192_ = (NI64)0;
		T192_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
		T193_ = (NI64)0;
		T193_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((T192_ < T193_))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 90):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 87):
	{
		NI64 T195_;
		NI64 T196_;
		T195_ = (NI64)0;
		T195_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
		T196_ = (NI64)0;
		T196_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((T195_ <= T196_))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 86):
	{
		NI64 T198_;
		NI64 T199_;
		T198_ = (NI64)0;
		T198_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
		T199_ = (NI64)0;
		T199_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((T198_ == T199_))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 78):
	{
		NF T201_;
		NF T202_;
		T201_ = (NF)0;
		T201_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
		T202_ = (NF)0;
		T202_ = getFloat_byKNclgRvtC7QG1n2KY75w(b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((T201_ < T202_))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 77):
	{
		NF T204_;
		NF T205_;
		T204_ = (NF)0;
		T204_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
		T205_ = (NF)0;
		T205_ = getFloat_byKNclgRvtC7QG1n2KY75w(b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((T204_ <= T205_))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 76):
	{
		NF T207_;
		NF T208_;
		T207_ = (NF)0;
		T207_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
		T208_ = (NF)0;
		T208_ = getFloat_byKNclgRvtC7QG1n2KY75w(b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((T207_ == T208_))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 133):
	{
		NimStringDesc* T210_;
		NimStringDesc* T211_;
		T210_ = (NimStringDesc*)0;
		T210_ = getStr_Zk78ps1ie3XE3N7AlzjwWw(a);
		T211_ = (NimStringDesc*)0;
		T211_ = getStr_Zk78ps1ie3XE3N7AlzjwWw(b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((cmpStrings(T210_, T211_) < 0))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 132):
	{
		NimStringDesc* T213_;
		NimStringDesc* T214_;
		T213_ = (NimStringDesc*)0;
		T213_ = getStr_Zk78ps1ie3XE3N7AlzjwWw(a);
		T214_ = (NimStringDesc*)0;
		T214_ = getStr_Zk78ps1ie3XE3N7AlzjwWw(b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((cmpStrings(T213_, T214_) <= 0))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 131):
	{
		NimStringDesc* T216_;
		NimStringDesc* T217_;
		T216_ = (NimStringDesc*)0;
		T216_ = getStr_Zk78ps1ie3XE3N7AlzjwWw(a);
		T217_ = (NimStringDesc*)0;
		T217_ = getStr_Zk78ps1ie3XE3N7AlzjwWw(b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (eqStrings(T216_, T217_))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 82):
	{
		NI64 T219_;
		NI64 T220_;
		T219_ = (NI64)0;
		T219_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
		T220_ = (NI64)0;
		T220_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (((NU64)(T219_) < (NU64)(T220_)))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 81):
	{
		NI64 T222_;
		NI64 T223_;
		T222_ = (NI64)0;
		T222_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
		T223_ = (NI64)0;
		T223_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (((NU64)(T222_) <= (NU64)(T223_)))), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 61):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 129):
	{
		NI64 T225_;
		NI64 T226_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T227_;
		T225_ = (NI64)0;
		T225_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T226_ = (NI64)0;
		T226_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		T227_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T227_ = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)(T225_ & T226_), n, g);
		result = fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA((*g).config, T227_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 62):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 130):
	{
		NI64 T229_;
		NI64 T230_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T231_;
		T229_ = (NI64)0;
		T229_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T230_ = (NI64)0;
		T230_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		T231_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T231_ = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)(T229_ | T230_), n, g);
		result = fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA((*g).config, T231_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 63):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 96):
	{
		NI64 T233_;
		NI64 T234_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T235_;
		T233_ = (NI64)0;
		T233_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T234_ = (NI64)0;
		T234_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		T235_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T235_ = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)(T233_ ^ T234_), n, g);
		result = fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA((*g).config, T235_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 68):
	{
		NI64 T237_;
		NI64 T238_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T239_;
		T237_ = (NI64)0;
		T237_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T238_ = (NI64)0;
		T238_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		T239_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T239_ = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)((NU64)(T237_) + (NU64)(T238_)), n, g);
		result = fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA((*g).config, T239_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 69):
	{
		NI64 T241_;
		NI64 T242_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T243_;
		T241_ = (NI64)0;
		T241_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T242_ = (NI64)0;
		T242_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		T243_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T243_ = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)((NU64)(T241_) - (NU64)(T242_)), n, g);
		result = fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA((*g).config, T243_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 70):
	{
		NI64 T245_;
		NI64 T246_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T247_;
		T245_ = (NI64)0;
		T245_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T246_ = (NI64)0;
		T246_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		T247_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T247_ = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw((NI64)((NU64)(T245_) * (NU64)(T246_)), n, g);
		result = fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA((*g).config, T247_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 72):
	{
		NI64 T249_;
		NI64 T250_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T251_;
		T249_ = (NI64)0;
		T249_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T250_ = (NI64)0;
		T250_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		T251_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T251_ = foldModU_sh6hr7wzGT8G7W4jEaOcpA_6(T249_, T250_, n, g);
		result = fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA((*g).config, T251_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 71):
	{
		NI64 T253_;
		NI64 T254_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T255_;
		T253_ = (NI64)0;
		T253_ = getInt_asVzx7Ey1eetKeO2f0L06A(a);
		T254_ = (NI64)0;
		T254_ = getInt_asVzx7Ey1eetKeO2f0L06A(b);
		T255_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T255_ = foldDivU_sh6hr7wzGT8G7W4jEaOcpA_7(T253_, T254_, n, g);
		result = fitLiteral_ZznnY3N41Ao4InVd9aSI9cvA((*g).config, T255_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 135):
	{
		NIM_BOOL T257_;
		T257_ = (NIM_BOOL)0;
		T257_ = containsSets_Jr5d2PbcnAZ0pFa4Ny88lg((*g).config, a, b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (T257_)), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 134):
	{
		NIM_BOOL T259_;
		T259_ = (NIM_BOOL)0;
		T259_ = equalSets_Jr5d2PbcnAZ0pFa4Ny88lg_2((*g).config, a, b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (T259_)), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 136):
	{
		NIM_BOOL T261_;
		NIM_BOOL T263_;
		T261_ = (NIM_BOOL)0;
		T261_ = containsSets_Jr5d2PbcnAZ0pFa4Ny88lg((*g).config, a, b);
		if (!(T261_)) goto LA262_;
		T263_ = (NIM_BOOL)0;
		T263_ = equalSets_Jr5d2PbcnAZ0pFa4Ny88lg_2((*g).config, a, b);
		T261_ = !(T263_);
		LA262_: ;
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (T261_)), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 137):
	{
		result = intersectSets_DJXyM0ZYUUgI9bAP6orixDA_2((*g).config, a, b);
		(*result).info = (*n).info;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 138):
	{
		result = unionSets_DJXyM0ZYUUgI9bAP6orixDA_3((*g).config, a, b);
		(*result).info = (*n).info;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 139):
	{
		result = diffSets_DJXyM0ZYUUgI9bAP6orixDA((*g).config, a, b);
		(*result).info = (*n).info;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 140):
	{
		result = symdiffSets_DJXyM0ZYUUgI9bAP6orixDA_4((*g).config, a, b);
		(*result).info = (*n).info;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 141):
	{
		NimStringDesc* T269_;
		NimStringDesc* T270_;
		NimStringDesc* T271_;
		T269_ = (NimStringDesc*)0;
		T270_ = (NimStringDesc*)0;
		T270_ = getStrOrChar_Zk78ps1ie3XE3N7AlzjwWw_2(a);
		T271_ = (NimStringDesc*)0;
		T271_ = getStrOrChar_Zk78ps1ie3XE3N7AlzjwWw_2(b);
		T269_ = rawNewString((T270_ ? T270_->Sup.len : 0) + (T271_ ? T271_->Sup.len : 0) + 0);
appendString(T269_, T270_);
appendString(T269_, T271_);
		result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T269_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 151):
	{
		NIM_BOOL T273_;
		T273_ = (NIM_BOOL)0;
		T273_ = inSet_VvyYhvd9atxl9bcAMuxQlSOg(a, b);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (T273_)), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 152):
	{
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 123):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 124):
	{
		NI64 T276_;
		NimStringDesc* T277_;
		T276_ = (NI64)0;
		T276_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
		T277_ = (NimStringDesc*)0;
		T277_ = nimInt64ToStr(T276_);
		result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T277_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 122):
	{
		{
			NI64 T281_;
			T281_ = (NI64)0;
			T281_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
			if (!(T281_ == IL64(0))) goto LA282_;
			result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_15), n, g);
		}
		goto LA279_;
		LA282_: ;
		{
			result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_16), n, g);
		}
		LA279_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 162):
	{
		NimStringDesc* T286_;
		NI64 T287_;
		NimStringDesc* T288_;
		T286_ = (NimStringDesc*)0;
		T286_ = getStr_Zk78ps1ie3XE3N7AlzjwWw(a);
		T287_ = (NI64)0;
		T287_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(b);
		T288_ = (NimStringDesc*)0;
		T288_ = substr_9bUFQ4OV1temcDF0GZp317g(T286_, ((NI) (T287_)));
		result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T288_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 163):
	{
		NimStringDesc* T290_;
		NI64 T291_;
		NI64 T292_;
		NimStringDesc* T293_;
		T290_ = (NimStringDesc*)0;
		T290_ = getStr_Zk78ps1ie3XE3N7AlzjwWw(a);
		T291_ = (NI64)0;
		T291_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(b);
		T292_ = (NI64)0;
		T292_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(c);
		T293_ = (NimStringDesc*)0;
		T293_ = substr_TWXUwbnq0SWWvDLfr8LXYw(T290_, ((NI) (T291_)), ((NI) (T292_)));
		result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T293_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 125):
	{
		NF T295_;
		NimStringDesc* T296_;
		T295_ = (NF)0;
		T295_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
		T296_ = (NimStringDesc*)0;
		T296_ = nimFloatToStr(T295_);
		result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T296_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 126):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 121):
	{
		{
			NimStringDesc* s;
			if (!((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA300_;
			s = ((NimStringDesc*) NIM_NIL);
			{
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b_2;
				tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
				NI i;
				NI L;
				NI T303_;
				b_2 = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
				colontmp_ = (*a)._Ukind.S6.sons;
				i = ((NI) 0);
				T303_ = (colontmp_ ? colontmp_->Sup.len : 0);
				L = T303_;
				{
					while (1) {
						NimStringDesc* T306_;
						if (!(i < L)) goto LA305;
						b_2 = colontmp_->data[i];
						T306_ = (NimStringDesc*)0;
						T306_ = getStrOrChar_Zk78ps1ie3XE3N7AlzjwWw_2(b_2);
						s = resizeString(s, (T306_ ? T306_->Sup.len : 0) + 0);
appendString(s, T306_);
						i += ((NI) 1);
					} LA305: ;
				}
			}
			result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(s, n, g);
		}
		goto LA298_;
		LA300_: ;
		{
			NimStringDesc* T308_;
			T308_ = (NimStringDesc*)0;
			T308_ = getStrOrChar_Zk78ps1ie3XE3N7AlzjwWw_2(a);
			result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T308_, n, g);
		}
		LA298_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 127):
	{
		result = a;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 128):
	{
		NimStringDesc* T311_;
		T311_ = (NimStringDesc*)0;
		T311_ = ordinalValToString_1UtzyyNfA4Pde4QCgge15Q(a, g);
		result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T311_, n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 161):
	{
		result = copyTree_lz8T1F9c0YwEOpUnrAUYgjg_2(a);
		asgnRefNoCycle((void**) (&(*result).typ), (*n).typ);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 229):
	{
		NimStringDesc* T314_;
		NIM_BOOL T315_;
		T314_ = (NimStringDesc*)0;
		T314_ = getStr_Zk78ps1ie3XE3N7AlzjwWw(a);
		T315_ = (NIM_BOOL)0;
		T315_ = testCompileOption_9bbrBm0brnGO9cOW9coVJSCaQ((*g).config, T314_, (*n).info);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (T315_)), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 230):
	{
		NimStringDesc* T317_;
		NimStringDesc* T318_;
		NIM_BOOL T319_;
		T317_ = (NimStringDesc*)0;
		T317_ = getStr_Zk78ps1ie3XE3N7AlzjwWw(a);
		T318_ = (NimStringDesc*)0;
		T318_ = getStr_Zk78ps1ie3XE3N7AlzjwWw(b);
		T319_ = (NIM_BOOL)0;
		T319_ = testCompileOptionArg_Wd9alT05EZZXVF7dib5G9cYg((*g).config, T317_, T318_, (*n).info);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (T319_)), n, g);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 98):
	{
		NIM_BOOL T321_;
		T321_ = (NIM_BOOL)0;
		T321_ = exprStructuralEquivalent_XApnXRaD9btY9a4pkMO0ITTg(a, b, NIM_TRUE);
		result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (T321_)), n, g);
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, magicCall_A7gcXCy5E3uGBy5F37NoHA_3)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* c;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		if (!(T3_ <= ((NI) 1))) goto LA4_;
		goto BeforeRet_;
	}
	LA4_: ;
	s = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
	a = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 1)], g);
	b = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	c = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!(a == NIM_NIL)) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	{
		NI T12_;
		T12_ = (NI)0;
		T12_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		if (!(((NI) 2) < T12_)) goto LA13_;
		b = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 2)], g);
		{
			if (!(b == NIM_NIL)) goto LA17_;
			goto BeforeRet_;
		}
		LA17_: ;
		{
			NI T21_;
			T21_ = (NI)0;
			T21_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			if (!(((NI) 3) < T21_)) goto LA22_;
			c = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 3)], g);
			{
				if (!(c == NIM_NIL)) goto LA26_;
				goto BeforeRet_;
			}
			LA26_: ;
		}
		LA22_: ;
	}
	LA13_: ;
	result = evalOp_naTMtRq9avUKkKDwI0csDMg((*s).magic, n, a, b, c, g);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldConStrStr_A7gcXCy5E3uGBy5F37NoHA_4)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20), (*n).info, (*n).typ);
	asgnRefNoCycle((void**) (&(*result)._Ukind.S3.strVal), ((NimStringDesc*) NIM_NIL));
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a;
				NimStringDesc* T9_;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				a = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[i], g);
				{
					if (!(a == NIM_NIL)) goto LA7_;
					result = NIM_NIL;
					goto BeforeRet_;
				}
				LA7_: ;
				T9_ = (NimStringDesc*)0;
				T9_ = getStrOrChar_Zk78ps1ie3XE3N7AlzjwWw_2(a);
				asgnRefNoCycle((void**) (&(*result)._Ukind.S3.strVal), resizeString((*result)._Ukind.S3.strVal, (T9_ ? T9_->Sup.len : 0) + 0));
appendString((*result)._Ukind.S3.strVal, T9_);
				res += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, evalIs_twF4ZwUpo78kqt4ytMvq6g)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* lhs, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL res;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t1;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t2;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T5_;
		NimStringDesc* T10_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NI)0;
		T5_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		T4_ = (T5_ == ((NI) 3));
		if (!(T4_)) goto LA6_;
		T4_ = !(((*lhs).typ == NIM_NIL));
		LA6_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		T3_ = ((*(*n)._Ukind.S6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*n)._Ukind.S6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22) || (*(*n)._Ukind.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 4));
		LA7_: ;
		if (!!(T3_)) goto LA8_;
		T10_ = (NimStringDesc*)0;
		T10_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_JtgqXuJaW0Uz9aqyNPWIZsw_19);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*g).config, T10_);
	}
	LA8_: ;
	res = NIM_FALSE;
	t1 = (*lhs).typ;
	t2 = (*(*n)._Ukind.S6.sons->data[((NI) 2)]).typ;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = ((*t1).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8));
		if (!(T13_)) goto LA14_;
		T13_ = !(((*t2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8)));
		LA14_: ;
		if (!T13_) goto LA15_;
		t1 = base_BFFuB9cFDZ89c6QWZqEFAtdA(t1);
	}
	LA15_: ;
	{
		NimStringDesc* T21_;
		if (!((*(*n)._Ukind.S6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*n)._Ukind.S6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA19_;
		T21_ = (NimStringDesc*)0;
		T21_ = nsuNormalize((*(*n)._Ukind.S6.sons->data[((NI) 2)])._Ukind.S3.strVal);
		if (eqStrings(T21_, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_21))) goto LA22_;
		if (eqStrings(T21_, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_22))) goto LA23_;
		goto LA24_;
		LA22_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
			NIM_BOOL T27_;
			NIM_BOOL T28_;
			t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t1, IL64(36099165764233488));
			T27_ = (NIM_BOOL)0;
			T28_ = (NIM_BOOL)0;
			T28_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T28_)) goto LA29_;
			T28_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
			LA29_: ;
			T27_ = T28_;
			if (!(T27_)) goto LA30_;
			T27_ = !((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0));
			LA30_: ;
			res = T27_;
		}
		goto LA25_;
		LA23_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
			NIM_BOOL T32_;
			NIM_BOOL T33_;
			t_2 = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t1, IL64(36099165764233488));
			T32_ = (NIM_BOOL)0;
			T33_ = (NIM_BOOL)0;
			T33_ = ((*t_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T33_)) goto LA34_;
			T33_ = ((*t_2).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
			LA34_: ;
			T32_ = T33_;
			if (!(T32_)) goto LA35_;
			T32_ = (((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0);
			LA35_: ;
			res = T32_;
		}
		goto LA25_;
		LA24_: ;
		{
			res = NIM_FALSE;
		}
		LA25_: ;
	}
	goto LA17_;
	LA19_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t2_2;
		t2_2 = (*(*n)._Ukind.S6.sons->data[((NI) 2)]).typ;
		res = sameType_3isNyHKb0U1OCnClmflXSg(t1, t2_2, 0);
	}
	LA17_: ;
	result = newIntNode_v2VGJAZNfKPVngZCqEXQtA(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (res)));
	asgnRefNoCycle((void**) (&(*result).typ), (*n).typ);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rangeCheck_sIXuJrfp8NppRGrQ0WgzQg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI64 value, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	NIM_BOOL err;
	err = NIM_FALSE;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		NIM_BOOL T6_;
		NI64 T7_;
		NI64 T9_;
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, 1048576);
		if (!((*T3_).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*T3_).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44))) goto LA4_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NI64)0;
		T7_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*g).config, (*n).typ);
		T6_ = ((NU64)(value) < (NU64)(T7_));
		if (T6_) goto LA8_;
		T9_ = (NI64)0;
		T9_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*g).config, (*n).typ, NIM_TRUE);
		T6_ = ((NU64)(T9_) < (NU64)(value));
		LA8_: ;
		err = T6_;
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T11_;
		NI64 T12_;
		NI64 T14_;
		T11_ = (NIM_BOOL)0;
		T12_ = (NI64)0;
		T12_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*g).config, (*n).typ);
		T11_ = (value < T12_);
		if (T11_) goto LA13_;
		T14_ = (NI64)0;
		T14_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*g).config, (*n).typ, NIM_FALSE);
		T11_ = (T14_ < value);
		LA13_: ;
		err = T11_;
	}
	LA1_: ;
	{
		NimStringDesc* T19_;
		NimStringDesc* T20_;
		NimStringDesc* T21_;
		if (!err) goto LA17_;
		T19_ = (NimStringDesc*)0;
		T20_ = (NimStringDesc*)0;
		T20_ = nimInt64ToStr(value);
		T21_ = (NimStringDesc*)0;
		T21_ = typeToString_QlvraUan7WbHowhAbvDvdA((*n).typ, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
		T19_ = rawNewString((T20_ ? T20_->Sup.len : 0) + (T21_ ? T21_->Sup.len : 0) + 19);
appendString(T19_, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_26));
appendString(T19_, T20_);
appendString(T19_, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_27));
appendString(T19_, T21_);
		localError_NF6kBGchnhQYPbCedyefVA((*g).config, (*n).info, T19_);
	}
	LA17_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldConv_MlnTAS4JHv81FgG2EV9ci3g)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, NIM_BOOL check) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dstTyp;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* srcTyp;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	dstTyp = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165764233488));
	srcTyp = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*a).typ, IL64(36099165764233488));
	switch ((*dstTyp).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		switch ((*srcTyp).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 38):
		{
			NF T3_;
			T3_ = (NF)0;
			T3_ = getFloat_byKNclgRvtC7QG1n2KY75w(a);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (((NI) (T3_)))), n, g);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
		{
			NI64 T5_;
			T5_ = (NI64)0;
			T5_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(T5_, n, g);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
		{
			NIM_BOOL toSigned;
			tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA T7_;
			NI64 val;
			T7_ = dotdot__2BOQQTJSgRdTj69bMDpS1Zwsem(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31), ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35));
			toSigned = contains_Q79akNsDbJpCYo4tQzRSE2Qsem(T7_, (*dstTyp).kind);
			val = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
			{
				if (!((*dstTyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) || (*dstTyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*dstTyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) || (*dstTyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44))) goto LA10_;
			}
			goto LA8_;
			LA10_: ;
			{
				NI mask;
				NI64 T19_;
				NIM_BOOL valSign;
				if (!((*dstTyp).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*dstTyp).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35))) goto LA13_;
				{
					if (!check) goto LA17_;
					rangeCheck_sIXuJrfp8NppRGrQ0WgzQg(n, val, g);
				}
				LA17_: ;
				T19_ = (NI64)0;
				T19_ = getSize_vCG1GF2Iu043oALVyuJfOw((*g).config, dstTyp);
				mask = (NI)((NI)((NU64)(((NI) 1)) << (NU64)((NI64)(T19_ * IL64(8)))) - ((NI) 1));
				valSign = (val < IL64(0));
				val = (NI64)((val > 0? (val) : -(val)) & ((NI64) (mask)));
				{
					if (!valSign) goto LA22_;
					val = -(val);
				}
				LA22_: ;
			}
			goto LA8_;
			LA13_: ;
			{
				NI mask_2;
				NI64 T25_;
				T25_ = (NI64)0;
				T25_ = getSize_vCG1GF2Iu043oALVyuJfOw((*g).config, dstTyp);
				mask_2 = (NI)((NI)((NU64)(((NI) 1)) << (NU64)((NI64)(T25_ * IL64(8)))) - ((NI) 1));
				val = (NI64)(val & ((NI64) (mask_2)));
			}
			LA8_: ;
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(val, n, g);
		}
		break;
		default:
		{
			result = a;
			asgnRefNoCycle((void**) (&(*result).typ), (*n).typ);
		}
		break;
		}
		{
			NIM_BOOL T29_;
			T29_ = (NIM_BOOL)0;
			T29_ = check;
			if (!(T29_)) goto LA30_;
			T29_ = ((*result).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*result).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15));
			LA30_: ;
			if (!T29_) goto LA31_;
			rangeCheck_sIXuJrfp8NppRGrQ0WgzQg(n, (*result)._Ukind.S1.intVal, g);
		}
		LA31_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 38):
	{
		switch ((*srcTyp).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
		{
			NI64 T35_;
			T35_ = (NI64)0;
			T35_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(a);
			result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(((double) (T35_)), n, g);
		}
		break;
		default:
		{
			result = a;
			asgnRefNoCycle((void**) (&(*result).typ), (*n).typ);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
	}
	break;
	default:
	{
		result = a;
		asgnRefNoCycle((void**) (&(*result).typ), (*n).typ);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldArrayAccess_A7gcXCy5E3uGBy5F37NoHA_5)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y;
	NI64 idx;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	x = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 0)], g);
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (x == NIM_NIL);
		if (T3_) goto LA4_;
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*x).typ, IL64(70368744179728));
		T3_ = ((*T5_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8));
		LA4_: ;
		if (!T3_) goto LA6_;
		goto BeforeRet_;
	}
	LA6_: ;
	y = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 1)], g);
	{
		if (!(y == NIM_NIL)) goto LA10_;
		goto BeforeRet_;
	}
	LA10_: ;
	idx = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(y);
	switch ((*x).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		{
			NIM_BOOL T15_;
			NI T17_;
			T15_ = (NIM_BOOL)0;
			T15_ = (IL64(0) <= idx);
			if (!(T15_)) goto LA16_;
			T17_ = (NI)0;
			T17_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(x);
			T15_ = (idx < ((NI64) (T17_)));
			LA16_: ;
			if (!T15_) goto LA18_;
			result = (*x)._Ukind.S6.sons->data[idx];
			{
				if (!((*result).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA22_;
				result = (*result)._Ukind.S6.sons->data[((NI) 1)];
			}
			LA22_: ;
		}
		goto LA13_;
		LA18_: ;
		{
			NimStringDesc* T25_;
			NimStringDesc* T26_;
			T25_ = (NimStringDesc*)0;
			T26_ = (NimStringDesc*)0;
			T26_ = dollar__qX5C9b0n9bOP7jk69amC8dA7A(n);
			T25_ = rawNewString((T26_ ? T26_->Sup.len : 0) + 21);
appendString(T25_, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_28));
appendString(T25_, T26_);
			localError_NF6kBGchnhQYPbCedyefVA((*g).config, (*n).info, T25_);
		}
		LA13_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		NI64 T28_;
		T28_ = (NI64)0;
		T28_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*g).config, (*x).typ);
		idx = (NI64)(idx - T28_);
		{
			NIM_BOOL T31_;
			NI T33_;
			T31_ = (NIM_BOOL)0;
			T31_ = (IL64(0) <= idx);
			if (!(T31_)) goto LA32_;
			T33_ = (NI)0;
			T33_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(x);
			T31_ = (idx < ((NI64) (T33_)));
			LA32_: ;
			if (!T31_) goto LA34_;
			result = (*x)._Ukind.S6.sons->data[idx];
		}
		goto LA29_;
		LA34_: ;
		{
			NimStringDesc* T37_;
			NimStringDesc* T38_;
			T37_ = (NimStringDesc*)0;
			T38_ = (NimStringDesc*)0;
			T38_ = dollar__qX5C9b0n9bOP7jk69amC8dA7A(n);
			T37_ = rawNewString((T38_ ? T38_->Sup.len : 0) + 21);
appendString(T37_, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_28));
appendString(T37_, T38_);
			localError_NF6kBGchnhQYPbCedyefVA((*g).config, (*n).info, T37_);
		}
		LA29_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5), (*x).info, (*n).typ);
		{
			NIM_BOOL T42_;
			T42_ = (NIM_BOOL)0;
			T42_ = (IL64(0) <= idx);
			if (!(T42_)) goto LA43_;
			T42_ = (idx < ((NI64) (((*x)._Ukind.S3.strVal ? (*x)._Ukind.S3.strVal->Sup.len : 0))));
			LA43_: ;
			if (!T42_) goto LA44_;
			(*result)._Ukind.S1.intVal = ((NI64) (((NU8)((*x)._Ukind.S3.strVal->data[idx]))));
		}
		goto LA40_;
		LA44_: ;
		{
			NIM_BOOL T47_;
			T47_ = (NIM_BOOL)0;
			T47_ = (idx == ((NI64) (((*x)._Ukind.S3.strVal ? (*x)._Ukind.S3.strVal->Sup.len : 0))));
			if (!(T47_)) goto LA48_;
			T47_ = (((*(*g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 25))&31U)))!=0);
			LA48_: ;
			if (!T47_) goto LA49_;
		}
		goto LA40_;
		LA49_: ;
		{
			NimStringDesc* T52_;
			NimStringDesc* T53_;
			T52_ = (NimStringDesc*)0;
			T53_ = (NimStringDesc*)0;
			T53_ = dollar__qX5C9b0n9bOP7jk69amC8dA7A(n);
			T52_ = rawNewString((T53_ ? T53_->Sup.len : 0) + 21);
appendString(T52_, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_28));
appendString(T52_, T53_);
			localError_NF6kBGchnhQYPbCedyefVA((*g).config, (*n).info, T52_);
		}
		LA40_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, foldFieldAccess_A7gcXCy5E3uGBy5F37NoHA_6)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
	NimStringDesc* T23_;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	x = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 0)], g);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (x == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = !(((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38) || (*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160)));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	field = (*(*n)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S4.sym;
	{
		NI i;
		NI colontmp_;
		NI colontmp__2;
		NI T8_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp__2 = (NI)0;
		colontmp_ = ((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38));
		T8_ = (NI)0;
		T8_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(x);
		colontmp__2 = (NI)(T8_ - ((NI) 1));
		res = colontmp_;
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(res <= colontmp__2)) goto LA10;
				i = res;
				it = (*x)._Ukind.S6.sons->data[i];
				{
					if (!!(((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34)))) goto LA13_;
					result = (*x)._Ukind.S6.sons->data[(*field).position];
					{
						if (!((*result).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA17_;
						result = (*result)._Ukind.S6.sons->data[((NI) 1)];
					}
					LA17_: ;
					goto BeforeRet_;
				}
				LA13_: ;
				{
					if (!((*(*(*(*it)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).name).Sup.id == (*(*field).name).Sup.id)) goto LA21_;
					result = (*(*x)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[((NI) 1)];
					goto BeforeRet_;
				}
				LA21_: ;
				res += ((NI) 1);
			} LA10: ;
		}
	}
	T23_ = (NimStringDesc*)0;
	T23_ = rawNewString(((*(*field).name).s ? (*(*field).name).s->Sup.len : 0) + 17);
appendString(T23_, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_29));
appendString(T23_, (*(*field).name).s);
	localError_NF6kBGchnhQYPbCedyefVA((*g).config, (*n).info, T23_);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getConstExpr_A7gcXCy5E3uGBy5F37NoHA)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* volatile result;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = NIM_NIL;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
		s = (*n)._Ukind.S4.sym;
		switch ((*s).kind) {
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 20):
		{
			result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((*s).position)), n, g);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 10):
		{
			switch ((*s).magic) {
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 216):
			{
				result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((((*m).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0))), n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 217):
			{
				NimStringDesc* T6_;
				T6_ = (NimStringDesc*)0;
				T6_ = getDateStr_7lKwM9comFwDToEBdQl3ODA_2();
				result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T6_, n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 218):
			{
				NimStringDesc* T8_;
				T8_ = (NimStringDesc*)0;
				T8_ = getClockStr_7lKwM9comFwDToEBdQl3ODA_3();
				result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T8_, n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 220):
			{
				result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (CPU_uYXopJX8pM87pQDCtmgWfQ[((*(*g).config).target.targetCPU)- 1].Field2)), n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 221):
			{
				NimStringDesc* T11_;
				T11_ = (NimStringDesc*)0;
				T11_ = nsuToLowerAsciiStr(OS_Jx0qy9c9bSo4fGkMxUfUaAaw[((*(*g).config).target.targetOS)- 1].Field0);
				result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T11_, n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 222):
			{
				NimStringDesc* T13_;
				T13_ = (NimStringDesc*)0;
				T13_ = nsuToLowerAsciiStr(CPU_uYXopJX8pM87pQDCtmgWfQ[((*(*g).config).target.targetCPU)- 1].Field0);
				result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T13_, n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 223):
			{
				NimStringDesc* T15_;
				T15_ = (NimStringDesc*)0;
				T15_ = nsuToLowerAsciiStr(OS_Jx0qy9c9bSo4fGkMxUfUaAaw[((*(*g).config).target.hostOS)- 1].Field0);
				result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T15_, n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 224):
			{
				NimStringDesc* T17_;
				T17_ = (NimStringDesc*)0;
				T17_ = nsuToLowerAsciiStr(CPU_uYXopJX8pM87pQDCtmgWfQ[((*(*g).config).target.hostCPU)- 1].Field0);
				result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T17_, n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 225):
			{
				result = getAppType_XJUiUT3P9aiC4nLcMO0ct1A(n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 226):
			{
				result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(NAN, n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 227):
			{
				result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(INF, n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 228):
			{
				result = newFloatNodeT_OMAB2zV6tA1m1J5ekRhsKw(-INF, n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 281):
			{
				{
					NIM_BOOL T25_;
					TSafePoint TM_JtgqXuJaW0Uz9aqyNPWIZsw_6;
					T25_ = (NIM_BOOL)0;
					T25_ = isDefined_TeEHxEj0zXnJc9aUarshH9aA((*g).config, (*(*s).name).s);
					if (!T25_) goto LA26_;
					pushSafePoint(&TM_JtgqXuJaW0Uz9aqyNPWIZsw_6);
					TM_JtgqXuJaW0Uz9aqyNPWIZsw_6.status = setjmp(TM_JtgqXuJaW0Uz9aqyNPWIZsw_6.context);
					if (TM_JtgqXuJaW0Uz9aqyNPWIZsw_6.status == 0) {
						NimStringDesc** T29_;
						NI T30_;
						T29_ = (NimStringDesc**)0;
						T29_ = nstTake((*(*g).config).symbols, (*(*s).name).s);
						T30_ = (NI)0;
						T30_ = nsuParseInt((*T29_));
						result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (T30_)), n, g);
						popSafePoint();
					}
					else {
						popSafePoint();
						if (isObj(getCurrentException()->Sup.m_type, (&NTI_5aqBlilCK53e9cDu4kUyN5Q_))) {
							TM_JtgqXuJaW0Uz9aqyNPWIZsw_6.status = 0;
							localError_NF6kBGchnhQYPbCedyefVA((*g).config, (*n).info, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_7));
							popCurrentException();
						}
					}
					if (TM_JtgqXuJaW0Uz9aqyNPWIZsw_6.status != 0) reraiseException();
				}
				LA26_: ;
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 282):
			{
				{
					NIM_BOOL T36_;
					NimStringDesc** T39_;
					T36_ = (NIM_BOOL)0;
					T36_ = isDefined_TeEHxEj0zXnJc9aUarshH9aA((*g).config, (*(*s).name).s);
					if (!T36_) goto LA37_;
					T39_ = (NimStringDesc**)0;
					T39_ = nstTake((*(*g).config).symbols, (*(*s).name).s);
					result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA((*T39_), n, g);
				}
				LA37_: ;
			}
			break;
			default:
			{
				result = copyTree_lz8T1F9c0YwEOpUnrAUYgjg_2((*s).ast);
			}
			break;
			}
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 12):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 13):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14):
		{
			result = n;
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3):
		{
			{
				NIM_BOOL T45_;
				T45_ = (NIM_BOOL)0;
				T45_ = !(((*s).typ == NIM_NIL));
				if (!(T45_)) goto LA46_;
				T45_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8));
				LA46_: ;
				if (!T45_) goto LA47_;
				result = newSymNodeTypeDesc_LBSKfJWN58S5YV9bDMBn6bQ(s, (*n).info);
			}
			LA47_: ;
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 7):
		{
			{
				if (!!(((*s).typ == NIM_NIL))) goto LA52_;
				result = newSymNodeTypeDesc_LBSKfJWN58S5YV9bDMBn6bQ(s, (*n).info);
			}
			LA52_: ;
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 4):
		{
			{
				if (!((*(*s).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA57_;
				{
					NIM_BOOL T61_;
					T61_ = (NIM_BOOL)0;
					T61_ = !(((*(*s).typ).n == NIM_NIL));
					if (!(T61_)) goto LA62_;
					T61_ = !((((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0));
					LA62_: ;
					if (!T61_) goto LA63_;
					result = (*(*s).typ).n;
					asgnRefNoCycle((void**) (&(*result).typ), base_BFFuB9cFDZ89c6QWZqEFAtdA((*s).typ));
				}
				LA63_: ;
			}
			goto LA55_;
			LA57_: ;
			{
				NIM_BOOL T66_;
				T66_ = (NIM_BOOL)0;
				T66_ = isIntLit_xUyAbEic5Yj9bmdDArJbHkQtypes((*s).typ);
				if (!T66_) goto LA67_;
				result = (*(*s).typ).n;
			}
			goto LA55_;
			LA67_: ;
			{
				result = newSymNodeTypeDesc_LBSKfJWN58S5YV9bDMBn6bQ(s, (*n).info);
			}
			LA55_: ;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		result = copyNode_lz8T1F9c0YwEOpUnrAUYgjg(n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 48):
	{
		result = getConstIfExpr_2kStqt7u4DPR9b4UNFMJdQg(m, n, g);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s_2;
		TSafePoint TM_JtgqXuJaW0Uz9aqyNPWIZsw_9;
		{
			if (!!(((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA76_;
			goto BeforeRet_;
		}
		LA76_: ;
		s_2 = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
		{
			NIM_BOOL T80_;
			T80_ = (NIM_BOOL)0;
			T80_ = !(((*s_2).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 12)));
			if (!(T80_)) goto LA81_;
			T80_ = !(((*s_2).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 13)));
			LA81_: ;
			if (!T80_) goto LA82_;
			goto BeforeRet_;
		}
		LA82_: ;
		pushSafePoint(&TM_JtgqXuJaW0Uz9aqyNPWIZsw_9);
		TM_JtgqXuJaW0Uz9aqyNPWIZsw_9.status = setjmp(TM_JtgqXuJaW0Uz9aqyNPWIZsw_9.context);
		if (TM_JtgqXuJaW0Uz9aqyNPWIZsw_9.status == 0) {
			switch ((*s_2).magic) {
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0):
			{
				popSafePoint();
				goto BeforeRet_;
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 9):
			{
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a;
				a = (*n)._Ukind.S6.sons->data[((NI) 1)];
				{
					NI64 T89_;
					T89_ = (NI64)0;
					T89_ = computeSize_vCG1GF2Iu043oALVyuJfOw_2((*g).config, (*a).typ);
					if (!(T89_ < IL64(0))) goto LA90_;
					localError_NF6kBGchnhQYPbCedyefVA((*g).config, (*a).info, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_10));
					result = NIM_NIL;
				}
				goto LA87_;
				LA90_: ;
				{
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T93_;
					NI64 T96_;
					T93_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T93_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*a).typ, IL64(36099165764299024));
					if (!((*T93_).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1) && (*T93_).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*T93_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*T93_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19) || (*T93_).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21) && (*T93_).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T93_).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25) && (*T93_).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26) || (*T93_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29) || (*T93_).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*T93_).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44) || (*T93_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 50))) goto LA94_;
					T96_ = (NI64)0;
					T96_ = getSize_vCG1GF2Iu043oALVyuJfOw((*g).config, (*a).typ);
					result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(T96_, n, g);
				}
				goto LA87_;
				LA94_: ;
				{
					result = NIM_NIL;
				}
				LA87_: ;
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 7):
			{
				NI64 T99_;
				T99_ = (NI64)0;
				T99_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*g).config, (*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ);
				result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(T99_, n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8):
			{
				{
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T103_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T106_;
					NI64 T107_;
					T103_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T103_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(45247102514669840));
					if (!!(((*T103_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*T103_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28) || (*T103_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29) || (*T103_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T103_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48)))) goto LA104_;
					T106_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T106_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36239903259928848));
					T107_ = (NI64)0;
					T107_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*g).config, T106_, NIM_FALSE);
					result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(T107_, n, g);
				}
				goto LA101_;
				LA104_: ;
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a_2;
					a_2 = getArrayConstr_A7gcXCy5E3uGBy5F37NoHA_2(m, (*n)._Ukind.S6.sons->data[((NI) 1)], g);
					{
						NI T113_;
						if (!((*a_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA111_;
						T113_ = (NI)0;
						T113_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(a_2);
						result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) ((NI)(T113_ - ((NI) 1)))), n, g);
					}
					LA111_: ;
				}
				LA101_: ;
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 35):
			{
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a_3;
				a_3 = getArrayConstr_A7gcXCy5E3uGBy5F37NoHA_2(m, (*n)._Ukind.S6.sons->data[((NI) 1)], g);
				{
					NI T119_;
					if (!((*a_3).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA117_;
					T119_ = (NI)0;
					T119_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(a_3);
					result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(((NI64) (T119_)), n, g);
				}
				goto LA115_;
				LA117_: ;
				{
					result = magicCall_A7gcXCy5E3uGBy5F37NoHA_3(m, n, g);
				}
				LA115_: ;
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 37):
			{
				NI64 T122_;
				T122_ = (NI64)0;
				T122_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*g).config, (*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ);
				result = newIntNodeT_9cyUT9bfUrNoEvba2MBHfEuw(T122_, n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 157):
			{
				NimStringDesc* T124_;
				T124_ = (NimStringDesc*)0;
				T124_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA((*n)._Ukind.S6.sons->data[((NI) 1)], 4);
				result = newStrNodeT_WT9aAnGjbhNgDuVvAUcXPaA(T124_, n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 141):
			{
				result = foldConStrStr_A7gcXCy5E3uGBy5F37NoHA_4(m, n, g);
			}
			break;
			case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 11):
			{
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* lhs;
				lhs = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 1)], g);
				{
					NIM_BOOL T129_;
					T129_ = (NIM_BOOL)0;
					T129_ = !((lhs == NIM_NIL));
					if (!(T129_)) goto LA130_;
					T129_ = ((*lhs).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
					LA130_: ;
					if (!T129_) goto LA131_;
					result = evalIs_twF4ZwUpo78kqt4ytMvq6g(n, (*lhs)._Ukind.S4.sym, g);
				}
				LA131_: ;
			}
			break;
			default:
			{
				result = magicCall_A7gcXCy5E3uGBy5F37NoHA_3(m, n, g);
			}
			break;
			}
			popSafePoint();
		}
		else {
			popSafePoint();
			if (isObj(getCurrentException()->Sup.m_type, (&NTI_Ss6DFlX5iSZpHRZDmP74bg_))) {
				TM_JtgqXuJaW0Uz9aqyNPWIZsw_9.status = 0;
				localError_NF6kBGchnhQYPbCedyefVA((*g).config, (*n).info, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_23));
				popCurrentException();
			}
			else 			if (isObj(getCurrentException()->Sup.m_type, (&NTI_vASt1Zy2CLWqyBeLxcXqow_))) {
				TM_JtgqXuJaW0Uz9aqyNPWIZsw_9.status = 0;
				localError_NF6kBGchnhQYPbCedyefVA((*g).config, (*n).info, ((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_24));
				popCurrentException();
			}
		}
		if (TM_JtgqXuJaW0Uz9aqyNPWIZsw_9.status != 0) reraiseException();
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a_4;
		a_4 = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 0)], g);
		{
			if (!!((a_4 == NIM_NIL))) goto LA140_;
			result = n;
			asgnRefNoCycle((void**) (&(*n)._Ukind.S6.sons->data[((NI) 0)]), a_4);
		}
		LA140_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		result = copyTree_lz8T1F9c0YwEOpUnrAUYgjg_2(n);
		{
			NI i;
			NI colontmp_;
			NI T144_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T144_ = (NI)0;
			T144_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp_ = (NI)(T144_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a_5;
					if (!(res <= colontmp_)) goto LA146;
					i = res;
					a_5 = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[i], g);
					{
						if (!(a_5 == NIM_NIL)) goto LA149_;
						result = NIM_NIL;
						goto BeforeRet_;
					}
					LA149_: ;
					asgnRefNoCycle((void**) (&(*result)._Ukind.S6.sons->data[i]), a_5);
					res += ((NI) 1);
				} LA146: ;
			}
		}
		(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 4))%(sizeof(NU32)*8));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a_6;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b;
		a_6 = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 0)], g);
		{
			if (!(a_6 == NIM_NIL)) goto LA154_;
			goto BeforeRet_;
		}
		LA154_: ;
		b = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 1)], g);
		{
			if (!(b == NIM_NIL)) goto LA158_;
			goto BeforeRet_;
		}
		LA158_: ;
		result = copyNode_lz8T1F9c0YwEOpUnrAUYgjg(n);
		addSon_gCCf68XrWL79bKes6htzFjQ_2(result, a_6);
		addSon_gCCf68XrWL79bKes6htzFjQ_2(result, b);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		result = copyTree_lz8T1F9c0YwEOpUnrAUYgjg_2(n);
		{
			NI i_2;
			NI colontmp__2;
			NI T162_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T162_ = (NI)0;
			T162_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp__2 = (NI)(T162_ - ((NI) 1));
			res_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a_7;
					if (!(res_2 <= colontmp__2)) goto LA164;
					i_2 = res_2;
					a_7 = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[i_2], g);
					{
						if (!(a_7 == NIM_NIL)) goto LA167_;
						result = NIM_NIL;
						goto BeforeRet_;
					}
					LA167_: ;
					asgnRefNoCycle((void**) (&(*result)._Ukind.S6.sons->data[i_2]), a_7);
					res_2 += ((NI) 1);
				} LA164: ;
			}
		}
		(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 4))%(sizeof(NU32)*8));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		result = copyTree_lz8T1F9c0YwEOpUnrAUYgjg_2(n);
		{
			NIM_BOOL T172_;
			NI T173_;
			T172_ = (NIM_BOOL)0;
			T173_ = (NI)0;
			T173_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			T172_ = (((NI) 0) < T173_);
			if (!(T172_)) goto LA174_;
			T172_ = ((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34));
			LA174_: ;
			if (!T172_) goto LA175_;
			{
				NI i_3;
				NI colontmp__3;
				NI T178_;
				NI res_3;
				i_3 = (NI)0;
				colontmp__3 = (NI)0;
				T178_ = (NI)0;
				T178_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
				colontmp__3 = (NI)(T178_ - ((NI) 1));
				res_3 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a_8;
						if (!(res_3 <= colontmp__3)) goto LA180;
						i_3 = res_3;
						a_8 = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*(*n)._Ukind.S6.sons->data[i_3])._Ukind.S6.sons->data[((NI) 1)], g);
						{
							if (!(a_8 == NIM_NIL)) goto LA183_;
							result = NIM_NIL;
							goto BeforeRet_;
						}
						LA183_: ;
						asgnRefNoCycle((void**) (&(*(*result)._Ukind.S6.sons->data[i_3])._Ukind.S6.sons->data[((NI) 1)]), a_8);
						res_3 += ((NI) 1);
					} LA180: ;
				}
			}
		}
		goto LA170_;
		LA175_: ;
		{
			{
				NI i_4;
				NI colontmp__4;
				NI T187_;
				NI res_4;
				i_4 = (NI)0;
				colontmp__4 = (NI)0;
				T187_ = (NI)0;
				T187_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
				colontmp__4 = (NI)(T187_ - ((NI) 1));
				res_4 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a_9;
						if (!(res_4 <= colontmp__4)) goto LA189;
						i_4 = res_4;
						a_9 = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[i_4], g);
						{
							if (!(a_9 == NIM_NIL)) goto LA192_;
							result = NIM_NIL;
							goto BeforeRet_;
						}
						LA192_: ;
						asgnRefNoCycle((void**) (&(*result)._Ukind.S6.sons->data[i_4]), a_9);
						res_4 += ((NI) 1);
					} LA189: ;
				}
			}
		}
		LA170_: ;
		(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 4))%(sizeof(NU32)*8));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 69):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 70):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a_10;
		a_10 = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 0)], g);
		{
			if (!(a_10 == NIM_NIL)) goto LA197_;
			goto BeforeRet_;
		}
		LA197_: ;
		{
			NIM_BOOL T201_;
			T201_ = (NIM_BOOL)0;
			T201_ = leValueConv_7BZeIQfBp6XDNEtQI9b4eQA((*n)._Ukind.S6.sons->data[((NI) 1)], a_10);
			if (!(T201_)) goto LA202_;
			T201_ = leValueConv_7BZeIQfBp6XDNEtQI9b4eQA(a_10, (*n)._Ukind.S6.sons->data[((NI) 2)]);
			LA202_: ;
			if (!T201_) goto LA203_;
			result = a_10;
			asgnRefNoCycle((void**) (&(*result).typ), (*n).typ);
		}
		goto LA199_;
		LA203_: ;
		{
			tyArray_Re75IspeoxXy2oCZHwcRrA T206_;
			NimStringDesc* T207_;
			nimZeroMem((void*)T206_, sizeof(tyArray_Re75IspeoxXy2oCZHwcRrA));
			T206_[0] = typeToString_QlvraUan7WbHowhAbvDvdA((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T206_[1] = typeToString_QlvraUan7WbHowhAbvDvdA((*n).typ, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T207_ = (NimStringDesc*)0;
			T207_ = nsuFormatOpenArray(((NimStringDesc*) &TM_JtgqXuJaW0Uz9aqyNPWIZsw_25), T206_, 2);
			localError_NF6kBGchnhQYPbCedyefVA((*g).config, (*n).info, T207_);
		}
		LA199_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 72):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a_11;
		a_11 = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 0)], g);
		{
			if (!(a_11 == NIM_NIL)) goto LA211_;
			goto BeforeRet_;
		}
		LA211_: ;
		result = a_11;
		asgnRefNoCycle((void**) (&(*result).typ), (*n).typ);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a_12;
		a_12 = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 1)], g);
		{
			if (!(a_12 == NIM_NIL)) goto LA216_;
			goto BeforeRet_;
		}
		LA216_: ;
		result = foldConv_MlnTAS4JHv81FgG2EV9ci3g(n, a_12, g, ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 59)));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a_13;
		a_13 = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 1)], g);
		{
			if (!(a_13 == NIM_NIL)) goto LA221_;
			goto BeforeRet_;
		}
		LA221_: ;
		{
			NIM_BOOL T225_;
			T225_ = (NIM_BOOL)0;
			T225_ = !(((*n).typ == NIM_NIL));
			if (!(T225_)) goto LA226_;
			T225_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26) || (*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29) || (*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25) || (*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 50));
			LA226_: ;
			if (!T225_) goto LA227_;
			result = a_13;
			asgnRefNoCycle((void**) (&(*result).typ), (*n).typ);
		}
		LA227_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		result = foldArrayAccess_A7gcXCy5E3uGBy5F37NoHA_5(m, n, g);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		result = foldFieldAccess_A7gcXCy5E3uGBy5F37NoHA_6(m, n, g);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		{
			NIM_BOOL T234_;
			NI T235_;
			T234_ = (NIM_BOOL)0;
			T235_ = (NI)0;
			T235_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			T234_ = (T235_ == ((NI) 2));
			if (!(T234_)) goto LA236_;
			T234_ = ((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 24));
			LA236_: ;
			if (!T234_) goto LA237_;
			result = getConstExpr_A7gcXCy5E3uGBy5F37NoHA(m, (*n)._Ukind.S6.sons->data[((NI) 1)], g);
		}
		LA237_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_semfoldInit000)(void) {
{
	TFrame FR_; FR_.len = 0;
}
}

N_LIB_PRIVATE N_NIMCALL(void, compiler_semfoldDatInit000)(void) {
}

