/* Generated by Nim Compiler v2.2.4 */
#define NIM_INTBITS 32
#define NIM_EmulateOverflowChecks

#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 tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ;
typedef struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg;
typedef struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg;
typedef struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q tySequence__9ahcSjIErJohSBBFLwuF56Q;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content tySequence__9ahcSjIErJohSBBFLwuF56Q_Content;
typedef struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA;
typedef struct tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw;
typedef struct tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig;
typedef struct tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA;
typedef struct tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA;
typedef struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA tySequence__ZeWVlH6DqG79b1pTDhrrUYA;
typedef struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg tySequence__d8ZV4IMgHt9biik9cS9a0hrmg;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content;
typedef NU8 tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ;
struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA {
	NU16 line;
	NI16 col;
	NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw;
typedef NU8 tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw;
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
struct tySequence__9ahcSjIErJohSBBFLwuF56Q {
  NI len; tySequence__9ahcSjIErJohSBBFLwuF56Q_Content* p;
};
struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typField;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info;
	tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw flags;
	tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind;
union{
	struct {
	NI64 intVal;
} _kind_1;
	struct {
	NF floatVal;
} _kind_2;
	struct {
	NimStringV2 strVal;
} _kind_3;
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym;
} _kind_4;
	struct {
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* ident;
} _kind_5;
	struct {
	tySequence__9ahcSjIErJohSBBFLwuF56Q sons;
} _kind_6;
};
};
struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA {
	NI32 module;
	NI32 item;
};
typedef NU8 tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
typedef NU16 tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg;
typedef NU64 tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
typedef NU32 tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ;
typedef NU8 tyEnum_TLocKind__4f5UmCRM8alrCgj32FqIRQ;
typedef NU8 tyEnum_TStorageLoc__f19b6ZkRyh7BNPxlyjRbEGg;
typedef NU16 tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg;
struct tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw {
	tyEnum_TLocKind__4f5UmCRM8alrCgj32FqIRQ k;
	tyEnum_TStorageLoc__f19b6ZkRyh7BNPxlyjRbEGg storage;
	tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg flags;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* lode;
	NimStringV2 snippet;
};
struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA itemId;
	tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind;
union{
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* gcUnsafetyReason;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* transformedBody;
} _kind_1;
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* guard;
	NI bitsize;
	NI alignment;
} _kind_2;
};
	tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg magic;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* name;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* ownerField;
	tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg flags;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* ast;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	NI position;
	NI32 offset;
	NI32 disamb;
	tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw loc;
	tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig* annex;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* constraint;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* instantiatedFrom;
};
struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA {
  NI len; tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content* p;
};
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA {
	NI elems;
	NI counter;
	NI max;
	tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA* head;
	tySequence__ZeWVlH6DqG79b1pTDhrrUYA data;
	tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
typedef NU8 tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg;
typedef NU8 tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ;
typedef NU64 tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A;
struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg {
  NI len; tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content* p;
};
struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA itemId;
	tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind;
	tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ callConv;
	tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A flags;
	tySequence__d8ZV4IMgHt9biik9cS9a0hrmg sons;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* ownerField;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym;
	NI64 size;
	NI16 align;
	NI16 paddingAtEnd;
	tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw loc;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typeInst;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA uniqueId;
};
typedef NU8 tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw;
typedef NU16 tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ;
typedef NU8 tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg[9];
struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content { NI cap; tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* data[SEQ_DECL_SIZE]; };
struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content { NI cap; tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA* data[SEQ_DECL_SIZE]; };
struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content { NI cap; tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ, isPartOf__aliases_u115)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
static N_INLINE(void, initIntSet__pureZcollectionsZintsets_u598)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* Result);
N_LIB_PRIVATE N_NIMCALL(void, initPackedSet__pureZcollectionsZintsets_u37)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* Result);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ, isPartOfAux__aliases_u14)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3363)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__astyaml_u223)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* s_p0, NI key_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3366)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compareTypes__types_u2765)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_p1, tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw cmp_p2, tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ flags_p3);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, baseClass__ast_u5327)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipTypes__ast_u5358)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kinds_p1);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ, isPartOfAux__aliases_u18)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p2);
static N_INLINE(NI, len__ast_u3175)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, lastSon__ast_u5187)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3240)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**, X5BX5D___ast_u5190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** s_p0, NI s_p0Len_0, NI i_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3237)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* dest_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipModifier__ast_u5317)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**, X5BX5D___ast_u5260)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** s_p0, NI s_p0Len_0, NI i_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elementType__ast_u5310)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZcollectionsZintsets_u230)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ, isPartOf__aliases_u120)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDeepConstExpr__trees_u153)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, NIM_BOOL preventInheritance_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameValue__astalgo_u63)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* b_p1);
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__1vgML9aM876J0EHbm6P1O8A_2 = {
0x10, 0x09, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
extern NIM_BOOL nimInErrorMode__system_u4304;
static N_INLINE(void, nimSetMem__systemZmemory_u7)(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(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4304);
	return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, initIntSet__pureZcollectionsZintsets_u598)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* Result) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	initPackedSet__pureZcollectionsZintsets_u37(Result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, baseClass__ast_u5327)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3366(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, len__ast_u3175)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NI result;
	NI T1_;
	T1_ = (*n_p0)._kind_6.sons.len;
	result = T1_;
	return result;
}
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**, X5BX5D___ast_u5190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** s_p0, NI s_p0Len_0, NI i_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** result;
	result = &s_p0[(NI)(s_p0Len_0 - i_p1)];
	return result;
}
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, lastSon__ast_u5187)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**)0;
	T1_ = X5BX5D___ast_u5190((((*n_p0)._kind_6.sons).p) ? ((*n_p0)._kind_6.sons.p->data) : NIM_NIL, (*n_p0)._kind_6.sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3240(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ, isPartOfAux__aliases_u18)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p2) {
	tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ result;
NIM_BOOL oldNimErrFin18_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
	switch ((*n_p0).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)138):
	{
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_u3175(n_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i_1 = i_2;
					result = isPartOfAux__aliases_u18((*n_p0)._kind_6.sons.p->data[i_1], b_p1, marker_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!(result == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)2))) goto LA7_;
						goto BeforeRet_;
					}
