text: /* Generated by Nim Compiler v1.6.2 */
  #define NIM_INTBITS 64
  
  #include "nimbase.h"
  #include <string.h>
  #include <setjmp.h>
  #undef LANGUAGE_C
  #undef MIPSEB
  #undef MIPSEL
  #undef PPC
  #undef R3000
  #undef R4000
  #undef i386
  #undef linux
  #undef mips
  #undef near
  #undef far
  #undef powerpc
  #undef unix
  #define nimfr_(x, y)
  #define nimln_(x, y)
  typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
  typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
  typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
  typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
  typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
  typedef struct NimStringDesc NimStringDesc;
  typedef struct TGenericSeq TGenericSeq;
  typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
  typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
  typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
  typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
  typedef struct RootObj RootObj;
  typedef struct TNimType TNimType;
  typedef struct TNimNode TNimNode;
  typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
  typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
  typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
  typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
  typedef struct tyObject_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__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
  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__facALICuu8zUj0hjvbTLFg* typ;
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
  tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
  tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
  union{
  struct {NI64 intVal;
  } _kind_1;
  struct {NF floatVal;
  } _kind_2;
  struct {NimStringDesc* strVal;
  } _kind_3;
  struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
  } _kind_4;
  struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
  } _kind_5;
  struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
  } _kind_6;
  };
  };
  typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
  typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
  typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
  typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
  struct TNimType {
  NI size;
  NI align;
  tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
  tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
  TNimType* base;
  TNimNode* node;
  void* finalizer;
  tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
  tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
  };
  struct RootObj {
  TNimType* m_type;
  };
  struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
  NI32 module;
  NI32 item;
  };
  struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
    RootObj Sup;
  tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
  };
  typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
  typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
  typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
  typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
  typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
  typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
  struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
  tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
  tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
  tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
  tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
  };
  struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
    tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
  tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
  tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
  tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
  tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
  tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
  tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
  NI64 size;
  NI16 align;
  NI16 paddingAtEnd;
  NI16 lockLevel;
  tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
  tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
  tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
  };
  typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
  typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
  typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
  struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q {
  NI32 module;
  NI32 symId;
  NI32 typeId_0;
  NIM_BOOL sealed;
  };
  typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
  struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
    tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
  tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
  union{
  struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
  } _kind_1;
  struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
  NI bitsize;
  NI alignment;
  } _kind_2;
  };
  tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
  tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
  tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
  tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
  tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
  tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
  NI position;
  NI offset;
  tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
  tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
  };
  struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
  NI refcount;
  TNimType* typ;
  };
  struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
  void* bottom;
  };
  struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
  NI len;
  NI cap;
  tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
  };
  typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
  typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
  typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
  typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
  typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
  struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
  tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
  };
  typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
  struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
  tyArray__0aOLqZchNi8nWtMTi8ND8w link;
  NI key;
  NI upperBound;
  NI level;
  };
  struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
  tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
  NI Field1;
  };
  typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
  struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
  NI len;
  tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
  tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
  };
  struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
  NI minLargeObj;
  NI maxLargeObj;
  tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
  NU32 flBitmap;
  tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
  tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
  tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
  NI currMem;
  NI maxMem;
  NI freeMem;
  NI occ;
  NI lastSize;
  tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
  NIM_BOOL locked;
  NIM_BOOL blockChunkSizeIncrease;
  NI nextChunkSize;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
  tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
  };
  struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
  NI stackScans;
  NI cycleCollections;
  NI maxThreshold;
  NI maxStackSize;
  NI maxStackCells;
  NI cycleTableSize;
  NI64 maxPause;
  };
  struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
  NI counter;
  NI max;
  tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
  tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
  };
  struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
  tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
  NI cycleThreshold;
  NI zctThreshold;
  tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
  tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
  tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
  NI recGcLock;
  tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
  tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
  tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
  tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
  NI gcThreadId;
  };
  typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
  struct Exception {
    RootObj Sup;
  Exception* parent;
  NCSTRING name;
  NimStringDesc* message;
  tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
  Exception* up;
  };
  typedef long tyArray__TcvIiMAJvcwzNLsZkfnFnQ[25];
  struct TSafePoint {
  TSafePoint* prev;
  NI status;
  jmp_buf context;
  };
  typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
  typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
  struct TNimNode {
  tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
  NI offset;
  TNimType* typ;
  NCSTRING name;
  NI len;
  TNimNode** sons;
  };
  typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
  typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
  struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
  NimStringDesc* Field0;
  NI Field1;
  NI Field2;
  };
  struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
  NCSTRING procname;
  NI line;
  NCSTRING filename;
  };
  struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
    TGenericSeq Sup;
    tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
  };
  struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
    TGenericSeq Sup;
    tyObject_TType__facALICuu8zUj0hjvbTLFg* 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__vmdeps_29)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, NIM_BOOL inst, NIM_BOOL allowRecursionX);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, atomicTypeX__vmdeps_25)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3716)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, atomicTypeX__vmdeps_16)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newSym__ast_3445)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_143)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
  static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3132)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
  static N_INLINE(void, nimZeroMem)(void* p, NI size);
  static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
  static N_INLINE(void, asgnRef)(void** dest, void* src);
  static N_INLINE(void, incRef__system_5317)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5279)(void* usr);
  static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
  static N_INLINE(void, decRef__system_5324)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
  static N_INLINE(void, rtlAddZCT__system_5322)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5273)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__ast_3378)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
  N_LIB_PRIVATE N_NIMCALL(void, add__ast_4797)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIdentNode__ast_3712)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__ast_4431)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, base__types_63)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
  static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, lastSon__ast_3743)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, mapTypeToBracketX__vmdeps_36)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, NIM_BOOL inst);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newType__ast_3896)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
  static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3151)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3356)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
  static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, objectNode__vmdeps_75)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__ast_4336)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
  static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
  static N_INLINE(void, pushSafePoint)(TSafePoint* s);
  static N_INLINE(NimStringDesc*, slash___pureZos_121)(NimStringDesc* head, NimStringDesc* tail);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosjoinPath)(NimStringDesc* head, NimStringDesc* tail);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosparentDir)(NimStringDesc* path);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toFullPath__msgs_538)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI32 fileIdx);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosfileExists)(NimStringDesc* filename);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, findFile__options_4490)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* f, NIM_BOOL suppressStdlib);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readFile__systemZio_472)(NimStringDesc* filename);
  N_LIB_PRIVATE N_NIMCALL(NI32, fileInfoIdx__msgs_376)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
  N_LIB_PRIVATE N_NIMCALL(void, appendToModule__ast_3540)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTreeI__ast_3420)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStrNode__ast_3813)(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_NOINLINE(void, liMessage__msgs_1118)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
  static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
  static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
  static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, 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, "untyped", 7);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_7, "typed", 5);
  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);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_13, "typeDesc", 8);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_14, "distinct", 8);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_15, "tuple", 5);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_16, "set", 3);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_17, "ptr", 3);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_18, "ref", 3);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_19, "var", 3);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_20, "lent", 4);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_21, "sink", 4);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_22, "seq", 3);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_23, "proc", 4);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_24, "openArray", 9);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_25, "range", 5);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_26, "pointer", 7);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_27, "string", 6);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_28, "cstring", 7);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_29, "int", 3);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_30, "int8", 4);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_31, "int16", 5);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_32, "int32", 5);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_33, "int64", 5);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_34, "float", 5);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_35, "float32", 7);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_36, "float64", 7);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_37, "float128", 8);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_38, "uint", 4);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_39, "uint8", 5);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_40, "uint16", 6);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_41, "uint32", 6);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_42, "uint64", 6);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_43, "varargs", 7);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_44, "error", 5);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_45, "builtinTypeClass", 16);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_46, "concept", 7);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_47, "compositeTypeClass", 18);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_48, "and", 3);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_49, "or", 2);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_50, "not", 3);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_51, "iterable", 8);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_52, "anything", 8);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_53, "static", 6);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_54, "owned", 5);
  extern TNimType NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_;
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_56, "cannot open file: ", 18);
  STRING_LITERAL(TM__gLSXNlwmnHPzTIXzvpQGfw_58, "/home/runner/work/nightlies/nightlies/nim/compiler/vmdeps.nim", 61);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__gLSXNlwmnHPzTIXzvpQGfw_57 = {((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_58),
  ((NI) 24),
  ((NI) 14)}
  ;
  extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5226;
  extern TSafePoint* excHandler__system_2565;
  extern TSafePoint* excHandler__system_2565;
  extern TSafePoint* excHandler__system_2565;
  extern TSafePoint* excHandler__system_2565;
  extern Exception* currException__system_2566;
  extern Exception* currException__system_2566;
  extern Exception* currException__system_2566;
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, atomicTypeX__vmdeps_25)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
  	result = NIM_NIL;
  	result = newSymNode__ast_3716(s);
  	(*result).info = info;
  	return result;
  }
  static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
  	void* T1_;
  	T1_ = (void*)0;
  	T1_ = memset(a, v, ((size_t) (size)));
  }
  static N_INLINE(void, nimZeroMem)(void* p, NI size) {
  	nimSetMem__systemZmemory_7(p, ((int) 0), size);
  }
  static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3132)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
  	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
  	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
  	(*x).symId += ((NI) 1);
  	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
  	result.module = (*x).module;
  	result.item = (*x).symId;
  	return result;
  }
  static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
  	NI result;
  	result = (NI)0;
  	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
  	return result;
  }
  static N_INLINE(void, incRef__system_5317)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
  }
  static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
  	NI result;
  	result = (NI)0;
  	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
  	return result;
  }
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5279)(void* usr) {
  	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
  	NI T1_;
  	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  	T1_ = (NI)0;
  	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
  	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
  	return result;
  }
  static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
  	NIM_BOOL result;
  	result = (NIM_BOOL)0;
  	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
  	return result;
  }
  static N_INLINE(void, rtlAddZCT__system_5322)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	addZCT__system_5273((&gch__system_5226.zct), c);
  }
  static N_INLINE(void, decRef__system_5324)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
  	{
  		NIM_BOOL T3_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
  		if (!T3_) goto LA4_;
  		rtlAddZCT__system_5322(c);
  	}
  	LA4_: ;
  }
  static N_INLINE(void, asgnRef)(void** dest, void* src) {
  	{
  		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
  		if (!!((src == NIM_NIL))) goto LA3_;
  		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  		T5_ = usrToCell__system_5279(src);
  		incRef__system_5317(T5_);
  	}
  	LA3_: ;
  	{
  		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
  		if (!!(((*dest) == NIM_NIL))) goto LA8_;
  		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  		T10_ = usrToCell__system_5279((*dest));
  		decRef__system_5324(T10_);
  	}
  	LA8_: ;
  	(*dest) = src;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, atomicTypeX__vmdeps_16)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
  	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
  	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
  	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T2_;
  	result = NIM_NIL;
  	T1_ = NIM_NIL;
  	T1_ = getIdent__idents_143(cache, name);
  	T2_ = nextSymId__ast_3132(idgen);
  	sym = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), T1_, T2_, (*t).owner, info, 0);
  	(*sym).magic = m;
  	asgnRef((void**) (&(*sym).typ), t);
  	result = newSymNode__ast_3716(sym);
  	asgnRef((void**) (&(*result).typ), t);
  	return result;
  }
  static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n) {
  	NI result;
  	NI T1_;
  	result = (NI)0;
  	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
  	result = T1_;
  	return result;
  }
  static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3151)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
  	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
  	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
  	(*x).typeId_0 += ((NI) 1);
  	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
  	result.module = (*x).module;
  	result.item = (*x).typeId_0;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, mapTypeToBracketX__vmdeps_36)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, NIM_BOOL inst) {
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
  	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T1_;
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
  	result = NIM_NIL;
  	{
  		if (!((*t).n == 0)) goto LA4_;
  		T1_ = info;
  	}
  	goto LA2_;
  	LA4_: ;
  	{
  		T1_ = (*(*t).n).info;
  	}
  	LA2_: ;
  	result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T1_, t);
  	T7_ = NIM_NIL;
  	T7_ = atomicTypeX__vmdeps_16(cache, name, m, t, info, idgen);
  	add__ast_4797(result, T7_);
  	{
  		NI i;
  		NI colontmp_;
  		NI i_2;
  		i = (NI)0;
  		colontmp_ = (NI)0;
  		colontmp_ = len__ast_4002(t);
  		i_2 = ((NI) 0);
  		{
  			while (1) {
  				if (!(i_2 < colontmp_)) goto LA10;
  				i = i_2;
  				{
  					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* void_1;
  					tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T15_;
  					if (!((*t).sons->data[i] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA13_;
  					void_1 = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_8), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 169), t, info, idgen);
  					T15_ = nextTypeId__ast_3151(idgen);
  					asgnRef((void**) (&(*void_1).typ), newType__ast_3896(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63), T15_, (*t).owner));
  					add__ast_4797(result, void_1);
  				}
  				goto LA11_;
  				LA13_: ;
  				{
  					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
  					T17_ = NIM_NIL;
  					T17_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[i], info, idgen, inst, NIM_FALSE);
  					add__ast_4797(result, T17_);
  				}
  				LA11_: ;
  				i_2 += ((NI) 1);
  			} LA10: ;
  		}
  	}
  	return result;
  }
  static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
  	NI result;
  	NI T1_;
  	result = (NI)0;
  	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
  	result = T1_;
  	return result;
  }
  static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
  	NI result;
  	result = (NI)0;
  	{
  		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
  		result = ((NI) 0);
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		result = len__ast_3198(n);
  	}
  	LA1_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, objectNode__vmdeps_75)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
  	result = NIM_NIL;
  	{
  		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
  		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
  		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
  		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (*n).info);
  		add__ast_4797(result, n);
  		T5_ = NIM_NIL;
  		T5_ = mapTypeToAstX__vmdeps_29(cache, (*(*n)._kind_4.sym).typ, (*n).info, idgen, NIM_TRUE, NIM_FALSE);
  		add__ast_4797(result, T5_);
  		T6_ = NIM_NIL;
  		T6_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
  		add__ast_4797(result, T6_);
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		result = copyNode__ast_4336(n);
  		{
  			NI i;
  			NI colontmp_;
  			NI i_2;
  			i = (NI)0;
  			colontmp_ = (NI)0;
  			colontmp_ = safeLen__ast_3191(n);
  			i_2 = ((NI) 0);
  			{
  				while (1) {
  					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
  					if (!(i_2 < colontmp_)) goto LA10;
  					i = i_2;
  					T11_ = NIM_NIL;
  					T11_ = objectNode__vmdeps_75(cache, (*n)._kind_6.sons->data[i], idgen);
  					add__ast_4797(result, T11_);
  					i_2 += ((NI) 1);
  				} LA10: ;
  			}
  		}
  	}
  	LA1_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, mapTypeToAstX__vmdeps_29)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, NIM_BOOL inst, NIM_BOOL allowRecursionX) {
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
  	NIM_BOOL allowRecursion;
  {	result = NIM_NIL;
  	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 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
  		LA6_: ;
  		if (!T3_) goto LA7_;
  		result = atomicTypeX__vmdeps_25((*t).sym, info);
  		goto BeforeRet_;
  	}
  	LA7_: ;
  	switch ((*t).kind) {
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_2), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_3), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 187), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_4), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 188), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_5), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 192), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_6), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 193), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_7), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 194), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_8), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 169), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_9), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, idgen);
  	}
  	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__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T18_, t);
  		T24_ = NIM_NIL;
  		T24_ = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_10), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 271), t, info, idgen);
  		add__ast_4797(result, T24_);
  		T25_ = NIM_NIL;
  		T25_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
  		add__ast_4797(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__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T27_, t);
  		T33_ = NIM_NIL;
  		T33_ = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_11), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 159), t, info, idgen);
  		add__ast_4797(result, T33_);
  		{
  			NIM_BOOL T36_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* rng;
  			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T40_;
  			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T46_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T47_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T48_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T49_;
  			T36_ = (NIM_BOOL)0;
  			T36_ = inst;
  			if (!(T36_)) goto LA37_;
  			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__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), T40_, t);
  			T46_ = NIM_NIL;
  			T46_ = getIdent__idents_143(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_12));
  			T47_ = NIM_NIL;
  			T47_ = newIdentNode__ast_3712(T46_, info);
  			add__ast_4797(rng, T47_);
  			T48_ = NIM_NIL;
  			T48_ = copyTree__ast_4431((*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons->data[((NI) 0)]);
  			add__ast_4797(rng, T48_);
  			T49_ = NIM_NIL;
  			T49_ = copyTree__ast_4431((*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons->data[((NI) 1)]);
  			add__ast_4797(rng, T49_);
  			add__ast_4797(result, rng);
  		}
  		goto LA34_;
  		LA38_: ;
  		{
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T51_;
  			T51_ = NIM_NIL;
  			T51_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
  			add__ast_4797(result, T51_);
  		}
  		LA34_: ;
  		T52_ = NIM_NIL;
  		T52_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 1)], info, idgen, inst, NIM_FALSE);
  		add__ast_4797(result, T52_);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
  	{
  		{
  			tyObject_TType__facALICuu8zUj0hjvbTLFg* T56_;
  			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T59_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T65_;
  			tyObject_TType__facALICuu8zUj0hjvbTLFg* T66_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T67_;
  			T56_ = NIM_NIL;
  			T56_ = base__types_63(t);
  			if (!!((T56_ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA57_;
  			{
  				if (!((*t).n == 0)) goto LA62_;
  				T59_ = info;
  			}
  			goto LA60_;
  			LA62_: ;
  			{
  				T59_ = (*(*t).n).info;
  			}
  			LA60_: ;
  			result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T59_, t);
  			T65_ = NIM_NIL;
  			T65_ = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_13), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 195), t, info, idgen);
  			add__ast_4797(result, T65_);
  			T66_ = NIM_NIL;
  			T66_ = base__types_63(t);
  			T67_ = NIM_NIL;
  			T67_ = mapTypeToAstX__vmdeps_29(cache, T66_, info, idgen, inst, NIM_FALSE);
  			add__ast_4797(result, T67_);
  		}
  		goto LA54_;
  		LA57_: ;
  		{
  			result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_13), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 195), t, info, idgen);
  		}
  		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__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T70_, t);
  		{
  			NI i;
  			NI colontmp_;
  			NI i_2;
  			i = (NI)0;
  			colontmp_ = (NI)0;
  			colontmp_ = len__ast_4002(t);
  			i_2 = ((NI) 0);
  			{
  				while (1) {
  					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T79_;
  					if (!(i_2 < colontmp_)) goto LA78;
  					i = i_2;
  					T79_ = NIM_NIL;
  					T79_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[i], info, idgen, inst, NIM_FALSE);
  					add__ast_4797(result, T79_);
  					i_2 += ((NI) 1);
  				} LA78: ;
  			}
  		}
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
  	{
  		{
  			if (!inst) goto LA83_;
  			{
  				tyObject_TType__facALICuu8zUj0hjvbTLFg* T89_;
  				if (!allowRecursion) goto LA87_;
  				T89_ = NIM_NIL;
  				T89_ = lastSon__ast_3743(t);
  				result = mapTypeToAstX__vmdeps_29(cache, T89_, info, idgen, 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__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T91_, t);
  				T97_ = NIM_NIL;
  				T97_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
  				add__ast_4797(result, T97_);
  				{
  					NI i_3;
  					NI colontmp__2;
  					NI T99_;
  					NI i_4;
  					i_3 = (NI)0;
  					colontmp__2 = (NI)0;
  					T99_ = (NI)0;
  					T99_ = len__ast_4002(t);
  					colontmp__2 = (NI)(T99_ - ((NI) 1));
  					i_4 = ((NI) 1);
  					{
  						while (1) {
  							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T102_;
  							if (!(i_4 < colontmp__2)) goto LA101;
  							i_3 = i_4;
  							T102_ = NIM_NIL;
  							T102_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[i_3], info, idgen, inst, NIM_FALSE);
  							add__ast_4797(result, T102_);
  							i_4 += ((NI) 1);
  						} LA101: ;
  					}
  				}
  			}
  			LA85_: ;
  		}
  		goto LA81_;
  		LA83_: ;
  		{
  			tyObject_TType__facALICuu8zUj0hjvbTLFg* T104_;
  			T104_ = NIM_NIL;
  			T104_ = lastSon__ast_3743(t);
  			result = mapTypeToAstX__vmdeps_29(cache, T104_, info, idgen, inst, allowRecursion);
  		}
  		LA81_: ;
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
  	{
  		{
  			tyObject_TType__facALICuu8zUj0hjvbTLFg* T110_;
  			if (!inst) goto LA108_;
  			T110_ = NIM_NIL;
  			T110_ = lastSon__ast_3743(t);
  			result = mapTypeToAstX__vmdeps_29(cache, T110_, info, idgen, inst, NIM_TRUE);
  		}
  		goto LA106_;
  		LA108_: ;
  		{
  			tyObject_TType__facALICuu8zUj0hjvbTLFg* T112_;
  			T112_ = NIM_NIL;
  			T112_ = lastSon__ast_3743(t);
  			result = mapTypeToAstX__vmdeps_29(cache, T112_, info, idgen, inst, NIM_FALSE);
  		}
  		LA106_: ;
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
  	{
  		tyObject_TType__facALICuu8zUj0hjvbTLFg* T114_;
  		T114_ = NIM_NIL;
  		T114_ = lastSon__ast_3743(t);
  		result = mapTypeToAstX__vmdeps_29(cache, T114_, info, idgen, inst, allowRecursion);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
  	{
  		tyObject_TType__facALICuu8zUj0hjvbTLFg* T116_;
  		T116_ = NIM_NIL;
  		T116_ = lastSon__ast_3743(t);
  		result = mapTypeToAstX__vmdeps_29(cache, T116_, info, idgen, 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__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 146), T122_, t);
  			T128_ = NIM_NIL;
  			T128_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
  			add__ast_4797(result, T128_);
  		}
  		goto LA118_;
  		LA120_: ;
  		{
  			{
  				NIM_BOOL T132_;
  				T132_ = (NIM_BOOL)0;
  				T132_ = allowRecursion;
  				if (T132_) goto LA133_;
  				T132_ = ((*t).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
  				LA133_: ;
  				if (!T132_) goto LA134_;
  				result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_14), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 168), t, info, idgen, inst);
  			}
  			goto LA130_;
  			LA134_: ;
  			{
  				result = atomicTypeX__vmdeps_25((*t).sym, info);
  			}
  			LA130_: ;
  		}
  		LA118_: ;
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30):
  	{
  		result = atomicTypeX__vmdeps_25((*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__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133), T143_, t);
  			objectDef = (*(*(*t).sym).ast)._kind_6.sons->data[((NI) 2)];
  			{
  				if (!((*objectDef).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141))) goto LA151_;
  				objectDef = (*objectDef)._kind_6.sons->data[((NI) 0)];
  			}
  			LA151_: ;
  			T153_ = NIM_NIL;
  			T153_ = copyTree__ast_4431((*objectDef)._kind_6.sons->data[((NI) 0)]);
  			add__ast_4797(result, T153_);
  			{
  				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T158_;
  				if (!((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA156_;
  				T158_ = NIM_NIL;
  				T158_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
  				add__ast_4797(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__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 77), T160_, t);
  				T166_ = NIM_NIL;
  				T166_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
  				add__ast_4797(nn, T166_);
  				add__ast_4797(result, nn);
  			}
  			LA154_: ;
  			{
  				NI T169_;
  				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T172_;
  				T169_ = (NI)0;
  				T169_ = len__ast_3198((*t).n);
  				if (!(((NI) 0) < T169_)) goto LA170_;
  				T172_ = NIM_NIL;
  				T172_ = objectNode__vmdeps_75(cache, (*t).n, idgen);
  				add__ast_4797(result, T172_);
  			}
  			goto LA167_;
  			LA170_: ;
  			{
  				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T174_;
  				T174_ = NIM_NIL;
  				T174_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
  				add__ast_4797(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 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) 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__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133), T182_, t);
  				T188_ = NIM_NIL;
  				T188_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
  				add__ast_4797(result, T188_);
  				{
  					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T193_;
  					if (!((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA191_;
  					T193_ = NIM_NIL;
  					T193_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
  					add__ast_4797(result, T193_);
  				}
  				goto LA189_;
  				LA191_: ;
  				{
  					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T195_;
  					T195_ = NIM_NIL;
  					T195_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
  					add__ast_4797(result, T195_);
  				}
  				LA189_: ;
  				T196_ = NIM_NIL;
  				T196_ = copyTree__ast_4431((*t).n);
  				add__ast_4797(result, T196_);
  			}
  			goto LA176_;
  			LA180_: ;
  			{
  				result = atomicTypeX__vmdeps_25((*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__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150), T199_, t);
  		T205_ = NIM_NIL;
  		T205_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
  		add__ast_4797(result, T205_);
  		{
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** c;
  			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp__3;
  			NI i_5;
  			NI L;
  			NI T207_;
  			c = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
  			colontmp__3 = NIM_NIL;
  			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_;
  					if (!(i_5 < L)) goto LA209;
  					c = &colontmp__3->data[i_5];
  					T210_ = NIM_NIL;
  					T210_ = copyTree__ast_4431((*c));
  					add__ast_4797(result, T210_);
  					i_5 += ((NI) 1);
  				} LA209: ;
  			}
  		}
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
  	{
  		{
  			if (!inst) goto LA214_;
  			{
  				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T220_;
  				if (!((*t).n == 0)) goto LA218_;
  				{
  					if (!((*t).n == 0)) goto LA223_;
  					T220_ = info;
  				}
  				goto LA221_;
  				LA223_: ;
  				{
  					T220_ = (*(*t).n).info;
  				}
  				LA221_: ;
  				result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), T220_, t);
  				{
  					tyObject_TType__facALICuu8zUj0hjvbTLFg** subType;
  					NI i_6;
  					NI L_2;
  					NI T227_;
  					subType = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
  					i_6 = ((NI) 0);
  					T227_ = ((*t).sons ? (*t).sons->Sup.len : 0);
  					L_2 = T227_;
  					{
  						while (1) {
  							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T230_;
  							if (!(i_6 < L_2)) goto LA229;
  							subType = &(*t).sons->data[i_6];
  							T230_ = NIM_NIL;
  							T230_ = mapTypeToAstX__vmdeps_29(cache, (*subType), info, idgen, inst, NIM_FALSE);
  							add__ast_4797(result, T230_);
  							i_6 += ((NI) 1);
  						} LA229: ;
  					}
  				}
  			}
  			goto LA216_;
  			LA218_: ;
  			{
  				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T232_;
  				{
  					if (!((*t).n == 0)) goto LA235_;
  					T232_ = info;
  				}
  				goto LA233_;
  				LA235_: ;
  				{
  					T232_ = (*(*t).n).info;
  				}
  				LA233_: ;
  				result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 134), T232_, t);
  				{
  					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** s;
  					tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp__4;
  					NI i_7;
  					NI L_3;
  					NI T239_;
  					s = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
  					colontmp__4 = NIM_NIL;
  					colontmp__4 = (*(*t).n)._kind_6.sons;
  					i_7 = ((NI) 0);
  					T239_ = (colontmp__4 ? colontmp__4->Sup.len : 0);
  					L_3 = T239_;
  					{
  						while (1) {
  							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* idX60gensym68_;
  							tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T242_;
  							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T248_;
  							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T249_;
  							if (!(i_7 < L_3)) goto LA241;
  							s = &colontmp__4->data[i_7];
  							{
  								if (!((*t).n == 0)) goto LA245_;
  								T242_ = info;
  							}
  							goto LA243_;
  							LA245_: ;
  							{
  								T242_ = (*(*t).n).info;
  							}
  							LA243_: ;
  							idX60gensym68_ = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T242_, t);
  							add__ast_4797(idX60gensym68_, (*s));
  							T248_ = NIM_NIL;
  							T248_ = mapTypeToAstX__vmdeps_29(cache, (*(*s)).typ, info, idgen, inst, NIM_FALSE);
  							add__ast_4797(idX60gensym68_, T248_);
  							T249_ = NIM_NIL;
  							T249_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
  							add__ast_4797(idX60gensym68_, T249_);
  							add__ast_4797(result, idX60gensym68_);
  							i_7 += ((NI) 1);
  						} LA241: ;
  					}
  				}
  			}
  			LA216_: ;
  		}
  		goto LA212_;
  		LA214_: ;
  		{
  			result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_15), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 170), t, info, idgen, inst);
  		}
  		LA212_: ;
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
  	{
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_16), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 162), t, info, idgen, inst);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
  	{
  		{
  			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T257_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T263_;
  			if (!inst) goto LA255_;
  			{
  				if (!((*t).n == 0)) goto LA260_;
  				T257_ = info;
  			}
  			goto LA258_;
  			LA260_: ;
  			{
  				T257_ = (*(*t).n).info;
  			}
  			LA258_: ;
  			result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142), T257_, t);
  			T263_ = NIM_NIL;
  			T263_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
  			add__ast_4797(result, T263_);
  		}
  		goto LA253_;
  		LA255_: ;
  		{
  			result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_17), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 166), t, info, idgen, inst);
  		}
  		LA253_: ;
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
  	{
  		{
  			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T270_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T276_;
  			if (!inst) goto LA268_;
  			{
  				if (!((*t).n == 0)) goto LA273_;
  				T270_ = info;
  			}
  			goto LA271_;
  			LA273_: ;
  			{
  				T270_ = (*(*t).n).info;
  			}
  			LA271_: ;
  			result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141), T270_, t);
  			T276_ = NIM_NIL;
  			T276_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
  			add__ast_4797(result, T276_);
  		}
  		goto LA266_;
  		LA268_: ;
  		{
  			result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_18), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 165), t, info, idgen, inst);
  		}
  		LA266_: ;
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
  	{
  		{
  			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T283_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T289_;
  			if (!inst) goto LA281_;
  			{
  				if (!((*t).n == 0)) goto LA286_;
  				T283_ = info;
  			}
  			goto LA284_;
  			LA286_: ;
  			{
  				T283_ = (*(*t).n).info;
  			}
  			LA284_: ;
  			result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143), T283_, t);
  			T289_ = NIM_NIL;
  			T289_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
  			add__ast_4797(result, T289_);
  		}
  		goto LA279_;
  		LA281_: ;
  		{
  			result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_19), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 167), t, info, idgen, inst);
  		}
  		LA279_: ;
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
  	{
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_20), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 269), t, info, idgen, inst);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
  	{
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_21), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 269), t, info, idgen, inst);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
  	{
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_22), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 163), t, info, idgen, inst);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
  	{
  		{
  			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T299_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fp;
  			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T305_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T329_;
  			if (!inst) goto LA297_;
  			{
  				if (!((*t).n == 0)) goto LA302_;
  				T299_ = info;
  			}
  			goto LA300_;
  			LA302_: ;
  			{
  				T299_ = (*(*t).n).info;
  			}
  			LA300_: ;
  			result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 147), T299_, t);
  			{
  				if (!((*t).n == 0)) goto LA308_;
  				T305_ = info;
  			}
  			goto LA306_;
  			LA308_: ;
  			{
  				T305_ = (*(*t).n).info;
  			}
  			LA306_: ;
  			fp = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76), T305_, t);
  			{
  				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T315_;
  				if (!((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA313_;
  				T315_ = NIM_NIL;
  				T315_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
  				add__ast_4797(fp, T315_);
  			}
  			goto LA311_;
  			LA313_: ;
  			{
  				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T317_;
  				T317_ = NIM_NIL;
  				T317_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], (*(*(*t).n)._kind_6.sons->data[((NI) 0)]).info, idgen, inst, NIM_FALSE);
  				add__ast_4797(fp, T317_);
  			}
  			LA311_: ;
  			{
  				NI i_8;
  				NI colontmp__5;
  				NI i_9;
  				i_8 = (NI)0;
  				colontmp__5 = (NI)0;
  				colontmp__5 = len__ast_4002(t);
  				i_9 = ((NI) 1);
  				{
  					while (1) {
  						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* idX60gensym94_;
  						tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T321_;
  						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T327_;
  						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T328_;
  						if (!(i_9 < colontmp__5)) goto LA320;
  						i_8 = i_9;
  						{
  							if (!((*t).n == 0)) goto LA324_;
  							T321_ = info;
  						}
  						goto LA322_;
  						LA324_: ;
  						{
  							T321_ = (*(*t).n).info;
  						}
  						LA322_: ;
  						idX60gensym94_ = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T321_, t);
  						add__ast_4797(idX60gensym94_, (*(*t).n)._kind_6.sons->data[i_8]);
  						T327_ = NIM_NIL;
  						T327_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[i_8], info, idgen, inst, NIM_FALSE);
  						add__ast_4797(idX60gensym94_, T327_);
  						T328_ = NIM_NIL;
  						T328_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
  						add__ast_4797(idX60gensym94_, T328_);
  						add__ast_4797(fp, idX60gensym94_);
  						i_9 += ((NI) 1);
  					} LA320: ;
  				}
  			}
  			add__ast_4797(result, fp);
  			T329_ = NIM_NIL;
  			{
  				NI T332_;
  				T332_ = (NI)0;
  				T332_ = len__ast_3198((*(*t).n)._kind_6.sons->data[((NI) 0)]);
  				if (!(((NI) 0) < T332_)) goto LA333_;
  				T329_ = copyTree__ast_4431((*(*(*t).n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 4)]);
  			}
  			goto LA330_;
  			LA333_: ;
  			{
  				T329_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
  			}
  			LA330_: ;
  			add__ast_4797(result, T329_);
  		}
  		goto LA295_;
  		LA297_: ;
  		{
  			result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_23), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, idgen, inst);
  		}
  		LA295_: ;
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
  	{
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_24), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 160), t, info, idgen, inst);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
  	{
  		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T339_;
  		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T345_;
  		{
  			if (!((*t).n == 0)) goto LA342_;
  			T339_ = info;
  		}
  		goto LA340_;
  		LA342_: ;
  		{
  			T339_ = (*(*t).n).info;
  		}
  		LA340_: ;
  		result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T339_, t);
  		T345_ = NIM_NIL;
  		T345_ = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_25), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 161), t, info, idgen);
  		add__ast_4797(result, T345_);
  		{
  			NIM_BOOL T348_;
  			NI T350_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* rng_2;
  			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T353_;
  			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T359_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T360_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T361_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T362_;
  			T348_ = (NIM_BOOL)0;
  			T348_ = inst;
  			if (!(T348_)) goto LA349_;
  			T350_ = (NI)0;
  			T350_ = len__ast_3198((*t).n);
  			T348_ = (T350_ == ((NI) 2));
  			LA349_: ;
  			if (!T348_) goto LA351_;
  			{
  				if (!((*t).n == 0)) goto LA356_;
  				T353_ = info;
  			}
  			goto LA354_;
  			LA356_: ;
  			{
  				T353_ = (*(*t).n).info;
  			}
  			LA354_: ;
  			rng_2 = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), T353_, t);
  			T359_ = NIM_NIL;
  			T359_ = getIdent__idents_143(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_12));
  			T360_ = NIM_NIL;
  			T360_ = newIdentNode__ast_3712(T359_, info);
  			add__ast_4797(rng_2, T360_);
  			T361_ = NIM_NIL;
  			T361_ = copyTree__ast_4431((*(*t).n)._kind_6.sons->data[((NI) 0)]);
  			add__ast_4797(rng_2, T361_);
  			T362_ = NIM_NIL;
  			T362_ = copyTree__ast_4431((*(*t).n)._kind_6.sons->data[((NI) 1)]);
  			add__ast_4797(rng_2, T362_);
  			add__ast_4797(result, rng_2);
  		}
  		goto LA346_;
  		LA351_: ;
  		{
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T364_;
  			T364_ = NIM_NIL;
  			T364_ = copyTree__ast_4431((*(*t).n)._kind_6.sons->data[((NI) 0)]);
  			add__ast_4797(result, T364_);
  			{
  				NI T367_;
  				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T370_;
  				T367_ = (NI)0;
  				T367_ = len__ast_3198((*t).n);
  				if (!(((NI) 1) < T367_)) goto LA368_;
  				T370_ = NIM_NIL;
  				T370_ = copyTree__ast_4431((*(*t).n)._kind_6.sons->data[((NI) 1)]);
  				add__ast_4797(result, T370_);
  			}
  			LA368_: ;
  		}
  		LA346_: ;
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_26), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 191), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_27), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 189), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_28), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 190), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_29), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 173), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_30), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 174), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_31), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 175), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_32), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 176), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_33), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 177), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_34), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 183), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_35), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 184), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 38):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_36), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 185), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_37), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 186), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_38), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 178), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_39), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 179), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_40), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 180), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_41), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 181), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_42), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 182), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
  	{
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_43), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 164), t, info, idgen, inst);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_44), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51):
  	{
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_45), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, idgen, inst);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52):
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
  	{
  		{
  			tyObject_TType__facALICuu8zUj0hjvbTLFg* T396_;
  			if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0)) goto LA394_;
  			T396_ = NIM_NIL;
  			T396_ = lastSon__ast_3743(t);
  			result = mapTypeToAstX__vmdeps_29(cache, T396_, info, idgen, inst, NIM_FALSE);
  		}
  		goto LA392_;
  		LA394_: ;
  		{
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T398_;
  			result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_46), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, idgen, inst);
  			T398_ = NIM_NIL;
  			T398_ = copyTree__ast_4431((*t).n);
  			add__ast_4797(result, T398_);
  		}
  		LA392_: ;
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
  	{
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_47), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, idgen, inst);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56):
  	{
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_48), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109), t, info, idgen, inst);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57):
  	{
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_49), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110), t, info, idgen, inst);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58):
  	{
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_50), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96), t, info, idgen, inst);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 64):
  	{
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_51), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 172), t, info, idgen, inst);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
  	{
  		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_52), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, idgen);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
  	{
  		tyObject_TType__facALICuu8zUj0hjvbTLFg* T406_;
  		T406_ = NIM_NIL;
  		T406_ = lastSon__ast_3743(t);
  		result = mapTypeToAstX__vmdeps_29(cache, T406_, info, idgen, inst, allowRecursion);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
  	{
  		{
  			if (!inst) goto LA410_;
  			{
  				if (!!(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA414_;
  				result = copyTree__ast_4431((*t).n);
  			}
  			goto LA412_;
  			LA414_: ;
  			{
  				result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_8), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 169), t, info, idgen);
  			}
  			LA412_: ;
  		}
  		goto LA408_;
  		LA410_: ;
  		{
  			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T418_;
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T424_;
  			{
  				if (!((*t).n == 0)) goto LA421_;
  				T418_ = info;
  			}
  			goto LA419_;
  			LA421_: ;
  			{
  				T418_ = (*(*t).n).info;
  			}
  			LA419_: ;
  			result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T418_, t);
  			T424_ = NIM_NIL;
  			T424_ = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_53), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, idgen);
  			add__ast_4797(result, T424_);
  			{
  				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T429_;
  				if (!!(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA427_;
  				T429_ = NIM_NIL;
  				T429_ = copyTree__ast_4431((*t).n);
  				add__ast_4797(result, T429_);
  			}
  			LA427_: ;
  		}
  		LA408_: ;
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
  	{
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_54), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 269), t, info, idgen, inst);
  	}
  	break;
  	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62):
  	{
  		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T432_;
  		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_46), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0), t, info, idgen, inst);
  		T432_ = NIM_NIL;
  		T432_ = copyTree__ast_4431((*t).n);
  		add__ast_4797(result, T432_);
  	}
  	break;
  	}
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, opMapTypeInstToAst__vmdeps_600)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
  	result = NIM_NIL;
  	result = mapTypeToAstX__vmdeps_29(cache, t, info, idgen, NIM_TRUE, NIM_FALSE);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, opMapTypeToAst__vmdeps_594)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
  	result = NIM_NIL;
  	result = mapTypeToAstX__vmdeps_29(cache, t, info, idgen, NIM_FALSE, NIM_TRUE);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, opMapTypeImplToAst__vmdeps_606)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
  	result = NIM_NIL;
  	result = mapTypeToAstX__vmdeps_29(cache, t, info, idgen, NIM_TRUE, NIM_TRUE);
  	return result;
  }
  static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
  	(*s).prev = excHandler__system_2565;
  	excHandler__system_2565 = s;
  }
  static N_INLINE(NimStringDesc*, slash___pureZos_121)(NimStringDesc* head, NimStringDesc* tail) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	result = nosjoinPath(head, tail);
  	return result;
  }
  static N_INLINE(void, popSafePoint)(void) {
  	excHandler__system_2565 = (*excHandler__system_2565).prev;
  }
  static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
  	Exception* result;
  	result = NIM_NIL;
  	result = currException__system_2566;
  	return result;
  }
  static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
  	void* T1_;
  	T1_ = (void*)0;
  	T1_ = memcpy(dest, source, ((size_t) (size)));
  }
  static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
  	nimCopyMem(dest, source, size);
  }
  static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
  	{
  		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
  		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
  		(*dest).Sup.len += (*src).Sup.len;
  	}
  	LA3_: ;
  }
  static N_INLINE(void, popCurrentException)(void) {
  	asgnRef((void**) (&currException__system_2566), (*currException__system_2566).up);
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, opSlurp__vmdeps_9)(NimStringDesc* file, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
  	NimStringDesc* volatile result;
  	TSafePoint TM__gLSXNlwmnHPzTIXzvpQGfw_55;
  	NimStringDesc* volatile filename;
  	NimStringDesc* T1_;
  	NimStringDesc* T2_;
  	NI32 T8_;
  	tyArray__jlWPjgtbdjE069arIWHC9c9bg T9_;
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
  	result = NIM_NIL;
  	pushSafePoint(&TM__gLSXNlwmnHPzTIXzvpQGfw_55);
  	TM__gLSXNlwmnHPzTIXzvpQGfw_55.status = setjmp(TM__gLSXNlwmnHPzTIXzvpQGfw_55.context);
  	if (TM__gLSXNlwmnHPzTIXzvpQGfw_55.status == 0) {
  	T1_ = NIM_NIL;
  	T1_ = toFullPath__msgs_538(conf, info.fileIndex);
  	T2_ = NIM_NIL;
  	T2_ = nosparentDir(T1_);
  	filename = slash___pureZos_121(T2_, file);
  	{
  		NIM_BOOL T5_;
  		T5_ = (NIM_BOOL)0;
  		T5_ = nosfileExists(filename);
  		if (!!(T5_)) goto LA6_;
  		filename = findFile__options_4490(conf, file, NIM_FALSE);
  	}
  	LA6_: ;
  	result = readFile__systemZio_472(filename);
  	T8_ = (NI32)0;
  	T8_ = fileInfoIdx__msgs_376(conf, filename);
  	(void)(T8_);
  	nimZeroMem((void*)T9_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
  	T9_[0] = newStrNode__ast_3813(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), filename);
  	T10_ = NIM_NIL;
  	T10_ = newTreeI__ast_3420(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121), info, T9_, 1);
  	appendToModule__ast_3540(module, T10_);
  	popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_))) {
  			NimStringDesc* T13_;
  			TM__gLSXNlwmnHPzTIXzvpQGfw_55.status = 0;
  			T13_ = NIM_NIL;
  			T13_ = rawNewString((file ? file->Sup.len : 0) + 18);
  appendString(T13_, ((NimStringDesc*) &TM__gLSXNlwmnHPzTIXzvpQGfw_56));
  appendString(T13_, file);
  			liMessage__msgs_1118(conf, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T13_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__gLSXNlwmnHPzTIXzvpQGfw_57, NIM_FALSE);
  			result = ((NimStringDesc*) NIM_NIL);
  			popCurrentException();
  		}
  	}
  	if (TM__gLSXNlwmnHPzTIXzvpQGfw_55.status != 0) reraiseException();
  	return result;
  }
  