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

#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
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
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__MvZmat48bhe9b6x9aUD58D5Q tySequence__MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA tySequence__DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ tySequence__DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
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_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct Exception Exception;
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
typedef struct TSafePoint TSafePoint;
typedef struct tyTuple__zwpS6d6iewrdlBSTNFoyVA tyTuple__zwpS6d6iewrdlBSTNFoyVA;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
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;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
} _kind_4;
struct {tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
NimStringDesc* comment;
};
typedef NU8 tyEnum_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_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tyArray__PsPyPA45AAjHu4uDGHNjTg[6];
typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray__PsPyPA45AAjHu4uDGHNjTg attachedOps;
tySequence__MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* data;
};
typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence__Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
} _kind_1;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_2;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
NI alignment;
} _kind_4;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
};
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;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef NU8 tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw[21];
typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
Exception* up;
};
struct TSafePoint {
TSafePoint* prev;
NI status;
jmp_buf context;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyTuple__zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
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__MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple__zwpS6d6iewrdlBSTNFoyVA 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__uB9b75OUPRENsBAu4AnoePA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NIM_BOOL inst, NIM_BOOL allowRecursionX);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, atomicTypeX__bT4Mm3vdYhgzdzTQ9cFUn0A)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__I2DV2TmmOysY1ZEGW19b9bRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newSym__IXbidcxhXTQGZY9abN63Cxg)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, getIdent__9coBOmdXN09be4rJvXK6fQGQ)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, add__P8dDSotTW25BkfbyspojGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ)(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NOINLINE(void, raiseFieldError)(NimStringDesc* f);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, base__PfgI9ap7WOnsRfFV4znQ27w)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
static N_INLINE(NIM_BOOL, nimAddInt)(NI a, NI b, NI* res);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
static N_INLINE(NIM_BOOL, nimSubInt)(NI a, NI b, NI* res);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NIM_BOOL inst);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newType__SNqpa06pdVCLFFBR28119aQ)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__vokyXY9cZDshCSxFKChhG9bg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, objectNode__AHGzaNMYbGutvMVBddUSng)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__Dsjo9bte8vGxzhtcSrsTyiQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
static N_INLINE(void, pushSafePoint)(TSafePoint* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, slash___gEyhbzZ1UcxyenWRLJRXNQ)(NimStringDesc* head, NimStringDesc* tail);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosparentDir)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toFullPath__VW1RaR1l9c9bPnJxr1KuvIrg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI32 fileIdx);
static N_INLINE(NIM_BOOL, fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, findFile__Jsd6LfkMRIXL9b0vzcHVYOA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* f, NIM_BOOL suppressStdlib);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readFile__4PGnM9bWmsH0Nu7dnr3XzgA)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NI32, fileInfoIdx__3HRSVgYDcnQTolSZGx1zjA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(void, appendToModule__T4o9clzgbAgGY4ORbfP6LmQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__duw0Uu9cIFXmCAaunQWIP0g)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStrNode__zLcHGdlEbBYFtoCoan9agkg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NimStringDesc* strVal);
static N_INLINE(void, popSafePoint)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
static N_INLINE(Exception*, nimBorrowCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, localError__NF6kBGchnhQYPbCedyefVA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(void, popCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_2, "none", 4);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_3, "bool", 4);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_4, "char", 4);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_5, "nil", 3);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_6, "expr", 4);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_7, "stmt", 4);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_8, "void", 4);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_9, "empty", 5);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_10, "UncheckedArray", 14);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_11, "array", 5);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_12, "..", 2);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__gLSXNlwmnHPzTIXzvpQGfw_13 = {
0xec, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_14, "\'sons\' is not accessible using discriminant \'kind\' of type \'TNo"
"de\'", 66);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_15, "typeDesc", 8);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_20, "distinct", 8);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__gLSXNlwmnHPzTIXzvpQGfw_21 = {
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_22, "\'sym\' is not accessible using discriminant \'kind\' of type \'TNod"
"e\'", 65);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_25, "iterators.nim(189, 11) `len(a) == L` the length of the seq chan"
"ged while iterating over it", 90);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_28, "tuple", 5);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_29, "set", 3);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_30, "ptr", 3);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_31, "ref", 3);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_32, "var", 3);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_33, "lent", 4);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_34, "sink", 4);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_35, "seq", 3);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_36, "opt", 3);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_38, "proc", 4);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_39, "openArray", 9);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_40, "range", 5);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_41, "pointer", 7);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_42, "string", 6);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_43, "cstring", 7);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_44, "int", 3);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_45, "int8", 4);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_46, "int16", 5);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_47, "int32", 5);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_48, "int64", 5);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_49, "float", 5);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_50, "float32", 7);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_51, "float64", 7);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_52, "float128", 8);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_53, "uint", 4);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_54, "uint8", 5);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_55, "uint16", 6);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_56, "uint32", 6);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_57, "uint64", 6);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_58, "varargs", 7);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_59, "error", 5);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_60, "builtinTypeClass", 16);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_61, "concept", 7);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_62, "compositeTypeClass", 18);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_63, "and", 3);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_64, "or", 2);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_65, "not", 3);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_66, "anything", 8);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_67, "vmdeps.nim(290, 25) `false` ", 28);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_68, "static", 6);
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_69, "owned", 5);
extern TNimType NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
extern TNimType NTI__iLZrPn9anoh9ad1MmO0RczFw_;
STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_71, "cannot open file: ", 18);
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;
extern TSafePoint* excHandler__rqLlY5bs9atDw2OXYqJEn5g;
extern TSafePoint* excHandler__rqLlY5bs9atDw2OXYqJEn5g;
extern TSafePoint* excHandler__rqLlY5bs9atDw2OXYqJEn5g;
extern TSafePoint* excHandler__rqLlY5bs9atDw2OXYqJEn5g;
extern Exception* currException__9bVPeDJlYTi9bQApZpfH8wjg;
extern Exception* currException__9bVPeDJlYTi9bQApZpfH8wjg;
extern Exception* currException__9bVPeDJlYTi9bQApZpfH8wjg;
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, atomicTypeX__bT4Mm3vdYhgzdzTQ9cFUn0A)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(s);
	(*result).info = info;
	return result;
}
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c);
}
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef__AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T1_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ(cache, name);
	sym = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), T1_, (*t).owner, info, 0);
	(*sym).magic = m;
	asgnRef((void**) (&(*sym).typ), t);
	result = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(sym);
	asgnRef((void**) (&(*result).typ), t);
	return result;
}
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, nimAddInt)(NI a, NI b, NI* res) {
	NIM_BOOL result;
	NI r;
	result = (NIM_BOOL)0;
	r = ((NI) ((NU)((NU64)(((NU) (a))) + (NU64)(((NU) (b))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(r ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(r ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*res) = r;
	}
	goto LA1_;
	LA5_: ;
	{
		result = NIM_TRUE;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, nimSubInt)(NI a, NI b, NI* res) {
	NIM_BOOL result;
	NI r;
	result = (NIM_BOOL)0;
	r = ((NI) ((NU)((NU64)(((NU) (a))) - (NU64)(((NU) (b))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(r ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(r ^ (NI)((NU64) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*res) = r;
	}
	goto LA1_;
	LA5_: ;
	{
		result = NIM_TRUE;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NIM_BOOL inst) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((*t).n == 0)) goto LA4_;
		T1_ = info;
	}
	goto LA2_;
	LA4_: ;
	{
		T1_ = (*(*t).n).info;
	}
	LA2_: ;
	result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T1_, t);
	T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T7_ = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, name, m, t, info);
	add__P8dDSotTW25BkfbyspojGg(result, T7_);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI TM__gLSXNlwmnHPzTIXzvpQGfw_19;
				if (!(i_2 < colontmp_)) goto LA10;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* void_1;
					if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1); }
					if (!((*t).sons->data[i] == NIM_NIL)) goto LA13_;
					void_1 = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_8), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 165), t, info);
					asgnRef((void**) (&(*void_1).typ), newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63), (*t).owner));
					add__P8dDSotTW25BkfbyspojGg(result, void_1);
				}
				goto LA11_;
				LA13_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
					if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1); }
					T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T16_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[i], info, inst, NIM_FALSE);
					add__P8dDSotTW25BkfbyspojGg(result, T16_);
				}
				LA11_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__gLSXNlwmnHPzTIXzvpQGfw_19)) { raiseOverflow(); };
				i_2 = (NI)(TM__gLSXNlwmnHPzTIXzvpQGfw_19);
			} LA10: ;
		}
	}
	return result;
}
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__P89cqdlERShb9alU3iC0yj8wast(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, objectNode__AHGzaNMYbGutvMVBddUSng)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (*n).info);
		add__P8dDSotTW25BkfbyspojGg(result, n);
		if (!(((TM__gLSXNlwmnHPzTIXzvpQGfw_21[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_22)); }
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*(*n)._kind_4.sym).typ, (*n).info, NIM_TRUE, NIM_FALSE);
		add__P8dDSotTW25BkfbyspojGg(result, T5_);
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		add__P8dDSotTW25BkfbyspojGg(result, T6_);
	}
	goto LA1_;
	LA3_: ;
	{
		result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ(n);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
					NI TM__gLSXNlwmnHPzTIXzvpQGfw_23;
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
					if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T11_ = objectNode__AHGzaNMYbGutvMVBddUSng(cache, (*n)._kind_6.sons->data[i]);
					add__P8dDSotTW25BkfbyspojGg(result, T11_);
					if (nimAddInt(i_2, ((NI) 1), &TM__gLSXNlwmnHPzTIXzvpQGfw_23)) { raiseOverflow(); };
					i_2 = (NI)(TM__gLSXNlwmnHPzTIXzvpQGfw_23);
				} LA10: ;
			}
		}
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NIM_BOOL inst, NIM_BOOL allowRecursionX) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL allowRecursion;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	allowRecursion = allowRecursionX;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = inst;
		if (!(T4_)) goto LA5_;
		T4_ = !(allowRecursion);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = !(((*t).sym == NIM_NIL));
		LA6_: ;
		if (!T3_) goto LA7_;
		result = atomicTypeX__bT4Mm3vdYhgzdzTQ9cFUn0A((*t).sym, info);
		goto BeforeRet_;
	}
	LA7_: ;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_2), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_3), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 182), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_4), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 183), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_5), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 187), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_6), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 188), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_7), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 189), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_8), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 165), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_9), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T18_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
		{
			if (!((*t).n == 0)) goto LA21_;
			T18_ = info;
		}
		goto LA19_;
		LA21_: ;
		{
			T18_ = (*(*t).n).info;
		}
		LA19_: ;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T18_, t);
		T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T24_ = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_10), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 265), t, info);
		add__P8dDSotTW25BkfbyspojGg(result, T24_);
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
		T25_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T25_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[((NI) 0)], info, inst, NIM_FALSE);
		add__P8dDSotTW25BkfbyspojGg(result, T25_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T27_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T52_;
		{
			if (!((*t).n == 0)) goto LA30_;
			T27_ = info;
		}
		goto LA28_;
		LA30_: ;
		{
			T27_ = (*(*t).n).info;
		}
		LA28_: ;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T27_, t);
		T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T33_ = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_11), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 154), t, info);
		add__P8dDSotTW25BkfbyspojGg(result, T33_);
		{
			NIM_BOOL T36_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* rng;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T40_;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T46_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T47_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T48_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T49_;
			T36_ = (NIM_BOOL)0;
			T36_ = inst;
			if (!(T36_)) goto LA37_;
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
			T36_ = ((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20));
			LA37_: ;
			if (!T36_) goto LA38_;
			{
				if (!((*t).n == 0)) goto LA43_;
				T40_ = info;
			}
			goto LA41_;
			LA43_: ;
			{
				T40_ = (*(*t).n).info;
			}
			LA41_: ;
			rng = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), T40_, t);
			T46_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T46_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_12));
			T47_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T47_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T46_, info);
			add__P8dDSotTW25BkfbyspojGg(rng, T47_);
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
			if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*(*t).sons->data[((NI) 0)]).n).kind)>>3] &(1U<<((NU)((*(*(*t).sons->data[((NI) 0)]).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
			if ((NU)(((NI) 0)) >= (NU)((*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons ? (*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons ? (*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons->Sup.len : 0)-1); }
			T48_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T48_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2((*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons->data[((NI) 0)]);
			add__P8dDSotTW25BkfbyspojGg(rng, T48_);
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
			if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*(*t).sons->data[((NI) 0)]).n).kind)>>3] &(1U<<((NU)((*(*(*t).sons->data[((NI) 0)]).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
			if ((NU)(((NI) 1)) >= (NU)((*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons ? (*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons ? (*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons->Sup.len : 0)-1); }
			T49_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T49_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2((*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons->data[((NI) 1)]);
			add__P8dDSotTW25BkfbyspojGg(rng, T49_);
			add__P8dDSotTW25BkfbyspojGg(result, rng);
		}
		goto LA34_;
		LA38_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T51_;
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
			T51_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T51_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[((NI) 0)], info, inst, NIM_FALSE);
			add__P8dDSotTW25BkfbyspojGg(result, T51_);
		}
		LA34_: ;
		if ((NU)(((NI) 1)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
		T52_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T52_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[((NI) 1)], info, inst, NIM_FALSE);
		add__P8dDSotTW25BkfbyspojGg(result, T52_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T56_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T59_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T65_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T66_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T67_;
			T56_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T56_ = base__PfgI9ap7WOnsRfFV4znQ27w(t);
			if (!!((T56_ == NIM_NIL))) goto LA57_;
			{
				if (!((*t).n == 0)) goto LA62_;
				T59_ = info;
			}
			goto LA60_;
			LA62_: ;
			{
				T59_ = (*(*t).n).info;
			}
			LA60_: ;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T59_, t);
			T65_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T65_ = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_15), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 190), t, info);
			add__P8dDSotTW25BkfbyspojGg(result, T65_);
			T66_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T66_ = base__PfgI9ap7WOnsRfFV4znQ27w(t);
			T67_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T67_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, T66_, info, inst, NIM_FALSE);
			add__P8dDSotTW25BkfbyspojGg(result, T67_);
		}
		goto LA54_;
		LA57_: ;
		{
			result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_15), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 190), t, info);
		}
		LA54_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T70_;
		{
			if (!((*t).n == 0)) goto LA73_;
			T70_ = info;
		}
		goto LA71_;
		LA73_: ;
		{
			T70_ = (*(*t).n).info;
		}
		LA71_: ;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T70_, t);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T79_;
					NI TM__gLSXNlwmnHPzTIXzvpQGfw_16;
					if (!(i_2 < colontmp_)) goto LA78;
					i = i_2;
					if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1); }
					T79_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T79_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[i], info, inst, NIM_FALSE);
					add__P8dDSotTW25BkfbyspojGg(result, T79_);
					if (nimAddInt(i_2, ((NI) 1), &TM__gLSXNlwmnHPzTIXzvpQGfw_16)) { raiseOverflow(); };
					i_2 = (NI)(TM__gLSXNlwmnHPzTIXzvpQGfw_16);
				} LA78: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	{
		{
			if (!inst) goto LA83_;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T89_;
				if (!allowRecursion) goto LA87_;
				T89_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T89_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
				result = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, T89_, info, inst, NIM_TRUE);
			}
			goto LA85_;
			LA87_: ;
			{
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T91_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T97_;
				{
					if (!((*t).n == 0)) goto LA94_;
					T91_ = info;
				}
				goto LA92_;
				LA94_: ;
				{
					T91_ = (*(*t).n).info;
				}
				LA92_: ;
				result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T91_, t);
				if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
				T97_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T97_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[((NI) 0)], info, inst, NIM_FALSE);
				add__P8dDSotTW25BkfbyspojGg(result, T97_);
				{
					NI i_3;
					NI colontmp__2;
					NI T99_;
					NI TM__gLSXNlwmnHPzTIXzvpQGfw_17;
					NI i_4;
					i_3 = (NI)0;
					colontmp__2 = (NI)0;
					T99_ = (NI)0;
					T99_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
					if (nimSubInt(T99_, ((NI) 1), &TM__gLSXNlwmnHPzTIXzvpQGfw_17)) { raiseOverflow(); };
					colontmp__2 = (NI)(TM__gLSXNlwmnHPzTIXzvpQGfw_17);
					i_4 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T102_;
							NI TM__gLSXNlwmnHPzTIXzvpQGfw_18;
							if (!(i_4 < colontmp__2)) goto LA101;
							i_3 = i_4;
							if ((NU)(i_3) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t).sons ? (*t).sons->Sup.len : 0)-1); }
							T102_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T102_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[i_3], info, inst, NIM_FALSE);
							add__P8dDSotTW25BkfbyspojGg(result, T102_);
							if (nimAddInt(i_4, ((NI) 1), &TM__gLSXNlwmnHPzTIXzvpQGfw_18)) { raiseOverflow(); };
							i_4 = (NI)(TM__gLSXNlwmnHPzTIXzvpQGfw_18);
						} LA101: ;
					}
				}
			}
			LA85_: ;
		}
		goto LA81_;
		LA83_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T104_;
			T104_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T104_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
			result = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, T104_, info, inst, allowRecursion);
		}
		LA81_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T110_;
			if (!inst) goto LA108_;
			T110_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T110_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
			result = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, T110_, info, inst, NIM_TRUE);
		}
		goto LA106_;
		LA108_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T112_;
			T112_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T112_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
			result = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, T112_, info, inst, NIM_FALSE);
		}
		LA106_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T114_;
		T114_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T114_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
		result = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, T114_, info, inst, allowRecursion);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T116_;
		T116_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T116_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
		result = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, T116_, info, inst, NIM_FALSE);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
	{
		{
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T122_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T128_;
			if (!inst) goto LA120_;
			{
				if (!((*t).n == 0)) goto LA125_;
				T122_ = info;
			}
			goto LA123_;
			LA125_: ;
			{
				T122_ = (*(*t).n).info;
			}
			LA123_: ;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 146), T122_, t);
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
			T128_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T128_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[((NI) 0)], info, inst, NIM_FALSE);
			add__P8dDSotTW25BkfbyspojGg(result, T128_);
		}
		goto LA118_;
		LA120_: ;
		{
			{
				NIM_BOOL T132_;
				T132_ = (NIM_BOOL)0;
				T132_ = allowRecursion;
				if (T132_) goto LA133_;
				T132_ = ((*t).sym == NIM_NIL);
				LA133_: ;
				if (!T132_) goto LA134_;
				result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_20), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 164), t, info, inst);
			}
			goto LA130_;
			LA134_: ;
			{
				result = atomicTypeX__bT4Mm3vdYhgzdzTQ9cFUn0A((*t).sym, info);
			}
			LA130_: ;
		}
		LA118_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30):
	{
		result = atomicTypeX__bT4Mm3vdYhgzdzTQ9cFUn0A((*t).sym, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T143_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* objectDef;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T153_;
			if (!inst) goto LA141_;
			{
				if (!((*t).n == 0)) goto LA146_;
				T143_ = info;
			}
			goto LA144_;
			LA146_: ;
			{
				T143_ = (*(*t).n).info;
			}
			LA144_: ;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133), T143_, t);
			if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*(*t).sym).ast).kind)>>3] &(1U<<((NU)((*(*(*t).sym).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
			if ((NU)(((NI) 2)) >= (NU)((*(*(*t).sym).ast)._kind_6.sons ? (*(*(*t).sym).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*(*(*t).sym).ast)._kind_6.sons ? (*(*(*t).sym).ast)._kind_6.sons->Sup.len : 0)-1); }
			objectDef = (*(*(*t).sym).ast)._kind_6.sons->data[((NI) 2)];
			{
				if (!((*objectDef).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141))) goto LA151_;
				if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*objectDef).kind)>>3] &(1U<<((NU)((*objectDef).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
				if ((NU)(((NI) 0)) >= (NU)((*objectDef)._kind_6.sons ? (*objectDef)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*objectDef)._kind_6.sons ? (*objectDef)._kind_6.sons->Sup.len : 0)-1); }
				objectDef = (*objectDef)._kind_6.sons->data[((NI) 0)];
			}
			LA151_: ;
			if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*objectDef).kind)>>3] &(1U<<((NU)((*objectDef).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
			if ((NU)(((NI) 0)) >= (NU)((*objectDef)._kind_6.sons ? (*objectDef)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*objectDef)._kind_6.sons ? (*objectDef)._kind_6.sons->Sup.len : 0)-1); }
			T153_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T153_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2((*objectDef)._kind_6.sons->data[((NI) 0)]);
			add__P8dDSotTW25BkfbyspojGg(result, T153_);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T158_;
				if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
				if (!((*t).sons->data[((NI) 0)] == NIM_NIL)) goto LA156_;
				T158_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T158_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
				add__P8dDSotTW25BkfbyspojGg(result, T158_);
			}
			goto LA154_;
			LA156_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nn;
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T160_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T166_;
				{
					if (!((*t).n == 0)) goto LA163_;
					T160_ = info;
				}
				goto LA161_;
				LA163_: ;
				{
					T160_ = (*(*t).n).info;
				}
				LA161_: ;
				nn = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 77), T160_, t);
				if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
				T166_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T166_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[((NI) 0)], info, inst, NIM_FALSE);
				add__P8dDSotTW25BkfbyspojGg(nn, T166_);
				add__P8dDSotTW25BkfbyspojGg(result, nn);
			}
			LA154_: ;
			{
				NI T169_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T172_;
				T169_ = (NI)0;
				T169_ = len__P89cqdlERShb9alU3iC0yj8wast((*t).n);
				if (!(((NI) 0) < T169_)) goto LA170_;
				T172_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T172_ = objectNode__AHGzaNMYbGutvMVBddUSng(cache, (*t).n);
				add__P8dDSotTW25BkfbyspojGg(result, T172_);
			}
			goto LA167_;
			LA170_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T174_;
				T174_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T174_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
				add__P8dDSotTW25BkfbyspojGg(result, T174_);
			}
			LA167_: ;
		}
		goto LA139_;
		LA141_: ;
		{
			{
				NIM_BOOL T178_;
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T182_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T188_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T196_;
				T178_ = (NIM_BOOL)0;
				T178_ = allowRecursion;
				if (T178_) goto LA179_;
				T178_ = ((*t).sym == NIM_NIL);
				LA179_: ;
				if (!T178_) goto LA180_;
				{
					if (!((*t).n == 0)) goto LA185_;
					T182_ = info;
				}
				goto LA183_;
				LA185_: ;
				{
					T182_ = (*(*t).n).info;
				}
				LA183_: ;
				result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133), T182_, t);
				T188_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T188_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
				add__P8dDSotTW25BkfbyspojGg(result, T188_);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T193_;
					if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
					if (!((*t).sons->data[((NI) 0)] == NIM_NIL)) goto LA191_;
					T193_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T193_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
					add__P8dDSotTW25BkfbyspojGg(result, T193_);
				}
				goto LA189_;
				LA191_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T195_;
					if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
					T195_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T195_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[((NI) 0)], info, inst, NIM_FALSE);
					add__P8dDSotTW25BkfbyspojGg(result, T195_);
				}
				LA189_: ;
				T196_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T196_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2((*t).n);
				add__P8dDSotTW25BkfbyspojGg(result, T196_);
			}
			goto LA176_;
			LA180_: ;
			{
				result = atomicTypeX__bT4Mm3vdYhgzdzTQ9cFUn0A((*t).sym, info);
			}
			LA176_: ;
		}
		LA139_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T199_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T205_;
		{
			if (!((*t).n == 0)) goto LA202_;
			T199_ = info;
		}
		goto LA200_;
		LA202_: ;
		{
			T199_ = (*(*t).n).info;
		}
		LA200_: ;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150), T199_, t);
		T205_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T205_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
		add__P8dDSotTW25BkfbyspojGg(result, T205_);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c;
			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp__3;
			NI i_5;
			NI L;
			NI T207_;
			c = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			colontmp__3 = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
			if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
			colontmp__3 = (*(*t).n)._kind_6.sons;
			i_5 = ((NI) 0);
			T207_ = (colontmp__3 ? colontmp__3->Sup.len : 0);
			L = T207_;
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T210_;
					NI TM__gLSXNlwmnHPzTIXzvpQGfw_24;
					if (!(i_5 < L)) goto LA209;
					if ((NU)(i_5) >= (NU)(colontmp__3 ? colontmp__3->Sup.len : 0)){ raiseIndexError2(i_5,(colontmp__3 ? colontmp__3->Sup.len : 0)-1); }
					c = colontmp__3->data[i_5];
					T210_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T210_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2(c);
					add__P8dDSotTW25BkfbyspojGg(result, T210_);
					if (nimAddInt(i_5, ((NI) 1), &TM__gLSXNlwmnHPzTIXzvpQGfw_24)) { raiseOverflow(); };
					i_5 = (NI)(TM__gLSXNlwmnHPzTIXzvpQGfw_24);
					{
						NI T213_;
						T213_ = (colontmp__3 ? colontmp__3->Sup.len : 0);
						if (!!((T213_ == L))) goto LA214_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_25));
					}
					LA214_: ;
				} LA209: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			if (!inst) goto LA219_;
			{
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T225_;
				if (!((*t).n == 0)) goto LA223_;
				{
					if (!((*t).n == 0)) goto LA228_;
					T225_ = info;
				}
				goto LA226_;
				LA228_: ;
				{
					T225_ = (*(*t).n).info;
				}
				LA226_: ;
				result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), T225_, t);
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* subType;
					NI i_6;
					NI L_2;
					NI T232_;
					subType = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					i_6 = ((NI) 0);
					T232_ = ((*t).sons ? (*t).sons->Sup.len : 0);
					L_2 = T232_;
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T235_;
							NI TM__gLSXNlwmnHPzTIXzvpQGfw_26;
							if (!(i_6 < L_2)) goto LA234;
							if ((NU)(i_6) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(i_6,((*t).sons ? (*t).sons->Sup.len : 0)-1); }
							subType = (*t).sons->data[i_6];
							T235_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T235_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, subType, info, inst, NIM_FALSE);
							add__P8dDSotTW25BkfbyspojGg(result, T235_);
							if (nimAddInt(i_6, ((NI) 1), &TM__gLSXNlwmnHPzTIXzvpQGfw_26)) { raiseOverflow(); };
							i_6 = (NI)(TM__gLSXNlwmnHPzTIXzvpQGfw_26);
							{
								NI T238_;
								T238_ = ((*t).sons ? (*t).sons->Sup.len : 0);
								if (!!((T238_ == L_2))) goto LA239_;
								failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_25));
							}
							LA239_: ;
						} LA234: ;
					}
				}
			}
			goto LA221_;
			LA223_: ;
			{
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T242_;
				{
					if (!((*t).n == 0)) goto LA245_;
					T242_ = info;
				}
				goto LA243_;
				LA245_: ;
				{
					T242_ = (*(*t).n).info;
				}
				LA243_: ;
				result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 134), T242_, t);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
					tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp__4;
					NI i_7;
					NI L_3;
					NI T249_;
					s = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					colontmp__4 = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
					if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
					colontmp__4 = (*(*t).n)._kind_6.sons;
					i_7 = ((NI) 0);
					T249_ = (colontmp__4 ? colontmp__4->Sup.len : 0);
					L_3 = T249_;
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* idX60gensym57620001_;
							tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T252_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T258_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T259_;
							NI TM__gLSXNlwmnHPzTIXzvpQGfw_27;
							if (!(i_7 < L_3)) goto LA251;
							if ((NU)(i_7) >= (NU)(colontmp__4 ? colontmp__4->Sup.len : 0)){ raiseIndexError2(i_7,(colontmp__4 ? colontmp__4->Sup.len : 0)-1); }
							s = colontmp__4->data[i_7];
							{
								if (!((*t).n == 0)) goto LA255_;
								T252_ = info;
							}
							goto LA253_;
							LA255_: ;
							{
								T252_ = (*(*t).n).info;
							}
							LA253_: ;
							idX60gensym57620001_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T252_, t);
							add__P8dDSotTW25BkfbyspojGg(idX60gensym57620001_, s);
							T258_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T258_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*s).typ, info, inst, NIM_FALSE);
							add__P8dDSotTW25BkfbyspojGg(idX60gensym57620001_, T258_);
							T259_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T259_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
							add__P8dDSotTW25BkfbyspojGg(idX60gensym57620001_, T259_);
							add__P8dDSotTW25BkfbyspojGg(result, idX60gensym57620001_);
							if (nimAddInt(i_7, ((NI) 1), &TM__gLSXNlwmnHPzTIXzvpQGfw_27)) { raiseOverflow(); };
							i_7 = (NI)(TM__gLSXNlwmnHPzTIXzvpQGfw_27);
							{
								NI T262_;
								T262_ = (colontmp__4 ? colontmp__4->Sup.len : 0);
								if (!!((T262_ == L_3))) goto LA263_;
								failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_25));
							}
							LA263_: ;
						} LA251: ;
					}
				}
			}
			LA221_: ;
		}
		goto LA217_;
		LA219_: ;
		{
			result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_28), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 166), t, info, inst);
		}
		LA217_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_29), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 157), t, info, inst);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	{
		{
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T272_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T278_;
			if (!inst) goto LA270_;
			{
				if (!((*t).n == 0)) goto LA275_;
				T272_ = info;
			}
			goto LA273_;
			LA275_: ;
			{
				T272_ = (*(*t).n).info;
			}
			LA273_: ;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142), T272_, t);
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
			T278_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T278_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[((NI) 0)], info, inst, NIM_FALSE);
			add__P8dDSotTW25BkfbyspojGg(result, T278_);
		}
		goto LA268_;
		LA270_: ;
		{
			result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_30), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 162), t, info, inst);
		}
		LA268_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	{
		{
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T285_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T291_;
			if (!inst) goto LA283_;
			{
				if (!((*t).n == 0)) goto LA288_;
				T285_ = info;
			}
			goto LA286_;
			LA288_: ;
			{
				T285_ = (*(*t).n).info;
			}
			LA286_: ;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141), T285_, t);
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
			T291_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T291_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[((NI) 0)], info, inst, NIM_FALSE);
			add__P8dDSotTW25BkfbyspojGg(result, T291_);
		}
		goto LA281_;
		LA283_: ;
		{
			result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_31), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 161), t, info, inst);
		}
		LA281_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	{
		{
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T298_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T304_;
			if (!inst) goto LA296_;
			{
				if (!((*t).n == 0)) goto LA301_;
				T298_ = info;
			}
			goto LA299_;
			LA301_: ;
			{
				T298_ = (*(*t).n).info;
			}
			LA299_: ;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143), T298_, t);
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
			T304_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T304_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[((NI) 0)], info, inst, NIM_FALSE);
			add__P8dDSotTW25BkfbyspojGg(result, T304_);
		}
		goto LA294_;
		LA296_: ;
		{
			result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_32), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 163), t, info, inst);
		}
		LA294_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_33), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 263), t, info, inst);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
	{
		result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_34), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 263), t, info, inst);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_35), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 158), t, info, inst);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62):
	{
		result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_36), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 159), t, info, inst);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T315_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fp;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T321_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T345_;
			if (!inst) goto LA313_;
			{
				if (!((*t).n == 0)) goto LA318_;
				T315_ = info;
			}
			goto LA316_;
			LA318_: ;
			{
				T315_ = (*(*t).n).info;
			}
			LA316_: ;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 147), T315_, t);
			{
				if (!((*t).n == 0)) goto LA324_;
				T321_ = info;
			}
			goto LA322_;
			LA324_: ;
			{
				T321_ = (*(*t).n).info;
			}
			LA322_: ;
			fp = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76), T321_, t);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T331_;
				if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
				if (!((*t).sons->data[((NI) 0)] == NIM_NIL)) goto LA329_;
				T331_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T331_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
				add__P8dDSotTW25BkfbyspojGg(fp, T331_);
			}
			goto LA327_;
			LA329_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T333_;
				if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
				if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
				if ((NU)(((NI) 0)) >= (NU)((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)-1); }
				T333_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T333_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[((NI) 0)], (*(*(*t).n)._kind_6.sons->data[((NI) 0)]).info, inst, NIM_FALSE);
				add__P8dDSotTW25BkfbyspojGg(fp, T333_);
			}
			LA327_: ;
			{
				NI i_8;
				NI colontmp__5;
				NI i_9;
				i_8 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
				i_9 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* idX60gensym57755023_;
						tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T337_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T343_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T344_;
						NI TM__gLSXNlwmnHPzTIXzvpQGfw_37;
						if (!(i_9 < colontmp__5)) goto LA336;
						i_8 = i_9;
						{
							if (!((*t).n == 0)) goto LA340_;
							T337_ = info;
						}
						goto LA338_;
						LA340_: ;
						{
							T337_ = (*(*t).n).info;
						}
						LA338_: ;
						idX60gensym57755023_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T337_, t);
						if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
						if ((NU)(i_8) >= (NU)((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_8,((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)-1); }
						add__P8dDSotTW25BkfbyspojGg(idX60gensym57755023_, (*(*t).n)._kind_6.sons->data[i_8]);
						if ((NU)(i_8) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(i_8,((*t).sons ? (*t).sons->Sup.len : 0)-1); }
						T343_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T343_ = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, (*t).sons->data[i_8], info, inst, NIM_FALSE);
						add__P8dDSotTW25BkfbyspojGg(idX60gensym57755023_, T343_);
						T344_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T344_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
						add__P8dDSotTW25BkfbyspojGg(idX60gensym57755023_, T344_);
						add__P8dDSotTW25BkfbyspojGg(fp, idX60gensym57755023_);
						if (nimAddInt(i_9, ((NI) 1), &TM__gLSXNlwmnHPzTIXzvpQGfw_37)) { raiseOverflow(); };
						i_9 = (NI)(TM__gLSXNlwmnHPzTIXzvpQGfw_37);
					} LA336: ;
				}
			}
			add__P8dDSotTW25BkfbyspojGg(result, fp);
			T345_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI T348_;
				if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
				if ((NU)(((NI) 0)) >= (NU)((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)-1); }
				T348_ = (NI)0;
				T348_ = len__P89cqdlERShb9alU3iC0yj8wast((*(*t).n)._kind_6.sons->data[((NI) 0)]);
				if (!(((NI) 0) < T348_)) goto LA349_;
				if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
				if ((NU)(((NI) 0)) >= (NU)((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)-1); }
				if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*(*t).n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*(*t).n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
				if ((NU)(((NI) 4)) >= (NU)((*(*(*t).n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*(*t).n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 4),((*(*(*t).n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*(*t).n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)-1); }
				T345_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2((*(*(*t).n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 4)]);
			}
			goto LA346_;
			LA349_: ;
			{
				T345_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
			}
			LA346_: ;
			add__P8dDSotTW25BkfbyspojGg(result, T345_);
		}
		goto LA311_;
		LA313_: ;
		{
			result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_38), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, inst);
		}
		LA311_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	{
		result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_39), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 155), t, info, inst);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T355_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T361_;
		{
			if (!((*t).n == 0)) goto LA358_;
			T355_ = info;
		}
		goto LA356_;
		LA358_: ;
		{
			T355_ = (*(*t).n).info;
		}
		LA356_: ;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T355_, t);
		T361_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T361_ = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_40), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 156), t, info);
		add__P8dDSotTW25BkfbyspojGg(result, T361_);
		{
			NIM_BOOL T364_;
			NI T366_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* rng_2;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T369_;
			tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T375_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T376_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T377_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T378_;
			T364_ = (NIM_BOOL)0;
			T364_ = inst;
			if (!(T364_)) goto LA365_;
			T366_ = (NI)0;
			T366_ = len__P89cqdlERShb9alU3iC0yj8wast((*t).n);
			T364_ = (T366_ == ((NI) 2));
			LA365_: ;
			if (!T364_) goto LA367_;
			{
				if (!((*t).n == 0)) goto LA372_;
				T369_ = info;
			}
			goto LA370_;
			LA372_: ;
			{
				T369_ = (*(*t).n).info;
			}
			LA370_: ;
			rng_2 = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), T369_, t);
			T375_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
			T375_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_12));
			T376_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T376_ = newIdentNode__KZLyxk08RZ9cnzbQfphbJPQ(T375_, info);
			add__P8dDSotTW25BkfbyspojGg(rng_2, T376_);
			if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
			if ((NU)(((NI) 0)) >= (NU)((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)-1); }
			T377_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T377_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2((*(*t).n)._kind_6.sons->data[((NI) 0)]);
			add__P8dDSotTW25BkfbyspojGg(rng_2, T377_);
			if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
			if ((NU)(((NI) 1)) >= (NU)((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)-1); }
			T378_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T378_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2((*(*t).n)._kind_6.sons->data[((NI) 1)]);
			add__P8dDSotTW25BkfbyspojGg(rng_2, T378_);
			add__P8dDSotTW25BkfbyspojGg(result, rng_2);
		}
		goto LA362_;
		LA367_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T380_;
			if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
			if ((NU)(((NI) 0)) >= (NU)((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)-1); }
			T380_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T380_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2((*(*t).n)._kind_6.sons->data[((NI) 0)]);
			add__P8dDSotTW25BkfbyspojGg(result, T380_);
			{
				NI T383_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T386_;
				T383_ = (NI)0;
				T383_ = len__P89cqdlERShb9alU3iC0yj8wast((*t).n);
				if (!(((NI) 1) < T383_)) goto LA384_;
				if (((TM__gLSXNlwmnHPzTIXzvpQGfw_13[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14)); }
				if ((NU)(((NI) 1)) >= (NU)((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)-1); }
				T386_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T386_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2((*(*t).n)._kind_6.sons->data[((NI) 1)]);
				add__P8dDSotTW25BkfbyspojGg(result, T386_);
			}
			LA384_: ;
		}
		LA362_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_41), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 186), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_42), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 184), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_43), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 185), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_44), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 168), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_45), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 169), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_46), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 170), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_47), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 171), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_48), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 172), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_49), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 178), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_50), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 179), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 38):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_51), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 180), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_52), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 181), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_53), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 173), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_54), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 174), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_55), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 175), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_56), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 176), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_57), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 177), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_58), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 160), t, info, inst);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_59), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51):
	{
		result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_60), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, inst);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T412_;
			if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0)) goto LA410_;
			T412_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T412_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
			result = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, T412_, info, inst, NIM_FALSE);
		}
		goto LA408_;
		LA410_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T414_;
			result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_61), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, inst);
			T414_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T414_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2((*t).n);
			add__P8dDSotTW25BkfbyspojGg(result, T414_);
		}
		LA408_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
	{
		result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_62), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, inst);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56):
	{
		result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_63), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 108), t, info, inst);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57):
	{
		result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_64), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109), t, info, inst);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58):
	{
		result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_65), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95), t, info, inst);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
	{
		result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_66), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
	{
		{
			if (!NIM_TRUE) goto LA423_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_67));
		}
		LA423_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
	{
		{
			if (!inst) goto LA428_;
			{
				if (!!(((*t).n == NIM_NIL))) goto LA432_;
				result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2((*t).n);
			}
			goto LA430_;
			LA432_: ;
			{
				result = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_8), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 165), t, info);
			}
			LA430_: ;
		}
		goto LA426_;
		LA428_: ;
		{
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T436_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T442_;
			{
				if (!((*t).n == 0)) goto LA439_;
				T436_ = info;
			}
			goto LA437_;
			LA439_: ;
			{
				T436_ = (*(*t).n).info;
			}
			LA437_: ;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T436_, t);
			T442_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T442_ = atomicTypeX__dxogOUDK6Q9bCBgEkvVRVjg(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_68), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info);
			add__P8dDSotTW25BkfbyspojGg(result, T442_);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T447_;
				if (!!(((*t).n == NIM_NIL))) goto LA445_;
				T447_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T447_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2((*t).n);
				add__P8dDSotTW25BkfbyspojGg(result, T447_);
			}
			LA445_: ;
		}
		LA426_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		result = mapTypeToBracketX__5NBap29cvwMrU6xwIjHxS8A(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_69), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 263), t, info, inst);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, opMapTypeToAst__B7DYLotR9aw6o9cHZhrLIPGg)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, t, info, NIM_FALSE, NIM_TRUE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, opMapTypeInstToAst__B7DYLotR9aw6o9cHZhrLIPGg_2)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, t, info, NIM_TRUE, NIM_FALSE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, opMapTypeImplToAst__B7DYLotR9aw6o9cHZhrLIPGg_3)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = mapTypeToAstX__9aIygTHXLfvkdHTvOw62hGw(cache, t, info, NIM_TRUE, NIM_TRUE);
	return result;
}
static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
	(*s).prev = excHandler__rqLlY5bs9atDw2OXYqJEn5g;
	excHandler__rqLlY5bs9atDw2OXYqJEn5g = s;
}
static N_INLINE(NIM_BOOL, fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos)(NimStringDesc* filename) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = nosexistsFile(filename);
	return result;
}
static N_INLINE(void, popSafePoint)(void) {
	excHandler__rqLlY5bs9atDw2OXYqJEn5g = (*excHandler__rqLlY5bs9atDw2OXYqJEn5g).prev;
}
static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
	Exception* result;
	result = (Exception*)0;
	result = currException__9bVPeDJlYTi9bQApZpfH8wjg;
	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__i80o3k0SgEI5gTRCzYdyWAsystem)(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__i80o3k0SgEI5gTRCzYdyWAsystem(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
static N_INLINE(void, popCurrentException)(void) {
	asgnRef((void**) (&currException__9bVPeDJlYTi9bQApZpfH8wjg), (*currException__9bVPeDJlYTi9bQApZpfH8wjg).up);
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, opSlurp__BZteCpC7yurCSeB8YcFcgg)(NimStringDesc* file, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
	NimStringDesc* volatile result;
	TSafePoint TM__gLSXNlwmnHPzTIXzvpQGfw_70;
	result = (NimStringDesc*)0;
	pushSafePoint(&TM__gLSXNlwmnHPzTIXzvpQGfw_70);
	TM__gLSXNlwmnHPzTIXzvpQGfw_70.status = _setjmp(TM__gLSXNlwmnHPzTIXzvpQGfw_70.context);
	if (TM__gLSXNlwmnHPzTIXzvpQGfw_70.status == 0) {
		NimStringDesc* volatile filename;
		NimStringDesc* T2_;
		NimStringDesc* T3_;
		NI32 T9_;
		tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* T10_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		T2_ = (NimStringDesc*)0;
		T2_ = toFullPath__VW1RaR1l9c9bPnJxr1KuvIrg(conf, info.fileIndex);
		T3_ = (NimStringDesc*)0;
		T3_ = nosparentDir(T2_);
		filename = slash___gEyhbzZ1UcxyenWRLJRXNQ(T3_, file);
		{
			NIM_BOOL T6_;
			T6_ = (NIM_BOOL)0;
			T6_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(filename);
			if (!!(T6_)) goto LA7_;
			filename = findFile__Jsd6LfkMRIXL9b0vzcHVYOA(conf, file, NIM_FALSE);
		}
		LA7_: ;
		result = readFile__4PGnM9bWmsH0Nu7dnr3XzgA(filename);
		T9_ = (NI32)0;
		T9_ = fileInfoIdx__3HRSVgYDcnQTolSZGx1zjA(conf, filename);
		(void)(T9_);
		T10_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
		T10_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) newSeq((&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_), 1);
		asgnRef((void**) (&T10_->data[0]), newStrNode__zLcHGdlEbBYFtoCoan9agkg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), filename));
		T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = newNode__duw0Uu9cIFXmCAaunQWIP0g(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121), info, T10_, NIM_NIL);
		appendToModule__T4o9clzgbAgGY4ORbfP6LmQ(module, T11_);
		popSafePoint();
	}
	else {
		popSafePoint();
		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTI__iLZrPn9anoh9ad1MmO0RczFw_))) {
			NimStringDesc* T14_;
			TM__gLSXNlwmnHPzTIXzvpQGfw_70.status = 0;
			T14_ = (NimStringDesc*)0;
			T14_ = rawNewString((file ? file->Sup.len : 0) + 18);
appendString(T14_, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_71));
appendString(T14_, file);
			localError__NF6kBGchnhQYPbCedyefVA(conf, info, T14_);
			result = ((NimStringDesc*) NIM_NIL);
			popCurrentException();
		}
	}
	if (TM__gLSXNlwmnHPzTIXzvpQGfw_70.status != 0) reraiseException();
	return result;
}