LA7_: ;
					i_2 += ((NI)1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)139):
	{
		result = isPartOfAux__aliases_u18((*n_p0)._kind_6.sons.p->data[((NI)0)], b_p1, marker_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(result == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)2))) goto LA12_;
			goto BeforeRet_;
		}
LA12_: ;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_u3175(n_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI)1);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA16;
					i_3 = i_4;
					switch ((*(*n_p0)._kind_6.sons.p->data[i_3]).kind) {
					case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)85):
					case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)88):
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
						colontmpD_ = NIM_NIL;
						colontmpD_ = lastSon__ast_u5187((*n_p0)._kind_6.sons.p->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
						result = isPartOfAux__aliases_u18(colontmpD_, b_p1, marker_p2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
						{
							if (!(result == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)2))) goto LA21_;
							eqdestroy___ast_u3237(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA21_: ;
						{
							LA18_:;
						}
						{
							oldNimErrFin18_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3237(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							*nimErr_ = oldNimErrFin18_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					break;
					default:
					{
					}
					break;
					}
					i_4 += ((NI)1);
				} LA16: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		result = isPartOfAux__aliases_u14((*(*n_p0)._kind_4.sym).typ, b_p1, marker_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**, X5BX5D___ast_u5260)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** s_p0, NI s_p0Len_0, NI i_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** result;
	result = &s_p0[(NI)(s_p0Len_0 - i_p1)];
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipModifier__ast_u5317)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5260((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3366(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elementType__ast_u5310)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5260((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3366(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ, isPartOfAux__aliases_u14)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p2) {
	tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* xX60gensym7__1;
NIM_BOOL oldNimErrFin25_;
NIM_BOOL oldNimErrFin20_;
NIM_BOOL oldNimErrFin35_;
NIM_BOOL oldNimErrFin39_;
NIM_BOOL oldNimErrFin44_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0;
	xX60gensym7__1 = NIM_NIL;
	result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (a_p0 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (T4_) goto LA5_;
		T4_ = (b_p1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA5_: ;
		if (!T4_) goto LA6_;
		eqdestroy___ast_u3363(xX60gensym7__1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA6_: ;
	{
		NIM_BOOL T10_;
		eqcopy___ast_u3366(&xX60gensym7__1, a_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T10_ = (NIM_BOOL)0;
		T10_ = containsOrIncl__astyaml_u223(marker_p2, (NI)((NI)((NU32)(((NI) ((*xX60gensym7__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym7__1).itemId.item))));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T10_) goto LA11_;
		eqdestroy___ast_u3363(xX60gensym7__1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA11_: ;
	{
		tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ T15_;
		NIM_BOOL T16_;
		T15_ = 0;
		T16_ = (NIM_BOOL)0;
		T16_ = compareTypes__types_u2765(a_p0, b_p1, ((tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw)1), T15_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T16_) goto LA17_;
		result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)2);
		eqdestroy___ast_u3363(xX60gensym7__1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA17_: ;
	switch ((*a_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
			colontmpD_ = baseClass__ast_u5327(a_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
			if (!!((colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA23_;
			colontmpD__2 = NIM_NIL;
			colontmpD__3 = NIM_NIL;
			colontmpD__2 = baseClass__ast_u5327(a_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
			colontmpD__3 = skipTypes__ast_u5358(colontmpD__2, TM__1vgML9aM876J0EHbm6P1O8A_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
			result = isPartOfAux__aliases_u14(colontmpD__3, b_p1, marker_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
			{
				LA25_:;
			}
			{
				oldNimErrFin25_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
				*nimErr_ = oldNimErrFin25_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
		}
LA23_: ;
		{
			if (!(result == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0))) goto LA30_;
			result = isPartOfAux__aliases_u18((*a_p0).n, b_p1, marker_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
		}
LA30_: ;
		{
			LA20_:;
		}
		{
			oldNimErrFin20_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin20_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
		colontmpD__4 = NIM_NIL;
		colontmpD__4 = skipModifier__ast_u5317(a_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
		result = isPartOfAux__aliases_u14(colontmpD__4, b_p1, marker_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
		{
			LA35_:;
		}
		{
			oldNimErrFin35_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin35_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
		colontmpD__5 = NIM_NIL;
		colontmpD__5 = elementType__ast_u5310(a_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
		result = isPartOfAux__aliases_u14(colontmpD__5, b_p1, marker_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
		{
			LA39_:;
		}
		{
			oldNimErrFin39_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin39_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_1;
			aa_1 = NIM_NIL;
			{
				NI i_1;
				NI colontmp_;
				NI T46_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				T46_ = (*a_p0).sons.len;
				colontmp_ = T46_;
				i_2 = ((NI)0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA48;
						i_1 = i_2;
						eqcopy___ast_u3366(&aa_1, (*a_p0).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA44_;
						result = isPartOfAux__aliases_u14(aa_1, b_p1, marker_p2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA44_;
						{
							if (!(result == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)2))) goto LA51_;
							eqdestroy___ast_u3363(aa_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3363(xX60gensym7__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA51_: ;
						i_2 += ((NI)1);
					} LA48: ;
				}
			}
			{
				LA44_:;
			}
			{
				oldNimErrFin44_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(aa_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin44_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
	}
	break;
	default:
	{
	}
	break;
	}
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(xX60gensym7__1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ, isPartOf__aliases_u115)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ result;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA marker_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0;
	nimZeroMem((void*)(&marker_1), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	initIntSet__pureZcollectionsZintsets_u598((&marker_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = isPartOfAux__aliases_u14(b_p1, a_p0, (&marker_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___pureZcollectionsZintsets_u230((&marker_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ, isPartOf__aliases_u120)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* b_p1) {
	tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ result;
NIM_BOOL oldNimErrFin39_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0;
	{
		if (!((*a_p0).kind == (*b_p1).kind)) goto LA3_;
		switch ((*a_p0).kind) {
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
		{
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym9__1;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym10__1;
			xX60gensym9__1 = NIM_NIL;
			xX60gensym10__1 = NIM_NIL;
			{
				xX60gensym9__1 = (*a_p0)._kind_4.sym;
				xX60gensym10__1 = (*b_p1)._kind_4.sym;
				if (!((NI)((NI)((NU32)(((NI) ((*xX60gensym9__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym9__1).itemId.item))) == (NI)((NI)((NU32)(((NI) ((*xX60gensym10__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym10__1).itemId.item))))) goto LA8_;
				result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)2);
			}
			goto LA6_;
LA8_: ;
			{
				NIM_BOOL T11_;
				T11_ = (NIM_BOOL)0;
				T11_ = ((*(*a_p0)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8) || (*(*a_p0)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)5) || (*(*a_p0)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) || (*(*a_p0)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)13));
				if (T11_) goto LA12_;
				T11_ = ((*(*b_p1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8) || (*(*b_p1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)5) || (*(*b_p1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) || (*(*b_p1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)13));
LA12_: ;
				if (!T11_) goto LA13_;
				result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
			}
			goto LA6_;
LA13_: ;
			{
				{
					tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ T18_;
					T18_ = (tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0;
					T18_ = isPartOf__aliases_u115((*(*a_p0)._kind_4.sym).typ, (*(*b_p1)._kind_4.sym).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!!((T18_ == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0)))) goto LA19_;
					result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)1);
				}
				goto LA16_;
LA19_: ;
				{
					result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
				}
LA16_: ;
			}
LA6_: ;
		}
		break;
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)42):
		{
			result = isPartOf__aliases_u120((*a_p0)._kind_6.sons.p->data[((NI)0)], (*b_p1)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T25_;
				NI T26_;
				NI T28_;
				T25_ = (NIM_BOOL)0;
				T26_ = (NI)0;
				T26_ = len__ast_u3175(a_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T25_ = (((NI)2) <= T26_);
				if (!(T25_)) goto LA27_;
				T28_ = (NI)0;
				T28_ = len__ast_u3175(b_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T25_ = (((NI)2) <= T28_);
LA27_: ;
				if (!T25_) goto LA29_;
				{
					NIM_BOOL T33_;
					NIM_BOOL T34_;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* x_1;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* y_1;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T40_;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T46_;
					T33_ = (NIM_BOOL)0;
					T34_ = (NIM_BOOL)0;
					T34_ = (result == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)2));
					if (!(T34_)) goto LA35_;
					T34_ = isDeepConstExpr__trees_u153((*a_p0)._kind_6.sons.p->data[((NI)1)], NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA35_: ;
					T33_ = T34_;
					if (!(T33_)) goto LA36_;
					T33_ = isDeepConstExpr__trees_u153((*b_p1)._kind_6.sons.p->data[((NI)1)], NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA36_: ;
					if (!T33_) goto LA37_;
					x_1 = NIM_NIL;
					y_1 = NIM_NIL;
					T40_ = NIM_NIL;
					{
						if (!((*(*a_p0)._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58))) goto LA43_;
						eqcopy___ast_u3240(&x_1, (*(*a_p0)._kind_6.sons.p->data[((NI)1)])._kind_6.sons.p->data[((NI)1)]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
					}
					goto LA41_;
LA43_: ;
					{
						eqcopy___ast_u3240(&x_1, (*a_p0)._kind_6.sons.p->data[((NI)1)]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
					}
LA41_: ;
					T46_ = NIM_NIL;
					{
						if (!((*(*b_p1)._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58))) goto LA49_;
						eqcopy___ast_u3240(&y_1, (*(*b_p1)._kind_6.sons.p->data[((NI)1)])._kind_6.sons.p->data[((NI)1)]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
					}
					goto LA47_;
LA49_: ;
					{
						eqcopy___ast_u3240(&y_1, (*b_p1)._kind_6.sons.p->data[((NI)1)]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
					}
LA47_: ;
					{
						NIM_BOOL T54_;
						T54_ = (NIM_BOOL)0;
						T54_ = sameValue__astalgo_u63(x_1, y_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
						if (!T54_) goto LA55_;
						result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)2);
					}
					goto LA52_;
LA55_: ;
					{
						result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
					}
LA52_: ;
					{
						LA39_:;
					}
					{
						oldNimErrFin39_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3237(y_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3237(x_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						*nimErr_ = oldNimErrFin39_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA37_: ;
			}
			goto LA23_;
LA29_: ;
			{
				{
					if (!!((result == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)2)))) goto LA63_;
					{
						tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ T67_;
						T67_ = (tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0;
						T67_ = isPartOf__aliases_u115((*a_p0).typField, (*b_p1).typField);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!!((T67_ == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0)))) goto LA68_;
						result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)1);
					}
LA68_: ;
				}
LA63_: ;
			}
LA23_: ;
		}
		break;
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)45):
		{
			result = isPartOf__aliases_u120((*a_p0)._kind_6.sons.p->data[((NI)0)], (*b_p1)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym37__1;
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym39__1;
				if (!!((result == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0)))) goto LA73_;
				xX60gensym37__1 = NIM_NIL;
				xX60gensym39__1 = NIM_NIL;
				{
					xX60gensym37__1 = (*(*a_p0)._kind_6.sons.p->data[((NI)1)])._kind_4.sym;
					xX60gensym39__1 = (*(*b_p1)._kind_6.sons.p->data[((NI)1)])._kind_4.sym;
					if (!!(((NI)((NI)((NU32)(((NI) ((*xX60gensym37__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym37__1).itemId.item))) == (NI)((NI)((NU32)(((NI) ((*xX60gensym39__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym39__1).itemId.item)))))) goto LA77_;
					result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
				}
LA77_: ;
			}
LA73_: ;
		}
		break;
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65):
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)47):
		{
			result = isPartOf__aliases_u120((*a_p0)._kind_6.sons.p->data[((NI)0)], (*b_p1)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!((result == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)2)))) goto LA82_;
				{
					tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ T86_;
					T86_ = (tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0;
					T86_ = isPartOf__aliases_u115((*a_p0).typField, (*b_p1).typField);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!!((T86_ == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0)))) goto LA87_;
					result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)1);
				}
LA87_: ;
			}
LA82_: ;
		}
		break;
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58):
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59):
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)60):
		{
			result = isPartOf__aliases_u120((*a_p0)._kind_6.sons.p->data[((NI)1)], (*b_p1)._kind_6.sons.p->data[((NI)1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)67):
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)66):
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)46):
		{
			result = isPartOf__aliases_u120((*a_p0)._kind_6.sons.p->data[((NI)0)], (*b_p1)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		default:
		{
			result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
		}
		break;
		}
	}
	goto LA1_;
LA3_: ;
	{
		switch ((*b_p1).kind) {
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)42):
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)45) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)46):
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)64):
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)66) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)67):
		{
			result = isPartOf__aliases_u120(a_p0, (*b_p1)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)47):
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65):
		{
			result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
			{
				tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ T97_;
				T97_ = (tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0;
				T97_ = isPartOf__aliases_u115((*a_p0).typField, (*b_p1).typField);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!((T97_ == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0)))) goto LA98_;
				result = isPartOf__aliases_u120(a_p0, (*b_p1)._kind_6.sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!(result == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0))) goto LA102_;
					result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)1);
				}
LA102_: ;
			}
LA98_: ;
		}
		break;
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)60):
		{
			result = isPartOf__aliases_u120(a_p0, (*b_p1)._kind_6.sons.p->data[((NI)1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
		{
			switch ((*a_p0).kind) {
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)42):
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)45) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)46):
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)64):
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)66) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)67):
			{
				result = isPartOf__aliases_u120((*a_p0)._kind_6.sons.p->data[((NI)0)], b_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)60):
			{
				result = isPartOf__aliases_u120((*a_p0)._kind_6.sons.p->data[((NI)1)], b_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)47):
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65):
			{
				{
					tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ T111_;
					T111_ = (tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0;
					T111_ = isPartOf__aliases_u115((*a_p0).typField, (*b_p1).typField);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!!((T111_ == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0)))) goto LA112_;
					result = isPartOf__aliases_u120((*a_p0)._kind_6.sons.p->data[((NI)0)], b_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!(result == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0))) goto LA116_;
						result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)1);
					}
