/* Generated by Nim Compiler v1.6.14 */
#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__uh9cWvEa5Ty85PXOtuP5emw tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw;
typedef struct tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ;
typedef struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA;
typedef struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw;
typedef struct tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw tyObject_TSym__3r34mwqcVmg5JFNmiaVncw;
typedef struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg;
typedef struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw tySequence__IeU9azYSNIK3V9b36Ir6NZcw;
typedef struct tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg;
typedef struct tySequence__vKogasEnJSPhbQmA8r4Y9aA tySequence__vKogasEnJSPhbQmA8r4Y9aA;
typedef struct tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw;
typedef struct tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ;
typedef struct tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg;
typedef struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g;
typedef struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA tyObject_CellSeq__nav876ELHgxScHhs30CKiA;
typedef struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ;
typedef struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ;
typedef struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ;
typedef struct tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw;
typedef struct tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA;
typedef struct tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA;
typedef struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A;
typedef struct tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg;
typedef struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw;
typedef struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw;
typedef struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA;
typedef struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg;
typedef struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA;
typedef struct tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ;
typedef struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ;
typedef struct Exception Exception;
typedef struct tySequence__QbmGqFaLnb1IWWToREeaIA tySequence__QbmGqFaLnb1IWWToREeaIA;
typedef struct TSafePoint TSafePoint;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA;
struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg;
typedef NU8 tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw {
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg flags;
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
} _kind_4;
struct {tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
} _kind_5;
struct {tySequence__IeU9azYSNIK3V9b36Ir6NZcw* sons;
} _kind_6;
};
};
typedef NU8 tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ kind;
tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg {
NI32 module;
NI32 item;
};
struct tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA {
  RootObj Sup;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg itemId;
};
typedef NU8 tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg;
typedef NU8 tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg;
typedef NU64 tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw;
typedef NU8 tyEnum_TLocKind__pD6N6rEUmrrqJbKE02Sezw;
typedef NU8 tyEnum_TStorageLoc__JIS9cieRcL9cZccyO9bM9aBmFQ;
typedef NU16 tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw;
struct tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw {
tyEnum_TLocKind__pD6N6rEUmrrqJbKE02Sezw k;
tyEnum_TStorageLoc__JIS9cieRcL9cZccyO9bM9aBmFQ storage;
tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw flags;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* lode;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* r;
};
struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA {
  tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA Sup;
tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind;
tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg callConv;
tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw flags;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* sons;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw loc;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typeInst;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg uniqueId;
};
typedef NU16 tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag;
typedef NU8 tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw;
typedef NU32 tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ;
struct tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg {
NI32 module;
NI32 symId;
NI32 typeId_0;
NIM_BOOL sealed;
};
typedef NU64 tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA;
struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw {
  tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA Sup;
tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind;
union{
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* gcUnsafetyReason;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* transformedBody;
} _kind_1;
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* guard;
NI bitsize;
NI alignment;
} _kind_2;
};
tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag magic;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* name;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA flags;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ast;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
NI position;
NI offset;
tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw loc;
tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg* annex;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* constraint;
};
struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ {
void* bottom;
};
struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA {
NI len;
NI cap;
tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
};
typedef tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* tyArray__1eFxjkcKGHnofywkmCV8oQ[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* tyArray__KxTmKT9a3kTkdwYfqXhEYSw[32];
typedef tyArray__KxTmKT9a3kTkdwYfqXhEYSw tyArray__ATT5LBefmjy9bg8ApRmg3rw[24];
typedef tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* tyArray__RxhBwkGQwTHLKhoK685Xfg[256];
struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A {
tyArray__RxhBwkGQwTHLKhoK685Xfg data;
};
typedef tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* tyArray__DrxDrI9bg9apB70ydOoNZrWw[2];
struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw {
tyArray__DrxDrI9bg9apB70ydOoNZrWw link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA {
tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* Field0;
NI Field1;
};
typedef tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyArray__wsokuoa9bVBSU4gPLKbFaaw[30];
struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw {
NI len;
tyArray__wsokuoa9bVBSU4gPLKbFaaw chunks;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw* next;
};
struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ {
NI minLargeObj;
NI maxLargeObj;
tyArray__1eFxjkcKGHnofywkmCV8oQ freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__ATT5LBefmjy9bg8ApRmg3rw matrix;
tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A chunkStarts;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* root;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* deleted;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* last;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw bottomData;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw heapLinks;
};
struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA {
NI counter;
NI max;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* head;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ** data;
};
struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ {
tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA zct;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA decStack;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA tempStack;
NI recGcLock;
tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ region;
tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg stat;
tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA marked;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA additionalRoots;
NI gcThreadId;
};
typedef NU8 tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw;
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__QbmGqFaLnb1IWWToREeaIA* trace;
Exception* up;
};
struct TSafePoint {
TSafePoint* prev;
NI status;
jmp_buf context;
};
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__iegsN9bf6GqRiWprrJjTAoA[1];
typedef NU8 tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw;
struct TNimNode {
tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ;
typedef NU8 tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw {
  TGenericSeq Sup;
  tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* data[SEQ_DECL_SIZE];
};
struct tySequence__vKogasEnJSPhbQmA8r4Y9aA {
  TGenericSeq Sup;
  tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* data[SEQ_DECL_SIZE];
};
struct tySequence__QbmGqFaLnb1IWWToREeaIA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, mapTypeToAstX__vmdeps_29)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, NIM_BOOL inst, NIM_BOOL allowRecursionX);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, atomicTypeX__vmdeps_25)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newSymNode__ast_3704)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, atomicTypeX__vmdeps_16)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, NimStringDesc* name, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newSym__ast_3409)(tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw symKind, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* name, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg id, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*, getIdent__idents_152)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* ic, NimStringDesc* identifier);
static N_INLINE(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextSymId__ast_3103)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5311)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5273)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5318)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5316)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5267)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeIT__ast_3342)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_4798)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIdentNode__ast_3700)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyTree__ast_4432)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, base__types_63)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
static N_INLINE(NI, len__ast_3990)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, lastSon__ast_3731)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, mapTypeToBracketX__vmdeps_36)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, NimStringDesc* name, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, NIM_BOOL inst);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newType__ast_3884)(tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg id, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
static N_INLINE(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextTypeId__ast_3122)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeI__ast_3320)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
static N_INLINE(NI, len__ast_3155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, objectNode__vmdeps_75)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyNode__ast_4324)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
static N_INLINE(NI, safeLen__ast_3148)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_548)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NI32 fileIdx);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosfileExists)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, findFile__options_4487)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* f, NIM_BOOL suppressStdlib);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readFile__systemZio_471)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NI32, fileInfoIdx__msgs_376)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(void, appendToModule__ast_3519)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newTreeI__ast_3384)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newStrNode__ast_3801)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw 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_1128)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg, tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(void, popCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_2, "none", 4);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_3, "bool", 4);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_4, "char", 4);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_5, "nil", 3);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_6, "untyped", 7);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_7, "typed", 5);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_8, "void", 4);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_9, "empty", 5);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_10, "UncheckedArray", 14);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_11, "array", 5);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_12, "..", 2);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_13, "typeDesc", 8);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_14, "distinct", 8);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_15, "tuple", 5);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_16, "set", 3);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_17, "ptr", 3);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_18, "ref", 3);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_19, "var", 3);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_20, "lent", 4);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_21, "sink", 4);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_22, "seq", 3);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_23, "proc", 4);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_24, "openArray", 9);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_25, "range", 5);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_26, "pointer", 7);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_27, "string", 6);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_28, "cstring", 7);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_29, "int", 3);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_30, "int8", 4);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_31, "int16", 5);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_32, "int32", 5);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_33, "int64", 5);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_34, "float", 5);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_35, "float32", 7);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_36, "float64", 7);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_37, "float128", 8);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_38, "uint", 4);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_39, "uint8", 5);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_40, "uint16", 6);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_41, "uint32", 6);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_42, "uint64", 6);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_43, "varargs", 7);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_44, "error", 5);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_45, "builtinTypeClass", 16);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_46, "concept", 7);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_47, "compositeTypeClass", 18);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_48, "and", 3);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_49, "or", 2);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_50, "not", 3);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_51, "iterable", 8);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_52, "anything", 8);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_53, "static", 6);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_54, "owned", 5);
extern TNimType NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_;
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_56, "cannot open file: ", 18);
STRING_LITERAL(TM__xzUau4yS5e8Q6TlD9bTerSA_58, "/home/runner/work/nightlies/nightlies/nim/compiler/vmdeps.nim", 61);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__xzUau4yS5e8Q6TlD9bTerSA_57 = {((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_58),
((NI) 24),
((NI) 14)}
;
extern tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ gch__system_5220;
extern TSafePoint* excHandler__system_2565;
extern TSafePoint* excHandler__system_2565;
extern TSafePoint* excHandler__system_2565;
extern TSafePoint* excHandler__system_2565;
extern Exception* currException__system_2566;
extern Exception* currException__system_2566;
extern Exception* currException__system_2566;
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, atomicTypeX__vmdeps_25)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newSymNode__ast_3704(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__wg9aowaxscbUe2F0nV9btZLg, nextSymId__ast_3103)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x) {
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	(*x).symId += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	result.module = (*x).module;
	result.item = (*x).symId;
	return result;
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5311)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5273)(void* usr) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* result;
	NI T1_;
	result = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5316)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	addZCT__system_5267((&gch__system_5220.zct), c);
}
static N_INLINE(void, decRef__system_5318)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__system_5316(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T5_ = usrToCell__system_5273(src);
		incRef__system_5311(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T10_ = usrToCell__system_5273((*dest));
		decRef__system_5318(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, atomicTypeX__vmdeps_16)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, NimStringDesc* name, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T1_;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T2_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_152(cache, name);
	T2_ = nextSymId__ast_3103(idgen);
	sym = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7), T1_, T2_, (*t).owner, info, 0);
	(*sym).magic = m;
	asgnRef((void**) (&(*sym).typ), t);
	result = newSymNode__ast_3704(sym);
	asgnRef((void**) (&(*result).typ), t);
	return result;
}
static N_INLINE(NI, len__ast_3990)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextTypeId__ast_3122)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x) {
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	(*x).typeId_0 += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	result.module = (*x).module;
	result.item = (*x).typeId_0;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, mapTypeToBracketX__vmdeps_36)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, NimStringDesc* name, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, NIM_BOOL inst) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T7_;
	result = NIM_NIL;
	{
		if (!((*t).n == 0)) goto LA4_;
		T1_ = info;
	}
	goto LA2_;
	LA4_: ;
	{
		T1_ = (*(*t).n).info;
	}
	LA2_: ;
	result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), T1_, t);
	T7_ = NIM_NIL;
	T7_ = atomicTypeX__vmdeps_16(cache, name, m, t, info, idgen);
	add__ast_4798(result, T7_);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3990(t);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA10;
				i = i_2;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* void_1;
					tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T15_;
					if (!((*t).sons->data[i] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA13_;
					void_1 = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_8), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 170), t, info, idgen);
					T15_ = nextTypeId__ast_3122(idgen);
					asgnRef((void**) (&(*void_1).typ), newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63), T15_, (*t).owner));
					add__ast_4798(result, void_1);
				}
				goto LA11_;
				LA13_: ;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T17_;
					T17_ = NIM_NIL;
					T17_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[i], info, idgen, inst, NIM_FALSE);
					add__ast_4798(result, T17_);
				}
				LA11_: ;
				i_2 += ((NI) 1);
			} LA10: ;
		}
	}
	return result;
}
static N_INLINE(NI, len__ast_3155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(NI, safeLen__ast_3148)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 0) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__ast_3155(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, objectNode__vmdeps_75)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T5_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA3_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), (*n).info);
		add__ast_4798(result, n);
		T5_ = NIM_NIL;
		T5_ = mapTypeToAstX__vmdeps_29(cache, (*(*n)._kind_4.sym).typ, (*n).info, idgen, NIM_TRUE, NIM_FALSE);
		add__ast_4798(result, T5_);
		T6_ = NIM_NIL;
		T6_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*n).info);
		add__ast_4798(result, T6_);
	}
	goto LA1_;
	LA3_: ;
	{
		result = copyNode__ast_4324(n);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_4798(result, T11_);
					i_2 += ((NI) 1);
				} LA10: ;
			}
		}
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, mapTypeToAstX__vmdeps_29)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, NIM_BOOL inst, NIM_BOOL allowRecursionX) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
		LA6_: ;
		if (!T3_) goto LA7_;
		result = atomicTypeX__vmdeps_25((*t).sym, info);
		goto BeforeRet_;
	}
	LA7_: ;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 0):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_2), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_3), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 188), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_4), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 189), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_5), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 193), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_6), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 194), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_7), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 195), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_8), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 170), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 3):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_9), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 49):
	{
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T18_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T24_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T25_;
		{
			if (!((*t).n == 0)) goto LA21_;
			T18_ = info;
		}
		goto LA19_;
		LA21_: ;
		{
			T18_ = (*(*t).n).info;
		}
		LA19_: ;
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), T18_, t);
		T24_ = NIM_NIL;
		T24_ = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_10), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 272), t, info, idgen);
		add__ast_4798(result, T24_);
		T25_ = NIM_NIL;
		T25_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
		add__ast_4798(result, T25_);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16):
	{
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T27_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T33_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T52_;
		{
			if (!((*t).n == 0)) goto LA30_;
			T27_ = info;
		}
		goto LA28_;
		LA30_: ;
		{
			T27_ = (*(*t).n).info;
		}
		LA28_: ;
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), T27_, t);
		T33_ = NIM_NIL;
		T33_ = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_11), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 160), t, info, idgen);
		add__ast_4798(result, T33_);
		{
			NIM_BOOL T36_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* rng;
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T40_;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T46_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T47_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T48_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T49_;
			T36_ = (NIM_BOOL)0;
			T36_ = inst;
			if (!(T36_)) goto LA37_;
			T36_ = ((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 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_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29), T40_, t);
			T46_ = NIM_NIL;
			T46_ = getIdent__idents_152(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_12));
			T47_ = NIM_NIL;
			T47_ = newIdentNode__ast_3700(T46_, info);
			add__ast_4798(rng, T47_);
			T48_ = NIM_NIL;
			T48_ = copyTree__ast_4432((*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons->data[((NI) 0)]);
			add__ast_4798(rng, T48_);
			T49_ = NIM_NIL;
			T49_ = copyTree__ast_4432((*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons->data[((NI) 1)]);
			add__ast_4798(rng, T49_);
			add__ast_4798(result, rng);
		}
		goto LA34_;
		LA38_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T51_;
			T51_ = NIM_NIL;
			T51_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
			add__ast_4798(result, T51_);
		}
		LA34_: ;
		T52_ = NIM_NIL;
		T52_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 1)], info, idgen, inst, NIM_FALSE);
		add__ast_4798(result, T52_);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8):
	{
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T56_;
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T59_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T65_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T66_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T67_;
			T56_ = NIM_NIL;
			T56_ = base__types_63(t);
			if (!!((T56_ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA57_;
			{
				if (!((*t).n == 0)) goto LA62_;
				T59_ = info;
			}
			goto LA60_;
			LA62_: ;
			{
				T59_ = (*(*t).n).info;
			}
			LA60_: ;
			result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), T59_, t);
			T65_ = NIM_NIL;
			T65_ = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_13), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 196), t, info, idgen);
			add__ast_4798(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_4798(result, T67_);
		}
		goto LA54_;
		LA57_: ;
		{
			result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_13), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 196), t, info, idgen);
		}
		LA54_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 9):
	{
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T70_;
		{
			if (!((*t).n == 0)) goto LA73_;
			T70_ = info;
		}
		goto LA71_;
		LA73_: ;
		{
			T70_ = (*(*t).n).info;
		}
		LA71_: ;
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), T70_, t);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3990(t);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_4798(result, T79_);
					i_2 += ((NI) 1);
				} LA78: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 11):
	{
		{
			if (!inst) goto LA83_;
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T89_;
				if (!allowRecursion) goto LA87_;
				T89_ = NIM_NIL;
				T89_ = lastSon__ast_3731(t);
				result = mapTypeToAstX__vmdeps_29(cache, T89_, info, idgen, inst, NIM_TRUE);
			}
			goto LA85_;
			LA87_: ;
			{
				tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T91_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T97_;
				{
					if (!((*t).n == 0)) goto LA94_;
					T91_ = info;
				}
				goto LA92_;
				LA94_: ;
				{
					T91_ = (*(*t).n).info;
				}
				LA92_: ;
				result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), T91_, t);
				T97_ = NIM_NIL;
				T97_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
				add__ast_4798(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_3990(t);
					colontmp__2 = (NI)(T99_ - ((NI) 1));
					i_4 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_4798(result, T102_);
							i_4 += ((NI) 1);
						} LA101: ;
					}
				}
			}
			LA85_: ;
		}
		goto LA81_;
		LA83_: ;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T104_;
			T104_ = NIM_NIL;
			T104_ = lastSon__ast_3731(t);
			result = mapTypeToAstX__vmdeps_29(cache, T104_, info, idgen, inst, allowRecursion);
		}
		LA81_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 10):
	{
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T110_;
			if (!inst) goto LA108_;
			T110_ = NIM_NIL;
			T110_ = lastSon__ast_3731(t);
			result = mapTypeToAstX__vmdeps_29(cache, T110_, info, idgen, inst, NIM_TRUE);
		}
		goto LA106_;
		LA108_: ;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T112_;
			T112_ = NIM_NIL;
			T112_ = lastSon__ast_3731(t);
			result = mapTypeToAstX__vmdeps_29(cache, T112_, info, idgen, inst, NIM_FALSE);
		}
		LA106_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 4):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T114_;
		T114_ = NIM_NIL;
		T114_ = lastSon__ast_3731(t);
		result = mapTypeToAstX__vmdeps_29(cache, T114_, info, idgen, inst, allowRecursion);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 15):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T116_;
		T116_ = NIM_NIL;
		T116_ = lastSon__ast_3731(t);
		result = mapTypeToAstX__vmdeps_29(cache, T116_, info, idgen, inst, NIM_FALSE);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 13):
	{
		{
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T122_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T128_;
			if (!inst) goto LA120_;
			{
				if (!((*t).n == 0)) goto LA125_;
				T122_ = info;
			}
			goto LA123_;
			LA125_: ;
			{
				T122_ = (*(*t).n).info;
			}
			LA123_: ;
			result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 146), T122_, t);
			T128_ = NIM_NIL;
			T128_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
			add__ast_4798(result, T128_);
		}
		goto LA118_;
		LA120_: ;
		{
			{
				NIM_BOOL T132_;
				T132_ = (NIM_BOOL)0;
				T132_ = allowRecursion;
				if (T132_) goto LA133_;
				T132_ = ((*t).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
				LA133_: ;
				if (!T132_) goto LA134_;
				result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_14), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 169), t, info, idgen, inst);
			}
			goto LA130_;
			LA134_: ;
			{
				result = atomicTypeX__vmdeps_25((*t).sym, info);
			}
			LA130_: ;
		}
		LA118_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 12):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 30):
	{
		result = atomicTypeX__vmdeps_25((*t).sym, info);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17):
	{
		{
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T143_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* objectDef;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T153_;
			if (!inst) goto LA141_;
			{
				if (!((*t).n == 0)) goto LA146_;
				T143_ = info;
			}
			goto LA144_;
			LA146_: ;
			{
				T143_ = (*(*t).n).info;
			}
			LA144_: ;
			result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 133), T143_, t);
			objectDef = (*(*(*t).sym).ast)._kind_6.sons->data[((NI) 2)];
			{
				if (!((*objectDef).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 141))) goto LA151_;
				objectDef = (*objectDef)._kind_6.sons->data[((NI) 0)];
			}
			LA151_: ;
			T153_ = NIM_NIL;
			T153_ = copyTree__ast_4432((*objectDef)._kind_6.sons->data[((NI) 0)]);
			add__ast_4798(result, T153_);
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T158_;
				if (!((*t).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA156_;
				T158_ = NIM_NIL;
				T158_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), info);
				add__ast_4798(result, T158_);
			}
			goto LA154_;
			LA156_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nn;
				tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T160_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T166_;
				{
					if (!((*t).n == 0)) goto LA163_;
					T160_ = info;
				}
				goto LA161_;
				LA163_: ;
				{
					T160_ = (*(*t).n).info;
				}
				LA161_: ;
				nn = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 77), T160_, t);
				T166_ = NIM_NIL;
				T166_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
				add__ast_4798(nn, T166_);
				add__ast_4798(result, nn);
			}
			LA154_: ;
			{
				NI T169_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T172_;
				T169_ = (NI)0;
				T169_ = len__ast_3155((*t).n);
				if (!(((NI) 0) < T169_)) goto LA170_;
				T172_ = NIM_NIL;
				T172_ = objectNode__vmdeps_75(cache, (*t).n, idgen);
				add__ast_4798(result, T172_);
			}
			goto LA167_;
			LA170_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T174_;
				T174_ = NIM_NIL;
				T174_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), info);
				add__ast_4798(result, T174_);
			}
			LA167_: ;
		}
		goto LA139_;
		LA141_: ;
		{
			{
				NIM_BOOL T178_;
				tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T182_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T188_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T196_;
				T178_ = (NIM_BOOL)0;
				T178_ = allowRecursion;
				if (T178_) goto LA179_;
				T178_ = ((*t).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) 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_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 133), T182_, t);
				T188_ = NIM_NIL;
				T188_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), info);
				add__ast_4798(result, T188_);
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T193_;
					if (!((*t).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA191_;
					T193_ = NIM_NIL;
					T193_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), info);
					add__ast_4798(result, T193_);
				}
				goto LA189_;
				LA191_: ;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T195_;
					T195_ = NIM_NIL;
					T195_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
					add__ast_4798(result, T195_);
				}
				LA189_: ;
				T196_ = NIM_NIL;
				T196_ = copyTree__ast_4432((*t).n);
				add__ast_4798(result, T196_);
			}
			goto LA176_;
			LA180_: ;
			{
				result = atomicTypeX__vmdeps_25((*t).sym, info);
			}
			LA176_: ;
		}
		LA139_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14):
	{
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T199_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T205_;
		{
			if (!((*t).n == 0)) goto LA202_;
			T199_ = info;
		}
		goto LA200_;
		LA202_: ;
		{
			T199_ = (*(*t).n).info;
		}
		LA200_: ;
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 150), T199_, t);
		T205_ = NIM_NIL;
		T205_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), info);
		add__ast_4798(result, T205_);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** c;
			tySequence__IeU9azYSNIK3V9b36Ir6NZcw* colontmp__3;
			NI i_5;
			NI L;
			NI T207_;
			c = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)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__uh9cWvEa5Ty85PXOtuP5emw* T210_;
					if (!(i_5 < L)) goto LA209;
					c = &colontmp__3->data[i_5];
					T210_ = NIM_NIL;
					T210_ = copyTree__ast_4432((*c));
					add__ast_4798(result, T210_);
					i_5 += ((NI) 1);
				} LA209: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18):
	{
		{
			if (!inst) goto LA214_;
			{
				tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw 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_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160), T220_, t);
				{
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA** subType;
					NI i_6;
					NI L_2;
					NI T227_;
					subType = (tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA**)0;
					i_6 = ((NI) 0);
					T227_ = ((*t).sons ? (*t).sons->Sup.len : 0);
					L_2 = T227_;
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_4798(result, T230_);
							i_6 += ((NI) 1);
						} LA229: ;
					}
				}
			}
			goto LA216_;
			LA218_: ;
			{
				tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T232_;
				{
					if (!((*t).n == 0)) goto LA235_;
					T232_ = info;
				}
				goto LA233_;
				LA235_: ;
				{
					T232_ = (*(*t).n).info;
				}
				LA233_: ;
				result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 134), T232_, t);
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** s;
					tySequence__IeU9azYSNIK3V9b36Ir6NZcw* colontmp__4;
					NI i_7;
					NI L_3;
					NI T239_;
					s = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)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__uh9cWvEa5Ty85PXOtuP5emw* idX60gensym68_;
							tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T242_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T248_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T242_, t);
							add__ast_4798(idX60gensym68_, (*s));
							T248_ = NIM_NIL;
							T248_ = mapTypeToAstX__vmdeps_29(cache, (*(*s)).typ, info, idgen, inst, NIM_FALSE);
							add__ast_4798(idX60gensym68_, T248_);
							T249_ = NIM_NIL;
							T249_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), info);
							add__ast_4798(idX60gensym68_, T249_);
							add__ast_4798(result, idX60gensym68_);
							i_7 += ((NI) 1);
						} LA241: ;
					}
				}
			}
			LA216_: ;
		}
		goto LA212_;
		LA214_: ;
		{
			result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_15), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 171), t, info, idgen, inst);
		}
		LA212_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19):
	{
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_16), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 163), t, info, idgen, inst);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21):
	{
		{
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T257_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T263_;
			if (!inst) goto LA255_;
			{
				if (!((*t).n == 0)) goto LA260_;
				T257_ = info;
			}
			goto LA258_;
			LA260_: ;
			{
				T257_ = (*(*t).n).info;
			}
			LA258_: ;
			result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 142), T257_, t);
			T263_ = NIM_NIL;
			T263_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
			add__ast_4798(result, T263_);
		}
		goto LA253_;
		LA255_: ;
		{
			result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_17), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 167), t, info, idgen, inst);
		}
		LA253_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22):
	{
		{
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T270_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T276_;
			if (!inst) goto LA268_;
			{
				if (!((*t).n == 0)) goto LA273_;
				T270_ = info;
			}
			goto LA271_;
			LA273_: ;
			{
				T270_ = (*(*t).n).info;
			}
			LA271_: ;
			result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 141), T270_, t);
			T276_ = NIM_NIL;
			T276_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
			add__ast_4798(result, T276_);
		}
		goto LA266_;
		LA268_: ;
		{
			result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_18), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 166), t, info, idgen, inst);
		}
		LA266_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23):
	{
		{
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T283_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T289_;
			if (!inst) goto LA281_;
			{
				if (!((*t).n == 0)) goto LA286_;
				T283_ = info;
			}
			goto LA284_;
			LA286_: ;
			{
				T283_ = (*(*t).n).info;
			}
			LA284_: ;
			result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 143), T283_, t);
			T289_ = NIM_NIL;
			T289_ = mapTypeToAstX__vmdeps_29(cache, (*t).sons->data[((NI) 0)], info, idgen, inst, NIM_FALSE);
			add__ast_4798(result, T289_);
		}
		goto LA279_;
		LA281_: ;
		{
			result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_19), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 168), t, info, idgen, inst);
		}
		LA279_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47):
	{
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_20), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 270), t, info, idgen, inst);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46):
	{
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_21), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 270), t, info, idgen, inst);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24):
	{
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_22), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 164), t, info, idgen, inst);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25):
	{
		{
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T299_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fp;
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T305_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T329_;
			if (!inst) goto LA297_;
			{
				if (!((*t).n == 0)) goto LA302_;
				T299_ = info;
			}
			goto LA300_;
			LA302_: ;
			{
				T299_ = (*(*t).n).info;
			}
			LA300_: ;
			result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 147), T299_, t);
			{
				if (!((*t).n == 0)) goto LA308_;
				T305_ = info;
			}
			goto LA306_;
			LA308_: ;
			{
				T305_ = (*(*t).n).info;
			}
			LA306_: ;
			fp = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 76), T305_, t);
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T315_;
				if (!((*t).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA313_;
				T315_ = NIM_NIL;
				T315_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), info);
				add__ast_4798(fp, T315_);
			}
			goto LA311_;
			LA313_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_4798(fp, T317_);
			}
			LA311_: ;
			{
				NI i_8;
				NI colontmp__5;
				NI i_9;
				i_8 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = len__ast_3990(t);
				i_9 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* idX60gensym94_;
						tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T321_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T327_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T321_, t);
						add__ast_4798(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_4798(idX60gensym94_, T327_);
						T328_ = NIM_NIL;
						T328_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), info);
						add__ast_4798(idX60gensym94_, T328_);
						add__ast_4798(fp, idX60gensym94_);
						i_9 += ((NI) 1);
					} LA320: ;
				}
			}
			add__ast_4798(result, fp);
			T329_ = NIM_NIL;
			{
				NI T332_;
				T332_ = (NI)0;
				T332_ = len__ast_3155((*(*t).n)._kind_6.sons->data[((NI) 0)]);
				if (!(((NI) 0) < T332_)) goto LA333_;
				T329_ = copyTree__ast_4432((*(*(*t).n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 4)]);
			}
			goto LA330_;
			LA333_: ;
			{
				T329_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), info);
			}
			LA330_: ;
			add__ast_4798(result, T329_);
		}
		goto LA295_;
		LA297_: ;
		{
			result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_23), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0), t, info, idgen, inst);
		}
		LA295_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27):
	{
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_24), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 161), t, info, idgen, inst);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 20):
	{
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T339_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T345_;
		{
			if (!((*t).n == 0)) goto LA342_;
			T339_ = info;
		}
		goto LA340_;
		LA342_: ;
		{
			T339_ = (*(*t).n).info;
		}
		LA340_: ;
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), T339_, t);
		T345_ = NIM_NIL;
		T345_ = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_25), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 162), t, info, idgen);
		add__ast_4798(result, T345_);
		{
			NIM_BOOL T348_;
			NI T350_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* rng_2;
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T353_;
			tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T359_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T360_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T361_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T362_;
			T348_ = (NIM_BOOL)0;
			T348_ = inst;
			if (!(T348_)) goto LA349_;
			T350_ = (NI)0;
			T350_ = len__ast_3155((*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_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29), T353_, t);
			T359_ = NIM_NIL;
			T359_ = getIdent__idents_152(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_12));
			T360_ = NIM_NIL;
			T360_ = newIdentNode__ast_3700(T359_, info);
			add__ast_4798(rng_2, T360_);
			T361_ = NIM_NIL;
			T361_ = copyTree__ast_4432((*(*t).n)._kind_6.sons->data[((NI) 0)]);
			add__ast_4798(rng_2, T361_);
			T362_ = NIM_NIL;
			T362_ = copyTree__ast_4432((*(*t).n)._kind_6.sons->data[((NI) 1)]);
			add__ast_4798(rng_2, T362_);
			add__ast_4798(result, rng_2);
		}
		goto LA346_;
		LA351_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T364_;
			T364_ = NIM_NIL;
			T364_ = copyTree__ast_4432((*(*t).n)._kind_6.sons->data[((NI) 0)]);
			add__ast_4798(result, T364_);
			{
				NI T367_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T370_;
				T367_ = (NI)0;
				T367_ = len__ast_3155((*t).n);
				if (!(((NI) 1) < T367_)) goto LA368_;
				T370_ = NIM_NIL;
				T370_ = copyTree__ast_4432((*(*t).n)._kind_6.sons->data[((NI) 1)]);
				add__ast_4798(result, T370_);
			}
			LA368_: ;
		}
		LA346_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 26):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_26), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 192), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_27), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 190), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_28), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 191), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_29), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 174), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 32):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_30), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 175), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 33):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_31), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 176), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 34):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_32), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 177), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_33), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 178), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_34), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 184), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 37):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_35), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 185), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 38):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_36), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 186), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_37), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 187), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_38), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 179), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 41):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_39), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 180), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 42):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_40), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 181), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 43):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_41), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 182), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_42), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 183), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 48):
	{
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_43), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 165), t, info, idgen, inst);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_44), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 51):
	{
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_45), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0), t, info, idgen, inst);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 52):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 53):
	{
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T396_;
			if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 10))&63U)))!=0)) goto LA394_;
			T396_ = NIM_NIL;
			T396_ = lastSon__ast_3731(t);
			result = mapTypeToAstX__vmdeps_29(cache, T396_, info, idgen, inst, NIM_FALSE);
		}
		goto LA392_;
		LA394_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T398_;
			result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_46), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0), t, info, idgen, inst);
			T398_ = NIM_NIL;
			T398_ = copyTree__ast_4432((*t).n);
			add__ast_4798(result, T398_);
		}
		LA392_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 54):
	{
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_47), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0), t, info, idgen, inst);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 56):
	{
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_48), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 109), t, info, idgen, inst);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 57):
	{
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_49), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 110), t, info, idgen, inst);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 58):
	{
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_50), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96), t, info, idgen, inst);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 64):
	{
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_51), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 173), t, info, idgen, inst);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 59):
	{
		result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_52), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0), t, info, idgen);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 55):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T406_;
		T406_ = NIM_NIL;
		T406_ = lastSon__ast_3731(t);
		result = mapTypeToAstX__vmdeps_29(cache, T406_, info, idgen, inst, allowRecursion);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 61):
	{
		{
			if (!inst) goto LA410_;
			{
				if (!!(((*t).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA414_;
				result = copyTree__ast_4432((*t).n);
			}
			goto LA412_;
			LA414_: ;
			{
				result = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_8), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 170), t, info, idgen);
			}
			LA412_: ;
		}
		goto LA408_;
		LA410_: ;
		{
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T418_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T424_;
			{
				if (!((*t).n == 0)) goto LA421_;
				T418_ = info;
			}
			goto LA419_;
			LA421_: ;
			{
				T418_ = (*(*t).n).info;
			}
			LA419_: ;
			result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), T418_, t);
			T424_ = NIM_NIL;
			T424_ = atomicTypeX__vmdeps_16(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_53), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0), t, info, idgen);
			add__ast_4798(result, T424_);
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T429_;
				if (!!(((*t).n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA427_;
				T429_ = NIM_NIL;
				T429_ = copyTree__ast_4432((*t).n);
				add__ast_4798(result, T429_);
			}
			LA427_: ;
		}
		LA408_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45):
	{
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_54), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 270), t, info, idgen, inst);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 62):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T432_;
		result = mapTypeToBracketX__vmdeps_36(cache, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_46), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0), t, info, idgen, inst);
		T432_ = NIM_NIL;
		T432_ = copyTree__ast_4432((*t).n);
		add__ast_4798(result, T432_);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, opMapTypeInstToAst__vmdeps_600)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__uh9cWvEa5Ty85PXOtuP5emw*, opMapTypeToAst__vmdeps_594)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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__uh9cWvEa5Ty85PXOtuP5emw*, opMapTypeImplToAst__vmdeps_606)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* 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_1733)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__system_1733(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
static N_INLINE(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__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	NimStringDesc* volatile result;
	TSafePoint TM__xzUau4yS5e8Q6TlD9bTerSA_55;
	NimStringDesc* volatile filename;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	NI32 T8_;
	tyArray__iegsN9bf6GqRiWprrJjTAoA T9_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T10_;
	result = NIM_NIL;
	pushSafePoint(&TM__xzUau4yS5e8Q6TlD9bTerSA_55);
	TM__xzUau4yS5e8Q6TlD9bTerSA_55.status = _setjmp(TM__xzUau4yS5e8Q6TlD9bTerSA_55.context);
	if (TM__xzUau4yS5e8Q6TlD9bTerSA_55.status == 0) {
	T1_ = NIM_NIL;
	T1_ = toFullPath__msgs_548(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_4487(conf, file, NIM_FALSE);
	}
	LA6_: ;
	result = readFile__systemZio_471(filename);
	T8_ = (NI32)0;
	T8_ = fileInfoIdx__msgs_376(conf, filename);
	(void)(T8_);
	nimZeroMem((void*)T9_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
	T9_[0] = newStrNode__ast_3801(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20), filename);
	T10_ = NIM_NIL;
	T10_ = newTreeI__ast_3384(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 121), info, T9_, 1);
	appendToModule__ast_3519(module, T10_);
	popSafePoint();
	}
	else {
		popSafePoint();
		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_))) {
			NimStringDesc* T13_;
			TM__xzUau4yS5e8Q6TlD9bTerSA_55.status = 0;
			T13_ = NIM_NIL;
			T13_ = rawNewString((file ? file->Sup.len : 0) + 18);
appendString(T13_, ((NimStringDesc*) &TM__xzUau4yS5e8Q6TlD9bTerSA_56));
appendString(T13_, file);
			liMessage__msgs_1128(conf, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T13_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__xzUau4yS5e8Q6TlD9bTerSA_57, NIM_FALSE);
			result = ((NimStringDesc*) NIM_NIL);
			popCurrentException();
		}
	}
	if (TM__xzUau4yS5e8Q6TlD9bTerSA_55.status != 0) reraiseException();
	return result;
}
