/* Generated by Nim Compiler v2.2.10 */
#define NIM_INTBITS 64

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
typedef struct tySequence__qBes3XzcQQ9cyia9bRwnmbJw tySequence__qBes3XzcQQ9cyia9bRwnmbJw;
typedef struct tySequence__qBes3XzcQQ9cyia9bRwnmbJw_Content tySequence__qBes3XzcQQ9cyia9bRwnmbJw_Content;
typedef struct tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig;
typedef struct tySequence__wW7xkohjuUKO9aMaB0nt9cqA tySequence__wW7xkohjuUKO9aMaB0nt9cqA;
typedef struct tySequence__wW7xkohjuUKO9aMaB0nt9cqA_Content tySequence__wW7xkohjuUKO9aMaB0nt9cqA_Content;
typedef struct tyTuple__R3ddFrA0G9buJY57Qhf9cTpg tyTuple__R3ddFrA0G9buJY57Qhf9cTpg;
typedef struct tySequence__ezS5mGPcRfBURJyMgqYVzA tySequence__ezS5mGPcRfBURJyMgqYVzA;
typedef struct tySequence__ezS5mGPcRfBURJyMgqYVzA_Content tySequence__ezS5mGPcRfBURJyMgqYVzA_Content;
typedef struct tyTuple__48iPM3yLBKU5nyEuYwJvuQ tyTuple__48iPM3yLBKU5nyEuYwJvuQ;
typedef struct tyObject_RodFile__k9byU8W8yLbzhHX06zPe4zg tyObject_RodFile__k9byU8W8yLbzhHX06zPe4zg;
typedef struct tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w;
typedef struct tySequence__OxRbUT0qZaZN5UjnqQjGPA tySequence__OxRbUT0qZaZN5UjnqQjGPA;
typedef struct tySequence__OxRbUT0qZaZN5UjnqQjGPA_Content tySequence__OxRbUT0qZaZN5UjnqQjGPA_Content;
typedef struct tyObject_PackedSym__KKnx6w8Cc9aaVsaPOpaqxbw tyObject_PackedSym__KKnx6w8Cc9aaVsaPOpaqxbw;
typedef struct tyObject_PackedLib__EpwVLk0Fuc5Q9agKLMWedbg tyObject_PackedLib__EpwVLk0Fuc5Q9agKLMWedbg;
typedef struct tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ;
typedef struct tyObject_PackedInstantiation__C3FSePJFY8gUIMObsjT2dg tyObject_PackedInstantiation__C3FSePJFY8gUIMObsjT2dg;
typedef struct tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w;
struct tySequence__qBes3XzcQQ9cyia9bRwnmbJw {
  NI len; tySequence__qBes3XzcQQ9cyia9bRwnmbJw_Content* p;
};
struct tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig {
	NU32 module;
	NI32 item;
};
struct tySequence__wW7xkohjuUKO9aMaB0nt9cqA {
  NI len; tySequence__wW7xkohjuUKO9aMaB0nt9cqA_Content* p;
};
struct tyTuple__R3ddFrA0G9buJY57Qhf9cTpg {
	NI32 Field0;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field1;
};
struct tySequence__ezS5mGPcRfBURJyMgqYVzA {
  NI len; tySequence__ezS5mGPcRfBURJyMgqYVzA_Content* p;
};
typedef NU32 tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw;
struct tyTuple__48iPM3yLBKU5nyEuYwJvuQ {
	NI32 Field0;
	tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw Field1;
};
struct tySequence__OxRbUT0qZaZN5UjnqQjGPA {
  NI len; tySequence__OxRbUT0qZaZN5UjnqQjGPA_Content* p;
};
struct tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w {
	tySequence__OxRbUT0qZaZN5UjnqQjGPA nodes;
	tySequence__ezS5mGPcRfBURJyMgqYVzA withFlags;
	tySequence__wW7xkohjuUKO9aMaB0nt9cqA withTypes;
};
typedef NU8 tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
typedef NU64 tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
typedef NU16 tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg;
typedef NU32 tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ;
typedef NU16 tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg;
typedef NU8 tyEnum_TLibKind__BkKL8ReLoyYDI7of9aQPV0A;
struct tyObject_PackedLib__EpwVLk0Fuc5Q9agKLMWedbg {
	tyEnum_TLibKind__BkKL8ReLoyYDI7of9aQPV0A kind;
	NIM_BOOL generated;
	NIM_BOOL isOverridden;
	NU32 name;
	NI32 path;
};
struct tyObject_PackedSym__KKnx6w8Cc9aaVsaPOpaqxbw {
	NI32 id;
	tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind;
	NU32 name;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig typ;
	tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg flags;
	tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg magic;
	NU32 info;
	NI32 ast;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig owner;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig guard;
	NI bitsize;
	NI alignment;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	NI position;
	NI32 offset;
	NI32 disamb;
	NU32 externalName;
	tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg locFlags;
	tyObject_PackedLib__EpwVLk0Fuc5Q9agKLMWedbg annex;
	NI32 constraint;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig instantiatedFrom;
};
typedef NU8 tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg;
typedef NU8 tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ;
typedef NU64 tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A;
struct tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ {
	NI32 id;
	tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind;
	tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ callConv;
	tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A flags;
	tySequence__qBes3XzcQQ9cyia9bRwnmbJw types;
	NI32 n;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig sym;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig owner;
	NI64 size;
	NI16 align;
	NI16 paddingAtEnd;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig typeInst;
	NI32 nonUniqueId;
};
struct tyObject_PackedInstantiation__C3FSePJFY8gUIMObsjT2dg {
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig key;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig sym;
	tySequence__qBes3XzcQQ9cyia9bRwnmbJw concreteTypes;
};
struct tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ {
	NI len;
	void* p;
};
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
	NI Field0;
	NI Field1;
};
struct tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w {
	NU32 x;
	NU32 info;
};
typedef NU8 tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw;
struct tySequence__qBes3XzcQQ9cyia9bRwnmbJw_Content { NI cap; tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig data[SEQ_DECL_SIZE]; };
struct tySequence__wW7xkohjuUKO9aMaB0nt9cqA_Content { NI cap; tyTuple__R3ddFrA0G9buJY57Qhf9cTpg data[SEQ_DECL_SIZE]; };
struct tySequence__ezS5mGPcRfBURJyMgqYVzA_Content { NI cap; tyTuple__48iPM3yLBKU5nyEuYwJvuQ data[SEQ_DECL_SIZE]; };
struct tySequence__OxRbUT0qZaZN5UjnqQjGPA_Content { NI cap; tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(void, alignedDealloc)(void* p_p0, NI align_p1);
N_LIB_PRIVATE N_NIMCALL(void, loadSeq__icZpacked95ast_u1274)(tyObject_RodFile__k9byU8W8yLbzhHX06zPe4zg* f_p0, tySequence__OxRbUT0qZaZN5UjnqQjGPA* s_p1);
N_LIB_PRIVATE N_NIMCALL(void, loadSeq__icZpacked95ast_u1359)(tyObject_RodFile__k9byU8W8yLbzhHX06zPe4zg* f_p0, tySequence__ezS5mGPcRfBURJyMgqYVzA* s_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZpacked95ast_u263)(tySequence__ezS5mGPcRfBURJyMgqYVzA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, loadSeq__icZpacked95ast_u1444)(tyObject_RodFile__k9byU8W8yLbzhHX06zPe4zg* f_p0, tySequence__wW7xkohjuUKO9aMaB0nt9cqA* s_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZpacked95ast_u366)(tySequence__wW7xkohjuUKO9aMaB0nt9cqA dest_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__system_u2172)(void* a_p0, int v_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZic_u3941)(tySequence__qBes3XzcQQ9cyia9bRwnmbJw dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, setLen__icZic_u3961)(tySequence__qBes3XzcQQ9cyia9bRwnmbJw* s_p0, NI newlen_p1);
static N_INLINE(void, nimCopySeqPayload)(void* dest_p0, void* src_p1, NI elemSize_p2, NI elemAlign_p3);
N_LIB_PRIVATE N_NIMCALL(NI, align__system_u1639)(NI address_p0, NI alignment_p1);
static N_INLINE(void, copyMem__system_u1742)(void* dest_p0, void* source_p1, NI size_p2);
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2);
static N_INLINE(NI, span__icZpacked95ast_u1117)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* tree_p0, NI pos_p1);
static N_INLINE(NIM_BOOL, isAtom__icZpacked95ast_u541)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* tree_p0, NI pos_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZpacked95ast_u123)(tySequence__OxRbUT0qZaZN5UjnqQjGPA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
static N_INLINE(NIM_BOOL, sameSeqPayload)(void* x_p0, void* y_p1);
N_LIB_PRIVATE N_NIMCALL(void, addNode__icZpacked95ast_u550)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* t_p0, tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p1, NI32 operand_p2, tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig typeId_p3, NU32 info_p4, tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw flags_p5);
N_LIB_PRIVATE N_NIMCALL(void, add__icZpacked95ast_u477)(tySequence__OxRbUT0qZaZN5UjnqQjGPA* x_p0, tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w y_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__icZpacked95ast_u572)(tySequence__ezS5mGPcRfBURJyMgqYVzA* x_p0, tyTuple__48iPM3yLBKU5nyEuYwJvuQ y_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___icZpacked95ast_u592)(tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig x_p0, tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig y_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__icZpacked95ast_u605)(tySequence__wW7xkohjuUKO9aMaB0nt9cqA* x_p0, tyTuple__R3ddFrA0G9buJY57Qhf9cTpg y_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig, eqdup___icZpacked95ast_u675)(tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig src_p0);
N_LIB_PRIVATE N_NIMCALL(void, storeSeq__icZpacked95ast_u1532)(tyObject_RodFile__k9byU8W8yLbzhHX06zPe4zg* f_p0, tySequence__OxRbUT0qZaZN5UjnqQjGPA s_p1);
N_LIB_PRIVATE N_NIMCALL(void, storeSeq__icZpacked95ast_u1582)(tyObject_RodFile__k9byU8W8yLbzhHX06zPe4zg* f_p0, tySequence__ezS5mGPcRfBURJyMgqYVzA s_p1);
N_LIB_PRIVATE N_NIMCALL(void, storeSeq__icZpacked95ast_u1632)(tyObject_RodFile__k9byU8W8yLbzhHX06zPe4zg* f_p0, tySequence__wW7xkohjuUKO9aMaB0nt9cqA s_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___icZic_u3944)(tySequence__qBes3XzcQQ9cyia9bRwnmbJw* dest_p0, tySequence__qBes3XzcQQ9cyia9bRwnmbJw src_p1);
static N_INLINE(void, nextChild__icZpacked95ast_u798)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* tree_p0, NI* pos_p1);
N_LIB_PRIVATE NIM_CONST tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig nilItemId__icZpacked95ast_u17 = {((NU32)0), ((NI32)0)}
;
extern NIM_BOOL nimInErrorMode__system_u4143;
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZic_u3941)(tySequence__qBes3XzcQQ9cyia9bRwnmbJw dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig));
}
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZpacked95ast_u366)(tySequence__wW7xkohjuUKO9aMaB0nt9cqA dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__R3ddFrA0G9buJY57Qhf9cTpg));
}
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZpacked95ast_u263)(tySequence__ezS5mGPcRfBURJyMgqYVzA dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__48iPM3yLBKU5nyEuYwJvuQ));
}
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___icZpacked95ast_u272)(tySequence__ezS5mGPcRfBURJyMgqYVzA* dest_p0, tySequence__ezS5mGPcRfBURJyMgqYVzA src_p1) {
	if ((*dest_p0).p != src_p1.p) {	eqdestroy___icZpacked95ast_u263((*dest_p0));
	}
(*dest_p0).len = src_p1.len; (*dest_p0).p = src_p1.p;
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___icZpacked95ast_u375)(tySequence__wW7xkohjuUKO9aMaB0nt9cqA* dest_p0, tySequence__wW7xkohjuUKO9aMaB0nt9cqA src_p1) {
	if ((*dest_p0).p != src_p1.p) {	eqdestroy___icZpacked95ast_u366((*dest_p0));
	}
(*dest_p0).len = src_p1.len; (*dest_p0).p = src_p1.p;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4143);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, load__icZpacked95ast_u1271)(tyObject_RodFile__k9byU8W8yLbzhHX06zPe4zg* f_p0, tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* t_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	loadSeq__icZpacked95ast_u1274(f_p0, (&(*t_p1).nodes));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	loadSeq__icZpacked95ast_u1359(f_p0, (&(*t_p1).withFlags));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	loadSeq__icZpacked95ast_u1444(f_p0, (&(*t_p1).withTypes));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, nimSetMem__system_u2172)(void* a_p0, int v_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
	nimSetMem__system_u2172(p_p0, ((int)0), size_p1);
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___icZic_u6748)(tyObject_PackedSym__KKnx6w8Cc9aaVsaPOpaqxbw* dest_p0) {
	(*dest_p0).id = 0;
	(*dest_p0).kind = 0;
	(*dest_p0).name = 0;
	(*dest_p0).typ.module = 0;
	(*dest_p0).typ.item = 0;
	nimZeroMem((void*)(&(*dest_p0).flags), sizeof(tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg));
	(*dest_p0).magic = 0;
	(*dest_p0).info = 0;
	(*dest_p0).ast = 0;
	(*dest_p0).owner.module = 0;
	(*dest_p0).owner.item = 0;
	(*dest_p0).guard.module = 0;
	(*dest_p0).guard.item = 0;
	(*dest_p0).bitsize = 0;
	(*dest_p0).alignment = 0;
	nimZeroMem((void*)(&(*dest_p0).options), sizeof(tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ));
	(*dest_p0).position = 0;
	(*dest_p0).offset = 0;
	(*dest_p0).disamb = 0;
	(*dest_p0).externalName = 0;
	nimZeroMem((void*)(&(*dest_p0).locFlags), sizeof(tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg));
	(*dest_p0).annex.kind = 0;
	(*dest_p0).annex.generated = 0;
	(*dest_p0).annex.isOverridden = 0;
	(*dest_p0).annex.name = 0;
	(*dest_p0).annex.path = 0;
	(*dest_p0).constraint = 0;
	(*dest_p0).instantiatedFrom.module = 0;
	(*dest_p0).instantiatedFrom.item = 0;
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___icZic_u3950)(tySequence__qBes3XzcQQ9cyia9bRwnmbJw* dest_p0, tySequence__qBes3XzcQQ9cyia9bRwnmbJw src_p1) {
	if ((*dest_p0).p != src_p1.p) {	eqdestroy___icZic_u3941((*dest_p0));
	}
(*dest_p0).len = src_p1.len; (*dest_p0).p = src_p1.p;
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___icZic_u5038)(tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ* dest_p0, tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ* src_p1) {
	(*dest_p0).id = (*src_p1).id;
	(*dest_p0).kind = (*src_p1).kind;
	(*dest_p0).callConv = (*src_p1).callConv;
	(*dest_p0).flags = (*src_p1).flags;
	if ((*dest_p0).types.p != (*src_p1).types.p) {	eqdestroy___icZic_u3941((*dest_p0).types);
	}
(*dest_p0).types.len = (*src_p1).types.len; (*dest_p0).types.p = (*src_p1).types.p;
	(*dest_p0).n = (*src_p1).n;
	(*dest_p0).sym.module = (*src_p1).sym.module;
	(*dest_p0).sym.item = (*src_p1).sym.item;
	(*dest_p0).owner.module = (*src_p1).owner.module;
	(*dest_p0).owner.item = (*src_p1).owner.item;
	(*dest_p0).size = (*src_p1).size;
	(*dest_p0).align = (*src_p1).align;
	(*dest_p0).paddingAtEnd = (*src_p1).paddingAtEnd;
	(*dest_p0).typeInst.module = (*src_p1).typeInst.module;
	(*dest_p0).typeInst.item = (*src_p1).typeInst.item;
	(*dest_p0).nonUniqueId = (*src_p1).nonUniqueId;
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___icZic_u5026)(tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ* dest_p0) {
	(*dest_p0).id = 0;
	(*dest_p0).kind = 0;
	(*dest_p0).callConv = 0;
	nimZeroMem((void*)(&(*dest_p0).flags), sizeof(tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A));
	(*dest_p0).types.len = 0; (*dest_p0).types.p = NIM_NIL;
	(*dest_p0).n = 0;
	(*dest_p0).sym.module = 0;
	(*dest_p0).sym.item = 0;
	(*dest_p0).owner.module = 0;
	(*dest_p0).owner.item = 0;
	(*dest_p0).size = 0;
	(*dest_p0).align = 0;
	(*dest_p0).paddingAtEnd = 0;
	(*dest_p0).typeInst.module = 0;
	(*dest_p0).typeInst.item = 0;
	(*dest_p0).nonUniqueId = 0;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZic_u5029)(tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ* dest_p0) {
	eqdestroy___icZic_u3941((*dest_p0).types);
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZic_u7685)(tyObject_PackedInstantiation__C3FSePJFY8gUIMObsjT2dg* dest_p0) {
	eqdestroy___icZic_u3941((*dest_p0).concreteTypes);
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___icZic_u7682)(tyObject_PackedInstantiation__C3FSePJFY8gUIMObsjT2dg* dest_p0) {
	(*dest_p0).key.module = 0;
	(*dest_p0).key.item = 0;
	(*dest_p0).sym.module = 0;
	(*dest_p0).sym.item = 0;
	(*dest_p0).concreteTypes.len = 0; (*dest_p0).concreteTypes.p = NIM_NIL;
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___icZic_u3938)(tySequence__qBes3XzcQQ9cyia9bRwnmbJw* dest_p0) {
	(*dest_p0).len = 0; (*dest_p0).p = NIM_NIL;
}
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest_p0, source_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, copyMem__system_u1742)(void* dest_p0, void* source_p1, NI size_p2) {
	nimCopyMem(dest_p0, source_p1, size_p2);
}
static N_INLINE(void, nimCopySeqPayload)(void* dest_p0, void* src_p1, NI elemSize_p2, NI elemAlign_p3) {
	tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ* d_1;
	tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ* s_1;
	d_1 = ((tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ*) (dest_p0));
	s_1 = ((tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ*) (src_p1));
	{
		NI headerSize_1;
		if (!(((NI)0) < (*s_1).len)) goto LA3_;
		headerSize_1 = align__system_u1639(((NI)8), elemAlign_p3);
		copyMem__system_u1742(((void*) ((NU)((NU64)(((NU) (ptrdiff_t) ((*d_1).p))) + (NU64)(((NU) (headerSize_1)))))), ((void*) ((NU)((NU64)(((NU) (ptrdiff_t) ((*s_1).p))) + (NU64)(((NU) (headerSize_1)))))), ((NI)((*s_1).len * elemSize_p2)));
	}
LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__qBes3XzcQQ9cyia9bRwnmbJw, eqdup___icZic_u3947)(tySequence__qBes3XzcQQ9cyia9bRwnmbJw src_p0) {
	tySequence__qBes3XzcQQ9cyia9bRwnmbJw result;
	NI T1_;
	result.len = 0; result.p = NIM_NIL;
	T1_ = src_p0.len;
	setLen__icZic_u3961((&result), T1_);
	nimCopySeqPayload((&result), (&src_p0), ((NI)8), ((NI)4));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig, findType__icZpacked95ast_u1025)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* tree_p0, NI n_p1) {
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig result;
{	{
		tyTuple__R3ddFrA0G9buJY57Qhf9cTpg* x_1;
		NI i_1;
		NI L_1;
		NI T2_;
		x_1 = (tyTuple__R3ddFrA0G9buJY57Qhf9cTpg*)0;
		i_1 = ((NI)0);
		T2_ = (*tree_p0).withTypes.len;
		L_1 = T2_;
		{
			while (1) {
				if (!(i_1 < L_1)) goto LA4;
				x_1 = (&(*tree_p0).withTypes.p->data[i_1]);
				{
					if (!((*x_1).Field0 == ((NI32) (n_p1)))) goto LA7_;
					result = (*x_1).Field1;
					goto BeforeRet_;
				}
LA7_: ;
				{
					if (!(((NI32) (n_p1)) < (*x_1).Field0)) goto LA11_;
					result = nilItemId__icZpacked95ast_u17;
					goto BeforeRet_;
				}
LA11_: ;
				i_1 += ((NI)1);
			} LA4: ;
		}
	}
	result = nilItemId__icZpacked95ast_u17;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw, findFlags__icZpacked95ast_u1068)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* tree_p0, NI n_p1) {
	tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw result;
{	{
		tyTuple__48iPM3yLBKU5nyEuYwJvuQ* x_1;
		NI i_1;
		NI L_1;
		NI T2_;
		x_1 = (tyTuple__48iPM3yLBKU5nyEuYwJvuQ*)0;
		i_1 = ((NI)0);
		T2_ = (*tree_p0).withFlags.len;
		L_1 = T2_;
		{
			while (1) {
				if (!(i_1 < L_1)) goto LA4;
				x_1 = (&(*tree_p0).withFlags.p->data[i_1]);
				{
					if (!((*x_1).Field0 == ((NI32) (n_p1)))) goto LA7_;
					result = (*x_1).Field1;
					goto BeforeRet_;
				}
LA7_: ;
				{
					if (!(((NI32) (n_p1)) < (*x_1).Field0)) goto LA11_;
					result = 0;
					goto BeforeRet_;
				}
LA11_: ;
				i_1 += ((NI)1);
			} LA4: ;
		}
	}
	result = 0;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isAtom__icZpacked95ast_u541)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* tree_p0, NI pos_p1) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw) ((NU32)((*tree_p0).nodes.p->data[pos_p1].x & ((NU32)255)))) <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23));
	return result;
}
static N_INLINE(NI, span__icZpacked95ast_u1117)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* tree_p0, NI pos_p1) {
	NI result;
	NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (NI)0;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = isAtom__icZpacked95ast_u541(tree_p0, pos_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T4_) goto LA5_;
		result = ((NI)1);
	}
	goto LA2_;