LA116_: ;
				}
				goto LA109_;
LA112_: ;
				{
					result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
				}
LA109_: ;
			}
			break;
			default:
			{
				result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
			}
			break;
			}
		}
		break;
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)38):
		{
			result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
			{
				NI i_1;
				NI colontmp_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_u3175(b_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI)1);
				{
					while (1) {
						tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ res_1;
						if (!(i_2 < colontmp_)) goto LA123;
						i_1 = i_2;
						res_1 = isPartOf__aliases_u120(a_p0, (*(*b_p1)._kind_6.sons.p->data[i_1])._kind_6.sons.p->data[((NI)1)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!!((res_1 == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0)))) goto LA126_;
							result = res_1;
							{
								if (!(res_1 == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)2))) goto LA130_;
								goto LA121;
							}
LA130_: ;
						}
LA126_: ;
						i_2 += ((NI)1);
					} LA123: ;
				}
			} LA121: ;
		}
		break;
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)26) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32):
		{
			result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_u3175(b_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_4 = ((NI)1);
				{
					while (1) {
						tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ res_2;
						if (!(i_4 < colontmp__2)) goto LA135;
						i_3 = i_4;
						res_2 = isPartOf__aliases_u120(a_p0, (*b_p1)._kind_6.sons.p->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!!((res_2 == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0)))) goto LA138_;
							result = res_2;
							{
								if (!(res_2 == ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)2))) goto LA142_;
								goto LA133;
							}
LA142_: ;
						}
LA138_: ;
						i_4 += ((NI)1);
					} LA135: ;
				}
			} LA133: ;
		}
		break;
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)41):
		{
			{
				NI T147_;
				T147_ = (NI)0;
				T147_ = len__ast_u3175(b_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(((NI)0) < T147_)) goto LA148_;
				result = isPartOf__aliases_u120(a_p0, (*b_p1)._kind_6.sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA145_;
LA148_: ;
			{
				result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
			}
LA145_: ;
		}
		break;
		default:
		{
			result = ((tyEnum_TAnalysisResult__Y9b4HDQn2qbT5xWKGFH75iQ)0);
		}
		break;
		}
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