LA5_: ;
	{
		result = ((NI) ((NU32)((NU32)((*tree_p0).nodes.p->data[pos_p1].x) >> (NU32)(((NU32)8) & (32 - 1)))));
	}
LA2_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ, sons2__icZpacked95ast_u1125)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* tree_p0, NI n_p1) {
	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ result;
	NI a_1;
	NI b_1;
	NI T1_;
	NI colontmp_;
	NI colontmp__2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ));
	a_1 = (NI)(n_p1 + ((NI)1));
	T1_ = (NI)0;
	T1_ = span__icZpacked95ast_u1117(tree_p0, a_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	b_1 = (NI)(a_1 + T1_);
	colontmp_ = a_1;
	colontmp__2 = b_1;
	result.Field0 = colontmp_;
	result.Field1 = colontmp__2;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___icZpacked95ast_u253)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* dest_p0, tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* src_p1) {
	if ((*dest_p0).nodes.p != (*src_p1).nodes.p) {	eqdestroy___icZpacked95ast_u123((*dest_p0).nodes);
	}
(*dest_p0).nodes.len = (*src_p1).nodes.len; (*dest_p0).nodes.p = (*src_p1).nodes.p;
	if ((*dest_p0).withFlags.p != (*src_p1).withFlags.p) {	eqdestroy___icZpacked95ast_u263((*dest_p0).withFlags);
	}
(*dest_p0).withFlags.len = (*src_p1).withFlags.len; (*dest_p0).withFlags.p = (*src_p1).withFlags.p;
	if ((*dest_p0).withTypes.p != (*src_p1).withTypes.p) {	eqdestroy___icZpacked95ast_u366((*dest_p0).withTypes);
	}
(*dest_p0).withTypes.len = (*src_p1).withTypes.len; (*dest_p0).withTypes.p = (*src_p1).withTypes.p;
}
N_LIB_PRIVATE N_NIMCALL(void, newTreeFrom__icZpacked95ast_u113)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* old_p0, tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* Result) {
	nimZeroMem((void*)Result, sizeof(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w));
	(*Result).nodes.len = 0; (*Result).nodes.p = (tySequence__OxRbUT0qZaZN5UjnqQjGPA_Content*) newSeqPayload(0, sizeof(tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w), NIM_ALIGNOF(tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w));
}
static N_INLINE(NIM_BOOL, sameSeqPayload)(void* x_p0, void* y_p1) {
	NIM_BOOL result;
	result = ((*((tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ*) (x_p0))).p == (*((tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ*) (y_p1))).p);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___icZic_u3944)(tySequence__qBes3XzcQQ9cyia9bRwnmbJw* dest_p0, tySequence__qBes3XzcQQ9cyia9bRwnmbJw src_p1) {
	NI T6_;
{	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameSeqPayload(dest_p0, (&src_p1));
		if (!T3_) goto LA4_;
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = src_p1.len;
	setLen__icZic_u3961((&(*dest_p0)), T6_);
	nimCopySeqPayload(dest_p0, (&src_p1), ((NI)8), ((NI)4));
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig, eqdup___icZpacked95ast_u675)(tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig src_p0) {
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig result;
	nimZeroMem((void*)(&result), sizeof(tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig));
	result.module = src_p0.module;
	result.item = src_p0.item;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addNode__icZpacked95ast_u550)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* t_p0, tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p1, NI32 operand_p2, tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig typeId_p3, NU32 info_p4, tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw flags_p5) {
	tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w T1_;
	T1_.x = (NU32)(((NU32) (kind_p1)) | (NU32)((NU32)(((NU32) (operand_p2))) << (NU32)(((NU32)8) & (32 - 1))));
	T1_.info = info_p4;
	add__icZpacked95ast_u477((&(*t_p0).nodes), T1_);
	{
		tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw T4_;
		tyTuple__48iPM3yLBKU5nyEuYwJvuQ T7_;
		NI T8_;
		T4_ = 0;
		if (!!((flags_p5 == T4_))) goto LA5_;
		T8_ = (*t_p0).nodes.len;
		T7_.Field0 = (NI32)(((NI32) (T8_)) - ((NI32)1));
		T7_.Field1 = flags_p5;
		add__icZpacked95ast_u572((&(*t_p0).withFlags), T7_);
	}
LA5_: ;
	{
		NIM_BOOL T11_;
		tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig colontmpD_;
		tyTuple__R3ddFrA0G9buJY57Qhf9cTpg T14_;
		NI T15_;
		T11_ = (NIM_BOOL)0;
		T11_ = eqeq___icZpacked95ast_u592(typeId_p3, nilItemId__icZpacked95ast_u17);
		if (!!(T11_)) goto LA12_;
		T15_ = (*t_p0).nodes.len;
		T14_.Field0 = (NI32)(((NI32) (T15_)) - ((NI32)1));
		colontmpD_ = eqdup___icZpacked95ast_u675(typeId_p3);
		T14_.Field1 = colontmpD_;
		add__icZpacked95ast_u605((&(*t_p0).withTypes), T14_);
	}
LA12_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, prepare__icZpacked95ast_u686)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* tree_p0, tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p1, tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw flags_p2, tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig typeId_p3, NU32 info_p4) {
	NI result;
	NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (*tree_p0).nodes.len;
	result = T1_;
	addNode__icZpacked95ast_u550(tree_p0, kind_p1, ((NI32)0), typeId_p3, info_p4, flags_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, patch__icZpacked95ast_u744)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* tree_p0, NI pos_p1) {
	NI pos_2;
	tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw k_1;
	NI32 distance_1;
	NI T1_;
	pos_2 = pos_p1;
	k_1 = ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw) ((NU32)((*tree_p0).nodes.p->data[pos_2].x & ((NU32)255))));
	T1_ = (*tree_p0).nodes.len;
	distance_1 = ((NI32) ((NI)(T1_ - pos_2)));
	(*tree_p0).nodes.p->data[pos_2].x = (NU32)(((NU32) (k_1)) | (NU32)((NU32)(((NU32) (distance_1))) << (NU32)(((NU32)8) & (32 - 1))));
}
N_LIB_PRIVATE N_NIMCALL(void, store__icZpacked95ast_u1529)(tyObject_RodFile__k9byU8W8yLbzhHX06zPe4zg* f_p0, tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* t_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	storeSeq__icZpacked95ast_u1532(f_p0, (*t_p1).nodes);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	storeSeq__icZpacked95ast_u1582(f_p0, (*t_p1).withFlags);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	storeSeq__icZpacked95ast_u1632(f_p0, (*t_p1).withTypes);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___icZic_u5032)(tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ* dest_p0, tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ* src_p1) {
	(*dest_p0).id = (*src_p1).id;
	(*dest_p0).kind = (*src_p1).kind;
	(*dest_p0).callConv = (*src_p1).callConv;
	(*dest_p0).flags = (*src_p1).flags;
	eqcopy___icZic_u3944((&(*dest_p0).types), (*src_p1).types);
	(*dest_p0).n = (*src_p1).n;
	(*dest_p0).sym.module = (*src_p1).sym.module;
	(*dest_p0).sym.item = (*src_p1).sym.item;
	(*dest_p0).owner.module = (*src_p1).owner.module;
	(*dest_p0).owner.item = (*src_p1).owner.item;
	(*dest_p0).size = (*src_p1).size;
	(*dest_p0).align = (*src_p1).align;
	(*dest_p0).paddingAtEnd = (*src_p1).paddingAtEnd;
	(*dest_p0).typeInst.module = (*src_p1).typeInst.module;
	(*dest_p0).typeInst.item = (*src_p1).typeInst.item;
	(*dest_p0).nonUniqueId = (*src_p1).nonUniqueId;
}
static N_INLINE(void, nextChild__icZpacked95ast_u798)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* tree_p0, NI* pos_p1) {
	{
		if (!(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23) < ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw) ((NU32)((*tree_p0).nodes.p->data[(*pos_p1)].x & ((NU32)255)))))) goto LA3_;
		(*pos_p1) += ((NI) ((NU32)((NU32)((*tree_p0).nodes.p->data[(*pos_p1)].x) >> (NU32)(((NU32)8) & (32 - 1)))));
	}
	goto LA1_;
LA3_: ;
	{
		(*pos_p1) += ((NI)1);
	}
LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, ithSon__icZpacked95ast_u1185)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* tree_p0, NI n_p1, NI i_p2) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = 0;
	{
		NI count_1;
		if (!(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23) < ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw) ((NU32)((*tree_p0).nodes.p->data[n_p1].x & ((NU32)255)))))) goto LA3_;
		count_1 = ((NI)0);
		{
			NI child_1;
			NI pos_1;
			NI last_1;
			child_1 = (NI)0;
			pos_1 = n_p1;
			last_1 = (NI)(pos_1 + ((NI) ((NU32)((NU32)((*tree_p0).nodes.p->data[pos_1].x) >> (NU32)(((NU32)8) & (32 - 1))))));
			pos_1 += ((NI)1);
			{
				while (1) {
					if (!(pos_1 < last_1)) goto LA7;
					child_1 = pos_1;
					{
						if (!(count_1 == i_p2)) goto LA10_;
						result = child_1;
						goto BeforeRet_;
					}
LA10_: ;
					count_1 += ((NI)1);
					nextChild__icZpacked95ast_u798(tree_p0, (&pos_1));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA7: ;
			}
		}
	}
LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, parentImpl__icZpacked95ast_u957)(tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w* tree_p0, NI n_p1) {
	NI result;
	NI pos_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	pos_1 = (NI)(n_p1 - ((NI)1));
	{
		while (1) {
			NIM_BOOL T3_;
			NIM_BOOL T5_;
			T3_ = (NIM_BOOL)0;
			T3_ = (((NI)0) <= pos_1);
			if (!(T3_)) goto LA4_;
			T5_ = (NIM_BOOL)0;
			T5_ = isAtom__icZpacked95ast_u541(tree_p0, pos_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T5_) goto LA6_;
			T5_ = ((NI)((NI)(pos_1 + ((NI) ((NU32)((NU32)((*tree_p0).nodes.p->data[pos_1].x) >> (NU32)(((NU32)8) & (32 - 1)))))) - ((NI)1)) < n_p1);
LA6_: ;
			T3_ = T5_;
LA4_: ;
			if (!T3_) goto LA2;
			pos_1 -= ((NI)1);
		} LA2: ;
	}
	result = pos_1;
	}BeforeRet_: ;
	return result;
}
