/* Generated by Nim Compiler v2.2.10 */
#define NIM_INTBITS 64
#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 NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg;
typedef struct tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg tySequence__d8ZV4IMgHt9biik9cS9a0hrmg;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content;
typedef struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ;
typedef struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg;
typedef struct tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw;
typedef struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA;
typedef struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA;
typedef struct tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q tySequence__9ahcSjIErJohSBBFLwuF56Q;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content tySequence__9ahcSjIErJohSBBFLwuF56Q_Content;
typedef struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A;
typedef struct tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ;
typedef struct tySequence__8Np6tlClE5az1CyqZdN19bQ tySequence__8Np6tlClE5az1CyqZdN19bQ;
typedef struct tySequence__8Np6tlClE5az1CyqZdN19bQ_Content tySequence__8Np6tlClE5az1CyqZdN19bQ_Content;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
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 tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg;
typedef struct tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg;
typedef struct tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA;
typedef struct tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg;
typedef struct tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw;
typedef struct tySequence__E0kio2ZnplNTuln9bsnljSA tySequence__E0kio2ZnplNTuln9bsnljSA;
typedef struct tySequence__E0kio2ZnplNTuln9bsnljSA_Content tySequence__E0kio2ZnplNTuln9bsnljSA_Content;
typedef struct tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content tySequence__7lEisrXlQEzwtUKW5pzRCw_Content;
typedef struct tySequence__hTEiKNj3evQAjIXUI21elA tySequence__hTEiKNj3evQAjIXUI21elA;
typedef struct tySequence__hTEiKNj3evQAjIXUI21elA_Content tySequence__hTEiKNj3evQAjIXUI21elA_Content;
typedef struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content tySequence__4eRCaZmrYLLw2k30GPTiMw_Content;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q tySequence__xOJ2kx2lq9bBfIm3IXnde3Q;
typedef struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content;
typedef struct tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA;
typedef struct tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyTuple__7xZyzV9bi4zRvtJda9aONodA tyTuple__7xZyzV9bi4zRvtJda9aONodA;
typedef struct tyObject_HSlice__6GiwMwOD9b9cke69bnAPbb5Ew tyObject_HSlice__6GiwMwOD9b9cke69bnAPbb5Ew;
typedef struct tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw;
typedef struct tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug;
typedef struct tyObject_CountTable__5N9carAoH8U5E301UN9ccEmQ tyObject_CountTable__5N9carAoH8U5E301UN9ccEmQ;
typedef struct tySequence__hRbbzIynOoxrYjHTIKZ3Gw tySequence__hRbbzIynOoxrYjHTIKZ3Gw;
typedef struct tySequence__hRbbzIynOoxrYjHTIKZ3Gw_Content tySequence__hRbbzIynOoxrYjHTIKZ3Gw_Content;
typedef struct tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw;
typedef struct tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g;
typedef struct tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA;
typedef struct tyObject_CatchableError__TCF9b1Y9b2ct0xPZvZnaY7gg tyObject_CatchableError__TCF9b1Y9b2ct0xPZvZnaY7gg;
typedef struct Exception Exception;
typedef struct tySequence__S89cE01OvNjsN9c71FKsSrqQ tySequence__S89cE01OvNjsN9c71FKsSrqQ;
typedef struct tySequence__S89cE01OvNjsN9c71FKsSrqQ_Content tySequence__S89cE01OvNjsN9c71FKsSrqQ_Content;
typedef struct tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w;
typedef struct tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg;
typedef struct tyTuple__N4J9cV4JZGem3ljqqj5rT0Q tyTuple__N4J9cV4JZGem3ljqqj5rT0Q;
typedef struct tyObject_CellSeq__IHvIqxITv1yMjJj8lwLrhg tyObject_CellSeq__IHvIqxITv1yMjJj8lwLrhg;
typedef struct tyTuple__DTRsWi2kgTewbhN2TT5mbA tyTuple__DTRsWi2kgTewbhN2TT5mbA;
typedef struct tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg;
typedef struct tyTuple__Oubp8LPEu86EPyDuc56AXg tyTuple__Oubp8LPEu86EPyDuc56AXg;
typedef struct tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA;
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
typedef NU8 tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q;
struct TNimTypeV2 {
	void* destructor;
	NI size;
	NI16 align;
	NI16 depth;
	NU32* display;
	void* traceImpl;
	void* typeInfoV1;
	NI flags;
	void* vTable[SEQ_DECL_SIZE];
};
struct RootObj {
	TNimTypeV2* m_type;
};
struct tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA {
	RootObj Sup;
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q preferToplevel0;
};
typedef struct {
N_NIMCALL_PTR(tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q, ClP_0) (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p0, void* ClE_0);
void* ClE_0;
} tyProc__0kHfnyJtoro9cA3P1Wkcb4g;
typedef N_CLOSURE_PTR(tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q, TM__PpBJsMJcrcWrpLTS6mci1g_5) (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p0);
struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA {
	NI32 module;
	NI32 item;
};
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;
};
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_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_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
typedef NU16 tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg;
struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA {
	NU16 line;
	NI16 col;
	NI32 fileIndex;
};
typedef NU64 tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
typedef NU32 tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ;
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;
};
typedef NU8 tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
typedef NU32 tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw;
typedef NU8 tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw;
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_TIdent__LG4CHFyohryWo9bzZeyjDjA {
	NI id;
	NimStringV2 s;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* next;
	NI h;
};
typedef struct {
N_NIMCALL_PTR(NimStringV2, ClP_0) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1, void* ClE_0);
void* ClE_0;
} tyProc__NULZ4DXeGT28fHaMwn9bfpQ;
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_10) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef NimStringV2 tyArray__g5HJXmxdfkDecNUrtKDkZQ[65];
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_76) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_77) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_84) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef NU8 tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A;
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_91) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_94) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_95) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_97) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_98) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_100) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_105) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef NU16 tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg;
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_110) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_116) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_140) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_143) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_148) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_152) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_155) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_158) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_175) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_177) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_179) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_183) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_186) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_190) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_193) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_196) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_199) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_202) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_206) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_211) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_216) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_219) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_223) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_241) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_243) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef NU16 tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw;
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_269) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_272) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_275) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
typedef N_CLOSURE_PTR(NimStringV2, TM__PpBJsMJcrcWrpLTS6mci1g_276) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A {
	NI rc;
	NI rootIdx;
};
typedef NU8 tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw;
typedef NU16 tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ;
struct tySequence__8Np6tlClE5az1CyqZdN19bQ {
  NI len; tySequence__8Np6tlClE5az1CyqZdN19bQ_Content* p;
};
struct tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ {
	tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw cmp;
	NI recCheck;
	tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ flags;
	tySequence__8Np6tlClE5az1CyqZdN19bQ s;
};
typedef NU8 tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg[9];
typedef NU8 tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ;
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
	NI Field0;
	NI Field1;
};
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__aFU8JO3OZrh5M9aNLBLtcZA) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, RootObj* closure_p1);
struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA {
  NI len; tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content* p;
};
typedef NI tyArray__k7D0lwfLmYccbQxUd49bbcQ[34];
struct tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA {
	NI elems;
	NI counter;
	NI max;
	tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA* head;
	tySequence__ZeWVlH6DqG79b1pTDhrrUYA data;
	tyArray__k7D0lwfLmYccbQxUd49bbcQ a;
};
typedef NU32 tyArray__PPSU5X9aizf5OJq0lL4Og7A[4];
struct tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg {
	tyArray__PPSU5X9aizf5OJq0lL4Og7A udata;
};
typedef NU8 tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw;
typedef NU8 tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw;
typedef NU8 tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw;
struct tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA {
	tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw targetCPU;
	tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw hostCPU;
	tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw targetOS;
	tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw hostOS;
	NI intSize;
	NI floatSize;
	NI ptrSize;
	NimStringV2 tnl;
};
typedef NU64 tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A;
typedef NU8 tySet_tyEnum_TErrorOutput__wGgqZXVnY1wkKEe8EL9cL9aw;
struct tySequence__E0kio2ZnplNTuln9bsnljSA {
  NI len; tySequence__E0kio2ZnplNTuln9bsnljSA_Content* p;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  NI len; tySequence__7lEisrXlQEzwtUKW5pzRCw_Content* p;
};
struct tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A {
	tySequence__7lEisrXlQEzwtUKW5pzRCw data;
	NI counter;
};
struct tySequence__hTEiKNj3evQAjIXUI21elA {
  NI len; tySequence__hTEiKNj3evQAjIXUI21elA_Content* p;
};
struct tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA trackPos;
	NIM_BOOL trackPosAttached;
	tySet_tyEnum_TErrorOutput__wGgqZXVnY1wkKEe8EL9cL9aw errorOutputs;
	tySequence__E0kio2ZnplNTuln9bsnljSA msgContext;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA lastError;
	tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A filenameToIndexTbl;
	tySequence__hTEiKNj3evQAjIXUI21elA fileInfos;
	NI32 systemFileIdx;
};
typedef NU8 tyEnum_FilenameOption__o3jmnnVs6HdBg5KcNAzYiQ;
typedef NU8 tyEnum_Command__juUdcDlEGhwCRcct3jVHmQ;
typedef NU8 tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg;
typedef NU8 tyEnum_ExceptionSystem__dJ6sXW7k8NDYNNBUjVZmnw;
typedef NU8 tyEnum_SymbolFilesOption__2eyIIreuRXhYT9buPPZbBYA;
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  NI len; tySequence__4eRCaZmrYLLw2k30GPTiMw_Content* p;
};
struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw {
	tySequence__4eRCaZmrYLLw2k30GPTiMw data;
	NI counter;
};
typedef NU32 tySet_tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ;
typedef NU8 tySet_tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA;
typedef NU8 tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng;
typedef NU8 tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA;
typedef NU8 tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw[13];
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
typedef NU8 tySet_tyEnum_StdOrrKind__so1PI9cHP1cN622ePtqa0yw;
struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q {
  NI len; tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content* p;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* result_p0, void* ClE_0);
void* ClE_0;
} tyProc__QQyR5yGA47tr5TwLxcC4Gw;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringV2 output_p0, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__mHEDvws7FmOtnFhcQsM8UA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, NimStringV2 msg_p2, tyEnum_Severity__mHEDvws7FmOtnFhcQsM8UA severity_p3, void* ClE_0);
void* ClE_0;
} tyProc__DA9aR62IikoxFqfC5rIT9cuw;
struct tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg {
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw backend;
	tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA target;
	NI linesCompiled;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A globalOptions;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* macrosToExpand;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* arcToExpand;
	tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw m;
	tyEnum_FilenameOption__o3jmnnVs6HdBg5KcNAzYiQ filenameOption;
	NimStringV2 unitSep;
	NI evalTemplateCounter;
	NI evalMacroCounter;
	NI8 exitcode;
	tyEnum_Command__juUdcDlEGhwCRcct3jVHmQ cmd;
	NimStringV2 cmdInput;
	NIM_BOOL projectIsCmd;
	NIM_BOOL implicitCmd;
	tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg selectedGC;
	tyEnum_ExceptionSystem__dJ6sXW7k8NDYNNBUjVZmnw exc;
	NIM_BOOL hintProcessingDots;
	NI verbosity;
	NI numberOfProcessors;
	NF lastCmdTime;
	tyEnum_SymbolFilesOption__2eyIIreuRXhYT9buPPZbBYA symbolFiles;
	NI spellSuggestMax;
	tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw cppDefines;
	NimStringV2 headerFile;
	NimStringV2 nimbasePattern;
	tySet_tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ features;
	tySet_tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA legacyFeatures;
	NimStringV2 arguments;
	tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng ideCmd;
	tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA cCompiler;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw modifiedyNotes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw cmdlineNotes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw foreignPackageNotes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw notes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw warningAsErrors;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw mainPackageNotes;
	NI mainPackageId;
	NI errorCounter;
	NI hintCounter;
	NI warnCounter;
	NI errorMax;
	NI maxLoopIterationsVM;
	NI maxCallDepthVM;
	NIM_BOOL isVmTrace;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* configVars;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* symbols;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* packageCache;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ nimblePaths;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ searchPaths;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ lazyPaths;
	NimStringV2 outFile;
	NimStringV2 outDir;
	NimStringV2 jsonBuildFile;
	NimStringV2 prefixDir;
	NimStringV2 libpath;
	NimStringV2 nimcacheDir;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* dllOverrides;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* moduleOverrides;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* cfileSpecificOptions;
	NimStringV2 projectName;
	NimStringV2 projectPath;
	NimStringV2 projectFull;
	NIM_BOOL projectIsStdin;
	NimStringV2 stdinFile;
	tySet_tyEnum_StdOrrKind__so1PI9cHP1cN622ePtqa0yw lastMsgWasDot;
	NI32 projectMainIdx;
	NI32 projectMainIdx2;
	NimStringV2 command;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ commandArgs;
	NimStringV2 commandLine;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ extraCmds;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ implicitImports;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ implicitIncludes;
	NimStringV2 docSeeSrcUrl;
	NimStringV2 docRoot;
	NimStringV2 docCmd;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ configFiles;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cIncludes;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cLibs;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cLinkedLibs;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ externalToLink;
	NimStringV2 linkOptionsCmd;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ compileOptionsCmd;
	NimStringV2 linkOptions;
	NimStringV2 compileOptions;
	NimStringV2 cCompilerPath;
	tySequence__xOJ2kx2lq9bBfIm3IXnde3Q toCompile;
	tyProc__QQyR5yGA47tr5TwLxcC4Gw suggestionResultHook;
	NI suggestVersion;
	NI suggestMaxResults;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA lastLineInfo;
	tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
	tyProc__DA9aR62IikoxFqfC5rIT9cuw structuredErrorHook;
	NimStringV2 cppCustomNamespace;
	NimStringV2 nimMainPrefix;
	tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ* vmProfileData;
	NIM_BOOL expandProgress;
	NI expandLevels;
	NimStringV2 expandNodeResult;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA expandPosition;
	NimStringV2 currentConfigDir;
	NI clientProcessId;
};
typedef NU8 tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA;
typedef NU8 tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
	NimStringV2 Field0;
	NI Field1;
	NI Field2;
};
typedef NU8 tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ;
typedef NU8 tySet_tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ;
struct tyTuple__7xZyzV9bi4zRvtJda9aONodA {
	tySet_tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ Field0;
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ Field1;
};
typedef NU8 tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ;
typedef NU8 tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A;
typedef NU8 tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ;
struct tyObject_HSlice__6GiwMwOD9b9cke69bnAPbb5Ew {
	NF a;
	NF b;
};
typedef NimStringV2 tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ[2];
typedef NU8 tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g;
struct tySequence__hRbbzIynOoxrYjHTIKZ3Gw {
  NI len; tySequence__hRbbzIynOoxrYjHTIKZ3Gw_Content* p;
};
struct tyObject_CountTable__5N9carAoH8U5E301UN9ccEmQ {
	tySequence__hRbbzIynOoxrYjHTIKZ3Gw data;
	NI counter;
	NIM_BOOL isSorted;
};
struct tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug {
	NI32 module;
	NI32 symId;
	NI32 typeId_0;
	NIM_BOOL sealed;
	tyObject_CountTable__5N9carAoH8U5E301UN9ccEmQ disambTable;
};
typedef NU8 tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q;
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__iTi2aSteq9cki9bjIjUU2gYg) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
struct tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw {
	NI32 maxAlign;
	NI32 offset;
};
struct tySequence__S89cE01OvNjsN9c71FKsSrqQ {
  NI len; tySequence__S89cE01OvNjsN9c71FKsSrqQ_Content* p;
};
struct Exception {
	RootObj Sup;
	Exception* parent;
	NCSTRING name;
	NimStringV2 message;
	tySequence__S89cE01OvNjsN9c71FKsSrqQ trace;
	Exception* up;
};
struct tyObject_CatchableError__TCF9b1Y9b2ct0xPZvZnaY7gg {
	Exception Sup;
};
struct tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA {
	tyObject_CatchableError__TCF9b1Y9b2ct0xPZvZnaY7gg Sup;
};
struct tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g {
	tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA Sup;
};
struct tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg {
	NI len;
	NI cap;
	tyTuple__N4J9cV4JZGem3ljqqj5rT0Q* d;
};
struct tyObject_CellSeq__IHvIqxITv1yMjJj8lwLrhg {
	NI len;
	NI cap;
	tyTuple__DTRsWi2kgTewbhN2TT5mbA* d;
};
struct tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w {
	tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg traceStack;
	tyObject_CellSeq__IHvIqxITv1yMjJj8lwLrhg toFree;
	NI freed;
	NI touched;
	NI edges;
	NI rcSum;
	NIM_BOOL keepThreshold;
};
struct tyTuple__N4J9cV4JZGem3ljqqj5rT0Q {
	void** Field0;
	TNimTypeV2* Field1;
};
typedef NU8 tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag;
typedef NU8 tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag;
struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content { NI cap; tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* data[SEQ_DECL_SIZE]; };
struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content { NI cap; tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* data[SEQ_DECL_SIZE]; };
struct tySequence__8Np6tlClE5az1CyqZdN19bQ_Content { NI cap; tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ data[SEQ_DECL_SIZE]; };
struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content { NI cap; tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA* data[SEQ_DECL_SIZE]; };
struct tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field0;
	NimStringV2 Field1;
};
struct tySequence__E0kio2ZnplNTuln9bsnljSA_Content { NI cap; tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ data[SEQ_DECL_SIZE]; };
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
	NI Field0;
	NimStringV2 Field1;
	NI32 Field2;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content { NI cap; tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE]; };
struct tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw {
	NimStringV2 fullPath;
	NimStringV2 projPath;
	NimStringV2 shortName;
	NimStringV2 quotedName;
	NimStringV2 quotedFullName;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ lines;
	NimStringV2 dirtyFile;
	NimStringV2 hash;
	NIM_BOOL dirty;
};
struct tySequence__hTEiKNj3evQAjIXUI21elA_Content { NI cap; tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw data[SEQ_DECL_SIZE]; };
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
	NI Field0;
	NimStringV2 Field1;
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content { NI cap; tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE]; };
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; };
typedef NU8 tySet_tyEnum_CfileFlag__qhMBL5cBz484papsb5WgFQ;
struct tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg {
	NimStringV2 nimname;
	NimStringV2 cname;
	NimStringV2 obj;
	tySet_tyEnum_CfileFlag__qhMBL5cBz484papsb5WgFQ flags;
	NimStringV2 customArgs;
};
struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content { NI cap; tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg data[SEQ_DECL_SIZE]; };
struct tyTuple__Oubp8LPEu86EPyDuc56AXg {
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* Field0;
	NI Field1;
};
struct tySequence__hRbbzIynOoxrYjHTIKZ3Gw_Content { NI cap; tyTuple__Oubp8LPEu86EPyDuc56AXg data[SEQ_DECL_SIZE]; };
struct tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA {
	NCSTRING procname;
	NI line;
	NCSTRING filename;
};
struct tySequence__S89cE01OvNjsN9c71FKsSrqQ_Content { NI cap; tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size_p0, NI alignment_p1);
N_LIB_PRIVATE N_CLOSURE(NimStringV2, typeToString__types_u860)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1, void* ClE_0);
N_LIB_PRIVATE N_CLOSURE(tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q, getPrefer__types_u833)(tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p0, void* ClE_0);
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, eqcopy___ast_u3381)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3378)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0);
static N_INLINE(NIM_BOOL, isIntLit__types_u179)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u2694)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___system_u2700)(NimStringV2* dest_p0, NimStringV2 src_p1);
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_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);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___systemZdollars_u29)(NI64 xX60gensym4__p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rawNewString)(NI space_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u2691)(NimStringV2 dest_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elementType__ast_u5331)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**, X5BX5D___ast_u5281)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** s_p0, NI s_p0Len_0, NI i_p1);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, last__ast_u5278)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a_p0, NimStringV2 b_p1);
static N_INLINE(NIM_BOOL, equalMem__system_u1750)(void* a_p0, void* b_p1, NI size_p2);
static N_INLINE(int, nimCmpMem)(void* a_p0, void* b_p1, NI size_p2);
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6254)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u4577)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** dest_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p1);
static N_INLINE(NIM_BOOL, genericParamHasConstraints__ast_u5654)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, prepareAdd)(NimStringV2* s_p0, NI addLen_p1);
static N_INLINE(void, appendChar)(NimStringV2* dest_p0, NIM_CHAR c_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u4574)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dest_p0);
static N_INLINE(void, addTypeFlags__types_u821)(NimStringV2* name_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericHead__ast_u5376)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(void, nimAddCharV1)(NimStringV2* s_p0, NIM_CHAR c_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, typeBodyImpl__ast_u5369)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, renderTree__renderer_u59)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg renderFlags_p1);
static N_INLINE(NIM_BOOL, hasElementType__ast_u5660)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipModifier__ast_u5338)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, base__ast_u5351)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, indexType__ast_u5345)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rangeToStr__types_u804)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, valueToString__types_u798)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___systemZdollars_u54)(NU64 xX60gensym9__p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___system_u4725)(NF x_p0);
static N_INLINE(NI, len__ast_u3190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(NIM_BOOL, isEmptyTupleType__ast_u5666)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(NIM_BOOL, isSingletonTupleType__ast_u5672)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(NIM_BOOL, isOutParam__ast_u7655)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6246)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* s_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, returnType__ast_u5354)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___ast_u26)(tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ e_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3255)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, effectSpec__trees_u307)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw effectType_p1);
static N_INLINE(void, addSep__pureZstrutils_u1498)(NimStringV2* dest_p0, NimStringV2 sep_p1, NI startLen_p2);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___renderer_u2166)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3252)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* dest_p0);
static N_INLINE(NI, safeLen__ast_u3197)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, typeToString__types_u54)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuFormatSingleElem)(NimStringV2 formatstr_p0, NimStringV2 a_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___types_u4555)(tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA* dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicStatic)(void* p_p0, TNimTypeV2* desc_p1);
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NOINLINE(void, rememberCycle__system_u3492)(NIM_BOOL isDestroyAction_p0, tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* s_p1, TNimTypeV2* desc_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___types_u4530)(tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimRawDispose)(void* p_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elemType__types_u254)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConcept__types_u3423)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, baseClass__ast_u5348)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(NI, len__ast_u5502)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, reduceToBase__types_u4300)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0);
N_LIB_PRIVATE N_NIMCALL(void, initSameTypeClosure__types_u1545)(tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* Result);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeAux__types_u1805)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_p1, tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* c_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipTypes__ast_u5379)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kinds_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u3387)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipGenericAlias__types_u2162)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericAlias__types_u2142)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(NI, kidsLen__ast_u5648)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(NIM_BOOL, sameFlags__types_u2165)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__trees_u63)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* b_p1, NIM_BOOL strictSymEquality_p2);
static N_INLINE(NIM_BOOL, sameTupleLengths__ast_u5508)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__types_u1672)(tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p2);
static N_INLINE(NIM_BOOL, contains__types_u1694)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ* a_p0, NI a_p0Len_0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ item_p1);
static N_INLINE(NI, find__types_u1699)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ* a_p0, NI a_p0Len_0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ item_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___types_u1719)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__types_u1767)(tySequence__8Np6tlClE5az1CyqZdN19bQ* x_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTuple__types_u1956)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* c_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___ast_u3375)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameChildrenAux__types_u2134)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* c_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNilAux__types_u1809)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* c_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstraints__types_u1911)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameValue__astalgo_u63)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* b_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___types_u1550)(tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___types_u1571)(tySequence__8Np6tlClE5az1CyqZdN19bQ dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, alignedDealloc)(void* p_p0, NI align_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, iterOverType__types_u76)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyProc__aFU8JO3OZrh5M9aNLBLtcZA iter_p1, RootObj* closure_p2);
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(NIM_BOOL, iterOverTypeAux__types_u304)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, tyProc__aFU8JO3OZrh5M9aNLBLtcZA iter_p2, RootObj* closure_p3);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__astyaml_u223)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* s_p0, NI key_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, iterOverNode__types_u309)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyProc__aFU8JO3OZrh5M9aNLBLtcZA iter_p2, RootObj* closure_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZcollectionsZintsets_u230)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericTypeIter__types_u3442)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, RootObj* closure_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, enumHasHoles__types_u271)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__types_u283)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, NIM_BOOL allowEnumWithHoles_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, firstOrd__types_u1182)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, getOrdValue__types_u167)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, getOrdValueAux__types_u148)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, NIM_BOOL* err_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, toInt128__int128_u717)(NU64 arg_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, toInt128__int128_u937)(NI64 arg_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, toInt128__types_u1207)(NI arg_p0);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_u1227)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA msg_p2, NimStringV2 arg_p3, tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w eh_p4, tyTuple__kN8up2W6YKc5YA9avn5mV5w* info2_p5, NIM_BOOL isRaw_p6, NIM_BOOL ignoreError_p7);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___ast_u182)(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg e_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, toInt128__types_u1308)(NU arg_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, lastOrd__types_u1304)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(NF, getFloatValue__types_u176)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(NF, firstFloat__types_u1274)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_u1598)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, NimStringV2 errMsg_p2, tyTuple__kN8up2W6YKc5YA9avn5mV5w* info2_p3);
N_LIB_PRIVATE N_NIMCALL(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*, newPartialConfigRef__options_u2157)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___options_u2135)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NF, lastFloat__types_u1414)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg, targetSizeSignedToKind__types_u1294)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg, targetSizeUnsignedToKind__types_u1297)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, lengthOrd__types_u1505)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, plus___int128_u615)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg b_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, minus___int128_u641)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compatibleExceptions__types_u3534)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* se_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* re_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefectException__types_u3532)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NI, safeInheritanceDiff__types_u3510)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NIMCALL(NI, inheritanceDiff__types_u2799)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectTypes__types_u2018)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compatibleEffectsAux__types_u3522)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* se_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* re_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasIncompatibleEffect__types_u3544)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* se_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* re_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyContainer__types_u3751)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, addDeclaredLoc__astmsgs_u16)(NimStringV2* result_p0, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsUnresolvedTypeIter__types_u3465)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, RootObj* closure_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__types_u1826)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ flags_p2);
static N_INLINE(NIM_BOOL, contains__types_u1495)(tyObject_HSlice__6GiwMwOD9b9cke69bnAPbb5Ew s_p0, NF value_p1);
static N_INLINE(tyObject_HSlice__6GiwMwOD9b9cke69bnAPbb5Ew, dotdot___types_u1438)(NF a_p0, NF b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, floatRangeCheck__types_u1434)(NF x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__options_u959)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, NimStringV2 symbol_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuFormatOpenArray)(NimStringV2 formatstr_p0, NimStringV2* a_p1, NI a_p1Len_0);
N_LIB_PRIVATE N_NIMCALL(void, addDeclaredLoc__astmsgs_u32)(NimStringV2* result_p0, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p2);
N_LIB_PRIVATE N_NIMCALL(void, processPragmaAndCallConvMismatch__types_u4017)(NimStringV2* msg_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p2, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p3);
N_LIB_PRIVATE N_NIMCALL(void, addPragmaAndCallConvMismatch__types_u3909)(NimStringV2* message_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p2, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p3);
N_LIB_PRIVATE N_NIMCALL(tyTuple__7xZyzV9bi4zRvtJda9aONodA, getProcConvMismatch__types_u3811)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ rel_p3);
N_LIB_PRIVATE N_NIMCALL(void, setLengthStrV2)(NimStringV2* s_p0, NI newLen_p1);
N_LIB_PRIVATE N_NIMCALL(tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ, compatibleEffects__types_u3568)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p1);
N_LIB_PRIVATE N_NIMCALL(tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g, classify__types_u3703)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, takeType__types_u3758)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* arg_p1, tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p2, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p3);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, copyType__ast_u6238)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p2);
N_LIB_PRIVATE N_NIMCALL(void, copyTypeProps__modulegraphs_u10674)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, NI module_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u3261)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, copyTree__ast_u6891)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRecursiveStructuralType__types_u4076)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* cycleDetector_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___pureZcollectionsZintsets_u250)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* dest_p0, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* src_p1);
N_LIB_PRIVATE N_NIMCALL(NI16, floatInt64Align__options_u4319)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycleAux__types_u604)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* orig_p3, NIM_BOOL withRef_p4, NIM_BOOL hasTrace_p5);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameBackendType__types_u637)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, getAttachedOp__modulegraphs_u4987)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q op_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycleNode__types_u611)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* orig_p3, NIM_BOOL withRef_p4, NIM_BOOL hasTrace_p5);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGarbageCollectedRef__types_u555)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeFor__types_u423)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyProc__iTi2aSteq9cki9bjIjUU2gYg predicate_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeForAux__types_u366)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyProc__iTi2aSteq9cki9bjIjUU2gYg predicate_p1, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeNodeForAux__types_u370)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyProc__iTi2aSteq9cki9bjIjUU2gYg p_p1, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p2);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, lastSon__ast_u5208)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**, X5BX5D___ast_u5211)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** s_p0, NI s_p0Len_0, NI i_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGCRef__types_u532)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isPureObject__types_u121)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0);
N_LIB_PRIVATE N_NIMCALL(void, computeSizeAlign__types_u3084)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int128_u933)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, NI64 b_p1);
N_LIB_PRIVATE N_NIMCALL(NI64, toInt64Checked__int128_u103)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg arg_p0, NI64 onError_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, star___int128_u684)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, NI32 b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int128_u404)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg b_p1);
N_LIB_PRIVATE N_NIMCALL(NI64, toInt64__int128_u53)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg arg_p0);
N_LIB_PRIVATE N_NIMCALL(NI64, align__types_u2981)(NI64 address_p0, NI64 alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, align__types_u3071)(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw* arg_p0, NI32 value_p1);
N_LIB_PRIVATE N_NIMCALL(void, raiseIllegalTypeRecursion__types_u2994)(void);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__types_u5058)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___types_u2999)(tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g* dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimDestroyAndDispose)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u3694)(tySequence__S89cE01OvNjsN9c71FKsSrqQ dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___types_u3011)(tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g* dest_p0, void* env_p1);
static N_INLINE(void, nimTraceRefDyn)(void* q_p0, void* env_p1);
static N_INLINE(void, add__system_u3013)(tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg* s_p0, void** c_p1, TNimTypeV2* t_p2);
N_LIB_PRIVATE N_NIMCALL(void, resize__system_u3021)(tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg* s_p0);
static N_INLINE(NI, pluspercent___system_u785)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e_p0, NCSTRING ename_p1, NCSTRING procname_p2, NCSTRING filename_p3, NI line_p4);
N_LIB_PRIVATE N_NIMCALL(NI32, align__types_u2985)(NI32 address_p0, NI32 alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, inc__types_u3060)(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw* arg_p0, NI32 value_p1);
N_LIB_PRIVATE N_NIMCALL(NI32, finish__types_u3077)(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw* arg_p0);
static N_INLINE(NIM_BOOL, isObjDisplayCheck)(TNimTypeV2* source_p0, NI16 targetDepth_p1, NU32 token_p2);
static N_INLINE(Exception*, nimBorrowCurrentException)(void);
static N_INLINE(void, popCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u3656)(Exception** dest_p0, Exception* src_p1, NIM_BOOL cyclic_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObjectWithTypeFieldPredicate__types_u438)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, computeUnionObjectOffsetsFoldFunction__types_u3211)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, NIM_BOOL packed_p2, tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw* accum_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3699)(tySequence__9ahcSjIErJohSBBFLwuF56Q* dest_p0, tySequence__9ahcSjIErJohSBBFLwuF56Q src_p1);
N_LIB_PRIVATE N_NIMCALL(void, mergeBranch__types_u3074)(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw* arg_p0, tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw value_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3696)(tySequence__9ahcSjIErJohSBBFLwuF56Q dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, computeObjectOffsetsFoldFunction__types_u3144)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, NIM_BOOL packed_p2, tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw* accum_p3);
N_LIB_PRIVATE N_NIMCALL(NI64, computeSubObjectAlign__types_u3087)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(NI32, alignmentMax__types_u3067)(NI32 a_p0, NI32 b_p1);
N_LIB_PRIVATE N_NIMCALL(void, setOffsetsToUnknown__types_u3129)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(NIM_BOOL, lacksMTypeField__types_u2951)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, skipConv__types_u3729)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, incl__pureZcollectionsZintsets_u366)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* s_p0, NI key_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__astalgo_u2846)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* s_p0, NI key_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, nominalRoot__types_u4265)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRefPtrObject__types_u4254)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericConstraint__ast_u5678)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag, equalParam__types_u1868)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* a_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNil__types_u1851)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ flags_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTyRef__types_u576)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int128_u980)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, NI64 b_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u4583)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** dest_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, lookupInRecord__astalgo_u30)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* field_p1);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag, analyseObjectWithTypeFieldAux__types_u472)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isHiddenPointer__types_u594)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isManagedMemory__types_u558)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE TNimTypeV2 NTIv2__vHTkCMDgUg7IXUL0DKy59cA_;
static const struct {
  NI cap; NIM_CHAR data[0+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_3 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_4 = {0, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_3};
static const struct {
  NI cap; NIM_CHAR data[9+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_6 = { 9 | NIM_STRLIT_FLAG, " literal(" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_7 = {9, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_6};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_8 = { 1 | NIM_STRLIT_FLAG, ")" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_9 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_8};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_11 = { 4 | NIM_STRLIT_FLAG, "None" };
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_12 = { 4 | NIM_STRLIT_FLAG, "bool" };
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_13 = { 4 | NIM_STRLIT_FLAG, "char" };
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_14 = { 5 | NIM_STRLIT_FLAG, "empty" };
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_15 = { 5 | NIM_STRLIT_FLAG, "Alias" };
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_16 = { 11 | NIM_STRLIT_FLAG, "typeof(nil)" };
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_17 = { 7 | NIM_STRLIT_FLAG, "untyped" };
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_18 = { 5 | NIM_STRLIT_FLAG, "typed" };
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_19 = { 8 | NIM_STRLIT_FLAG, "typeDesc" };
static const struct {
  NI cap; NIM_CHAR data[17+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_20 = { 17 | NIM_STRLIT_FLAG, "GenericInvocation" };
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_21 = { 11 | NIM_STRLIT_FLAG, "GenericBody" };
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_22 = { 11 | NIM_STRLIT_FLAG, "GenericInst" };
static const struct {
  NI cap; NIM_CHAR data[12+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_23 = { 12 | NIM_STRLIT_FLAG, "GenericParam" };
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_24 = { 11 | NIM_STRLIT_FLAG, "distinct $1" };
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_25 = { 4 | NIM_STRLIT_FLAG, "enum" };
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_26 = { 11 | NIM_STRLIT_FLAG, "ordinal[$1]" };
static const struct {
  NI cap; NIM_CHAR data[13+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_27 = { 13 | NIM_STRLIT_FLAG, "array[$1, $2]" };
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_28 = { 6 | NIM_STRLIT_FLAG, "object" };
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_29 = { 5 | NIM_STRLIT_FLAG, "tuple" };
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_30 = { 7 | NIM_STRLIT_FLAG, "set[$1]" };
static const struct {
  NI cap; NIM_CHAR data[9+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_31 = { 9 | NIM_STRLIT_FLAG, "range[$1]" };
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_32 = { 4 | NIM_STRLIT_FLAG, "ptr " };
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_33 = { 4 | NIM_STRLIT_FLAG, "ref " };
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_34 = { 4 | NIM_STRLIT_FLAG, "var " };
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_35 = { 7 | NIM_STRLIT_FLAG, "seq[$1]" };
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_36 = { 4 | NIM_STRLIT_FLAG, "proc" };
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_37 = { 7 | NIM_STRLIT_FLAG, "pointer" };
static const struct {
  NI cap; NIM_CHAR data[13+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_38 = { 13 | NIM_STRLIT_FLAG, "OpenArray[$1]" };
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_39 = { 6 | NIM_STRLIT_FLAG, "string" };
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_40 = { 7 | NIM_STRLIT_FLAG, "cstring" };
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_41 = { 7 | NIM_STRLIT_FLAG, "Forward" };
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_42 = { 3 | NIM_STRLIT_FLAG, "int" };
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_43 = { 4 | NIM_STRLIT_FLAG, "int8" };
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_44 = { 5 | NIM_STRLIT_FLAG, "int16" };
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_45 = { 5 | NIM_STRLIT_FLAG, "int32" };
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_46 = { 5 | NIM_STRLIT_FLAG, "int64" };
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_47 = { 5 | NIM_STRLIT_FLAG, "float" };
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_48 = { 7 | NIM_STRLIT_FLAG, "float32" };
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_49 = { 7 | NIM_STRLIT_FLAG, "float64" };
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_50 = { 8 | NIM_STRLIT_FLAG, "float128" };
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_51 = { 4 | NIM_STRLIT_FLAG, "uint" };
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_52 = { 5 | NIM_STRLIT_FLAG, "uint8" };
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_53 = { 6 | NIM_STRLIT_FLAG, "uint16" };
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_54 = { 6 | NIM_STRLIT_FLAG, "uint32" };
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_55 = { 6 | NIM_STRLIT_FLAG, "uint64" };
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_56 = { 5 | NIM_STRLIT_FLAG, "owned" };
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_57 = { 4 | NIM_STRLIT_FLAG, "sink" };
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_58 = { 5 | NIM_STRLIT_FLAG, "lent " };
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_59 = { 11 | NIM_STRLIT_FLAG, "varargs[$1]" };
static const struct {
  NI cap; NIM_CHAR data[18+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_60 = { 18 | NIM_STRLIT_FLAG, "UncheckedArray[$1]" };
static const struct {
  NI cap; NIM_CHAR data[10+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_61 = { 10 | NIM_STRLIT_FLAG, "Error Type" };
static const struct {
  NI cap; NIM_CHAR data[16+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_62 = { 16 | NIM_STRLIT_FLAG, "BuiltInTypeClass" };
static const struct {
  NI cap; NIM_CHAR data[13+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_63 = { 13 | NIM_STRLIT_FLAG, "UserTypeClass" };
static const struct {
  NI cap; NIM_CHAR data[17+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_64 = { 17 | NIM_STRLIT_FLAG, "UserTypeClassInst" };
static const struct {
  NI cap; NIM_CHAR data[18+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_65 = { 18 | NIM_STRLIT_FLAG, "CompositeTypeClass" };
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_66 = { 8 | NIM_STRLIT_FLAG, "inferred" };
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_67 = { 3 | NIM_STRLIT_FLAG, "and" };
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_68 = { 2 | NIM_STRLIT_FLAG, "or" };
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_69 = { 3 | NIM_STRLIT_FLAG, "not" };
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_70 = { 3 | NIM_STRLIT_FLAG, "any" };
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_71 = { 6 | NIM_STRLIT_FLAG, "static" };
static const struct {
  NI cap; NIM_CHAR data[12+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_72 = { 12 | NIM_STRLIT_FLAG, "TypeFromExpr" };
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_73 = { 7 | NIM_STRLIT_FLAG, "concept" };
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_74 = { 4 | NIM_STRLIT_FLAG, "void" };
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_75 = { 8 | NIM_STRLIT_FLAG, "iterable" };
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_78 = { 1 | NIM_STRLIT_FLAG, "{" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_79 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_78};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_80 = { 1 | NIM_STRLIT_FLAG, "}" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_81 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_80};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_82 = { 2 | NIM_STRLIT_FLAG, ": " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_83 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_82};
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_85 = { 8 | NIM_STRLIT_FLAG, " not nil" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_86 = {8, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_85};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_87 = {3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_42};
static const struct {
  NI cap; NIM_CHAR data[12+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_88 = { 12 | NIM_STRLIT_FLAG, "int literal(" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_89 = {12, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_88};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_90 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_8};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_92 = { 2 | NIM_STRLIT_FLAG, ", " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_93 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_96 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_99 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_101 = { 8 | NIM_STRLIT_FLAG, "typedesc" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_102 = {8, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_101};
static const struct {
  NI cap; NIM_CHAR data[9+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_103 = { 9 | NIM_STRLIT_FLAG, "typedesc[" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_104 = {9, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_103};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_106 = { 1 | NIM_STRLIT_FLAG, "]" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_107 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_106};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_108 = { 7 | NIM_STRLIT_FLAG, "static[" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_109 = {7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_108};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_111 = {0, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_3};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_112 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_106};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_113 = { 1 | NIM_STRLIT_FLAG, "(" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_114 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_113};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_115 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_8};
static const struct {
  NI cap; NIM_CHAR data[25+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_117 = { 25 | NIM_STRLIT_FLAG, "<invalid tyUserTypeClass>" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_118 = {25, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_117};
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_119 = { 3 | NIM_STRLIT_FLAG, "var" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_120 = {3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_119};
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_121 = { 3 | NIM_STRLIT_FLAG, "ref" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_122 = {3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_121};
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_123 = { 3 | NIM_STRLIT_FLAG, "ptr" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_124 = {3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_123};
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_125 = { 3 | NIM_STRLIT_FLAG, "seq" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_126 = {3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_125};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_127 = { 5 | NIM_STRLIT_FLAG, "array" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_128 = {5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_127};
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_129 = { 3 | NIM_STRLIT_FLAG, "set" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_130 = {3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_129};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_131 = { 5 | NIM_STRLIT_FLAG, "range" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_132 = {5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_131};
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_133 = { 8 | NIM_STRLIT_FLAG, "distinct" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_134 = {8, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_133};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_135 = {4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_36};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_136 = {6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_28};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_137 = {5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_29};
static const struct {
  NI cap; NIM_CHAR data[9+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_138 = { 9 | NIM_STRLIT_FLAG, "openArray" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_139 = {9, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_138};
static const struct {
  NI cap; NIM_CHAR data[9+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_141 = { 9 | NIM_STRLIT_FLAG, "inferred[" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_142 = {9, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_141};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_144 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_106};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_145 = { 1 | NIM_STRLIT_FLAG, "[" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_146 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_145};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_147 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_149 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_106};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_150 = { 5 | NIM_STRLIT_FLAG, " and " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_151 = {5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_150};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_153 = { 4 | NIM_STRLIT_FLAG, " or " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_154 = {4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_153};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_156 = { 4 | NIM_STRLIT_FLAG, "not " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_157 = {4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_156};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_159 = {7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_17};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_160 = { 7 | NIM_STRLIT_FLAG, "unknown" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_161 = {7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_160};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_162 = { 7 | NIM_STRLIT_FLAG, "typeof(" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_163 = {7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_162};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_164 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_8};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_165 = {5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_127};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_166 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_145};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_167 = { 7 | NIM_STRLIT_FLAG, "static(" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_168 = {7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_167};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_169 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_8};
static const struct {
  NI cap; NIM_CHAR data[15+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_170 = { 15 | NIM_STRLIT_FLAG, "<invalid value>" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_171 = {15, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_170};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_172 = { 2 | NIM_STRLIT_FLAG, ".." };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_173 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_172};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_174 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_176 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_145};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_178 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_180 = { 14 | NIM_STRLIT_FLAG, "UncheckedArray" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_181 = {14, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_180};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_182 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_145};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_184 = {3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_125};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_185 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_145};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_187 = { 7 | NIM_STRLIT_FLAG, "ordinal" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_188 = {7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_187};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_189 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_145};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_191 = {3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_129};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_192 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_145};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_194 = {9, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_138};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_195 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_145};
static const struct {
  NI cap; NIM_CHAR data[9+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_197 = { 9 | NIM_STRLIT_FLAG, "distinct " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_198 = {9, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_197};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_200 = {8, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_75};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_201 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_145};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_203 = { 6 | NIM_STRLIT_FLAG, "tuple[" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_204 = {6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_203};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_205 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_82};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_207 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_208 = { 7 | NIM_STRLIT_FLAG, "tuple[]" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_209 = {7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_208};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_210 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_113};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_212 = { 2 | NIM_STRLIT_FLAG, ",)" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_213 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_212};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_214 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_113};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_215 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_217 = { 4 | NIM_STRLIT_FLAG, "out " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_218 = {4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_217};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_220 = { 6 | NIM_STRLIT_FLAG, "range " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_221 = {6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_220};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_222 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_113};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_224 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_8};
static const struct {
  NI cap; NIM_CHAR data[9+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_225 = { 9 | NIM_STRLIT_FLAG, "iterator " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_226 = {9, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_225};
static const struct {
  NI cap; NIM_CHAR data[9+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_227 = { 9 | NIM_STRLIT_FLAG, "template " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_228 = {9, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_227};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_229 = { 6 | NIM_STRLIT_FLAG, "macro " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_230 = {6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_229};
static const struct {
  NI cap; NIM_CHAR data[10+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_231 = { 10 | NIM_STRLIT_FLAG, "converter " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_232 = {10, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_231};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_233 = { 5 | NIM_STRLIT_FLAG, "proc " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_234 = {5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_233};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_235 = {5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_233};
static const struct {
  NI cap; NIM_CHAR data[22+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_236 = { 22 | NIM_STRLIT_FLAG, "[*missing parameters*]" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_237 = {22, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_236};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_238 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_113};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_239 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_240 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_82};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_242 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_82};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_244 = {0, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_3};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_245 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_246 = { 8 | NIM_STRLIT_FLAG, "raises: " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_247 = {8, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_246};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_248 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const struct {
  NI cap; NIM_CHAR data[12+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_249 = { 12 | NIM_STRLIT_FLAG, "noSideEffect" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_250 = {12, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_249};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_251 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_252 = { 6 | NIM_STRLIT_FLAG, "gcsafe" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_253 = {6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_252};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_254 = {0, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_3};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_255 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_256 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_257 = { 11 | NIM_STRLIT_FLAG, "effectsOf: " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_258 = {11, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_257};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_259 = {0, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_3};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_260 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_261 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const struct {
  NI cap; NIM_CHAR data[20+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_262 = { 20 | NIM_STRLIT_FLAG, "raises: <inferred> [" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_263 = {20, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_262};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_264 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_106};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_265 = { 2 | NIM_STRLIT_FLAG, "{." };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_266 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_265};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_267 = { 2 | NIM_STRLIT_FLAG, ".}" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_268 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_267};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_270 = { 5 | NIM_STRLIT_FLAG, "sink " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_271 = {5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_270};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_273 = { 6 | NIM_STRLIT_FLAG, "owned " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_274 = {6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_273};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_277 = {
0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_278 = {
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_279 = {
0x00, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_280 = {
0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_281 = {
0x10, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_282 = {
0x10, 0x08, 0x10, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_283 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[26+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_284 = { 26 | NIM_STRLIT_FLAG, "invalid kind for firstOrd(" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_285 = {26, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_284};
static const struct {
  NI cap; NIM_CHAR data[60+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_287 = { 60 | NIM_STRLIT_FLAG, "/home/runner/work/nightlies/nightlies/nim/compiler/types.nim" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_288 = {26, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_284};
static const struct {
  NI cap; NIM_CHAR data[25+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_290 = { 25 | NIM_STRLIT_FLAG, "invalid kind for lastOrd(" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_291 = {25, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_290};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_293 = {25, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_290};
static const struct {
  NI cap; NIM_CHAR data[28+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_295 = { 28 | NIM_STRLIT_FLAG, "invalid kind for firstFloat(" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_296 = {28, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_295};
static const struct {
  NI cap; NIM_CHAR data[27+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_298 = { 27 | NIM_STRLIT_FLAG, "invalid kind for lastFloat(" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_299 = {27, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_298};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_301 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_302 = {
0x10, 0xa9, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_303 = { 6 | NIM_STRLIT_FLAG, "Defect" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_304 = {6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_303};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_305 = {
0x10, 0x09, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_306 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_82};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_307 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_92};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_308 = {2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_82};
static const struct {
  NI cap; NIM_CHAR data[33+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_309 = { 33 | NIM_STRLIT_FLAG, "invalid kind for floatRangeCheck:" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_310 = {33, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_309};
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_312 = { 3 | NIM_STRLIT_FLAG, " = " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_313 = {3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_312};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_314 = { 14 | NIM_STRLIT_FLAG, "type mismatch:" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_315 = {14, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_314};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_316 = { 1 | NIM_STRLIT_FLAG, "\012" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_317 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_316};
static const struct {
  NI cap; NIM_CHAR data[21+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_318 = { 21 | NIM_STRLIT_FLAG, "nimLegacyTypeMismatch" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_319 = {21, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_318};
static const struct {
  NI cap; NIM_CHAR data[9+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_320 = { 9 | NIM_STRLIT_FLAG, " got <$1>" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_321 = {9, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_320};
static const struct {
  NI cap; NIM_CHAR data[18+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_322 = { 18 | NIM_STRLIT_FLAG, " got \'$1\' for \'$2\'" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_323 = {18, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_322};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_324 = {1, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_316};
static const struct {
  NI cap; NIM_CHAR data[18+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_325 = { 18 | NIM_STRLIT_FLAG, " but expected \'$1\'" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_326 = {18, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_325};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_327 = {0, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_3};
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_328 = {0, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_3};
static const struct {
  NI cap; NIM_CHAR data[68+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_329 = { 68 | NIM_STRLIT_FLAG, "\012  Calling convention mismatch: got \'{.$1.}\', but expected \'{.$2.}\'." };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_330 = {68, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_329};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_331 = { 14 | NIM_STRLIT_FLAG, "noSideEffect, " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_332 = {14, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_331};
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_333 = { 8 | NIM_STRLIT_FLAG, "gcsafe, " };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_334 = {8, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_333};
static const struct {
  NI cap; NIM_CHAR data[56+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_335 = { 56 | NIM_STRLIT_FLAG, "\012  Pragma mismatch: got \'{.$1.}\', but expected \'{.$2.}\'." };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_336 = {56, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_335};
static const struct {
  NI cap; NIM_CHAR data[22+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_337 = { 22 | NIM_STRLIT_FLAG, "\012.raise effects differ" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_338 = {22, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_337};
static const struct {
  NI cap; NIM_CHAR data[33+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_339 = { 33 | NIM_STRLIT_FLAG, "\012.raise effect is \'can raise any\'" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_340 = {33, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_339};
static const struct {
  NI cap; NIM_CHAR data[20+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_341 = { 20 | NIM_STRLIT_FLAG, "\012.tag effects differ" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_342 = {20, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_341};
static const struct {
  NI cap; NIM_CHAR data[33+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_343 = { 33 | NIM_STRLIT_FLAG, "\012.tag effect is \'any tag allowed\'" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_344 = {33, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_343};
static const struct {
  NI cap; NIM_CHAR data[30+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_345 = { 30 | NIM_STRLIT_FLAG, "\012.effectsOf annotations differ" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_346 = {30, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_345};
static const struct {
  NI cap; NIM_CHAR data[34+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_347 = { 34 | NIM_STRLIT_FLAG, "\012.notTag catched an illegal effect" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_348 = {34, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_347};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_350 = {
0x10, 0xa9, 0x90, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_351 = {3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_312};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_352 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_353 = {
0x10, 0xa8, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_354 = {
0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_355 = {
0x10, 0x08, 0x80, 0x00, 0x00, 0xc0, 0x80, 0x00,
0x00}
;
N_LIB_PRIVATE TNimTypeV2 NTIv2__79aknCeBcRoLPl9bLAa9amr5g_;
static const struct {
  NI cap; NIM_CHAR data[22+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_357 = { 22 | NIM_STRLIT_FLAG, "illegal type recursion" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_358 = {22, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_357};
static const struct {
  NI cap; NIM_CHAR data[40+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_359 = { 40 | NIM_STRLIT_FLAG, "union type may not have an object header" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_360 = {40, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_359};
static const struct {
  NI cap; NIM_CHAR data[74+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_362 = { 74 | NIM_STRLIT_FLAG, "/home/runner/work/nightlies/nightlies/nim/compiler/sizealignoffsetimpl.nim" };
static const struct {
  NI cap; NIM_CHAR data[38+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_363 = { 38 | NIM_STRLIT_FLAG, "Illegal use of ``case`` in union type." };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_364 = {38, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_363};
static const struct {
  NI cap; NIM_CHAR data[21+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_366 = { 21 | NIM_STRLIT_FLAG, "computeSubObjectAlign" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_367 = {21, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_366};
static const struct {
  NI cap; NIM_CHAR data[52+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_369 = { 52 | NIM_STRLIT_FLAG, "computeObjectOffsetsFoldFunction(record case branch)" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_370 = {52, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_369};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__PpBJsMJcrcWrpLTS6mci1g_372 = {
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_373 = {6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_303};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__PpBJsMJcrcWrpLTS6mci1g_374 = { 14 | NIM_STRLIT_FLAG, "CatchableError" };
static const NimStringV2 TM__PpBJsMJcrcWrpLTS6mci1g_375 = {14, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_374};
N_LIB_PRIVATE NIM_CONST tyArray__g5HJXmxdfkDecNUrtKDkZQ typeToStr__types_u814 = {{4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_11},
{4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_12},
{4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_13},
{5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_14},
{5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_15},
{11, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_16},
{7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_17},
{5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_18},
{8, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_19},
{17, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_20},
{11, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_21},
{11, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_22},
{12, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_23},
{11, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_24},
{4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_25},
{11, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_26},
{13, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_27},
{6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_28},
{5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_29},
{7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_30},
{9, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_31},
{4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_32},
{4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_33},
{4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_34},
{7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_35},
{4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_36},
{7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_37},
{13, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_38},
{6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_39},
{7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_40},
{7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_41},
{3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_42},
{4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_43},
{5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_44},
{5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_45},
{5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_46},
{5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_47},
{7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_48},
{7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_49},
{8, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_50},
{4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_51},
{5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_52},
{6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_53},
{6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_54},
{6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_55},
{5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_56},
{4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_57},
{5, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_58},
{11, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_59},
{18, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_60},
{10, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_61},
{16, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_62},
{13, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_63},
{17, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_64},
{18, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_65},
{8, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_66},
{3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_67},
{2, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_68},
{3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_69},
{3, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_70},
{6, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_71},
{12, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_72},
{7, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_73},
{4, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_74},
{8, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_75}}
;
extern NIM_CONST tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg Zero__int128_u8;
extern NIM_CONST tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA unknownLineInfo__lineinfos_u364;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_286 = {{60, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_287},
((NI)838),
((NI)11)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_289 = {{60, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_287},
((NI)843),
((NI)9)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_292 = {{60, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_287},
((NI)934),
((NI)11)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_294 = {{60, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_287},
((NI)939),
((NI)9)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_297 = {{60, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_287},
((NI)859),
((NI)17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_300 = {{60, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_287},
((NI)955),
((NI)17)}
;
extern NIM_CONST tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg One__int128_u9;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_311 = {{60, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_287},
((NI)974),
((NI)17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_349 = {{60, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_287},
((NI)1898),
((NI)14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_361 = {{74, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_362},
((NI)380),
((NI)20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_365 = {{74, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_362},
((NI)174),
((NI)14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_368 = {{74, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_362},
((NI)93),
((NI)21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_371 = {{74, (NimStrPayload*)&TM__PpBJsMJcrcWrpLTS6mci1g_362},
((NI)135),
((NI)23)}
;
N_LIB_PRIVATE NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg abstractRange__types_u92 = {
0x10, 0xa9, 0x10, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST NU32 TM__PpBJsMJcrcWrpLTS6mci1g_2[2] = {3701606400, 1961101312};
N_LIB_PRIVATE TNimTypeV2 NTIv2__vHTkCMDgUg7IXUL0DKy59cA_ = {.destructor = (void*)NIM_NIL, .size = sizeof(tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA), .align = (NI16) NIM_ALIGNOF(tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA), .depth = 1, .display = TM__PpBJsMJcrcWrpLTS6mci1g_2, .traceImpl = (void*)NIM_NIL, .flags = 0};
extern NIM_BOOL nimInErrorMode__system_u4138;
extern tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A eqTypeFlags__ast_u326;
static NIM_CONST NU32 TM__PpBJsMJcrcWrpLTS6mci1g_356[5] = {3701606400, 1285336064, 561960192, 1871340544, 3643214080};
N_LIB_PRIVATE TNimTypeV2 NTIv2__79aknCeBcRoLPl9bLAa9amr5g_ = {.destructor = (void*)rttiDestroy__types_u5058, .size = sizeof(tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g), .align = (NI16) NIM_ALIGNOF(tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g), .depth = 4, .display = TM__PpBJsMJcrcWrpLTS6mci1g_356, .traceImpl = (void*)eqtrace___types_u3011, .flags = 0};
extern Exception* currException__system_u3623;
N_LIB_PRIVATE N_CLOSURE(tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q, getPrefer__types_u833)(tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p0, void* ClE_0) {
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q result;
	tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA* colonenvP__1;
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q T1_;
	colonenvP__1 = (tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA*) ClE_0;
	T1_ = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
	{
		if (!((*colonenvP__1).preferToplevel0 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)6) || (*colonenvP__1).preferToplevel0 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)7))) goto LA4_;
		result = (*colonenvP__1).preferToplevel0;
	}
	goto LA2_;
LA4_: ;
	{
		result = prefer_p0;
	}
LA2_: ;
	return result;
}
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);
}
static N_INLINE(NIM_BOOL, isIntLit__types_u179)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31));
	if (!(T2_)) goto LA3_;
	T2_ = !(((*t_p0).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((*(*t_p0).n).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6));
LA4_: ;
	result = T1_;
	return result;
}
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, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1) {
	{
		if (!(((NI)0) < src_p1.len)) goto LA3_;
		copyMem__system_u1742(((void*) ((&(*(*dest_p0).p).data[(*dest_p0).len]))), ((void*) ((&(*src_p1.p).data[((NI)0)]))), (src_p1.len));
		(*dest_p0).len += src_p1.len;
		(*(*dest_p0).p).data[(*dest_p0).len] = 0;
	}
LA3_: ;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**, X5BX5D___ast_u5281)(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(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4138);
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elementType__ast_u5331)(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_u5281((((*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_u3381(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, last__ast_u5278)(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_u5281((((*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_u3381(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a_p0, void* b_p1, NI size_p2) {
	int result;
	result = memcmp(a_p0, b_p1, ((size_t) (size_p2)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_u1750)(void* a_p0, void* b_p1, NI size_p2) {
	NIM_BOOL result;
	int T1_;
	T1_ = (int)0;
	T1_ = nimCmpMem(a_p0, b_p1, size_p2);
	result = (T1_ == ((NI32)0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a_p0, NimStringV2 b_p1) {
	NIM_BOOL result;
	NI alen_1;
	NI blen_1;
{	result = NIM_FALSE;
	alen_1 = a_p0.len;
	blen_1 = b_p1.len;
	{
		if (!(alen_1 == blen_1)) goto LA3_;
		{
			if (!(alen_1 == ((NI)0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
LA7_: ;
		result = equalMem__system_u1750(((void*) ((&a_p0.p->data[((NI)0)]))), ((void*) ((&b_p1.p->data[((NI)0)]))), (alen_1));
		goto BeforeRet_;
	}
LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6254)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u4577(&result, (*s_p0).ownerField);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, genericParamHasConstraints__ast_u5654)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = (((NI)0) < T1_);
	return result;
}
static N_INLINE(void, appendChar)(NimStringV2* dest_p0, NIM_CHAR c_p1) {
	(*(*dest_p0).p).data[(*dest_p0).len] = c_p1;
	(*dest_p0).len += ((NI)1);
	(*(*dest_p0).p).data[(*dest_p0).len] = 0;
}
static N_INLINE(void, addTypeFlags__types_u821)(NimStringV2* name_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1) {
	{
		if (!(((*typ_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0)) goto LA3_;
		prepareAdd((&(*name_p0)), 8);
appendString((&(*name_p0)), TM__PpBJsMJcrcWrpLTS6mci1g_86);
	}
LA3_: ;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericHead__ast_u5376)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimAddCharV1)(NimStringV2* s_p0, NIM_CHAR c_p1) {
	prepareAdd(s_p0, ((NI)1));
	(*(*s_p0).p).data[(*s_p0).len] = c_p1;
	(*s_p0).len += ((NI)1);
	(*(*s_p0).p).data[(*s_p0).len] = 0;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, typeBodyImpl__ast_u5369)(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_u5281((((*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_u3381(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, hasElementType__ast_u5660)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = (((NI)0) < T1_);
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipModifier__ast_u5338)(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_u5281((((*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_u3381(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, base__ast_u5351)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*t_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, indexType__ast_u5345)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, valueToString__types_u798)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	switch ((*a_p0).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)5):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)11) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)15):
	{
		result = dollar___systemZdollars_u54(((NU64) ((*a_p0)._kind_1.intVal)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)10):
	{
		result = dollar___systemZdollars_u29((*a_p0)._kind_1.intVal);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)16) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)19):
	{
		result = dollar___system_u4725((*a_p0)._kind_2.floatVal);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)20) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)22):
	{
		eqcopy___system_u2694((&result), (*a_p0)._kind_3.strVal);
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)62):
	{
		NimStringV2 colontmpD_;
		NimStringV2 T7_;
		tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg T8_;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		T7_.len = 0; T7_.p = NIM_NIL;
		T8_ = 0;
		colontmpD_ = renderTree__renderer_u59((*a_p0)._kind_6.sons.p->data[((NI)0)], T8_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		T7_ = rawNewString(colontmpD_.len + 8);
appendString((&T7_), TM__PpBJsMJcrcWrpLTS6mci1g_168);
appendString((&T7_), colontmpD_);
appendString((&T7_), TM__PpBJsMJcrcWrpLTS6mci1g_169);
		result = T7_;
		{
			LA6_:;
		}
		{
			eqdestroy___system_u2691(colontmpD_);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = TM__PpBJsMJcrcWrpLTS6mci1g_171;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rangeToStr__types_u804)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NimStringV2 result;
	NimStringV2 colontmpD_;
	NimStringV2 colontmpD__2;
	NimStringV2 T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
	T2_.len = 0; T2_.p = NIM_NIL;
	colontmpD_ = valueToString__types_u798((*n_p0)._kind_6.sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__2 = valueToString__types_u798((*n_p0)._kind_6.sons.p->data[((NI)1)]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_ = rawNewString(colontmpD_.len + colontmpD__2.len + 2);
appendString((&T2_), colontmpD_);
appendString((&T2_), TM__PpBJsMJcrcWrpLTS6mci1g_173);
appendString((&T2_), colontmpD__2);
	result = T2_;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(colontmpD__2);
		eqdestroy___system_u2691(colontmpD_);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, len__ast_u3190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NI result;
	NI T1_;
	T1_ = (*n_p0)._kind_6.sons.len;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isEmptyTupleType__ast_u5666)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = (T1_ == ((NI)0));
	return result;
}
static N_INLINE(NIM_BOOL, isSingletonTupleType__ast_u5672)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = (T1_ == ((NI)1));
	return result;
}
static N_INLINE(NIM_BOOL, isOutParam__ast_u7655)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	result = (((*t_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)45)))&63U)))!=0);
	return result;
}
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6246)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* s_p0) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u4577(&result, (*s_p0).ownerField);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, returnType__ast_u5354)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, addSep__pureZstrutils_u1498)(NimStringV2* dest_p0, NimStringV2 sep_p1, NI startLen_p2) {
	{
		if (!(startLen_p2 < (*dest_p0).len)) goto LA3_;
		prepareAdd((&(*dest_p0)), sep_p1.len + 0);
appendString((&(*dest_p0)), sep_p1);
	}
LA3_: ;
}
static N_INLINE(NI, safeLen__ast_u3197)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		if (!((*n_p0).kind >= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)0) && (*n_p0).kind <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23))) goto LA3_;
		result = ((NI)0);
	}
	goto LA1_;
LA3_: ;
	{
		result = len__ast_u3190(n_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_CLOSURE(NimStringV2, typeToString__types_u860)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1, void* ClE_0) {
	NimStringV2 result;
	tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA* colonenvP__1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_2;
	tyProc__0kHfnyJtoro9cA3P1Wkcb4g T2_;
NIM_BOOL oldNimErrFin35_;
NIM_BOOL oldNimErrFin45_;
NIM_BOOL oldNimErrFin51_;
NIM_BOOL oldNimErrFin75_;
NIM_BOOL oldNimErrFin17_;
NIM_BOOL oldNimErrFin102_;
NIM_BOOL oldNimErrFin98_;
NIM_BOOL oldNimErrFin124_;
NIM_BOOL oldNimErrFin120_;
NIM_BOOL oldNimErrFin146_;
NIM_BOOL oldNimErrFin142_;
NIM_BOOL oldNimErrFin170_;
NIM_BOOL oldNimErrFin164_;
NIM_BOOL oldNimErrFin195_;
NIM_BOOL oldNimErrFin224_;
NIM_BOOL oldNimErrFin219_;
NIM_BOOL oldNimErrFin212_;
NIM_BOOL oldNimErrFin264_;
NIM_BOOL oldNimErrFin249_;
NIM_BOOL oldNimErrFin275_;
NIM_BOOL oldNimErrFin272_;
NIM_BOOL oldNimErrFin294_;
NIM_BOOL oldNimErrFin311_;
NIM_BOOL oldNimErrFin327_;
NIM_BOOL oldNimErrFin355_;
NIM_BOOL oldNimErrFin361_;
NIM_BOOL oldNimErrFin350_;
NIM_BOOL oldNimErrFin375_;
NIM_BOOL oldNimErrFin393_;
NIM_BOOL oldNimErrFin404_;
NIM_BOOL oldNimErrFin415_;
NIM_BOOL oldNimErrFin426_;
NIM_BOOL oldNimErrFin432_;
NIM_BOOL oldNimErrFin449_;
NIM_BOOL oldNimErrFin481_;
NIM_BOOL oldNimErrFin494_;
NIM_BOOL oldNimErrFin510_;
NIM_BOOL oldNimErrFin535_;
NIM_BOOL oldNimErrFin561_;
NIM_BOOL oldNimErrFin589_;
NIM_BOOL oldNimErrFin611_;
NIM_BOOL oldNimErrFin680_;
NIM_BOOL oldNimErrFin674_;
NIM_BOOL oldNimErrFin666_;
NIM_BOOL oldNimErrFin541_;
NIM_BOOL oldNimErrFin705_;
NIM_BOOL oldNimErrFin711_;
NIM_BOOL oldNimErrFin717_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	colonenvP__1 = (tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA*) ClE_0;
	t_1 = NIM_NIL;
	result = TM__PpBJsMJcrcWrpLTS6mci1g_4;
	nimZeroMem((void*)(&T2_), sizeof(tyProc__0kHfnyJtoro9cA3P1Wkcb4g));
	T2_.ClP_0 = getPrefer__types_u833; T2_.ClE_0 = colonenvP__1;
	prefer_2 = T2_.ClE_0? T2_.ClP_0(prefer_p1, T2_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_5)(T2_.ClP_0))(prefer_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&t_1, typ_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!(t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA5_;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA5_: ;
	{
		NIM_BOOL T9_;
		NIM_BOOL T10_;
		NIM_BOOL T11_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__2;
		T9_ = (NIM_BOOL)0;
		T10_ = (NIM_BOOL)0;
		T11_ = (NIM_BOOL)0;
		T11_ = (prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0) || prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)5) || prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)3) || prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)4) || prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)6) || prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)7) || prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)8) || prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)9));
		if (!(T11_)) goto LA12_;
		T11_ = !(((*t_1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA12_: ;
		T10_ = T11_;
		if (!(T10_)) goto LA13_;
		T10_ = !((((*(*t_1).sym).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)60)))&63U)))!=0));
LA13_: ;
		T9_ = T10_;
		if (!(T9_)) goto LA14_;
		T9_ = !(((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24)));
LA14_: ;
		if (!T9_) goto LA15_;
		colontmpD_ = NIM_NIL;
		colontmpD__2 = NIM_NIL;
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = ((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31));
			if (!(T20_)) goto LA21_;
			T20_ = isIntLit__types_u179(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
LA21_: ;
			if (!T20_) goto LA22_;
			{
				if (!(prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)8))) goto LA26_;
				eqcopy___system_u2694((&result), (*(*(*t_1).sym).name).s);
			}
			goto LA24_;
LA26_: ;
			{
				NimStringV2 colontmpD__3;
				NimStringV2 T29_;
				colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
				T29_.len = 0; T29_.p = NIM_NIL;
				colontmpD__3 = dollar___systemZdollars_u29((*(*t_1).n)._kind_1.intVal);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
				T29_ = rawNewString((*(*(*t_1).sym).name).s.len + colontmpD__3.len + 10);
appendString((&T29_), (*(*(*t_1).sym).name).s);
appendString((&T29_), TM__PpBJsMJcrcWrpLTS6mci1g_7);
appendString((&T29_), colontmpD__3);
appendString((&T29_), TM__PpBJsMJcrcWrpLTS6mci1g_9);
				eqsink___system_u2700((&result), T29_);
				eqdestroy___system_u2691(colontmpD__3);
			}
LA24_: ;
		}
		goto LA18_;
LA22_: ;
		{
			NIM_BOOL T31_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
			tyProc__NULZ4DXeGT28fHaMwn9bfpQ T36_;
			NimStringV2 T37_;
			T31_ = (NIM_BOOL)0;
			T31_ = ((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4));
			if (!(T31_)) goto LA32_;
			colontmpD_ = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			T31_ = !(((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4)));
LA32_: ;
			if (!T31_) goto LA33_;
			colontmpD__4 = NIM_NIL;
			nimZeroMem((void*)(&T36_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
			T36_.ClP_0 = typeToString__types_u860; T36_.ClE_0 = colonenvP__1;
			colontmpD__4 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
			T37_.len = 0; T37_.p = NIM_NIL;
			T37_ = T36_.ClE_0? T36_.ClP_0(colontmpD__4, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T36_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_10)(T36_.ClP_0))(colontmpD__4, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
			eqsink___system_u2700((&result), T37_);
			{
				LA35_:;
			}
			{
				oldNimErrFin35_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
				*nimErr_ = oldNimErrFin35_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		}
		goto LA18_;
LA33_: ;
		{
			if (!(prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)6) || prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)7))) goto LA41_;
			switch ((*t_1).kind) {
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)1) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44):
			{
				eqcopy___system_u2694((&result), typeToStr__types_u814[((*t_1).kind)- 0]);
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
				tyProc__NULZ4DXeGT28fHaMwn9bfpQ T46_;
				NimStringV2 T47_;
				colontmpD__5 = NIM_NIL;
				nimZeroMem((void*)(&T46_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
				T46_.ClP_0 = typeToString__types_u860; T46_.ClE_0 = colonenvP__1;
				colontmpD__5 = last__ast_u5278(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA45_;
				T47_.len = 0; T47_.p = NIM_NIL;
				T47_ = T46_.ClE_0? T46_.ClP_0(colontmpD__5, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T46_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_76)(T46_.ClP_0))(colontmpD__5, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
				if (NIM_UNLIKELY(*nimErr_)) goto LA45_;
				eqsink___system_u2700((&result), T47_);
				{
					LA45_:;
				}
				{
					oldNimErrFin45_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__5);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					*nimErr_ = oldNimErrFin45_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
				tyProc__NULZ4DXeGT28fHaMwn9bfpQ T52_;
				NimStringV2 T53_;
				colontmpD__6 = NIM_NIL;
				colontmpD__7 = NIM_NIL;
				nimZeroMem((void*)(&T52_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
				T52_.ClP_0 = typeToString__types_u860; T52_.ClE_0 = colonenvP__1;
				colontmpD__6 = last__ast_u5278(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
				colontmpD__7 = last__ast_u5278(colontmpD__6);
				if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
				T53_.len = 0; T53_.p = NIM_NIL;
				T53_ = T52_.ClE_0? T52_.ClP_0(colontmpD__7, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T52_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_77)(T52_.ClP_0))(colontmpD__7, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
				if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
				eqsink___system_u2700((&result), T53_);
				{
					LA51_:;
				}
				{
					oldNimErrFin51_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__7);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					eqdestroy___ast_u3378(colontmpD__6);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					*nimErr_ = oldNimErrFin51_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			}
			break;
			default:
			{
				eqcopy___system_u2694((&result), (*(*(*t_1).sym).name).s);
			}
			break;
			}
			{
				NIM_BOOL T59_;
				NimStringV2 T63_;
				T59_ = (NIM_BOOL)0;
				T59_ = (prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)7));
				if (!(T59_)) goto LA60_;
				T59_ = !(eqStrings(result, (*(*(*t_1).sym).name).s));
LA60_: ;
				if (!T59_) goto LA61_;
				T63_.len = 0; T63_.p = NIM_NIL;
				T63_ = rawNewString((*(*(*t_1).sym).name).s.len + result.len + 2);
appendString((&T63_), (*(*(*t_1).sym).name).s);
appendString((&T63_), TM__PpBJsMJcrcWrpLTS6mci1g_79);
appendString((&T63_), result);
appendString((&T63_), TM__PpBJsMJcrcWrpLTS6mci1g_81);
				eqsink___system_u2700((&result), T63_);
			}
LA61_: ;
		}
		goto LA18_;
LA41_: ;
		{
			NIM_BOOL T65_;
			T65_ = (NIM_BOOL)0;
			T65_ = (prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0) || prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)5) || prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)8) || prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)9));
			if (T65_) goto LA66_;
			colontmpD__2 = owner__ast_u6254((*t_1).sym);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			T65_ = (colontmpD__2 == 0);
LA66_: ;
			if (!T65_) goto LA67_;
			eqcopy___system_u2694((&result), (*(*(*t_1).sym).name).s);
			{
				NIM_BOOL T71_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__8;
				NimStringV2 colontmpD__9;
				tyProc__NULZ4DXeGT28fHaMwn9bfpQ T76_;
				T71_ = (NIM_BOOL)0;
				T71_ = ((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
				if (!(T71_)) goto LA72_;
				T71_ = genericParamHasConstraints__ast_u5654(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
LA72_: ;
				if (!T71_) goto LA73_;
				colontmpD__8 = NIM_NIL;
				colontmpD__9.len = 0; colontmpD__9.p = NIM_NIL;
				prepareAdd((&result), 2);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_83);
				nimZeroMem((void*)(&T76_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
				T76_.ClP_0 = typeToString__types_u860; T76_.ClE_0 = colonenvP__1;
				colontmpD__8 = elementType__ast_u5331(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA75_;
				colontmpD__9 = T76_.ClE_0? T76_.ClP_0(colontmpD__8, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T76_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_84)(T76_.ClP_0))(colontmpD__8, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
				if (NIM_UNLIKELY(*nimErr_)) goto LA75_;
				prepareAdd((&result), colontmpD__9.len + 0);
appendString((&result), colontmpD__9);
				{
					LA75_:;
				}
				{
					oldNimErrFin75_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___system_u2691(colontmpD__9);
					eqdestroy___ast_u3378(colontmpD__8);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					*nimErr_ = oldNimErrFin75_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			}
LA73_: ;
		}
		goto LA18_;
LA67_: ;
		{
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__10;
			NimStringV2 T80_;
			colontmpD__10 = NIM_NIL;
			T80_.len = 0; T80_.p = NIM_NIL;
			colontmpD__10 = owner__ast_u6254((*t_1).sym);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			T80_ = rawNewString((*(*colontmpD__10).name).s.len + (*(*(*t_1).sym).name).s.len + 1);
appendString((&T80_), (*(*colontmpD__10).name).s);
appendChar((&T80_), 46);
appendString((&T80_), (*(*(*t_1).sym).name).s);
			eqsink___system_u2700((&result), T80_);
			eqdestroy___ast_u4574(colontmpD__10);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		}
LA18_: ;
		addTypeFlags__types_u821((&result), t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		eqdestroy___ast_u4574(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA17_:;
		}
		{
			oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u4574(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin17_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA15_: ;
	switch ((*t_1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31):
	{
		{
			NIM_BOOL T86_;
			NIM_BOOL T87_;
			T86_ = (NIM_BOOL)0;
			T87_ = (NIM_BOOL)0;
			T87_ = isIntLit__types_u179(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T86_ = !(T87_);
			if (T86_) goto LA88_;
			T86_ = (prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)2));
LA88_: ;
			if (!T86_) goto LA89_;
			eqcopy___system_u2694((&result), typeToStr__types_u814[((*t_1).kind)- 0]);
		}
		goto LA84_;
LA89_: ;
		{
			switch (prefer_2) {
			case ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)4):
			{
				NimStringV2 T93_;
				T93_.len = 0; T93_.p = NIM_NIL;
				T93_ = dollar___systemZdollars_u29((*(*t_1).n)._kind_1.intVal);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___system_u2691(T93_); goto LA1_;}
				eqsink___system_u2700((&result), T93_);
			}
			break;
			case ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)8):
			{
				eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_87);
			}
			break;
			default:
			{
				NimStringV2 colontmpD__11;
				NimStringV2 T96_;
				colontmpD__11.len = 0; colontmpD__11.p = NIM_NIL;
				T96_.len = 0; T96_.p = NIM_NIL;
				colontmpD__11 = dollar___systemZdollars_u29((*(*t_1).n)._kind_1.intVal);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				T96_ = rawNewString(colontmpD__11.len + 13);
appendString((&T96_), TM__PpBJsMJcrcWrpLTS6mci1g_89);
appendString((&T96_), colontmpD__11);
appendString((&T96_), TM__PpBJsMJcrcWrpLTS6mci1g_90);
				eqsink___system_u2700((&result), T96_);
				eqdestroy___system_u2691(colontmpD__11);
			}
			break;
			}
		}
LA84_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__12;
		NimStringV2 colontmpD__13;
		NimStringV2 T99_;
		tyProc__NULZ4DXeGT28fHaMwn9bfpQ T100_;
		colontmpD__12 = NIM_NIL;
		colontmpD__13.len = 0; colontmpD__13.p = NIM_NIL;
		T99_.len = 0; T99_.p = NIM_NIL;
		nimZeroMem((void*)(&T100_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
		T100_.ClP_0 = typeToString__types_u860; T100_.ClE_0 = colonenvP__1;
		colontmpD__12 = genericHead__ast_u5376(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
		colontmpD__13 = T100_.ClE_0? T100_.ClP_0(colontmpD__12, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T100_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_91)(T100_.ClP_0))(colontmpD__12, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
		if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
		T99_ = rawNewString(colontmpD__13.len + 1);
appendString((&T99_), colontmpD__13);
appendChar((&T99_), 91);
		eqsink___system_u2700((&result), T99_);
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
			NIM_BOOL needsComma_1;
			a_1 = NIM_NIL;
			needsComma_1 = (NIM_BOOL)0;
			{
				NI i_1;
				NI colontmp_;
				NI T104_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				T104_ = (*t_1).sons.len;
				colontmp_ = (NI)(T104_ - ((NI)1));
				i_2 = ((NI)1);
				{
					while (1) {
						NimStringV2 colontmpD__14;
						tyProc__NULZ4DXeGT28fHaMwn9bfpQ T112_;
						if (!(i_2 < colontmp_)) goto LA106;
						colontmpD__14.len = 0; colontmpD__14.p = NIM_NIL;
						i_1 = i_2;
						needsComma_1 = !((i_1 == ((NI)1)));
						eqcopy___ast_u3381(&a_1, (*t_1).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA107_;
						{
							if (!needsComma_1) goto LA110_;
							prepareAdd((&result), 2);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_93);
						}
LA110_: ;
						nimZeroMem((void*)(&T112_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
						T112_.ClP_0 = typeToString__types_u860; T112_.ClE_0 = colonenvP__1;
						colontmpD__14 = T112_.ClE_0? T112_.ClP_0(a_1, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)4), T112_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_94)(T112_.ClP_0))(a_1, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)4));
						if (NIM_UNLIKELY(*nimErr_)) goto LA107_;
						prepareAdd((&result), colontmpD__14.len + 0);
appendString((&result), colontmpD__14);
						i_2 += ((NI)1);
						{
							LA107_:;
						}
						{
							eqdestroy___system_u2691(colontmpD__14);
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
					} LA106: ;
				}
			}
			{
				LA102_:;
			}
			{
				oldNimErrFin102_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
				*nimErr_ = oldNimErrFin102_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
		}
		nimAddCharV1((&result), 93);
		{
			LA98_:;
		}
		{
			oldNimErrFin98_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___system_u2691(colontmpD__13);
			eqdestroy___ast_u3378(colontmpD__12);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin98_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__15;
		NimStringV2 colontmpD__16;
		NimStringV2 T121_;
		tyProc__NULZ4DXeGT28fHaMwn9bfpQ T122_;
		colontmpD__15 = NIM_NIL;
		colontmpD__16.len = 0; colontmpD__16.p = NIM_NIL;
		T121_.len = 0; T121_.p = NIM_NIL;
		nimZeroMem((void*)(&T122_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
		T122_.ClP_0 = typeToString__types_u860; T122_.ClE_0 = colonenvP__1;
		colontmpD__15 = genericHead__ast_u5376(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA120_;
		colontmpD__16 = T122_.ClE_0? T122_.ClP_0(colontmpD__15, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T122_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_95)(T122_.ClP_0))(colontmpD__15, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
		if (NIM_UNLIKELY(*nimErr_)) goto LA120_;
		T121_ = rawNewString(colontmpD__16.len + 1);
appendString((&T121_), colontmpD__16);
appendChar((&T121_), 91);
		eqsink___system_u2700((&result), T121_);
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_2;
			NIM_BOOL needsComma_2;
			a_2 = NIM_NIL;
			needsComma_2 = (NIM_BOOL)0;
			{
				NI i_3;
				NI colontmp__2;
				NI T126_;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				T126_ = (*t_1).sons.len;
				colontmp__2 = T126_;
				i_4 = ((NI)1);
				{
					while (1) {
						NimStringV2 colontmpD__17;
						tyProc__NULZ4DXeGT28fHaMwn9bfpQ T134_;
						if (!(i_4 < colontmp__2)) goto LA128;
						colontmpD__17.len = 0; colontmpD__17.p = NIM_NIL;
						i_3 = i_4;
						needsComma_2 = !((i_3 == ((NI)1)));
						eqcopy___ast_u3381(&a_2, (*t_1).sons.p->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA129_;
						{
							if (!needsComma_2) goto LA132_;
							prepareAdd((&result), 2);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_96);
						}
LA132_: ;
						nimZeroMem((void*)(&T134_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
						T134_.ClP_0 = typeToString__types_u860; T134_.ClE_0 = colonenvP__1;
						colontmpD__17 = T134_.ClE_0? T134_.ClP_0(a_2, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)4), T134_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_97)(T134_.ClP_0))(a_2, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)4));
						if (NIM_UNLIKELY(*nimErr_)) goto LA129_;
						prepareAdd((&result), colontmpD__17.len + 0);
appendString((&result), colontmpD__17);
						i_4 += ((NI)1);
						{
							LA129_:;
						}
						{
							eqdestroy___system_u2691(colontmpD__17);
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA124_;
					} LA128: ;
				}
			}
			{
				LA124_:;
			}
			{
				oldNimErrFin124_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(a_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA120_;
				*nimErr_ = oldNimErrFin124_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA120_;
		}
		nimAddCharV1((&result), 93);
		{
			LA120_:;
		}
		{
			oldNimErrFin120_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___system_u2691(colontmpD__16);
			eqdestroy___ast_u3378(colontmpD__15);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin120_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__18;
		NimStringV2 colontmpD__19;
		NimStringV2 T143_;
		tyProc__NULZ4DXeGT28fHaMwn9bfpQ T144_;
		colontmpD__18 = NIM_NIL;
		colontmpD__19.len = 0; colontmpD__19.p = NIM_NIL;
		T143_.len = 0; T143_.p = NIM_NIL;
		nimZeroMem((void*)(&T144_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
		T144_.ClP_0 = typeToString__types_u860; T144_.ClE_0 = colonenvP__1;
		colontmpD__18 = typeBodyImpl__ast_u5369(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA142_;
		colontmpD__19 = T144_.ClE_0? T144_.ClP_0(colontmpD__18, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T144_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_98)(T144_.ClP_0))(colontmpD__18, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
		if (NIM_UNLIKELY(*nimErr_)) goto LA142_;
		T143_ = rawNewString(colontmpD__19.len + 1);
appendString((&T143_), colontmpD__19);
appendChar((&T143_), 91);
		eqsink___system_u2700((&result), T143_);
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_3;
			NI i_5;
			a_3 = NIM_NIL;
			i_5 = (NI)0;
			{
				NI i_6;
				NI colontmp__3;
				NI T148_;
				NI i_7;
				i_6 = (NI)0;
				colontmp__3 = (NI)0;
				T148_ = (*t_1).sons.len;
				colontmp__3 = (NI)(T148_ - ((NI)1));
				i_7 = ((NI)0);
				{
					while (1) {
						NimStringV2 colontmpD__20;
						tyProc__NULZ4DXeGT28fHaMwn9bfpQ T156_;
						if (!(i_7 < colontmp__3)) goto LA150;
						colontmpD__20.len = 0; colontmpD__20.p = NIM_NIL;
						i_6 = i_7;
						i_5 = i_6;
						eqcopy___ast_u3381(&a_3, (*t_1).sons.p->data[i_6]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA151_;
						{
							if (!(((NI)0) < i_5)) goto LA154_;
							prepareAdd((&result), 2);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_99);
						}
LA154_: ;
						nimZeroMem((void*)(&T156_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
						T156_.ClP_0 = typeToString__types_u860; T156_.ClE_0 = colonenvP__1;
						colontmpD__20 = T156_.ClE_0? T156_.ClP_0(a_3, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)5), T156_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_100)(T156_.ClP_0))(a_3, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)5));
						if (NIM_UNLIKELY(*nimErr_)) goto LA151_;
						prepareAdd((&result), colontmpD__20.len + 0);
appendString((&result), colontmpD__20);
						i_7 += ((NI)1);
						{
							LA151_:;
						}
						{
							eqdestroy___system_u2691(colontmpD__20);
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA146_;
					} LA150: ;
				}
			}
			{
				LA146_:;
			}
			{
				oldNimErrFin146_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(a_3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA142_;
				*nimErr_ = oldNimErrFin146_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA142_;
		}
		nimAddCharV1((&result), 93);
		{
			LA142_:;
		}
		{
			oldNimErrFin142_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___system_u2691(colontmpD__19);
			eqdestroy___ast_u3378(colontmpD__18);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin142_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__21;
		colontmpD__21 = NIM_NIL;
		{
			colontmpD__21 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA164_;
			if (!((*colontmpD__21).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0))) goto LA167_;
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_102);
		}
		goto LA165_;
LA167_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__22;
			NimStringV2 colontmpD__23;
			NimStringV2 T171_;
			tyProc__NULZ4DXeGT28fHaMwn9bfpQ T172_;
			colontmpD__22 = NIM_NIL;
			colontmpD__23.len = 0; colontmpD__23.p = NIM_NIL;
			T171_.len = 0; T171_.p = NIM_NIL;
			nimZeroMem((void*)(&T172_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
			T172_.ClP_0 = typeToString__types_u860; T172_.ClE_0 = colonenvP__1;
			colontmpD__22 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA170_;
			colontmpD__23 = T172_.ClE_0? T172_.ClP_0(colontmpD__22, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T172_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_105)(T172_.ClP_0))(colontmpD__22, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA170_;
			T171_ = rawNewString(colontmpD__23.len + 10);
appendString((&T171_), TM__PpBJsMJcrcWrpLTS6mci1g_104);
appendString((&T171_), colontmpD__23);
appendString((&T171_), TM__PpBJsMJcrcWrpLTS6mci1g_107);
			eqsink___system_u2700((&result), T171_);
			{
				LA170_:;
			}
			{
				oldNimErrFin170_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___system_u2691(colontmpD__23);
				eqdestroy___ast_u3378(colontmpD__22);
				if (NIM_UNLIKELY(*nimErr_)) goto LA164_;
				*nimErr_ = oldNimErrFin170_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA164_;
		}
LA165_: ;
		{
			LA164_:;
		}
		{
			oldNimErrFin164_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__21);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin164_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	{
		{
			NIM_BOOL T180_;
			tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg T184_;
			NimStringV2 T185_;
			T180_ = (NIM_BOOL)0;
			T180_ = (prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)4));
			if (!(T180_)) goto LA181_;
			T180_ = !(((*t_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA181_: ;
			if (!T180_) goto LA182_;
			T184_ = 0;
			T185_.len = 0; T185_.p = NIM_NIL;
			T185_ = renderTree__renderer_u59((*t_1).n, T184_);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___system_u2691(T185_); goto LA1_;}
			eqsink___system_u2700((&result), T185_);
		}
		goto LA178_;
LA182_: ;
		{
			NimStringV2 colontmpD__24;
			NimStringV2 colontmpD__25;
			NimStringV2 T188_;
			NimStringV2 T189_;
			colontmpD__24.len = 0; colontmpD__24.p = NIM_NIL;
			colontmpD__25.len = 0; colontmpD__25.p = NIM_NIL;
			T188_.len = 0; T188_.p = NIM_NIL;
			T189_.len = 0; T189_.p = NIM_NIL;
			{
				NIM_BOOL T192_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__26;
				tyProc__NULZ4DXeGT28fHaMwn9bfpQ T196_;
				T192_ = (NIM_BOOL)0;
				T192_ = hasElementType__ast_u5660(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA187_;
				if (!T192_) goto LA193_;
				colontmpD__26 = NIM_NIL;
				nimZeroMem((void*)(&T196_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
				T196_.ClP_0 = typeToString__types_u860; T196_.ClE_0 = colonenvP__1;
				colontmpD__26 = skipModifier__ast_u5338(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA195_;
				colontmpD__24 = T196_.ClE_0? T196_.ClP_0(colontmpD__26, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T196_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_110)(T196_.ClP_0))(colontmpD__26, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
				if (NIM_UNLIKELY(*nimErr_)) goto LA195_;
				T189_ = colontmpD__24;
				{
					LA195_:;
				}
				{
					oldNimErrFin195_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__26);
					if (NIM_UNLIKELY(*nimErr_)) goto LA187_;
					*nimErr_ = oldNimErrFin195_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA187_;
			}
			goto LA190_;
LA193_: ;
			{
				colontmpD__25 = TM__PpBJsMJcrcWrpLTS6mci1g_111;
				T189_ = colontmpD__25;
			}
LA190_: ;
			T188_ = rawNewString(T189_.len + 8);
appendString((&T188_), TM__PpBJsMJcrcWrpLTS6mci1g_109);
appendString((&T188_), T189_);
appendString((&T188_), TM__PpBJsMJcrcWrpLTS6mci1g_112);
			eqsink___system_u2700((&result), T188_);
			{
				NimStringV2 colontmpD__27;
				NimStringV2 colontmpD__28;
				NimStringV2 T205_;
				tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg T206_;
				if (!!(((*t_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA202_;
				colontmpD__27.len = 0; colontmpD__27.p = NIM_NIL;
				colontmpD__28.len = 0; colontmpD__28.p = NIM_NIL;
				T205_.len = 0; T205_.p = NIM_NIL;
				T206_ = 0;
				colontmpD__27 = renderTree__renderer_u59((*t_1).n, T206_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA204_;
				T205_ = rawNewString(colontmpD__27.len + 2);
appendString((&T205_), TM__PpBJsMJcrcWrpLTS6mci1g_114);
appendString((&T205_), colontmpD__27);
appendString((&T205_), TM__PpBJsMJcrcWrpLTS6mci1g_115);
				colontmpD__28 = T205_;
				prepareAdd((&result), colontmpD__28.len + 0);
appendString((&result), colontmpD__28);
				{
					LA204_:;
				}
				{
					eqdestroy___system_u2691(colontmpD__28);
					eqdestroy___system_u2691(colontmpD__27);
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA187_;
			}
LA202_: ;
			{
				LA187_:;
			}
			{
				eqdestroy___system_u2691(colontmpD__25);
				eqdestroy___system_u2691(colontmpD__24);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA178_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52):
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__29;
		colontmpD__29 = NIM_NIL;
		{
			NIM_BOOL T215_;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__30;
			T215_ = (NIM_BOOL)0;
			T215_ = !(((*t_1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
			if (!(T215_)) goto LA216_;
			colontmpD__29 = owner__ast_u6254((*t_1).sym);
			if (NIM_UNLIKELY(*nimErr_)) goto LA212_;
			T215_ = !((colontmpD__29 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA216_: ;
			if (!T215_) goto LA217_;
			colontmpD__30 = NIM_NIL;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__31;
				tyProc__NULZ4DXeGT28fHaMwn9bfpQ T225_;
				if (!(((*t_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)10)))&63U)))!=0)) goto LA222_;
				colontmpD__31 = NIM_NIL;
				nimZeroMem((void*)(&T225_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
				T225_.ClP_0 = typeToString__types_u860; T225_.ClE_0 = colonenvP__1;
				colontmpD__31 = last__ast_u5278(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA224_;
				result = T225_.ClE_0? T225_.ClP_0(colontmpD__31, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T225_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_116)(T225_.ClP_0))(colontmpD__31, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
				if (NIM_UNLIKELY(*nimErr_)) goto LA224_;
				eqdestroy___ast_u3378(colontmpD__31);
				if (NIM_UNLIKELY(*nimErr_)) goto LA219_;
				eqdestroy___ast_u4574(colontmpD__30);
				if (NIM_UNLIKELY(*nimErr_)) goto LA212_;
				eqdestroy___ast_u4574(colontmpD__29);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
				{
					LA224_:;
				}
				{
					oldNimErrFin224_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__31);
					if (NIM_UNLIKELY(*nimErr_)) goto LA219_;
					*nimErr_ = oldNimErrFin224_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA219_;
			}
LA222_: ;
			colontmpD__30 = owner__ast_u6254((*t_1).sym);
			if (NIM_UNLIKELY(*nimErr_)) goto LA219_;
			eqcopy___system_u2694((&result), (*(*colontmpD__30).name).s);
			eqdestroy___ast_u4574(colontmpD__30);
			if (NIM_UNLIKELY(*nimErr_)) goto LA212_;
			eqdestroy___ast_u4574(colontmpD__29);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA219_:;
			}
			{
				oldNimErrFin219_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u4574(colontmpD__30);
				if (NIM_UNLIKELY(*nimErr_)) goto LA212_;
				*nimErr_ = oldNimErrFin219_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA212_;
		}
		goto LA213_;
LA217_: ;
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_118);
		}
LA213_: ;
		{
			LA212_:;
		}
		{
			oldNimErrFin212_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u4574(colontmpD__29);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin212_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__32;
		NimStringV2 T234_;
		colontmpD__32 = NIM_NIL;
		T234_.len = 0; T234_.p = NIM_NIL;
		colontmpD__32 = base__ast_u5351(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		switch ((*colontmpD__32).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_120);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_122);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_124);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_126);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_128);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_130);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_132);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_134);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_135);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_136);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_137);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_139);
		}
		break;
		default:
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__33;
			colontmpD__33 = NIM_NIL;
			colontmpD__33 = base__ast_u5351(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqcopy___system_u2694((&result), typeToStr__types_u814[((*colontmpD__33).kind)- 0]);
			eqdestroy___ast_u3378(colontmpD__33);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		}
		eqdestroy___ast_u3378(colontmpD__32);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concrete_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T250_;
		concrete_1 = NIM_NIL;
		T250_ = NIM_NIL;
		{
			NI T253_;
			T253_ = (*t_1).sons.len;
			if (!(((NI)1) < T253_)) goto LA254_;
			concrete_1 = last__ast_u5278(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA249_;
		}
		goto LA251_;
LA254_: ;
		{
			concrete_1 = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
		}
LA251_: ;
		{
			tyProc__NULZ4DXeGT28fHaMwn9bfpQ T261_;
			NimStringV2 T262_;
			if (!!((concrete_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA259_;
			nimZeroMem((void*)(&T261_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
			T261_.ClP_0 = typeToString__types_u860; T261_.ClE_0 = colonenvP__1;
			T262_.len = 0; T262_.p = NIM_NIL;
			T262_ = T261_.ClE_0? T261_.ClP_0(concrete_1, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T261_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_140)(T261_.ClP_0))(concrete_1, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA249_;
			eqsink___system_u2700((&result), T262_);
		}
		goto LA257_;
LA259_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__34;
			NimStringV2 colontmpD__35;
			NimStringV2 T265_;
			tyProc__NULZ4DXeGT28fHaMwn9bfpQ T266_;
			colontmpD__34 = NIM_NIL;
			colontmpD__35.len = 0; colontmpD__35.p = NIM_NIL;
			T265_.len = 0; T265_.p = NIM_NIL;
			nimZeroMem((void*)(&T266_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
			T266_.ClP_0 = typeToString__types_u860; T266_.ClE_0 = colonenvP__1;
			colontmpD__34 = base__ast_u5351(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA264_;
			colontmpD__35 = T266_.ClE_0? T266_.ClP_0(colontmpD__34, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T266_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_143)(T266_.ClP_0))(colontmpD__34, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA264_;
			T265_ = rawNewString(colontmpD__35.len + 10);
appendString((&T265_), TM__PpBJsMJcrcWrpLTS6mci1g_142);
appendString((&T265_), colontmpD__35);
appendString((&T265_), TM__PpBJsMJcrcWrpLTS6mci1g_144);
			eqsink___system_u2700((&result), T265_);
			{
				LA264_:;
			}
			{
				oldNimErrFin264_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___system_u2691(colontmpD__35);
				eqdestroy___ast_u3378(colontmpD__34);
				if (NIM_UNLIKELY(*nimErr_)) goto LA249_;
				*nimErr_ = oldNimErrFin264_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA249_;
		}
LA257_: ;
		{
			LA249_:;
		}
		{
			oldNimErrFin249_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(concrete_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin249_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* body_1;
		NimStringV2 T273_;
		body_1 = NIM_NIL;
		body_1 = base__ast_u5351(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA272_;
		T273_.len = 0; T273_.p = NIM_NIL;
		T273_ = rawNewString((*(*(*body_1).sym).name).s.len + 1);
appendString((&T273_), (*(*(*body_1).sym).name).s);
appendString((&T273_), TM__PpBJsMJcrcWrpLTS6mci1g_146);
		eqsink___system_u2700((&result), T273_);
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_4;
			NIM_BOOL needsComma_3;
			a_4 = NIM_NIL;
			needsComma_3 = (NIM_BOOL)0;
			{
				NI i_8;
				NI colontmp__4;
				NI T277_;
				NI i_9;
				i_8 = (NI)0;
				colontmp__4 = (NI)0;
				T277_ = (*t_1).sons.len;
				colontmp__4 = (NI)(T277_ - ((NI)1));
				i_9 = ((NI)1);
				{
					while (1) {
						NimStringV2 colontmpD__36;
						tyProc__NULZ4DXeGT28fHaMwn9bfpQ T285_;
						if (!(i_9 < colontmp__4)) goto LA279;
						colontmpD__36.len = 0; colontmpD__36.p = NIM_NIL;
						i_8 = i_9;
						needsComma_3 = !((i_8 == ((NI)1)));
						eqcopy___ast_u3381(&a_4, (*t_1).sons.p->data[i_8]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA280_;
						{
							if (!needsComma_3) goto LA283_;
							prepareAdd((&result), 2);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_147);
						}
LA283_: ;
						nimZeroMem((void*)(&T285_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
						T285_.ClP_0 = typeToString__types_u860; T285_.ClE_0 = colonenvP__1;
						colontmpD__36 = T285_.ClE_0? T285_.ClP_0(a_4, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T285_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_148)(T285_.ClP_0))(a_4, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
						if (NIM_UNLIKELY(*nimErr_)) goto LA280_;
						prepareAdd((&result), colontmpD__36.len + 0);
appendString((&result), colontmpD__36);
						i_9 += ((NI)1);
						{
							LA280_:;
						}
						{
							eqdestroy___system_u2691(colontmpD__36);
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA275_;
					} LA279: ;
				}
			}
			{
				LA275_:;
			}
			{
				oldNimErrFin275_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(a_4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA272_;
				*nimErr_ = oldNimErrFin275_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA272_;
		}
		prepareAdd((&result), 1);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_149);
		{
			LA272_:;
		}
		{
			oldNimErrFin272_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(body_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin272_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_1;
			NI i_10;
			son_1 = NIM_NIL;
			i_10 = (NI)0;
			{
				NI i_11;
				NI colontmp__5;
				NI T296_;
				NI i_12;
				i_11 = (NI)0;
				colontmp__5 = (NI)0;
				T296_ = (*t_1).sons.len;
				colontmp__5 = T296_;
				i_12 = ((NI)0);
				{
					while (1) {
						NimStringV2 colontmpD__37;
						tyProc__NULZ4DXeGT28fHaMwn9bfpQ T304_;
						if (!(i_12 < colontmp__5)) goto LA298;
						colontmpD__37.len = 0; colontmpD__37.p = NIM_NIL;
						i_11 = i_12;
						i_10 = i_11;
						eqcopy___ast_u3381(&son_1, (*t_1).sons.p->data[i_11]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA299_;
						{
							if (!(((NI)0) < i_10)) goto LA302_;
							prepareAdd((&result), 5);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_151);
						}
LA302_: ;
						nimZeroMem((void*)(&T304_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
						T304_.ClP_0 = typeToString__types_u860; T304_.ClE_0 = colonenvP__1;
						colontmpD__37 = T304_.ClE_0? T304_.ClP_0(son_1, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T304_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_152)(T304_.ClP_0))(son_1, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
						if (NIM_UNLIKELY(*nimErr_)) goto LA299_;
						prepareAdd((&result), colontmpD__37.len + 0);
appendString((&result), colontmpD__37);
						i_12 += ((NI)1);
						{
							LA299_:;
						}
						{
							eqdestroy___system_u2691(colontmpD__37);
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA294_;
					} LA298: ;
				}
			}
			{
				LA294_:;
			}
			{
				oldNimErrFin294_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(son_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin294_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)57):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_2;
			NI i_13;
			son_2 = NIM_NIL;
			i_13 = (NI)0;
			{
				NI i_14;
				NI colontmp__6;
				NI T313_;
				NI i_15;
				i_14 = (NI)0;
				colontmp__6 = (NI)0;
				T313_ = (*t_1).sons.len;
				colontmp__6 = T313_;
				i_15 = ((NI)0);
				{
					while (1) {
						NimStringV2 colontmpD__38;
						tyProc__NULZ4DXeGT28fHaMwn9bfpQ T321_;
						if (!(i_15 < colontmp__6)) goto LA315;
						colontmpD__38.len = 0; colontmpD__38.p = NIM_NIL;
						i_14 = i_15;
						i_13 = i_14;
						eqcopy___ast_u3381(&son_2, (*t_1).sons.p->data[i_14]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA316_;
						{
							if (!(((NI)0) < i_13)) goto LA319_;
							prepareAdd((&result), 4);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_154);
						}
LA319_: ;
						nimZeroMem((void*)(&T321_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
						T321_.ClP_0 = typeToString__types_u860; T321_.ClE_0 = colonenvP__1;
						colontmpD__38 = T321_.ClE_0? T321_.ClP_0(son_2, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T321_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_155)(T321_.ClP_0))(son_2, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
						if (NIM_UNLIKELY(*nimErr_)) goto LA316_;
						prepareAdd((&result), colontmpD__38.len + 0);
appendString((&result), colontmpD__38);
						i_15 += ((NI)1);
						{
							LA316_:;
						}
						{
							eqdestroy___system_u2691(colontmpD__38);
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA311_;
					} LA315: ;
				}
			}
			{
				LA311_:;
			}
			{
				oldNimErrFin311_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(son_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin311_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)58):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__39;
		NimStringV2 colontmpD__40;
		NimStringV2 T328_;
		tyProc__NULZ4DXeGT28fHaMwn9bfpQ T329_;
		colontmpD__39 = NIM_NIL;
		colontmpD__40.len = 0; colontmpD__40.p = NIM_NIL;
		T328_.len = 0; T328_.p = NIM_NIL;
		nimZeroMem((void*)(&T329_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
		T329_.ClP_0 = typeToString__types_u860; T329_.ClE_0 = colonenvP__1;
		colontmpD__39 = elementType__ast_u5331(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA327_;
		colontmpD__40 = T329_.ClE_0? T329_.ClP_0(colontmpD__39, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T329_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_158)(T329_.ClP_0))(colontmpD__39, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
		if (NIM_UNLIKELY(*nimErr_)) goto LA327_;
		T328_ = rawNewString(colontmpD__40.len + 4);
appendString((&T328_), TM__PpBJsMJcrcWrpLTS6mci1g_157);
appendString((&T328_), colontmpD__40);
		eqsink___system_u2700((&result), T328_);
		{
			LA327_:;
		}
		{
			oldNimErrFin327_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___system_u2691(colontmpD__40);
			eqdestroy___ast_u3378(colontmpD__39);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin327_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6):
	{
		eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_159);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61):
	{
		{
			if (!((*t_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA336_;
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_161);
		}
		goto LA334_;
LA336_: ;
		{
			NimStringV2 colontmpD__41;
			NimStringV2 T340_;
			tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg T341_;
			colontmpD__41.len = 0; colontmpD__41.p = NIM_NIL;
			T340_.len = 0; T340_.p = NIM_NIL;
			T341_ = 0;
			colontmpD__41 = renderTree__renderer_u59((*t_1).n, T341_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA339_;
			T340_ = rawNewString(colontmpD__41.len + 8);
appendString((&T340_), TM__PpBJsMJcrcWrpLTS6mci1g_163);
appendString((&T340_), colontmpD__41);
appendString((&T340_), TM__PpBJsMJcrcWrpLTS6mci1g_164);
			eqsink___system_u2700((&result), T340_);
			{
				LA339_:;
			}
			{
				eqdestroy___system_u2691(colontmpD__41);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA334_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	{
		eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_165);
		{
			NIM_BOOL T347_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__42;
			T347_ = (NIM_BOOL)0;
			T347_ = hasElementType__ast_u5660(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T347_) goto LA348_;
			colontmpD__42 = NIM_NIL;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__43;
				NimStringV2 colontmpD__44;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__45;
				NimStringV2 colontmpD__46;
				NimStringV2 colontmpD__47;
				NimStringV2 T356_;
				tyProc__NULZ4DXeGT28fHaMwn9bfpQ T357_;
				colontmpD__42 = indexType__ast_u5345(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA350_;
				if (!((*colontmpD__42).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20))) goto LA353_;
				colontmpD__43 = NIM_NIL;
				colontmpD__44.len = 0; colontmpD__44.p = NIM_NIL;
				colontmpD__45 = NIM_NIL;
				colontmpD__46.len = 0; colontmpD__46.p = NIM_NIL;
				colontmpD__47.len = 0; colontmpD__47.p = NIM_NIL;
				T356_.len = 0; T356_.p = NIM_NIL;
				colontmpD__43 = indexType__ast_u5345(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA355_;
				colontmpD__44 = rangeToStr__types_u804((*colontmpD__43).n);
				if (NIM_UNLIKELY(*nimErr_)) goto LA355_;
				nimZeroMem((void*)(&T357_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
				T357_.ClP_0 = typeToString__types_u860; T357_.ClE_0 = colonenvP__1;
				colontmpD__45 = elementType__ast_u5331(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA355_;
				colontmpD__46 = T357_.ClE_0? T357_.ClP_0(colontmpD__45, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T357_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_175)(T357_.ClP_0))(colontmpD__45, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
				if (NIM_UNLIKELY(*nimErr_)) goto LA355_;
				T356_ = rawNewString(colontmpD__44.len + colontmpD__46.len + 4);
appendString((&T356_), TM__PpBJsMJcrcWrpLTS6mci1g_166);
appendString((&T356_), colontmpD__44);
appendString((&T356_), TM__PpBJsMJcrcWrpLTS6mci1g_174);
appendString((&T356_), colontmpD__46);
appendChar((&T356_), 93);
				colontmpD__47 = T356_;
				prepareAdd((&result), colontmpD__47.len + 0);
appendString((&result), colontmpD__47);
				{
					LA355_:;
				}
				{
					oldNimErrFin355_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___system_u2691(colontmpD__47);
					eqdestroy___system_u2691(colontmpD__46);
					eqdestroy___ast_u3378(colontmpD__45);
					if (NIM_UNLIKELY(*nimErr_)) goto LA350_;
					eqdestroy___system_u2691(colontmpD__44);
					eqdestroy___ast_u3378(colontmpD__43);
					if (NIM_UNLIKELY(*nimErr_)) goto LA350_;
					*nimErr_ = oldNimErrFin355_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA350_;
			}
			goto LA351_;
LA353_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__48;
				NimStringV2 colontmpD__49;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__50;
				NimStringV2 colontmpD__51;
				NimStringV2 colontmpD__52;
				NimStringV2 T362_;
				tyProc__NULZ4DXeGT28fHaMwn9bfpQ T363_;
				tyProc__NULZ4DXeGT28fHaMwn9bfpQ T364_;
				colontmpD__48 = NIM_NIL;
				colontmpD__49.len = 0; colontmpD__49.p = NIM_NIL;
				colontmpD__50 = NIM_NIL;
				colontmpD__51.len = 0; colontmpD__51.p = NIM_NIL;
				colontmpD__52.len = 0; colontmpD__52.p = NIM_NIL;
				T362_.len = 0; T362_.p = NIM_NIL;
				nimZeroMem((void*)(&T363_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
				T363_.ClP_0 = typeToString__types_u860; T363_.ClE_0 = colonenvP__1;
				colontmpD__48 = indexType__ast_u5345(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA361_;
				colontmpD__49 = T363_.ClE_0? T363_.ClP_0(colontmpD__48, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T363_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_177)(T363_.ClP_0))(colontmpD__48, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
				if (NIM_UNLIKELY(*nimErr_)) goto LA361_;
				nimZeroMem((void*)(&T364_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
				T364_.ClP_0 = typeToString__types_u860; T364_.ClE_0 = colonenvP__1;
				colontmpD__50 = elementType__ast_u5331(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA361_;
				colontmpD__51 = T364_.ClE_0? T364_.ClP_0(colontmpD__50, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T364_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_179)(T364_.ClP_0))(colontmpD__50, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
				if (NIM_UNLIKELY(*nimErr_)) goto LA361_;
				T362_ = rawNewString(colontmpD__49.len + colontmpD__51.len + 4);
appendString((&T362_), TM__PpBJsMJcrcWrpLTS6mci1g_176);
appendString((&T362_), colontmpD__49);
appendString((&T362_), TM__PpBJsMJcrcWrpLTS6mci1g_178);
appendString((&T362_), colontmpD__51);
appendChar((&T362_), 93);
				colontmpD__52 = T362_;
				prepareAdd((&result), colontmpD__52.len + 0);
appendString((&result), colontmpD__52);
				{
					LA361_:;
				}
				{
					oldNimErrFin361_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___system_u2691(colontmpD__52);
					eqdestroy___system_u2691(colontmpD__51);
					eqdestroy___ast_u3378(colontmpD__50);
					if (NIM_UNLIKELY(*nimErr_)) goto LA350_;
					eqdestroy___system_u2691(colontmpD__49);
					eqdestroy___ast_u3378(colontmpD__48);
					if (NIM_UNLIKELY(*nimErr_)) goto LA350_;
					*nimErr_ = oldNimErrFin361_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA350_;
			}
LA351_: ;
			{
				LA350_:;
			}
			{
				oldNimErrFin350_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__42);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin350_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA348_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
	{
		eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_181);
		{
			NIM_BOOL T372_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__53;
			NimStringV2 colontmpD__54;
			NimStringV2 colontmpD__55;
			NimStringV2 T376_;
			tyProc__NULZ4DXeGT28fHaMwn9bfpQ T377_;
			T372_ = (NIM_BOOL)0;
			T372_ = hasElementType__ast_u5660(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T372_) goto LA373_;
			colontmpD__53 = NIM_NIL;
			colontmpD__54.len = 0; colontmpD__54.p = NIM_NIL;
			colontmpD__55.len = 0; colontmpD__55.p = NIM_NIL;
			T376_.len = 0; T376_.p = NIM_NIL;
			nimZeroMem((void*)(&T377_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
			T377_.ClP_0 = typeToString__types_u860; T377_.ClE_0 = colonenvP__1;
			colontmpD__53 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA375_;
			colontmpD__54 = T377_.ClE_0? T377_.ClP_0(colontmpD__53, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T377_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_183)(T377_.ClP_0))(colontmpD__53, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA375_;
			T376_ = rawNewString(colontmpD__54.len + 2);
appendString((&T376_), TM__PpBJsMJcrcWrpLTS6mci1g_182);
appendString((&T376_), colontmpD__54);
appendChar((&T376_), 93);
			colontmpD__55 = T376_;
			prepareAdd((&result), colontmpD__55.len + 0);
appendString((&result), colontmpD__55);
			{
				LA375_:;
			}
			{
				oldNimErrFin375_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___system_u2691(colontmpD__55);
				eqdestroy___system_u2691(colontmpD__54);
				eqdestroy___ast_u3378(colontmpD__53);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin375_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA373_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
	{
		{
			NIM_BOOL T383_;
			T383_ = (NIM_BOOL)0;
			T383_ = !(((*t_1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
			if (!(T383_)) goto LA384_;
			T383_ = !((prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)6)));
LA384_: ;
			if (!T383_) goto LA385_;
			eqcopy___system_u2694((&result), (*(*(*t_1).sym).name).s);
		}
		goto LA381_;
LA385_: ;
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_184);
			{
				NIM_BOOL T390_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__56;
				NimStringV2 colontmpD__57;
				NimStringV2 colontmpD__58;
				NimStringV2 T394_;
				tyProc__NULZ4DXeGT28fHaMwn9bfpQ T395_;
				T390_ = (NIM_BOOL)0;
				T390_ = hasElementType__ast_u5660(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T390_) goto LA391_;
				colontmpD__56 = NIM_NIL;
				colontmpD__57.len = 0; colontmpD__57.p = NIM_NIL;
				colontmpD__58.len = 0; colontmpD__58.p = NIM_NIL;
				T394_.len = 0; T394_.p = NIM_NIL;
				nimZeroMem((void*)(&T395_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
				T395_.ClP_0 = typeToString__types_u860; T395_.ClE_0 = colonenvP__1;
				colontmpD__56 = elementType__ast_u5331(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA393_;
				colontmpD__57 = T395_.ClE_0? T395_.ClP_0(colontmpD__56, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T395_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_186)(T395_.ClP_0))(colontmpD__56, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
				if (NIM_UNLIKELY(*nimErr_)) goto LA393_;
				T394_ = rawNewString(colontmpD__57.len + 2);
appendString((&T394_), TM__PpBJsMJcrcWrpLTS6mci1g_185);
appendString((&T394_), colontmpD__57);
appendChar((&T394_), 93);
				colontmpD__58 = T394_;
				prepareAdd((&result), colontmpD__58.len + 0);
appendString((&result), colontmpD__58);
				{
					LA393_:;
				}
				{
					oldNimErrFin393_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___system_u2691(colontmpD__58);
					eqdestroy___system_u2691(colontmpD__57);
					eqdestroy___ast_u3378(colontmpD__56);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin393_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA391_: ;
		}
LA381_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15):
	{
		eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_188);
		{
			NIM_BOOL T401_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__59;
			NimStringV2 colontmpD__60;
			NimStringV2 colontmpD__61;
			NimStringV2 T405_;
			tyProc__NULZ4DXeGT28fHaMwn9bfpQ T406_;
			T401_ = (NIM_BOOL)0;
			T401_ = hasElementType__ast_u5660(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T401_) goto LA402_;
			colontmpD__59 = NIM_NIL;
			colontmpD__60.len = 0; colontmpD__60.p = NIM_NIL;
			colontmpD__61.len = 0; colontmpD__61.p = NIM_NIL;
			T405_.len = 0; T405_.p = NIM_NIL;
			nimZeroMem((void*)(&T406_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
			T406_.ClP_0 = typeToString__types_u860; T406_.ClE_0 = colonenvP__1;
			colontmpD__59 = skipModifier__ast_u5338(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA404_;
			colontmpD__60 = T406_.ClE_0? T406_.ClP_0(colontmpD__59, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T406_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_190)(T406_.ClP_0))(colontmpD__59, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA404_;
			T405_ = rawNewString(colontmpD__60.len + 2);
appendString((&T405_), TM__PpBJsMJcrcWrpLTS6mci1g_189);
appendString((&T405_), colontmpD__60);
appendChar((&T405_), 93);
			colontmpD__61 = T405_;
			prepareAdd((&result), colontmpD__61.len + 0);
appendString((&result), colontmpD__61);
			{
				LA404_:;
			}
			{
				oldNimErrFin404_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___system_u2691(colontmpD__61);
				eqdestroy___system_u2691(colontmpD__60);
				eqdestroy___ast_u3378(colontmpD__59);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin404_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA402_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
	{
		eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_191);
		{
			NIM_BOOL T412_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__62;
			NimStringV2 colontmpD__63;
			NimStringV2 colontmpD__64;
			NimStringV2 T416_;
			tyProc__NULZ4DXeGT28fHaMwn9bfpQ T417_;
			T412_ = (NIM_BOOL)0;
			T412_ = hasElementType__ast_u5660(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T412_) goto LA413_;
			colontmpD__62 = NIM_NIL;
			colontmpD__63.len = 0; colontmpD__63.p = NIM_NIL;
			colontmpD__64.len = 0; colontmpD__64.p = NIM_NIL;
			T416_.len = 0; T416_.p = NIM_NIL;
			nimZeroMem((void*)(&T417_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
			T417_.ClP_0 = typeToString__types_u860; T417_.ClE_0 = colonenvP__1;
			colontmpD__62 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA415_;
			colontmpD__63 = T417_.ClE_0? T417_.ClP_0(colontmpD__62, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T417_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_193)(T417_.ClP_0))(colontmpD__62, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA415_;
			T416_ = rawNewString(colontmpD__63.len + 2);
appendString((&T416_), TM__PpBJsMJcrcWrpLTS6mci1g_192);
appendString((&T416_), colontmpD__63);
appendChar((&T416_), 93);
			colontmpD__64 = T416_;
			prepareAdd((&result), colontmpD__64.len + 0);
appendString((&result), colontmpD__64);
			{
				LA415_:;
			}
			{
				oldNimErrFin415_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___system_u2691(colontmpD__64);
				eqdestroy___system_u2691(colontmpD__63);
				eqdestroy___ast_u3378(colontmpD__62);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin415_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA413_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
	{
		eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_194);
		{
			NIM_BOOL T423_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__65;
			NimStringV2 colontmpD__66;
			NimStringV2 colontmpD__67;
			NimStringV2 T427_;
			tyProc__NULZ4DXeGT28fHaMwn9bfpQ T428_;
			T423_ = (NIM_BOOL)0;
			T423_ = hasElementType__ast_u5660(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T423_) goto LA424_;
			colontmpD__65 = NIM_NIL;
			colontmpD__66.len = 0; colontmpD__66.p = NIM_NIL;
			colontmpD__67.len = 0; colontmpD__67.p = NIM_NIL;
			T427_.len = 0; T427_.p = NIM_NIL;
			nimZeroMem((void*)(&T428_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
			T428_.ClP_0 = typeToString__types_u860; T428_.ClE_0 = colonenvP__1;
			colontmpD__65 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA426_;
			colontmpD__66 = T428_.ClE_0? T428_.ClP_0(colontmpD__65, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T428_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_196)(T428_.ClP_0))(colontmpD__65, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA426_;
			T427_ = rawNewString(colontmpD__66.len + 2);
appendString((&T427_), TM__PpBJsMJcrcWrpLTS6mci1g_195);
appendString((&T427_), colontmpD__66);
appendChar((&T427_), 93);
			colontmpD__67 = T427_;
			prepareAdd((&result), colontmpD__67.len + 0);
appendString((&result), colontmpD__67);
			{
				LA426_:;
			}
			{
				oldNimErrFin426_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___system_u2691(colontmpD__67);
				eqdestroy___system_u2691(colontmpD__66);
				eqdestroy___ast_u3378(colontmpD__65);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin426_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA424_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__68;
		tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q colontmpD__69;
		tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q colontmpD__70;
		NimStringV2 colontmpD__71;
		NimStringV2 T433_;
		tyProc__NULZ4DXeGT28fHaMwn9bfpQ T434_;
		tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q T435_;
		colontmpD__68 = NIM_NIL;
		colontmpD__69 = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
		colontmpD__70 = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
		colontmpD__71.len = 0; colontmpD__71.p = NIM_NIL;
		T433_.len = 0; T433_.p = NIM_NIL;
		nimZeroMem((void*)(&T434_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
		T434_.ClP_0 = typeToString__types_u860; T434_.ClE_0 = colonenvP__1;
		colontmpD__68 = elementType__ast_u5331(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA432_;
		T435_ = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
		{
			if (!(prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)3))) goto LA438_;
			colontmpD__69 = ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)3);
			T435_ = colontmpD__69;
		}
		goto LA436_;
LA438_: ;
		{
			colontmpD__70 = ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)5);
			T435_ = colontmpD__70;
		}
LA436_: ;
		colontmpD__71 = T434_.ClE_0? T434_.ClP_0(colontmpD__68, T435_, T434_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_199)(T434_.ClP_0))(colontmpD__68, T435_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA432_;
		T433_ = rawNewString(colontmpD__71.len + 9);
appendString((&T433_), TM__PpBJsMJcrcWrpLTS6mci1g_198);
appendString((&T433_), colontmpD__71);
		eqsink___system_u2700((&result), T433_);
		{
			LA432_:;
		}
		{
			oldNimErrFin432_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___system_u2691(colontmpD__71);
			eqdestroy___ast_u3378(colontmpD__68);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin432_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)64):
	{
		eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_200);
		{
			NIM_BOOL T446_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__72;
			NimStringV2 colontmpD__73;
			NimStringV2 colontmpD__74;
			NimStringV2 T450_;
			tyProc__NULZ4DXeGT28fHaMwn9bfpQ T451_;
			T446_ = (NIM_BOOL)0;
			T446_ = hasElementType__ast_u5660(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T446_) goto LA447_;
			colontmpD__72 = NIM_NIL;
			colontmpD__73.len = 0; colontmpD__73.p = NIM_NIL;
			colontmpD__74.len = 0; colontmpD__74.p = NIM_NIL;
			T450_.len = 0; T450_.p = NIM_NIL;
			nimZeroMem((void*)(&T451_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
			T451_.ClP_0 = typeToString__types_u860; T451_.ClE_0 = colonenvP__1;
			colontmpD__72 = skipModifier__ast_u5338(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA449_;
			colontmpD__73 = T451_.ClE_0? T451_.ClP_0(colontmpD__72, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T451_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_202)(T451_.ClP_0))(colontmpD__72, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA449_;
			T450_ = rawNewString(colontmpD__73.len + 2);
appendString((&T450_), TM__PpBJsMJcrcWrpLTS6mci1g_201);
appendString((&T450_), colontmpD__73);
appendChar((&T450_), 93);
			colontmpD__74 = T450_;
			prepareAdd((&result), colontmpD__74.len + 0);
appendString((&result), colontmpD__74);
			{
				LA449_:;
			}
			{
				oldNimErrFin449_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___system_u2691(colontmpD__74);
				eqdestroy___system_u2691(colontmpD__73);
				eqdestroy___ast_u3378(colontmpD__72);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin449_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA447_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
	{
		{
			if (!!(((*t_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA457_;
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_204);
			{
				NI i_16;
				NI colontmp__7;
				NI i_17;
				i_16 = (NI)0;
				colontmp__7 = (NI)0;
				colontmp__7 = len__ast_u3190((*t_1).n);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				i_17 = ((NI)0);
				{
					while (1) {
						NimStringV2 colontmpD__75;
						NimStringV2 colontmpD__76;
						NimStringV2 T463_;
						tyProc__NULZ4DXeGT28fHaMwn9bfpQ T464_;
						if (!(i_17 < colontmp__7)) goto LA461;
						colontmpD__75.len = 0; colontmpD__75.p = NIM_NIL;
						colontmpD__76.len = 0; colontmpD__76.p = NIM_NIL;
						i_16 = i_17;
						T463_.len = 0; T463_.p = NIM_NIL;
						nimZeroMem((void*)(&T464_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
						T464_.ClP_0 = typeToString__types_u860; T464_.ClE_0 = colonenvP__1;
						colontmpD__75 = T464_.ClE_0? T464_.ClP_0((*(*(*(*t_1).n)._kind_6.sons.p->data[i_16])._kind_4.sym).typ, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T464_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_206)(T464_.ClP_0))((*(*(*(*t_1).n)._kind_6.sons.p->data[i_16])._kind_4.sym).typ, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
						if (NIM_UNLIKELY(*nimErr_)) goto LA462_;
						T463_ = rawNewString((*(*(*(*(*t_1).n)._kind_6.sons.p->data[i_16])._kind_4.sym).name).s.len + colontmpD__75.len + 2);
appendString((&T463_), (*(*(*(*(*t_1).n)._kind_6.sons.p->data[i_16])._kind_4.sym).name).s);
appendString((&T463_), TM__PpBJsMJcrcWrpLTS6mci1g_205);
appendString((&T463_), colontmpD__75);
						colontmpD__76 = T463_;
						prepareAdd((&result), colontmpD__76.len + 0);
appendString((&result), colontmpD__76);
						{
							NI T467_;
							T467_ = (NI)0;
							T467_ = len__ast_u3190((*t_1).n);
							if (NIM_UNLIKELY(*nimErr_)) goto LA462_;
							if (!(i_16 < (NI)(T467_ - ((NI)1)))) goto LA468_;
							prepareAdd((&result), 2);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_207);
						}
LA468_: ;
						i_17 += ((NI)1);
						{
							LA462_:;
						}
						{
							eqdestroy___system_u2691(colontmpD__76);
							eqdestroy___system_u2691(colontmpD__75);
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					} LA461: ;
				}
			}
			nimAddCharV1((&result), 93);
		}
		goto LA455_;
LA457_: ;
		{
			NIM_BOOL T473_;
			T473_ = (NIM_BOOL)0;
			T473_ = isEmptyTupleType__ast_u5666(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T473_) goto LA474_;
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_209);
		}
		goto LA455_;
LA474_: ;
		{
			NIM_BOOL T477_;
			T477_ = (NIM_BOOL)0;
			T477_ = isSingletonTupleType__ast_u5672(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T477_) goto LA478_;
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_210);
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_3;
				son_3 = NIM_NIL;
				{
					NI i_18;
					NI colontmp__8;
					NI T483_;
					NI i_19;
					i_18 = (NI)0;
					colontmp__8 = (NI)0;
					T483_ = (*t_1).sons.len;
					colontmp__8 = T483_;
					i_19 = ((NI)0);
					{
						while (1) {
							NimStringV2 colontmpD__77;
							tyProc__NULZ4DXeGT28fHaMwn9bfpQ T487_;
							if (!(i_19 < colontmp__8)) goto LA485;
							colontmpD__77.len = 0; colontmpD__77.p = NIM_NIL;
							i_18 = i_19;
							eqcopy___ast_u3381(&son_3, (*t_1).sons.p->data[i_18]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA486_;
							nimZeroMem((void*)(&T487_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
							T487_.ClP_0 = typeToString__types_u860; T487_.ClE_0 = colonenvP__1;
							colontmpD__77 = T487_.ClE_0? T487_.ClP_0(son_3, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T487_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_211)(T487_.ClP_0))(son_3, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
							if (NIM_UNLIKELY(*nimErr_)) goto LA486_;
							prepareAdd((&result), colontmpD__77.len + 0);
appendString((&result), colontmpD__77);
							i_19 += ((NI)1);
							{
								LA486_:;
							}
							{
								eqdestroy___system_u2691(colontmpD__77);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA481_;
						} LA485: ;
					}
				}
				{
					LA481_:;
				}
				{
					oldNimErrFin481_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(son_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin481_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			prepareAdd((&result), 2);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_213);
		}
		goto LA455_;
LA478_: ;
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_214);
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_4;
				NI i_20;
				son_4 = NIM_NIL;
				i_20 = (NI)0;
				{
					NI i_21;
					NI colontmp__9;
					NI T496_;
					NI i_22;
					i_21 = (NI)0;
					colontmp__9 = (NI)0;
					T496_ = (*t_1).sons.len;
					colontmp__9 = T496_;
					i_22 = ((NI)0);
					{
						while (1) {
							NimStringV2 colontmpD__78;
							tyProc__NULZ4DXeGT28fHaMwn9bfpQ T504_;
							if (!(i_22 < colontmp__9)) goto LA498;
							colontmpD__78.len = 0; colontmpD__78.p = NIM_NIL;
							i_21 = i_22;
							i_20 = i_21;
							eqcopy___ast_u3381(&son_4, (*t_1).sons.p->data[i_21]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA499_;
							{
								if (!(((NI)0) < i_20)) goto LA502_;
								prepareAdd((&result), 2);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_215);
							}
LA502_: ;
							nimZeroMem((void*)(&T504_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
							T504_.ClP_0 = typeToString__types_u860; T504_.ClE_0 = colonenvP__1;
							colontmpD__78 = T504_.ClE_0? T504_.ClP_0(son_4, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T504_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_216)(T504_.ClP_0))(son_4, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
							if (NIM_UNLIKELY(*nimErr_)) goto LA499_;
							prepareAdd((&result), colontmpD__78.len + 0);
appendString((&result), colontmpD__78);
							i_22 += ((NI)1);
							{
								LA499_:;
							}
							{
								eqdestroy___system_u2691(colontmpD__78);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA494_;
						} LA498: ;
					}
				}
				{
					LA494_:;
				}
				{
					oldNimErrFin494_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(son_4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin494_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			nimAddCharV1((&result), 41);
		}
LA455_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__79;
		NimStringV2 colontmpD__80;
		NimStringV2 T511_;
		tyProc__NULZ4DXeGT28fHaMwn9bfpQ T518_;
		colontmpD__79 = NIM_NIL;
		colontmpD__80.len = 0; colontmpD__80.p = NIM_NIL;
		T511_.len = 0; T511_.p = NIM_NIL;
		{
			NIM_BOOL T514_;
			T514_ = (NIM_BOOL)0;
			T514_ = isOutParam__ast_u7655(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA510_;
			if (!T514_) goto LA515_;
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_218);
		}
		goto LA512_;
LA515_: ;
		{
			eqcopy___system_u2694((&result), typeToStr__types_u814[((*t_1).kind)- 0]);
		}
LA512_: ;
		nimZeroMem((void*)(&T518_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
		T518_.ClP_0 = typeToString__types_u860; T518_.ClE_0 = colonenvP__1;
		colontmpD__79 = elementType__ast_u5331(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA510_;
		colontmpD__80 = T518_.ClE_0? T518_.ClP_0(colontmpD__79, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T518_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_219)(T518_.ClP_0))(colontmpD__79, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
		if (NIM_UNLIKELY(*nimErr_)) goto LA510_;
		prepareAdd((&result), colontmpD__80.len + 0);
appendString((&result), colontmpD__80);
		{
			LA510_:;
		}
		{
			oldNimErrFin510_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___system_u2691(colontmpD__80);
			eqdestroy___ast_u3378(colontmpD__79);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin510_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
	{
		eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_221);
		{
			NIM_BOOL T524_;
			NimStringV2 colontmpD__81;
			T524_ = (NIM_BOOL)0;
			T524_ = !(((*t_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
			if (!(T524_)) goto LA525_;
			T524_ = ((*(*t_1).n).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)44));
LA525_: ;
			if (!T524_) goto LA526_;
			colontmpD__81.len = 0; colontmpD__81.p = NIM_NIL;
			colontmpD__81 = rangeToStr__types_u804((*t_1).n);
			if (NIM_UNLIKELY(*nimErr_)) goto LA528_;
			prepareAdd((&result), colontmpD__81.len + 0);
appendString((&result), colontmpD__81);
			{
				LA528_:;
			}
			{
				eqdestroy___system_u2691(colontmpD__81);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA526_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__82;
			NimStringV2 colontmpD__83;
			NimStringV2 colontmpD__84;
			NimStringV2 T536_;
			tyProc__NULZ4DXeGT28fHaMwn9bfpQ T537_;
			if (!!((prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)2)))) goto LA533_;
			colontmpD__82 = NIM_NIL;
			colontmpD__83.len = 0; colontmpD__83.p = NIM_NIL;
			colontmpD__84.len = 0; colontmpD__84.p = NIM_NIL;
			T536_.len = 0; T536_.p = NIM_NIL;
			nimZeroMem((void*)(&T537_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
			T537_.ClP_0 = typeToString__types_u860; T537_.ClE_0 = colonenvP__1;
			colontmpD__82 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA535_;
			colontmpD__83 = T537_.ClE_0? T537_.ClP_0(colontmpD__82, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T537_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_223)(T537_.ClP_0))(colontmpD__82, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA535_;
			T536_ = rawNewString(colontmpD__83.len + 2);
appendString((&T536_), TM__PpBJsMJcrcWrpLTS6mci1g_222);
appendString((&T536_), colontmpD__83);
appendString((&T536_), TM__PpBJsMJcrcWrpLTS6mci1g_224);
			colontmpD__84 = T536_;
			prepareAdd((&result), colontmpD__84.len + 0);
appendString((&result), colontmpD__84);
			{
				LA535_:;
			}
			{
				oldNimErrFin535_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___system_u2691(colontmpD__84);
				eqdestroy___system_u2691(colontmpD__83);
				eqdestroy___ast_u3378(colontmpD__82);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin535_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA533_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__85;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__86;
		NimStringV2 prag_1;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__87;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__88;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__89;
		NimStringV2 effectsOfStr_1;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__90;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__91;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__92;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__93;
		NimStringV2 T542_;
		NimStringV2 T594_;
		NIM_BOOL hasImplicitRaises_1;
		colontmpD__85 = NIM_NIL;
		colontmpD__86 = NIM_NIL;
		prag_1.len = 0; prag_1.p = NIM_NIL;
		colontmpD__87 = NIM_NIL;
		colontmpD__88 = NIM_NIL;
		colontmpD__89 = NIM_NIL;
		effectsOfStr_1.len = 0; effectsOfStr_1.p = NIM_NIL;
		colontmpD__90 = NIM_NIL;
		colontmpD__91 = NIM_NIL;
		colontmpD__92 = NIM_NIL;
		colontmpD__93 = NIM_NIL;
		T542_.len = 0; T542_.p = NIM_NIL;
		{
			if (!(((*t_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)15)))&63U)))!=0)) goto LA545_;
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_226);
		}
		goto LA543_;
LA545_: ;
		{
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__94;
			NimStringV2 T550_;
			colontmpD__85 = owner__ast_u6246(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			if (!!((colontmpD__85 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA548_;
			colontmpD__94 = NIM_NIL;
			T550_.len = 0; T550_.p = NIM_NIL;
			colontmpD__94 = owner__ast_u6246(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			switch ((*colontmpD__94).kind) {
			case ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18):
			{
				eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_228);
			}
			break;
			case ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17):
			{
				eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_230);
			}
			break;
			case ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)16):
			{
				eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_232);
			}
			break;
			default:
			{
				eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_234);
			}
			break;
			}
			eqdestroy___ast_u4574(colontmpD__94);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
		}
		goto LA543_;
LA548_: ;
		{
			eqsink___system_u2700((&result), TM__PpBJsMJcrcWrpLTS6mci1g_235);
		}
LA543_: ;
		{
			if (!(((*t_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0)) goto LA558_;
			prepareAdd((&result), 22);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_237);
		}
LA558_: ;
		prepareAdd((&result), 1);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_238);
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_5;
			NI i_23;
			a_5 = NIM_NIL;
			i_23 = (NI)0;
			{
				NI i_24;
				NI colontmp__10;
				NI T563_;
				NI i_25;
				i_24 = (NI)0;
				colontmp__10 = (NI)0;
				T563_ = (*t_1).sons.len;
				colontmp__10 = T563_;
				i_25 = ((NI)1);
				{
					while (1) {
						NimStringV2 colontmpD__95;
						NI j_1;
						tyProc__NULZ4DXeGT28fHaMwn9bfpQ T580_;
						if (!(i_25 < colontmp__10)) goto LA565;
						colontmpD__95.len = 0; colontmpD__95.p = NIM_NIL;
						i_24 = i_25;
						i_23 = i_24;
						eqcopy___ast_u3381(&a_5, (*t_1).sons.p->data[i_24]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA566_;
						{
							if (!(((NI)1) < i_23)) goto LA569_;
							prepareAdd((&result), 2);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_239);
						}
LA569_: ;
						j_1 = i_23;
						{
							NIM_BOOL T573_;
							NIM_BOOL T574_;
							NI T576_;
							T573_ = (NIM_BOOL)0;
							T574_ = (NIM_BOOL)0;
							T574_ = !(((*t_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
							if (!(T574_)) goto LA575_;
							T576_ = (NI)0;
							T576_ = len__ast_u3190((*t_1).n);
							if (NIM_UNLIKELY(*nimErr_)) goto LA566_;
							T574_ = (j_1 < T576_);
LA575_: ;
							T573_ = T574_;
							if (!(T573_)) goto LA577_;
							T573_ = ((*(*(*t_1).n)._kind_6.sons.p->data[j_1]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
LA577_: ;
							if (!T573_) goto LA578_;
							prepareAdd((&result), (*(*(*(*(*t_1).n)._kind_6.sons.p->data[j_1])._kind_4.sym).name).s.len + 0);
appendString((&result), (*(*(*(*(*t_1).n)._kind_6.sons.p->data[j_1])._kind_4.sym).name).s);
							prepareAdd((&result), 2);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_240);
						}
LA578_: ;
						nimZeroMem((void*)(&T580_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
						T580_.ClP_0 = typeToString__types_u860; T580_.ClE_0 = colonenvP__1;
						colontmpD__95 = T580_.ClE_0? T580_.ClP_0(a_5, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T580_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_241)(T580_.ClP_0))(a_5, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
						if (NIM_UNLIKELY(*nimErr_)) goto LA566_;
						prepareAdd((&result), colontmpD__95.len + 0);
appendString((&result), colontmpD__95);
						i_25 += ((NI)1);
						{
							LA566_:;
						}
						{
							eqdestroy___system_u2691(colontmpD__95);
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA561_;
					} LA565: ;
				}
			}
			{
				LA561_:;
			}
			{
				oldNimErrFin561_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(a_5);
				if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
				*nimErr_ = oldNimErrFin561_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
		}
		nimAddCharV1((&result), 41);
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__96;
			NimStringV2 colontmpD__97;
			NimStringV2 colontmpD__98;
			NimStringV2 T590_;
			tyProc__NULZ4DXeGT28fHaMwn9bfpQ T591_;
			colontmpD__86 = returnType__ast_u5354(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			if (!!((colontmpD__86 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA587_;
			colontmpD__96 = NIM_NIL;
			colontmpD__97.len = 0; colontmpD__97.p = NIM_NIL;
			colontmpD__98.len = 0; colontmpD__98.p = NIM_NIL;
			T590_.len = 0; T590_.p = NIM_NIL;
			nimZeroMem((void*)(&T591_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
			T591_.ClP_0 = typeToString__types_u860; T591_.ClE_0 = colonenvP__1;
			colontmpD__96 = returnType__ast_u5354(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA589_;
			colontmpD__97 = T591_.ClE_0? T591_.ClP_0(colontmpD__96, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T591_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_243)(T591_.ClP_0))(colontmpD__96, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA589_;
			T590_ = rawNewString(colontmpD__97.len + 2);
appendString((&T590_), TM__PpBJsMJcrcWrpLTS6mci1g_242);
appendString((&T590_), colontmpD__97);
			colontmpD__98 = T590_;
			prepareAdd((&result), colontmpD__98.len + 0);
appendString((&result), colontmpD__98);
			{
				LA589_:;
			}
			{
				oldNimErrFin589_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___system_u2691(colontmpD__98);
				eqdestroy___system_u2691(colontmpD__97);
				eqdestroy___ast_u3378(colontmpD__96);
				if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
				*nimErr_ = oldNimErrFin589_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
		}
LA587_: ;
		T594_.len = 0; T594_.p = NIM_NIL;
		{
			NIM_BOOL T597_;
			T597_ = (NIM_BOOL)0;
			T597_ = ((*t_1).callConv == ((tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ)0));
			if (!(T597_)) goto LA598_;
			T597_ = !((((*t_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)42)))&63U)))!=0));
LA598_: ;
			if (!T597_) goto LA599_;
			prag_1 = TM__PpBJsMJcrcWrpLTS6mci1g_244;
		}
		goto LA595_;
LA599_: ;
		{
			prag_1 = dollar___ast_u26((*t_1).callConv);
		}
LA595_: ;
		hasImplicitRaises_1 = NIM_FALSE;
		{
			NIM_BOOL T604_;
			NIM_BOOL T605_;
			NI T608_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* pragmasNode_1;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__99;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* raisesSpec_1;
			T604_ = (NIM_BOOL)0;
			T605_ = (NIM_BOOL)0;
			colontmpD__87 = owner__ast_u6246(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			T605_ = !((colontmpD__87 == 0));
			if (!(T605_)) goto LA606_;
			colontmpD__88 = owner__ast_u6246(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			T605_ = !(((*colontmpD__88).ast == 0));
LA606_: ;
			T604_ = T605_;
			if (!(T604_)) goto LA607_;
			colontmpD__89 = owner__ast_u6246(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			T608_ = (NI)0;
			T608_ = len__ast_u3190((*colontmpD__89).ast);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			T604_ = (((NI)4) <= (NI)(T608_ - ((NI)1)));
LA607_: ;
			if (!T604_) goto LA609_;
			pragmasNode_1 = NIM_NIL;
			colontmpD__99 = NIM_NIL;
			raisesSpec_1 = NIM_NIL;
			colontmpD__99 = owner__ast_u6246(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA611_;
			eqcopy___ast_u3255(&pragmasNode_1, (*(*colontmpD__99).ast)._kind_6.sons.p->data[((NI)4)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA611_;
			raisesSpec_1 = effectSpec__trees_u307(pragmasNode_1, ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)175));
			if (NIM_UNLIKELY(*nimErr_)) goto LA611_;
			{
				NimStringV2 colontmpD__100;
				if (!!((raisesSpec_1 == 0))) goto LA614_;
				colontmpD__100.len = 0; colontmpD__100.p = NIM_NIL;
				addSep__pureZstrutils_u1498((&prag_1), TM__PpBJsMJcrcWrpLTS6mci1g_245, ((NI)0));
				if (NIM_UNLIKELY(*nimErr_)) goto LA616_;
				prepareAdd((&prag_1), 8);
appendString((&prag_1), TM__PpBJsMJcrcWrpLTS6mci1g_247);
				colontmpD__100 = dollar___renderer_u2166(raisesSpec_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA616_;
				prepareAdd((&prag_1), colontmpD__100.len + 0);
appendString((&prag_1), colontmpD__100);
				hasImplicitRaises_1 = NIM_TRUE;
				{
					LA616_:;
				}
				{
					eqdestroy___system_u2691(colontmpD__100);
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA611_;
			}
LA614_: ;
			{
				LA611_:;
			}
			{
				oldNimErrFin611_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(raisesSpec_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
				eqdestroy___ast_u4574(colontmpD__99);
				if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
				eqdestroy___ast_u3252(pragmasNode_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
				*nimErr_ = oldNimErrFin611_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
		}
LA609_: ;
		{
			if (!(((*t_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)1)))&63U)))!=0)) goto LA623_;
			addSep__pureZstrutils_u1498((&prag_1), TM__PpBJsMJcrcWrpLTS6mci1g_248, ((NI)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			prepareAdd((&prag_1), 12);
appendString((&prag_1), TM__PpBJsMJcrcWrpLTS6mci1g_250);
		}
LA623_: ;
		{
			if (!(((*t_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)7)))&63U)))!=0)) goto LA627_;
			addSep__pureZstrutils_u1498((&prag_1), TM__PpBJsMJcrcWrpLTS6mci1g_251, ((NI)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			prepareAdd((&prag_1), 6);
appendString((&prag_1), TM__PpBJsMJcrcWrpLTS6mci1g_253);
		}
LA627_: ;
		effectsOfStr_1 = TM__PpBJsMJcrcWrpLTS6mci1g_254;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_6;
			NI i_26;
			a_6 = NIM_NIL;
			i_26 = (NI)0;
			{
				NI i_27;
				NI colontmp__11;
				NI T631_;
				NI i_28;
				i_27 = (NI)0;
				colontmp__11 = (NI)0;
				T631_ = (*t_1).sons.len;
				colontmp__11 = T631_;
				i_28 = ((NI)1);
				{
					while (1) {
						NI j_2;
						if (!(i_28 < colontmp__11)) goto LA633;
						i_27 = i_28;
						i_26 = i_27;
						eqcopy___ast_u3381(&a_6, (*t_1).sons.p->data[i_27]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
						j_2 = i_26;
						{
							NIM_BOOL T636_;
							NIM_BOOL T637_;
							NIM_BOOL T638_;
							NIM_BOOL T639_;
							NI T641_;
							T636_ = (NIM_BOOL)0;
							T637_ = (NIM_BOOL)0;
							T638_ = (NIM_BOOL)0;
							T639_ = (NIM_BOOL)0;
							T639_ = !(((*t_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
							if (!(T639_)) goto LA640_;
							T641_ = (NI)0;
							T641_ = len__ast_u3190((*t_1).n);
							if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
							T639_ = (j_2 < T641_);
LA640_: ;
							T638_ = T639_;
							if (!(T638_)) goto LA642_;
							T638_ = ((*(*(*t_1).n)._kind_6.sons.p->data[j_2]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
LA642_: ;
							T637_ = T638_;
							if (!(T637_)) goto LA643_;
							T637_ = ((*(*(*(*t_1).n)._kind_6.sons.p->data[j_2])._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3));
LA643_: ;
							T636_ = T637_;
							if (!(T636_)) goto LA644_;
							T636_ = (((*(*(*(*t_1).n)._kind_6.sons.p->data[j_2])._kind_4.sym).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)48)))&63U)))!=0);
LA644_: ;
							if (!T636_) goto LA645_;
							addSep__pureZstrutils_u1498((&effectsOfStr_1), TM__PpBJsMJcrcWrpLTS6mci1g_255, ((NI)0));
							if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
							prepareAdd((&effectsOfStr_1), (*(*(*(*(*t_1).n)._kind_6.sons.p->data[j_2])._kind_4.sym).name).s.len + 0);
appendString((&effectsOfStr_1), (*(*(*(*(*t_1).n)._kind_6.sons.p->data[j_2])._kind_4.sym).name).s);
						}
LA645_: ;
						i_28 += ((NI)1);
					} LA633: ;
				}
			}
			eqdestroy___ast_u3378(a_6);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
		}
		{
			if (!!((effectsOfStr_1.len == 0))) goto LA649_;
			addSep__pureZstrutils_u1498((&prag_1), TM__PpBJsMJcrcWrpLTS6mci1g_256, ((NI)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			prepareAdd((&prag_1), 11);
appendString((&prag_1), TM__PpBJsMJcrcWrpLTS6mci1g_258);
			prepareAdd((&prag_1), effectsOfStr_1.len + 0);
appendString((&prag_1), effectsOfStr_1);
		}
LA649_: ;
		{
			NIM_BOOL T653_;
			NIM_BOOL T654_;
			NIM_BOOL T655_;
			NIM_BOOL T656_;
			NIM_BOOL T657_;
			NI T663_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* effects_1;
			T653_ = (NIM_BOOL)0;
			T654_ = (NIM_BOOL)0;
			T655_ = (NIM_BOOL)0;
			T656_ = (NIM_BOOL)0;
			T657_ = (NIM_BOOL)0;
			T657_ = !(hasImplicitRaises_1);
			if (!(T657_)) goto LA658_;
			T657_ = (prefer_2 == ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)9));
LA658_: ;
			T656_ = T657_;
			if (!(T656_)) goto LA659_;
			colontmpD__90 = owner__ast_u6246(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			T656_ = !((colontmpD__90 == 0));
LA659_: ;
			T655_ = T656_;
			if (!(T655_)) goto LA660_;
			colontmpD__91 = owner__ast_u6246(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			T655_ = !(((*colontmpD__91).typ == 0));
LA660_: ;
			T654_ = T655_;
			if (!(T654_)) goto LA661_;
			colontmpD__92 = owner__ast_u6246(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			T654_ = !(((*(*colontmpD__92).typ).n == 0));
LA661_: ;
			T653_ = T654_;
			if (!(T653_)) goto LA662_;
			colontmpD__93 = owner__ast_u6246(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			T663_ = (NI)0;
			T663_ = len__ast_u3190((*(*colontmpD__93).typ).n);
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
			T653_ = (((NI)0) < T663_);
LA662_: ;
			if (!T653_) goto LA664_;
			effects_1 = NIM_NIL;
			eqcopy___ast_u3255(&effects_1, (*(*t_1).n)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA666_;
			{
				NIM_BOOL T669_;
				NI T671_;
				NimStringV2 inferredRaisesStr_1;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* effs_1;
				T669_ = (NIM_BOOL)0;
				T669_ = ((*effects_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152));
				if (!(T669_)) goto LA670_;
				T671_ = (NI)0;
				T671_ = len__ast_u3190(effects_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA666_;
				T669_ = (T671_ == ((NI)6));
LA670_: ;
				if (!T669_) goto LA672_;
				inferredRaisesStr_1.len = 0; inferredRaisesStr_1.p = NIM_NIL;
				effs_1 = NIM_NIL;
				inferredRaisesStr_1 = TM__PpBJsMJcrcWrpLTS6mci1g_259;
				eqcopy___ast_u3255(&effs_1, (*effects_1)._kind_6.sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA674_;
				{
					if (!!((effs_1 == 0))) goto LA677_;
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* eff_1;
						eff_1 = NIM_NIL;
						{
							NI i_29;
							NI colontmp__12;
							NI i_30;
							i_29 = (NI)0;
							colontmp__12 = (NI)0;
							colontmp__12 = safeLen__ast_u3197(effs_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA680_;
							i_30 = ((NI)0);
							{
								while (1) {
									if (!(i_30 < colontmp__12)) goto LA683;
									i_29 = i_30;
									eqcopy___ast_u3255(&eff_1, (*effs_1)._kind_6.sons.p->data[i_29]);
									if (NIM_UNLIKELY(*nimErr_)) goto LA680_;
									{
										NimStringV2 colontmpD__101;
										if (!!((eff_1 == 0))) goto LA686_;
										colontmpD__101.len = 0; colontmpD__101.p = NIM_NIL;
										addSep__pureZstrutils_u1498((&inferredRaisesStr_1), TM__PpBJsMJcrcWrpLTS6mci1g_260, ((NI)0));
										if (NIM_UNLIKELY(*nimErr_)) goto LA688_;
										colontmpD__101 = typeToString__types_u54((*eff_1).typField, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
										if (NIM_UNLIKELY(*nimErr_)) goto LA688_;
										prepareAdd((&inferredRaisesStr_1), colontmpD__101.len + 0);
appendString((&inferredRaisesStr_1), colontmpD__101);
										{
											LA688_:;
										}
										{
											eqdestroy___system_u2691(colontmpD__101);
										}
										if (NIM_UNLIKELY(*nimErr_)) goto LA680_;
									}
LA686_: ;
									i_30 += ((NI)1);
								} LA683: ;
							}
						}
						{
							LA680_:;
						}
						{
							oldNimErrFin680_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(eff_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA674_;
							*nimErr_ = oldNimErrFin680_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA674_;
					}
				}
LA677_: ;
				addSep__pureZstrutils_u1498((&prag_1), TM__PpBJsMJcrcWrpLTS6mci1g_261, ((NI)0));
				if (NIM_UNLIKELY(*nimErr_)) goto LA674_;
				prepareAdd((&prag_1), 20);
appendString((&prag_1), TM__PpBJsMJcrcWrpLTS6mci1g_263);
				prepareAdd((&prag_1), inferredRaisesStr_1.len + 0);
appendString((&prag_1), inferredRaisesStr_1);
				prepareAdd((&prag_1), 1);
appendString((&prag_1), TM__PpBJsMJcrcWrpLTS6mci1g_264);
				{
					LA674_:;
				}
				{
					oldNimErrFin674_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3252(effs_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA666_;
					eqdestroy___system_u2691(inferredRaisesStr_1);
					*nimErr_ = oldNimErrFin674_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA666_;
			}
LA672_: ;
			{
				LA666_:;
			}
			{
				oldNimErrFin666_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(effects_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
				*nimErr_ = oldNimErrFin666_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA541_;
		}
LA664_: ;
		{
			NimStringV2 colontmpD__102;
			NimStringV2 T701_;
			if (!!((prag_1.len == ((NI)0)))) goto LA699_;
			colontmpD__102.len = 0; colontmpD__102.p = NIM_NIL;
			T701_.len = 0; T701_.p = NIM_NIL;
			T701_ = rawNewString(prag_1.len + 4);
appendString((&T701_), TM__PpBJsMJcrcWrpLTS6mci1g_266);
appendString((&T701_), prag_1);
appendString((&T701_), TM__PpBJsMJcrcWrpLTS6mci1g_268);
			colontmpD__102 = T701_;
			prepareAdd((&result), colontmpD__102.len + 0);
appendString((&result), colontmpD__102);
			eqdestroy___system_u2691(colontmpD__102);
		}
LA699_: ;
		{
			LA541_:;
		}
		{
			oldNimErrFin541_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u4574(colontmpD__93);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u4574(colontmpD__92);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u4574(colontmpD__91);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u4574(colontmpD__90);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___system_u2691(effectsOfStr_1);
			eqdestroy___ast_u4574(colontmpD__89);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u4574(colontmpD__88);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u4574(colontmpD__87);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___system_u2691(prag_1);
			eqdestroy___ast_u3378(colontmpD__86);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u4574(colontmpD__85);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin541_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__103;
		NimStringV2 colontmpD__104;
		tyProc__NULZ4DXeGT28fHaMwn9bfpQ T706_;
		NimStringV2 T707_;
		colontmpD__103 = NIM_NIL;
		colontmpD__104.len = 0; colontmpD__104.p = NIM_NIL;
		nimZeroMem((void*)(&T706_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
		T706_.ClP_0 = typeToString__types_u860; T706_.ClE_0 = colonenvP__1;
		colontmpD__103 = elementType__ast_u5331(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA705_;
		colontmpD__104 = T706_.ClE_0? T706_.ClP_0(colontmpD__103, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T706_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_269)(T706_.ClP_0))(colontmpD__103, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
		if (NIM_UNLIKELY(*nimErr_)) goto LA705_;
		T707_.len = 0; T707_.p = NIM_NIL;
		T707_ = nsuFormatSingleElem(typeToStr__types_u814[((*t_1).kind)- 0], colontmpD__104);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___system_u2691(T707_); goto LA705_;}
		eqsink___system_u2700((&result), T707_);
		{
			LA705_:;
		}
		{
			oldNimErrFin705_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___system_u2691(colontmpD__104);
			eqdestroy___ast_u3378(colontmpD__103);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin705_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__105;
		NimStringV2 colontmpD__106;
		NimStringV2 T712_;
		tyProc__NULZ4DXeGT28fHaMwn9bfpQ T713_;
		colontmpD__105 = NIM_NIL;
		colontmpD__106.len = 0; colontmpD__106.p = NIM_NIL;
		T712_.len = 0; T712_.p = NIM_NIL;
		nimZeroMem((void*)(&T713_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
		T713_.ClP_0 = typeToString__types_u860; T713_.ClE_0 = colonenvP__1;
		colontmpD__105 = skipModifier__ast_u5338(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA711_;
		colontmpD__106 = T713_.ClE_0? T713_.ClP_0(colontmpD__105, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T713_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_272)(T713_.ClP_0))(colontmpD__105, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
		if (NIM_UNLIKELY(*nimErr_)) goto LA711_;
		T712_ = rawNewString(colontmpD__106.len + 5);
appendString((&T712_), TM__PpBJsMJcrcWrpLTS6mci1g_271);
appendString((&T712_), colontmpD__106);
		eqsink___system_u2700((&result), T712_);
		{
			LA711_:;
		}
		{
			oldNimErrFin711_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___system_u2691(colontmpD__106);
			eqdestroy___ast_u3378(colontmpD__105);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin711_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__107;
		NimStringV2 colontmpD__108;
		NimStringV2 T718_;
		tyProc__NULZ4DXeGT28fHaMwn9bfpQ T719_;
		colontmpD__107 = NIM_NIL;
		colontmpD__108.len = 0; colontmpD__108.p = NIM_NIL;
		T718_.len = 0; T718_.p = NIM_NIL;
		nimZeroMem((void*)(&T719_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
		T719_.ClP_0 = typeToString__types_u860; T719_.ClE_0 = colonenvP__1;
		colontmpD__107 = elementType__ast_u5331(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA717_;
		colontmpD__108 = T719_.ClE_0? T719_.ClP_0(colontmpD__107, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0), T719_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_275)(T719_.ClP_0))(colontmpD__107, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
		if (NIM_UNLIKELY(*nimErr_)) goto LA717_;
		T718_ = rawNewString(colontmpD__108.len + 6);
appendString((&T718_), TM__PpBJsMJcrcWrpLTS6mci1g_274);
appendString((&T718_), colontmpD__108);
		eqsink___system_u2700((&result), T718_);
		{
			LA717_:;
		}
		{
			oldNimErrFin717_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___system_u2691(colontmpD__108);
			eqdestroy___ast_u3378(colontmpD__107);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin717_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	default:
	{
		eqcopy___system_u2694((&result), typeToStr__types_u814[((*t_1).kind)- 0]);
	}
	break;
	}
	addTypeFlags__types_u821((&result), t_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU64)(((NU) (x_p0))) - (NU64)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicStatic)(void* p_p0, TNimTypeV2* desc_p1) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
		cell_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T5_));
		{
			if (!((NI)((*cell_1).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc = minuspercent___system_u805((*cell_1).rc, ((NI)16));
		}
LA6_: ;
		rememberCycle__system_u3492(result, cell_1, desc_p1);
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___types_u4530)(tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA* dest_p0) {
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___types_u4555)(tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicStatic(dest_p0, ((TNimTypeV2*) ((&NTIv2__vHTkCMDgUg7IXUL0DKy59cA_))));
		if (!T3_) goto LA4_;
		eqdestroy___types_u4530((&(*dest_p0)));
		nimRawDispose(dest_p0, ((NI)8));
	}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, typeToString__types_u54)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1) {
	NimStringV2 result;
	tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA* colonenv__1;
	tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA* T2_;
	tyProc__NULZ4DXeGT28fHaMwn9bfpQ T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	colonenv__1 = NIM_NIL;
	T2_ = NIM_NIL;
	T2_ = (tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA*) nimNewObj(sizeof(tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA), NIM_ALIGNOF(tyObject_Env_typesdotnim_typeToString___vHTkCMDgUg7IXUL0DKy59cA));
	(*T2_).Sup.m_type = (&NTIv2__vHTkCMDgUg7IXUL0DKy59cA_);
	colonenv__1 = T2_;
	(*colonenv__1).preferToplevel0 = prefer_p1;
	nimZeroMem((void*)(&T3_), sizeof(tyProc__NULZ4DXeGT28fHaMwn9bfpQ));
	T3_.ClP_0 = typeToString__types_u860; T3_.ClE_0 = colonenv__1;
	result = T3_.ClE_0? T3_.ClP_0(typ_p0, prefer_p1, T3_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_276)(T3_.ClP_0))(typ_p0, prefer_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		eqdestroy___types_u4555(colonenv__1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elemType__types_u254)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	switch ((*t_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = skipModifier__ast_u5338(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = elemType__types_u254(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	{
		result = elementType__ast_u5331(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50):
	{
		eqcopy___ast_u3381(&result, t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = elementType__ast_u5331(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, baseClass__ast_u5348)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConcept__types_u3423)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	switch ((*t_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		NIM_BOOL T4_;
		colontmpD_ = NIM_NIL;
		T4_ = (NIM_BOOL)0;
		T4_ = hasElementType__ast_u5660(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_)) goto LA5_;
		colontmpD_ = elementType__ast_u5331(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = isConcept__types_u3423(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA5_: ;
		result = T4_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = typeBodyImpl__ast_u5369(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = ((*colontmpD__2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62));
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		NIM_BOOL colontmpD__4;
		NIM_BOOL colontmpD__5;
		colontmpD__3 = NIM_NIL;
		colontmpD__4 = (NIM_BOOL)0;
		colontmpD__5 = (NIM_BOOL)0;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
			colontmpD__3 = baseClass__ast_u5348(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((*colontmpD__3).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10))) goto LA10_;
			colontmpD__6 = NIM_NIL;
			colontmpD__7 = NIM_NIL;
			colontmpD__6 = baseClass__ast_u5348(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmpD__7 = typeBodyImpl__ast_u5369(colontmpD__6);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmpD__4 = ((*colontmpD__7).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62));
			eqdestroy___ast_u3378(colontmpD__7);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD__6);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = colontmpD__4;
		}
		goto LA8_;
LA10_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__8;
			colontmpD__8 = NIM_NIL;
			colontmpD__8 = baseClass__ast_u5348(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmpD__5 = ((*colontmpD__8).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62));
			eqdestroy___ast_u3378(colontmpD__8);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = colontmpD__5;
		}
LA8_: ;
		eqdestroy___ast_u3378(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, len__ast_u5502)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	NI result;
	NI T1_;
	T1_ = (*n_p0).sons.len;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, reduceToBase__types_u4300)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	switch ((*f_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		{
			NIM_BOOL T4_;
			NI T5_;
			T4_ = (NIM_BOOL)0;
			T5_ = (NI)0;
			T5_ = len__ast_u5502(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T4_ = (T5_ <= ((NI)0));
			if (T4_) goto LA6_;
			colontmpD_ = skipModifier__ast_u5338(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T4_ = (colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA6_: ;
			if (!T4_) goto LA7_;
			eqcopy___ast_u3381(&result, f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA2_;
LA7_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
			colontmpD__2 = NIM_NIL;
			colontmpD__2 = skipModifier__ast_u5338(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = reduceToBase__types_u4300(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA2_: ;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		colontmpD__3 = NIM_NIL;
		colontmpD__3 = baseClass__ast_u5348(f_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = reduceToBase__types_u4300(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
		colontmpD__4 = NIM_NIL;
		{
			NIM_BOOL T14_;
			NIM_BOOL T15_;
			T14_ = (NIM_BOOL)0;
			T15_ = (NIM_BOOL)0;
			T15_ = hasElementType__ast_u5660(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T14_ = !(T15_);
			if (T14_) goto LA16_;
			colontmpD__4 = elementType__ast_u5331(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T14_ = (colontmpD__4 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA16_: ;
			if (!T14_) goto LA17_;
			eqcopy___ast_u3381(&result, f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA12_;
LA17_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
			colontmpD__5 = NIM_NIL;
			colontmpD__5 = elementType__ast_u5331(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = reduceToBase__types_u4300(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA12_: ;
		eqdestroy___ast_u3378(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
		colontmpD__6 = NIM_NIL;
		colontmpD__6 = skipModifier__ast_u5338(f_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = reduceToBase__types_u4300(colontmpD__6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
		colontmpD__7 = NIM_NIL;
		colontmpD__7 = typeBodyImpl__ast_u5369(f_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = reduceToBase__types_u4300(colontmpD__7);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__7);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52):
	{
		{
			if (!(((*f_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)10)))&63U)))!=0)) goto LA25_;
			result = base__ast_u5351(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA23_;
LA25_: ;
		{
			result = skipModifier__ast_u5338(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA23_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__8;
		colontmpD__8 = NIM_NIL;
		colontmpD__8 = base__ast_u5351(f_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = reduceToBase__types_u4300(colontmpD__8);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__8);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__9;
		colontmpD__9 = NIM_NIL;
		colontmpD__9 = base__ast_u5351(f_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = reduceToBase__types_u4300(colontmpD__9);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__9);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
	{
		result = elementType__ast_u5331(f_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		eqcopy___ast_u3381(&result, f_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initSameTypeClosure__types_u1545)(tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* Result) {
	nimZeroMem((void*)Result, sizeof(tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ));
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericAlias__types_u2142)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
	NIM_BOOL T2_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11));
	if (!(T2_)) goto LA3_;
	colontmpD_ = skipModifier__ast_u5338(t_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__2 = skipTypes__ast_u5379(colontmpD_, TM__PpBJsMJcrcWrpLTS6mci1g_278);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_ = ((*colontmpD__2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11));
LA3_: ;
	result = T2_;
	eqdestroy___ast_u3378(colontmpD__2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3378(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipGenericAlias__types_u2162)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = skipTypes__ast_u5379(t_p0, TM__PpBJsMJcrcWrpLTS6mci1g_278);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isGenericAlias__types_u2142(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = skipModifier__ast_u5338(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = NIM_NIL;
		T6_ = skipTypes__ast_u5379(colontmpD_, TM__PpBJsMJcrcWrpLTS6mci1g_278);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T6_); goto BeforeRet_;}
		eqsink___ast_u3387(&result, T6_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA4_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, kidsLen__ast_u5648)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NI result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, sameFlags__types_u2165)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	NIM_BOOL result;
	result = ((eqTypeFlags__ast_u326 & (*a_p0).flags) == (eqTypeFlags__ast_u326 & (*b_p1).flags));
	return result;
}
static N_INLINE(NIM_BOOL, sameTupleLengths__ast_u5508)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	NIM_BOOL result;
	NI T1_;
	NI T2_;
	T1_ = (*a_p0).sons.len;
	T2_ = (*b_p1).sons.len;
	result = (T1_ == T2_);
	return result;
}
static N_INLINE(NI, find__types_u1699)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ* a_p0, NI a_p0Len_0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ item_p1) {
	NI result;
{	result = ((NI)0);
	{
		tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ* i_1;
		NI i_2;
		i_1 = (tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ*)0;
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < a_p0Len_0)) goto LA3;
				i_1 = (&a_p0[i_2]);
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = eqeq___types_u1719((*i_1), item_p1);
					if (!T6_) goto LA7_;
					goto BeforeRet_;
				}
LA7_: ;
				result += ((NI)1);
				i_2 += ((NI)1);
			} LA3: ;
		}
	}
	result = ((NI)-1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__types_u1694)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ* a_p0, NI a_p0Len_0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ item_p1) {
	NIM_BOOL result;
	NI T1_;
{	T1_ = (NI)0;
	T1_ = find__types_u1699(a_p0, a_p0Len_0, item_p1);
	result = (((NI)0) <= T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__types_u1672)(tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p2) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T4_;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym216__1;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym218__1;
	T1_ = (NIM_BOOL)0;
	T2_ = (*c_p0).s.len;
	T1_ = (((NI)0) < T2_);
	if (!(T1_)) goto LA3_;
	xX60gensym216__1 = (*a_p1).itemId;
	T4_.Field0 = (NI)((NI)((NU64)(((NI) (xX60gensym216__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym216__1.item)));
	xX60gensym218__1 = (*b_p2).itemId;
	T4_.Field1 = (NI)((NI)((NU64)(((NI) (xX60gensym218__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym218__1.item)));
	T1_ = contains__types_u1694((((*c_p0).s).p) ? ((*c_p0).s.p->data) : NIM_NIL, (*c_p0).s.len, T4_);
LA3_: ;
	result = T1_;
	{
		tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T9_;
		tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym220__1;
		tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym222__1;
		if (!!(result)) goto LA7_;
		xX60gensym220__1 = (*a_p1).itemId;
		T9_.Field0 = (NI)((NI)((NU64)(((NI) (xX60gensym220__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym220__1.item)));
		xX60gensym222__1 = (*b_p2).itemId;
		T9_.Field1 = (NI)((NI)((NU64)(((NI) (xX60gensym222__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym222__1.item)));
		add__types_u1767((&(*c_p0).s), T9_);
	}
LA7_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTuple__types_u1956)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* c_p2) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin12_;
NIM_BOOL oldNimErrFin7_;
NIM_BOOL oldNimErrFin44_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTupleLengths__ast_u5508(a_p0, b_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		result = NIM_TRUE;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* bb_1;
			NI i_1;
			aa_1 = NIM_NIL;
			bb_1 = NIM_NIL;
			i_1 = (NI)0;
			{
				NI i_2;
				NI colontmp_;
				NI T9_;
				NI i_3;
				i_2 = (NI)0;
				colontmp_ = (NI)0;
				T9_ = (*a_p0).sons.len;
				colontmp_ = T9_;
				i_3 = ((NI)0);
				{
					while (1) {
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_1;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_1;
						if (!(i_3 < colontmp_)) goto LA11;
						x_1 = NIM_NIL;
						y_1 = NIM_NIL;
						i_2 = i_3;
						i_1 = i_2;
						eqcopy___ast_u3381(&aa_1, (*a_p0).sons.p->data[i_2]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
						eqcopy___ast_u3381(&bb_1, (*b_p1).sons.p->data[i_2]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
						x_1 = aa_1;
						eqwasMoved___ast_u3375(&aa_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
						y_1 = bb_1;
						eqwasMoved___ast_u3375(&bb_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
						{
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T17_;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T18_;
							if (!(((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)0)))&15U)))!=0)) goto LA15_;
							T17_ = NIM_NIL;
							T17_ = skipTypes__ast_u5379(x_1, TM__PpBJsMJcrcWrpLTS6mci1g_281);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T17_); goto LA12_;}
							eqsink___ast_u3387(&x_1, T17_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
							T18_ = NIM_NIL;
							T18_ = skipTypes__ast_u5379(y_1, TM__PpBJsMJcrcWrpLTS6mci1g_281);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T18_); goto LA12_;}
							eqsink___ast_u3387(&y_1, T18_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
						}
LA15_: ;
						result = sameTypeAux__types_u1805(x_1, y_1, c_p2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
						{
							if (!!(result)) goto LA21_;
							eqdestroy___ast_u3378(y_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							eqdestroy___ast_u3378(x_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							eqdestroy___ast_u3378(bb_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(aa_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA21_: ;
						i_3 += ((NI)1);
						{
							LA12_:;
						}
						{
							oldNimErrFin12_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3378(y_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							eqdestroy___ast_u3378(x_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							*nimErr_ = oldNimErrFin12_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
					} LA11: ;
				}
			}
			{
				LA7_:;
			}
			{
				oldNimErrFin7_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(bb_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aa_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin7_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		{
			NIM_BOOL T29_;
			NIM_BOOL T30_;
			T29_ = (NIM_BOOL)0;
			T30_ = (NIM_BOOL)0;
			T30_ = !(((*a_p0).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
			if (!(T30_)) goto LA31_;
			T30_ = !(((*b_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA31_: ;
			T29_ = T30_;
			if (!(T29_)) goto LA32_;
			T29_ = !((((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)0)))&15U)))!=0));
LA32_: ;
			if (!T29_) goto LA33_;
			{
				NI i_4;
				NI colontmp__2;
				NI i_5;
				i_4 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_u3190((*a_p0).n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_5 = ((NI)0);
				{
					while (1) {
						if (!(i_5 < colontmp__2)) goto LA37;
						i_4 = i_5;
						{
							NIM_BOOL T40_;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* x_2;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* y_2;
							T40_ = (NIM_BOOL)0;
							T40_ = ((*(*(*a_p0).n)._kind_6.sons.p->data[i_4]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
							if (!(T40_)) goto LA41_;
							T40_ = ((*(*(*b_p1).n)._kind_6.sons.p->data[i_4]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
LA41_: ;
							if (!T40_) goto LA42_;
							x_2 = NIM_NIL;
							y_2 = NIM_NIL;
							eqcopy___ast_u4577(&x_2, (*(*(*a_p0).n)._kind_6.sons.p->data[i_4])._kind_4.sym);
							if (NIM_UNLIKELY(*nimErr_)) goto LA44_;
							eqcopy___ast_u4577(&y_2, (*(*(*b_p1).n)._kind_6.sons.p->data[i_4])._kind_4.sym);
							if (NIM_UNLIKELY(*nimErr_)) goto LA44_;
							result = ((*(*x_2).name).id == (*(*y_2).name).id);
							{
								if (!!(result)) goto LA47_;
								eqdestroy___ast_u4574(y_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u4574(x_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto LA35;
							}
LA47_: ;
							{
								LA44_:;
							}
							{
								oldNimErrFin44_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4574(y_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u4574(x_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								*nimErr_ = oldNimErrFin44_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA38_;
LA42_: ;
						{
							result = NIM_FALSE;
							goto BeforeRet_;
						}
LA38_: ;
						i_5 += ((NI)1);
					} LA37: ;
				}
			} LA35: ;
		}
		goto LA27_;
LA33_: ;
		{
			NIM_BOOL T53_;
			NIM_BOOL T54_;
			NIM_BOOL T56_;
			T53_ = (NIM_BOOL)0;
			T54_ = (NIM_BOOL)0;
			T54_ = !(((*a_p0).n == (*b_p1).n));
			if (!(T54_)) goto LA55_;
			T56_ = (NIM_BOOL)0;
			T56_ = ((*a_p0).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
			if (T56_) goto LA57_;
			T56_ = ((*b_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
LA57_: ;
			T54_ = T56_;
LA55_: ;
			T53_ = T54_;
			if (!(T53_)) goto LA58_;
			T53_ = !((((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)0)))&15U)))!=0));
LA58_: ;
			if (!T53_) goto LA59_;
			result = NIM_FALSE;
		}
		goto LA27_;
LA59_: ;
LA27_: ;
	}
	goto LA1_;
LA4_: ;
	{
		result = NIM_FALSE;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNilAux__types_u1809)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* c_p2) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		if (!(a_p0 == b_p1)) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
LA3_: ;
	{
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = (a_p0 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (T8_) goto LA9_;
			T8_ = (b_p1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA9_: ;
			if (!T8_) goto LA10_;
			result = NIM_FALSE;
		}
		goto LA6_;
LA10_: ;
		{
			result = sameTypeAux__types_u1805(a_p0, b_p1, c_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA6_: ;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameChildrenAux__types_u2134)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* c_p2) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin7_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTupleLengths__ast_u5508(a_p0, b_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T3_)) goto LA4_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
LA4_: ;
	result = NIM_TRUE;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_1;
		NI __1;
		x_1 = NIM_NIL;
		y_1 = NIM_NIL;
		__1 = (NI)0;
		{
			NI i_1;
			NI colontmp_;
			NI T9_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			T9_ = (*a_p0).sons.len;
			colontmp_ = T9_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA11;
					i_1 = i_2;
					__1 = i_1;
					eqcopy___ast_u3381(&x_1, (*a_p0).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
					eqcopy___ast_u3381(&y_1, (*b_p1).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
					result = sameTypeOrNilAux__types_u1809(x_1, y_1, c_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
					{
						if (!!(result)) goto LA14_;
						eqdestroy___ast_u3378(y_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(x_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA14_: ;
					i_2 += ((NI)1);
				} LA11: ;
			}
		}
		{
			LA7_:;
		}
		{
			oldNimErrFin7_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(y_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(x_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin7_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstraints__types_u1911)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* b_p1) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a_p0 == 0);
		if (!(T3_)) goto LA4_;
		T3_ = (b_p1 == 0);
LA4_: ;
		if (!T3_) goto LA5_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
LA5_: ;
	{
		NI T9_;
		NI T10_;
		T9_ = (NI)0;
		T9_ = len__ast_u3190(a_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T10_ = (NI)0;
		T10_ = len__ast_u3190(b_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!((T9_ == T10_))) goto LA11_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
LA11_: ;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_u3190(a_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI)1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA15;
				i_1 = i_2;
				{
					NIM_BOOL T18_;
					T18_ = (NIM_BOOL)0;
					T18_ = exprStructuralEquivalent__trees_u63((*(*(*a_p0)._kind_6.sons.p->data[i_1])._kind_4.sym).constraint, (*(*(*b_p1)._kind_6.sons.p->data[i_1])._kind_4.sym).constraint, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!!(T18_)) goto LA19_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
LA19_: ;
				i_2 += ((NI)1);
			} LA15: ;
		}
	}
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeAux__types_u1805)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_p1, tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* c_p2) {
	NIM_BOOL result;
	tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg colontmpD_;
	tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg colontmpD__2;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_1;
	tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg aliasSkipSet_1;
NIM_BOOL oldNimErrFin71_;
NIM_BOOL oldNimErrFin59_;
NIM_BOOL oldNimErrFin139_;
NIM_BOOL oldNimErrFin183_;
NIM_BOOL oldNimErrFin228_;
NIM_BOOL oldNimErrFin243_;
NIM_BOOL oldNimErrFin359_;
NIM_BOOL oldNimErrFin381_;
NIM_BOOL oldNimErrFin407_;
NIM_BOOL oldNimErrFin395_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nimZeroMem((void*)colontmpD_, sizeof(tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg));
	nimZeroMem((void*)colontmpD__2, sizeof(tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg));
	a_1 = NIM_NIL;
	b_1 = NIM_NIL;
	result = NIM_FALSE;
	{
		if (!(x_p0 == y_p1)) goto LA4_;
		result = NIM_TRUE;
		eqdestroy___ast_u3378(b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	nimZeroMem((void*)aliasSkipSet_1, sizeof(tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg));
	{
		if (!(((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)10)))&15U)))!=0)) goto LA8_;
		nimCopyMem((void*)colontmpD_, (NIM_CONST void*)TM__PpBJsMJcrcWrpLTS6mci1g_277, 9);
		nimCopyMem((void*)aliasSkipSet_1, (NIM_CONST void*)colontmpD_, 9);
	}
	goto LA6_;
LA8_: ;
	{
		nimCopyMem((void*)colontmpD__2, (NIM_CONST void*)TM__PpBJsMJcrcWrpLTS6mci1g_278, 9);
		nimCopyMem((void*)aliasSkipSet_1, (NIM_CONST void*)colontmpD__2, 9);
	}
LA6_: ;
	a_1 = skipTypes__ast_u5379(x_p0, aliasSkipSet_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			NIM_BOOL T13_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T15_;
			T13_ = (NIM_BOOL)0;
			T13_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52));
			if (!(T13_)) goto LA14_;
			T13_ = (((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)10)))&63U)))!=0);
LA14_: ;
			if (!T13_) goto LA12;
			colontmpD__3 = NIM_NIL;
			colontmpD__3 = last__ast_u5278(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T15_ = NIM_NIL;
			T15_ = skipTypes__ast_u5379(colontmpD__3, aliasSkipSet_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T15_); goto LA1_;}
			eqsink___ast_u3387(&a_1, T15_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		} LA12: ;
	}
	b_1 = skipTypes__ast_u5379(y_p1, aliasSkipSet_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			NIM_BOOL T18_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T20_;
			T18_ = (NIM_BOOL)0;
			T18_ = ((*b_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52));
			if (!(T18_)) goto LA19_;
			T18_ = (((*b_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)10)))&63U)))!=0);
LA19_: ;
			if (!T18_) goto LA17;
			colontmpD__4 = NIM_NIL;
			colontmpD__4 = last__ast_u5278(b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T20_ = NIM_NIL;
			T20_ = skipTypes__ast_u5379(colontmpD__4, aliasSkipSet_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T20_); goto LA1_;}
			eqsink___ast_u3387(&b_1, T20_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		} LA17: ;
	}
	switch ((*c_p2).cmp) {
	case ((tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw)0):
	{
		{
			if (!!(((*a_1).kind == (*b_1).kind))) goto LA24_;
			result = NIM_FALSE;
			eqdestroy___ast_u3378(b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA24_: ;
	}
	break;
	case ((tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw)1):
	{
		tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg colontmpD__5;
		tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg colontmpD__6;
		tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg distinctSkipSet_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T32_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T33_;
		nimZeroMem((void*)colontmpD__5, sizeof(tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg));
		nimZeroMem((void*)colontmpD__6, sizeof(tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg));
		nimZeroMem((void*)distinctSkipSet_1, sizeof(tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg));
		{
			if (!(((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)10)))&15U)))!=0)) goto LA29_;
			nimCopyMem((void*)colontmpD__5, (NIM_CONST void*)TM__PpBJsMJcrcWrpLTS6mci1g_279, 9);
			nimCopyMem((void*)distinctSkipSet_1, (NIM_CONST void*)colontmpD__5, 9);
		}
		goto LA27_;
LA29_: ;
		{
			nimCopyMem((void*)colontmpD__6, (NIM_CONST void*)TM__PpBJsMJcrcWrpLTS6mci1g_280, 9);
			nimCopyMem((void*)distinctSkipSet_1, (NIM_CONST void*)colontmpD__6, 9);
		}
LA27_: ;
		T32_ = NIM_NIL;
		T32_ = skipTypes__ast_u5379(a_1, distinctSkipSet_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T32_); goto LA1_;}
		eqsink___ast_u3387(&a_1, T32_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T33_ = NIM_NIL;
		T33_ = skipTypes__ast_u5379(b_1, distinctSkipSet_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T33_); goto LA1_;}
		eqsink___ast_u3387(&b_1, T33_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			if (!!(((*a_1).kind == (*b_1).kind))) goto LA36_;
			result = NIM_FALSE;
			eqdestroy___ast_u3378(b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA36_: ;
	}
	break;
	case ((tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw)2):
	{
		tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg colontmpD__7;
		tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg colontmpD__8;
		tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg distinctSkipSet_2;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T44_;
		nimZeroMem((void*)colontmpD__7, sizeof(tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg));
		nimZeroMem((void*)colontmpD__8, sizeof(tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg));
		nimZeroMem((void*)distinctSkipSet_2, sizeof(tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg));
		{
			if (!(((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)10)))&15U)))!=0)) goto LA41_;
			nimCopyMem((void*)colontmpD__7, (NIM_CONST void*)TM__PpBJsMJcrcWrpLTS6mci1g_279, 9);
			nimCopyMem((void*)distinctSkipSet_2, (NIM_CONST void*)colontmpD__7, 9);
		}
		goto LA39_;
LA41_: ;
		{
			nimCopyMem((void*)colontmpD__8, (NIM_CONST void*)TM__PpBJsMJcrcWrpLTS6mci1g_280, 9);
			nimCopyMem((void*)distinctSkipSet_2, (NIM_CONST void*)colontmpD__8, 9);
		}
LA39_: ;
		T44_ = NIM_NIL;
		T44_ = skipTypes__ast_u5379(a_1, distinctSkipSet_2);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T44_); goto LA1_;}
		eqsink___ast_u3387(&a_1, T44_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			if (!!(((*a_1).kind == (*b_1).kind))) goto LA47_;
			result = NIM_FALSE;
			eqdestroy___ast_u3378(b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA47_: ;
	}
	break;
	default: __builtin_unreachable();
	}
	{
		NIM_BOOL T51_;
		NIM_BOOL T52_;
		NIM_BOOL T53_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* lhs_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* rhs_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__9;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__10;
		tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ oldFlagsX60gensym296__1;
		T51_ = (NIM_BOOL)0;
		T52_ = (NIM_BOOL)0;
		T53_ = (NIM_BOOL)0;
		T53_ = ((*c_p2).cmp == ((tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw)0));
		if (!(T53_)) goto LA54_;
		T53_ = ((*x_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11));
LA54_: ;
		T52_ = T53_;
		if (!(T52_)) goto LA55_;
		T52_ = !((((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)0)))&15U)))!=0));
LA55_: ;
		T51_ = T52_;
		if (!(T51_)) goto LA56_;
		T51_ = !((((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13) == (*y_p1).kind));
LA56_: ;
		if (!T51_) goto LA57_;
		lhs_1 = NIM_NIL;
		rhs_1 = NIM_NIL;
		colontmpD__9 = NIM_NIL;
		colontmpD__10 = NIM_NIL;
		lhs_1 = skipGenericAlias__types_u2162(x_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
		rhs_1 = skipGenericAlias__types_u2162(y_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
		{
			NIM_BOOL T62_;
			NIM_BOOL T63_;
			NI T66_;
			NI T67_;
			T62_ = (NIM_BOOL)0;
			T63_ = (NIM_BOOL)0;
			T63_ = !(((*rhs_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11)));
			if (T63_) goto LA64_;
			colontmpD__9 = base__ast_u5351(lhs_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
			colontmpD__10 = base__ast_u5351(rhs_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
			T63_ = !((colontmpD__9 == colontmpD__10));
LA64_: ;
			T62_ = T63_;
			if (T62_) goto LA65_;
			T66_ = (NI)0;
			T66_ = kidsLen__ast_u5648(rhs_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
			T67_ = (NI)0;
			T67_ = kidsLen__ast_u5648(lhs_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
			T62_ = !((T66_ == T67_));
LA65_: ;
			if (!T62_) goto LA68_;
			result = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__10);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__9);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(rhs_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(lhs_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA68_: ;
		oldFlagsX60gensym296__1 = (*c_p2).flags;
		(*c_p2).flags &= ~(((NU16)1) << (((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)10))) & 15));
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_1;
			ff_1 = NIM_NIL;
			aa_1 = NIM_NIL;
			{
				NI i_1;
				NI colontmp_;
				NI T73_;
				NI T74_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				T73_ = (*rhs_1).sons.len;
				T74_ = (*lhs_1).sons.len;
				colontmp_ = (NI)(((T73_ <= T74_) ? T73_ : T74_) + ((NI)-1));
				i_2 = ((NI)1);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA76;
						i_1 = i_2;
						eqcopy___ast_u3381(&ff_1, (*rhs_1).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
						eqcopy___ast_u3381(&aa_1, (*lhs_1).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
						{
							NIM_BOOL T79_;
							T79_ = (NIM_BOOL)0;
							T79_ = sameTypeAux__types_u1805(ff_1, aa_1, c_p2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
							if (!!(T79_)) goto LA80_;
							result = NIM_FALSE;
							eqdestroy___ast_u3378(aa_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
							eqdestroy___ast_u3378(ff_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
							eqdestroy___ast_u3378(colontmpD__10);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(colontmpD__9);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(rhs_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(lhs_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(b_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA80_: ;
						i_2 += ((NI)1);
					} LA76: ;
				}
			}
			{
				LA71_:;
			}
			{
				oldNimErrFin71_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(aa_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
				eqdestroy___ast_u3378(ff_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
				*nimErr_ = oldNimErrFin71_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
		}
		(*c_p2).flags = oldFlagsX60gensym296__1;
		result = NIM_TRUE;
		eqdestroy___ast_u3378(colontmpD__10);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD__9);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(rhs_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(lhs_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA59_:;
		}
		{
			oldNimErrFin59_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__10);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__9);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(rhs_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(lhs_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin59_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA57_: ;
	switch ((*a_1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)1):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)26):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63):
	{
		result = sameFlags__types_u2165(a_1, b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			NIM_BOOL T89_;
			tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg colontmpD__11;
			tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg colontmpD__12;
			tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg colontmpD__13;
			tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg colontmpD__14;
			tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg symFlagsA_1;
			tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg symFlagsB_1;
			T89_ = (NIM_BOOL)0;
			T89_ = result;
			if (!(T89_)) goto LA90_;
			T89_ = ((132 & ~ (*c_p2).flags)==0);
LA90_: ;
			if (!T89_) goto LA91_;
			nimZeroMem((void*)(&colontmpD__11), sizeof(tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg));
			nimZeroMem((void*)(&colontmpD__12), sizeof(tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg));
			nimZeroMem((void*)(&colontmpD__13), sizeof(tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg));
			nimZeroMem((void*)(&colontmpD__14), sizeof(tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg));
			{
				if (!!(((*a_1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA95_;
				colontmpD__11 = (*(*a_1).sym).flags;
				symFlagsA_1 = colontmpD__11;
			}
			goto LA93_;
LA95_: ;
			{
				colontmpD__12 = 0;
				symFlagsA_1 = colontmpD__12;
			}
LA93_: ;
			{
				if (!!(((*b_1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA100_;
				colontmpD__13 = (*(*b_1).sym).flags;
				symFlagsB_1 = colontmpD__13;
			}
			goto LA98_;
LA100_: ;
			{
				colontmpD__14 = 0;
				symFlagsB_1 = colontmpD__14;
			}
LA98_: ;
			{
				tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg T105_;
				T105_ = 0;
				if (!!((((symFlagsA_1 | symFlagsB_1) & 192) == T105_))) goto LA106_;
				result = (symFlagsA_1 == symFlagsB_1);
			}
LA106_: ;
		}
		goto LA87_;
LA91_: ;
		{
			NIM_BOOL T109_;
			tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg colontmpD__15;
			tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg colontmpD__16;
			tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg colontmpD__17;
			tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg colontmpD__18;
			tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg symFlagsA_2;
			tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg symFlagsB_2;
			T109_ = (NIM_BOOL)0;
			T109_ = result;
			if (!(T109_)) goto LA110_;
			T109_ = (((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)9)))&15U)))!=0);
LA110_: ;
			if (!T109_) goto LA111_;
			nimZeroMem((void*)(&colontmpD__15), sizeof(tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg));
			nimZeroMem((void*)(&colontmpD__16), sizeof(tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg));
			nimZeroMem((void*)(&colontmpD__17), sizeof(tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg));
			nimZeroMem((void*)(&colontmpD__18), sizeof(tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg));
			{
				if (!!(((*a_1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA115_;
				colontmpD__15 = (*(*a_1).sym).flags;
				symFlagsA_2 = colontmpD__15;
			}
			goto LA113_;
LA115_: ;
			{
				colontmpD__16 = 0;
				symFlagsA_2 = colontmpD__16;
			}
LA113_: ;
			{
				if (!!(((*b_1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA120_;
				colontmpD__17 = (*(*b_1).sym).flags;
				symFlagsB_2 = colontmpD__17;
			}
			goto LA118_;
LA120_: ;
			{
				colontmpD__18 = 0;
				symFlagsB_2 = colontmpD__18;
			}
LA118_: ;
			{
				tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg T125_;
				tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym305__1;
				tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym307__1;
				T125_ = 0;
				if (!!((((symFlagsA_2 | symFlagsB_2) & 192) == T125_))) goto LA126_;
				xX60gensym305__1 = (*a_1).itemId;
				xX60gensym307__1 = (*b_1).itemId;
				result = ((NI)((NI)((NU64)(((NI) (xX60gensym305__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym305__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym307__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym307__1.item))));
			}
LA126_: ;
		}
		goto LA87_;
LA111_: ;
LA87_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61):
	{
		NIM_BOOL T129_;
		T129_ = (NIM_BOOL)0;
		T129_ = exprStructuralEquivalent__trees_u63((*a_1).n, (*b_1).n, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!(T129_)) goto LA130_;
		T129_ = sameFlags__types_u2165(a_1, b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA130_: ;
		result = T129_;
		{
			NIM_BOOL T133_;
			NIM_BOOL T134_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__19;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__20;
			T133_ = (NIM_BOOL)0;
			T134_ = (NIM_BOOL)0;
			T134_ = result;
			if (!(T134_)) goto LA135_;
			T134_ = sameTupleLengths__ast_u5508(a_1, b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA135_: ;
			T133_ = T134_;
			if (!(T133_)) goto LA136_;
			T133_ = hasElementType__ast_u5660(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA136_: ;
			if (!T133_) goto LA137_;
			colontmpD__19 = NIM_NIL;
			colontmpD__20 = NIM_NIL;
			{
				if (!((*c_p2).recCheck < ((NI)3))) goto LA142_;
				(*c_p2).recCheck += ((NI)1);
			}
			goto LA140_;
LA142_: ;
			{
				{
					NIM_BOOL T147_;
					T147_ = (NIM_BOOL)0;
					T147_ = containsOrIncl__types_u1672(c_p2, a_1, b_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
					if (!T147_) goto LA148_;
					result = NIM_TRUE;
					eqdestroy___ast_u3378(colontmpD__20);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__19);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(b_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA148_: ;
			}
LA140_: ;
			colontmpD__19 = skipModifier__ast_u5338(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
			colontmpD__20 = skipModifier__ast_u5338(b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
			result = sameTypeAux__types_u1805(colontmpD__19, colontmpD__20, c_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
			{
				LA139_:;
			}
			{
				oldNimErrFin139_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__20);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__19);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin139_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA137_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
	{
		result = sameFlags__types_u2165(a_1, b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			if (!result) goto LA155_;
			{
				tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym312__1;
				tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym314__1;
				if (!!(((((*a_1).flags | (*b_1).flags) &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)8)))&63U)))!=0))) goto LA159_;
				xX60gensym312__1 = (*a_1).itemId;
				xX60gensym314__1 = (*b_1).itemId;
				result = ((NI)((NI)((NU64)(((NI) (xX60gensym312__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym312__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym314__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym314__1.item))));
			}
			goto LA157_;
LA159_: ;
			{
				{
					NIM_BOOL T164_;
					tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym317__1;
					tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym319__1;
					T164_ = (NIM_BOOL)0;
					T164_ = ((((*a_1).flags & (*b_1).flags) &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)8)))&63U)))!=0);
					if (!(T164_)) goto LA165_;
					xX60gensym317__1 = (*(*a_1).sym).itemId;
					xX60gensym319__1 = (*(*b_1).sym).itemId;
					T164_ = ((NI)((NI)((NU64)(((NI) (xX60gensym317__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym317__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym319__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym319__1.item))));
LA165_: ;
					if (!T164_) goto LA166_;
					{
						if (!((*c_p2).recCheck < ((NI)3))) goto LA170_;
						(*c_p2).recCheck += ((NI)1);
					}
					goto LA168_;
LA170_: ;
					{
						{
							NIM_BOOL T175_;
							T175_ = (NIM_BOOL)0;
							T175_ = containsOrIncl__types_u1672(c_p2, a_1, b_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							if (!T175_) goto LA176_;
							result = NIM_TRUE;
							eqdestroy___ast_u3378(b_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA176_: ;
					}
LA168_: ;
					{
						tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ oldFlagsX60gensym329__1;
						if (!result) goto LA180_;
						oldFlagsX60gensym329__1 = (*c_p2).flags;
						(*c_p2).flags &= ~(((NU16)1) << (((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)10))) & 15));
						{
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_2;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_2;
							ff_2 = NIM_NIL;
							aa_2 = NIM_NIL;
							{
								NI i_3;
								NI colontmp__2;
								NI T185_;
								NI T186_;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								T185_ = (*(*a_1).typeInst).sons.len;
								T186_ = (*(*b_1).typeInst).sons.len;
								colontmp__2 = (NI)(((T185_ <= T186_) ? T185_ : T186_) + ((NI)-1));
								i_4 = ((NI)1);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA188;
										i_3 = i_4;
										eqcopy___ast_u3381(&ff_2, (*(*a_1).typeInst).sons.p->data[i_3]);
										if (NIM_UNLIKELY(*nimErr_)) goto LA183_;
										eqcopy___ast_u3381(&aa_2, (*(*b_1).typeInst).sons.p->data[i_3]);
										if (NIM_UNLIKELY(*nimErr_)) goto LA183_;
										{
											NIM_BOOL T191_;
											T191_ = (NIM_BOOL)0;
											T191_ = sameTypeAux__types_u1805(ff_2, aa_2, c_p2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA183_;
											if (!!(T191_)) goto LA192_;
											result = NIM_FALSE;
											eqdestroy___ast_u3378(aa_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
											eqdestroy___ast_u3378(ff_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
											eqdestroy___ast_u3378(b_1);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											eqdestroy___ast_u3378(a_1);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											goto BeforeRet_;
										}
LA192_: ;
										i_4 += ((NI)1);
									} LA188: ;
								}
							}
							{
								LA183_:;
							}
							{
								oldNimErrFin183_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3378(aa_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3378(ff_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								*nimErr_ = oldNimErrFin183_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
						(*c_p2).flags = oldFlagsX60gensym329__1;
					}
LA180_: ;
				}
				goto LA162_;
LA166_: ;
				{
					result = NIM_FALSE;
				}
LA162_: ;
			}
LA157_: ;
		}
LA155_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	{
		{
			if (!((*c_p2).recCheck < ((NI)3))) goto LA200_;
			(*c_p2).recCheck += ((NI)1);
		}
		goto LA198_;
LA200_: ;
		{
			{
				NIM_BOOL T205_;
				T205_ = (NIM_BOOL)0;
				T205_ = containsOrIncl__types_u1672(c_p2, a_1, b_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T205_) goto LA206_;
				result = NIM_TRUE;
				eqdestroy___ast_u3378(b_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA206_: ;
		}
LA198_: ;
		{
			if (!((*c_p2).cmp == ((tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw)0))) goto LA210_;
			result = sameFlags__types_u2165(a_1, b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				if (!result) goto LA214_;
				{
					tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym334__1;
					tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym336__1;
					if (!!(((((*a_1).flags | (*b_1).flags) &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)8)))&63U)))!=0))) goto LA218_;
					xX60gensym334__1 = (*a_1).itemId;
					xX60gensym336__1 = (*b_1).itemId;
					result = ((NI)((NI)((NU64)(((NI) (xX60gensym334__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym334__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym336__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym336__1.item))));
				}
				goto LA216_;
LA218_: ;
				{
					{
						NIM_BOOL T223_;
						tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym339__1;
						tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym341__1;
						tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ oldFlagsX60gensym350__1;
						T223_ = (NIM_BOOL)0;
						T223_ = ((((*a_1).flags & (*b_1).flags) &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)8)))&63U)))!=0);
						if (!(T223_)) goto LA224_;
						xX60gensym339__1 = (*(*a_1).sym).itemId;
						xX60gensym341__1 = (*(*b_1).sym).itemId;
						T223_ = ((NI)((NI)((NU64)(((NI) (xX60gensym339__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym339__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym341__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym341__1.item))));
LA224_: ;
						if (!T223_) goto LA225_;
						oldFlagsX60gensym350__1 = (*c_p2).flags;
						(*c_p2).flags &= ~(((NU16)1) << (((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)10))) & 15));
						{
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_3;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_3;
							ff_3 = NIM_NIL;
							aa_3 = NIM_NIL;
							{
								NI i_5;
								NI colontmp__3;
								NI T230_;
								NI T231_;
								NI i_6;
								i_5 = (NI)0;
								colontmp__3 = (NI)0;
								T230_ = (*(*a_1).typeInst).sons.len;
								T231_ = (*(*b_1).typeInst).sons.len;
								colontmp__3 = (NI)(((T230_ <= T231_) ? T230_ : T231_) + ((NI)-1));
								i_6 = ((NI)1);
								{
									while (1) {
										if (!(i_6 < colontmp__3)) goto LA233;
										i_5 = i_6;
										eqcopy___ast_u3381(&ff_3, (*(*a_1).typeInst).sons.p->data[i_5]);
										if (NIM_UNLIKELY(*nimErr_)) goto LA228_;
										eqcopy___ast_u3381(&aa_3, (*(*b_1).typeInst).sons.p->data[i_5]);
										if (NIM_UNLIKELY(*nimErr_)) goto LA228_;
										{
											NIM_BOOL T236_;
											T236_ = (NIM_BOOL)0;
											T236_ = sameTypeAux__types_u1805(ff_3, aa_3, c_p2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA228_;
											if (!!(T236_)) goto LA237_;
											result = NIM_FALSE;
											eqdestroy___ast_u3378(aa_3);
											if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
											eqdestroy___ast_u3378(ff_3);
											if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
											eqdestroy___ast_u3378(b_1);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											eqdestroy___ast_u3378(a_1);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
											goto BeforeRet_;
										}
LA237_: ;
										i_6 += ((NI)1);
									} LA233: ;
								}
							}
							{
								LA228_:;
							}
							{
								oldNimErrFin228_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3378(aa_3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3378(ff_3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								*nimErr_ = oldNimErrFin228_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
						(*c_p2).flags = oldFlagsX60gensym350__1;
					}
					goto LA221_;
LA225_: ;
					{
						result = NIM_FALSE;
					}
LA221_: ;
				}
LA216_: ;
			}
LA214_: ;
		}
		goto LA208_;
LA210_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__21;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__22;
			NIM_BOOL T244_;
			colontmpD__21 = NIM_NIL;
			colontmpD__22 = NIM_NIL;
			T244_ = (NIM_BOOL)0;
			colontmpD__21 = elementType__ast_u5331(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA243_;
			colontmpD__22 = elementType__ast_u5331(b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA243_;
			T244_ = sameTypeAux__types_u1805(colontmpD__21, colontmpD__22, c_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA243_;
			if (!(T244_)) goto LA245_;
			T244_ = sameFlags__types_u2165(a_1, b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA243_;
LA245_: ;
			result = T244_;
			{
				LA243_:;
			}
			{
				oldNimErrFin243_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__22);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__21);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin243_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA208_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)30):
	{
		NIM_BOOL T249_;
		tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym352__1;
		tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym354__1;
		T249_ = (NIM_BOOL)0;
		xX60gensym352__1 = (*a_1).itemId;
		xX60gensym354__1 = (*b_1).itemId;
		T249_ = ((NI)((NI)((NU64)(((NI) (xX60gensym352__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym352__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym354__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym354__1.item))));
		if (!(T249_)) goto LA250_;
		T249_ = sameFlags__types_u2165(a_1, b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA250_: ;
		result = T249_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50):
	{
		result = ((*b_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50));
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
	{
		tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ oldFlagsX60gensym355__1;
		NIM_BOOL T263_;
		oldFlagsX60gensym355__1 = (*c_p2).flags;
		(*c_p2).flags &= ~(((NU16)1) << (((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)10))) & 15));
		{
			if (!((*c_p2).recCheck < ((NI)3))) goto LA255_;
			(*c_p2).recCheck += ((NI)1);
		}
		goto LA253_;
LA255_: ;
		{
			{
				NIM_BOOL T260_;
				T260_ = (NIM_BOOL)0;
				T260_ = containsOrIncl__types_u1672(c_p2, a_1, b_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T260_) goto LA261_;
				result = NIM_TRUE;
				eqdestroy___ast_u3378(b_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA261_: ;
		}
LA253_: ;
		T263_ = (NIM_BOOL)0;
		T263_ = sameTuple__types_u1956(a_1, b_1, c_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!(T263_)) goto LA264_;
		T263_ = sameFlags__types_u2165(a_1, b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA264_: ;
		result = T263_;
		(*c_p2).flags = oldFlagsX60gensym355__1;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	{
		{
			if (!((*c_p2).cmp == ((tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw)1))) goto LA268_;
			result = NIM_FALSE;
		}
		goto LA266_;
LA268_: ;
		{
			NIM_BOOL T283_;
			if (!(((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)2)))&15U)))!=0)) goto LA271_;
			{
				if (!((*c_p2).recCheck < ((NI)3))) goto LA275_;
				(*c_p2).recCheck += ((NI)1);
			}
			goto LA273_;
LA275_: ;
			{
				{
					NIM_BOOL T280_;
					T280_ = (NIM_BOOL)0;
					T280_ = containsOrIncl__types_u1672(c_p2, a_1, b_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if (!T280_) goto LA281_;
					result = NIM_TRUE;
					eqdestroy___ast_u3378(b_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA281_: ;
			}
LA273_: ;
			T283_ = (NIM_BOOL)0;
			T283_ = sameChildrenAux__types_u2134(x_p0, y_p1, c_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!(T283_)) goto LA284_;
			T283_ = sameFlags__types_u2165(a_1, b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA284_: ;
			result = T283_;
		}
		goto LA266_;
LA271_: ;
		{
			result = sameFlags__types_u2165(a_1, b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA266_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12):
	{
		NIM_BOOL T287_;
		T287_ = (NIM_BOOL)0;
		T287_ = sameChildrenAux__types_u2134(a_1, b_1, c_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!(T287_)) goto LA288_;
		T287_ = sameFlags__types_u2165(a_1, b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA288_: ;
		result = T287_;
		{
			NIM_BOOL T291_;
			tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ T293_;
			T291_ = (NIM_BOOL)0;
			T291_ = result;
			if (!(T291_)) goto LA292_;
			T293_ = 0;
			T291_ = !(((12 & (*c_p2).flags) == T293_));
LA292_: ;
			if (!T291_) goto LA294_;
			result = ((*(*a_1).sym).position == (*(*b_1).sym).position);
		}
LA294_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__23;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__24;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__25;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__26;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__27;
		NIM_BOOL T297_;
		colontmpD__23 = NIM_NIL;
		colontmpD__24 = NIM_NIL;
		colontmpD__25 = NIM_NIL;
		colontmpD__26 = NIM_NIL;
		colontmpD__27 = NIM_NIL;
		T297_ = (NIM_BOOL)0;
		colontmpD__23 = elementType__ast_u5331(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		colontmpD__24 = elementType__ast_u5331(b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T297_ = ((*colontmpD__23).kind == (*colontmpD__24).kind);
		if (!(T297_)) goto LA298_;
		colontmpD__25 = elementType__ast_u5331(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		colontmpD__26 = elementType__ast_u5331(b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T297_ = sameFlags__types_u2165(colontmpD__25, colontmpD__26);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA298_: ;
		result = T297_;
		{
			NIM_BOOL T301_;
			NIM_BOOL T302_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__28;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__29;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__30;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__31;
			tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A ecc_1;
			NIM_BOOL T307_;
			NIM_BOOL T309_;
			tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A T310_;
			T301_ = (NIM_BOOL)0;
			T302_ = (NIM_BOOL)0;
			T302_ = result;
			if (!(T302_)) goto LA303_;
			colontmpD__27 = elementType__ast_u5331(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T302_ = ((*colontmpD__27).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25));
LA303_: ;
			T301_ = T302_;
			if (!(T301_)) goto LA304_;
			T301_ = !((((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)1)))&15U)))!=0));
LA304_: ;
			if (!T301_) goto LA305_;
			colontmpD__28 = NIM_NIL;
			colontmpD__29 = NIM_NIL;
			colontmpD__30 = NIM_NIL;
			colontmpD__31 = NIM_NIL;
			colontmpD__28 = elementType__ast_u5331(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			ecc_1 = ((*colontmpD__28).flags & IL64(4398046511104));
			T307_ = (NIM_BOOL)0;
			colontmpD__29 = elementType__ast_u5331(b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T307_ = (ecc_1 == ((*colontmpD__29).flags & IL64(4398046511104)));
			if (!(T307_)) goto LA308_;
			T309_ = (NIM_BOOL)0;
			T310_ = 0;
			T309_ = (ecc_1 == T310_);
			if (T309_) goto LA311_;
			colontmpD__30 = elementType__ast_u5331(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			colontmpD__31 = elementType__ast_u5331(b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T309_ = ((*colontmpD__30).callConv == (*colontmpD__31).callConv);
LA311_: ;
			T307_ = T309_;
LA308_: ;
			result = T307_;
			eqdestroy___ast_u3378(colontmpD__31);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__30);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__29);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__28);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA305_: ;
		eqdestroy___ast_u3378(colontmpD__27);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD__26);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD__25);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD__24);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD__23);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)57):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)58):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
	{
		tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ oldFlagsX60gensym363__1;
		{
			if (!((*c_p2).recCheck < ((NI)3))) goto LA315_;
			(*c_p2).recCheck += ((NI)1);
		}
		goto LA313_;
LA315_: ;
		{
			{
				NIM_BOOL T320_;
				T320_ = (NIM_BOOL)0;
				T320_ = containsOrIncl__types_u1672(c_p2, a_1, b_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T320_) goto LA321_;
				result = NIM_TRUE;
				eqdestroy___ast_u3378(b_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA321_: ;
		}
LA313_: ;
		{
			NIM_BOOL T325_;
			T325_ = (NIM_BOOL)0;
			T325_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52));
			if (!(T325_)) goto LA326_;
			T325_ = !(((*a_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA326_: ;
			if (!T325_) goto LA327_;
			result = ((*a_1).n == (*b_1).n);
			eqdestroy___ast_u3378(b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA327_: ;
		oldFlagsX60gensym363__1 = (*c_p2).flags;
		(*c_p2).flags &= ~(((NU16)1) << (((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)10))) & 15));
		result = sameChildrenAux__types_u2134(a_1, b_1, c_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		(*c_p2).flags = oldFlagsX60gensym363__1;
		{
			NIM_BOOL T331_;
			T331_ = (NIM_BOOL)0;
			T331_ = result;
			if (!(T331_)) goto LA332_;
			T331_ = !((((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)8)))&15U)))!=0));
LA332_: ;
			if (!T331_) goto LA333_;
			{
				if (!(((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)0)))&15U)))!=0)) goto LA337_;
				result = (((*a_1).flags & IL64(35184373137408)) == ((*b_1).flags & IL64(35184373137408)));
			}
			goto LA335_;
LA337_: ;
			{
				result = sameFlags__types_u2165(a_1, b_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA335_: ;
		}
LA333_: ;
		{
			NIM_BOOL T342_;
			T342_ = (NIM_BOOL)0;
			T342_ = result;
			if (!(T342_)) goto LA343_;
			T342_ = (((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)5)))&15U)))!=0);
LA343_: ;
			if (!T342_) goto LA344_;
			result = (((*a_1).flags & 128) == ((*b_1).flags & 128));
		}
LA344_: ;
		{
			NIM_BOOL T348_;
			NIM_BOOL T352_;
			NIM_BOOL T353_;
			NIM_BOOL T356_;
			T348_ = (NIM_BOOL)0;
			T348_ = result;
			if (!(T348_)) goto LA349_;
			T348_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25));
LA349_: ;
			if (!T348_) goto LA350_;
			T352_ = (NIM_BOOL)0;
			T353_ = (NIM_BOOL)0;
			T353_ = (((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)1)))&15U)))!=0);
			if (T353_) goto LA354_;
			T353_ = ((*a_1).callConv == (*b_1).callConv);
LA354_: ;
			T352_ = T353_;
			if (!(T352_)) goto LA355_;
			T356_ = (NIM_BOOL)0;
			T356_ = !((((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)4)))&15U)))!=0));
			if (T356_) goto LA357_;
			T356_ = sameConstraints__types_u1911((*a_1).n, (*b_1).n);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA357_: ;
			T352_ = T356_;
LA355_: ;
			result = T352_;
		}
LA350_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__32;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__33;
		colontmpD__32 = NIM_NIL;
		colontmpD__33 = NIM_NIL;
		{
			if (!((*c_p2).recCheck < ((NI)3))) goto LA362_;
			(*c_p2).recCheck += ((NI)1);
		}
		goto LA360_;
LA362_: ;
		{
			{
				NIM_BOOL T367_;
				T367_ = (NIM_BOOL)0;
				T367_ = containsOrIncl__types_u1672(c_p2, a_1, b_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA359_;
				if (!T367_) goto LA368_;
				result = NIM_TRUE;
				eqdestroy___ast_u3378(colontmpD__33);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__32);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(b_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA368_: ;
		}
LA360_: ;
		colontmpD__32 = elementType__ast_u5331(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA359_;
		colontmpD__33 = elementType__ast_u5331(b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA359_;
		result = sameTypeOrNilAux__types_u1809(colontmpD__32, colontmpD__33, c_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA359_;
		{
			NIM_BOOL T372_;
			NIM_BOOL T376_;
			T372_ = (NIM_BOOL)0;
			T372_ = result;
			if (!(T372_)) goto LA373_;
			T372_ = !((((*c_p2).flags &((NU16)1<<((NU)((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)10)))&15U)))!=0));
LA373_: ;
			if (!T372_) goto LA374_;
			T376_ = (NIM_BOOL)0;
			T376_ = sameValue__astalgo_u63((*(*a_1).n)._kind_6.sons.p->data[((NI)0)], (*(*b_1).n)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA359_;
			if (!(T376_)) goto LA377_;
			T376_ = sameValue__astalgo_u63((*(*a_1).n)._kind_6.sons.p->data[((NI)1)], (*(*b_1).n)._kind_6.sons.p->data[((NI)1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA359_;
LA377_: ;
			result = T376_;
		}
LA374_: ;
		{
			LA359_:;
		}
		{
			oldNimErrFin359_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__33);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__32);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin359_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)64):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__34;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__35;
		colontmpD__34 = NIM_NIL;
		colontmpD__35 = NIM_NIL;
		{
			if (!((*c_p2).recCheck < ((NI)3))) goto LA384_;
			(*c_p2).recCheck += ((NI)1);
		}
		goto LA382_;
LA384_: ;
		{
			{
				NIM_BOOL T389_;
				T389_ = (NIM_BOOL)0;
				T389_ = containsOrIncl__types_u1672(c_p2, a_1, b_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA381_;
				if (!T389_) goto LA390_;
				result = NIM_TRUE;
				eqdestroy___ast_u3378(colontmpD__35);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__34);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(b_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA390_: ;
		}
LA382_: ;
		colontmpD__34 = skipModifier__ast_u5338(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA381_;
		colontmpD__35 = skipModifier__ast_u5338(b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA381_;
		result = sameTypeAux__types_u1805(colontmpD__34, colontmpD__35, c_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA381_;
		{
			LA381_:;
		}
		{
			oldNimErrFin381_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__35);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__34);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin381_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__36;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__37;
		tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ oldFlagsX60gensym377__1;
		colontmpD__36 = NIM_NIL;
		colontmpD__37 = NIM_NIL;
		{
			if (!((*c_p2).recCheck < ((NI)3))) goto LA398_;
			(*c_p2).recCheck += ((NI)1);
		}
		goto LA396_;
LA398_: ;
		{
			{
				NIM_BOOL T403_;
				T403_ = (NIM_BOOL)0;
				T403_ = containsOrIncl__types_u1672(c_p2, a_1, b_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA395_;
				if (!T403_) goto LA404_;
				result = NIM_TRUE;
				eqdestroy___ast_u3378(colontmpD__37);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__36);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(b_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA404_: ;
		}
LA396_: ;
		oldFlagsX60gensym377__1 = (*c_p2).flags;
		(*c_p2).flags &= ~(((NU16)1) << (((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)10))) & 15));
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_4;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_4;
			ff_4 = NIM_NIL;
			aa_4 = NIM_NIL;
			{
				NI i_7;
				NI colontmp__4;
				NI T409_;
				NI T410_;
				NI i_8;
				i_7 = (NI)0;
				colontmp__4 = (NI)0;
				T409_ = (*a_1).sons.len;
				T410_ = (*b_1).sons.len;
				colontmp__4 = (NI)(((T409_ <= T410_) ? T409_ : T410_) + ((NI)-1));
				i_8 = ((NI)1);
				{
					while (1) {
						if (!(i_8 < colontmp__4)) goto LA412;
						i_7 = i_8;
						eqcopy___ast_u3381(&ff_4, (*a_1).sons.p->data[i_7]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA407_;
						eqcopy___ast_u3381(&aa_4, (*b_1).sons.p->data[i_7]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA407_;
						{
							NIM_BOOL T415_;
							T415_ = (NIM_BOOL)0;
							T415_ = sameTypeAux__types_u1805(ff_4, aa_4, c_p2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA407_;
							if (!!(T415_)) goto LA416_;
							result = NIM_FALSE;
							eqdestroy___ast_u3378(aa_4);
							if (NIM_UNLIKELY(*nimErr_)) goto LA395_;
							eqdestroy___ast_u3378(ff_4);
							if (NIM_UNLIKELY(*nimErr_)) goto LA395_;
							eqdestroy___ast_u3378(colontmpD__37);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(colontmpD__36);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(b_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA416_: ;
						i_8 += ((NI)1);
					} LA412: ;
				}
			}
			{
				LA407_:;
			}
			{
				oldNimErrFin407_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(aa_4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA395_;
				eqdestroy___ast_u3378(ff_4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA395_;
				*nimErr_ = oldNimErrFin407_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA395_;
		}
		(*c_p2).flags = oldFlagsX60gensym377__1;
		colontmpD__36 = skipModifier__ast_u5338(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA395_;
		colontmpD__37 = skipModifier__ast_u5338(b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA395_;
		result = sameTypeAux__types_u1805(colontmpD__36, colontmpD__37, c_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA395_;
		{
			LA395_:;
		}
		{
			oldNimErrFin395_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__37);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__36);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin395_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0):
	{
		result = NIM_FALSE;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62):
	{
		result = exprStructuralEquivalent__trees_u63((*a_1).n, (*b_1).n, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	default: __builtin_unreachable();
	}
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___types_u1571)(tySequence__8Np6tlClE5az1CyqZdN19bQ dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ));
}
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___types_u1550)(tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ* dest_p0) {
	eqdestroy___types_u1571((*dest_p0).s);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compareTypes__types_u2782)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_p1, tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw cmp_p2, tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ flags_p3) {
	NIM_BOOL result;
	tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ c_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&c_1), sizeof(tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ));
	initSameTypeClosure__types_u1545((&c_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	c_1.cmp = cmp_p2;
	c_1.flags = flags_p3;
	{
		if (!(x_p0 == y_p1)) goto LA4_;
		result = NIM_TRUE;
	}
	goto LA2_;
LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = (x_p0 == 0);
		if (T7_) goto LA8_;
		T7_ = (y_p1 == 0);
LA8_: ;
		if (!T7_) goto LA9_;
		result = NIM_FALSE;
	}
	goto LA2_;
LA9_: ;
	{
		result = sameTypeAux__types_u1805(x_p0, y_p1, (&c_1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA2_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___types_u1550((&c_1));
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
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_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, iterOverNode__types_u309)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyProc__aFU8JO3OZrh5M9aNLBLtcZA iter_p2, RootObj* closure_p3) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		if (!!((n_p1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA3_;
		switch ((*n_p1).kind) {
		case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)0) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23):
		{
			result = iterOverTypeAux__types_u304(marker_p0, (*n_p1).typField, iter_p2, closure_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		default:
		{
			result = iterOverTypeAux__types_u304(marker_p0, (*n_p1).typField, iter_p2, closure_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!result) goto LA9_;
				goto BeforeRet_;
			}
LA9_: ;
			{
				NI i_1;
				NI colontmp_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_u3190(n_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI)0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA13;
						i_1 = i_2;
						result = iterOverNode__types_u309(marker_p0, (*n_p1)._kind_6.sons.p->data[i_1], iter_p2, closure_p3);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!result) goto LA16_;
							goto BeforeRet_;
						}
LA16_: ;
						i_2 += ((NI)1);
					} LA13: ;
				}
			}
		}
		break;
		}
	}
	goto LA1_;
LA3_: ;
	{
		result = NIM_FALSE;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, iterOverTypeAux__types_u304)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, tyProc__aFU8JO3OZrh5M9aNLBLtcZA iter_p2, RootObj* closure_p3) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin16_;
NIM_BOOL oldNimErrFin21_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_FALSE;
	{
		if (!(t_p1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
LA3_: ;
	result = iter_p2(t_p1, closure_p3);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!result) goto LA7_;
		goto BeforeRet_;
	}
LA7_: ;
	{
		tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym42__1;
		NIM_BOOL T11_;
		xX60gensym42__1 = (*t_p1).itemId;
		T11_ = (NIM_BOOL)0;
		T11_ = containsOrIncl__astyaml_u223(marker_p0, (NI)((NI)((NU64)(((NI) (xX60gensym42__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym42__1.item))));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T11_)) goto LA12_;
		switch ((*t_p1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
		{
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
			colontmpD_ = NIM_NIL;
			colontmpD_ = skipModifier__ast_u5338(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
			result = iterOverTypeAux__types_u304(marker_p0, colontmpD_, iter_p2, closure_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
			{
				LA16_:;
			}
			{
				oldNimErrFin16_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin16_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		break;
		default:
		{
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
				a_1 = NIM_NIL;
				{
					NI i_1;
					NI colontmp_;
					NI T23_;
					NI i_2;
					i_1 = (NI)0;
					colontmp_ = (NI)0;
					T23_ = (*t_p1).sons.len;
					colontmp_ = T23_;
					i_2 = ((NI)0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA25;
							i_1 = i_2;
							eqcopy___ast_u3381(&a_1, (*t_p1).sons.p->data[i_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
							result = iterOverTypeAux__types_u304(marker_p0, a_1, iter_p2, closure_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
							{
								if (!result) goto LA28_;
								eqdestroy___ast_u3378(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA28_: ;
							i_2 += ((NI)1);
						} LA25: ;
					}
				}
				{
					LA21_:;
				}
				{
					oldNimErrFin21_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					*nimErr_ = oldNimErrFin21_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			{
				NIM_BOOL T34_;
				T34_ = (NIM_BOOL)0;
				T34_ = !(((*t_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
				if (!(T34_)) goto LA35_;
				T34_ = !(((*t_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25)));
LA35_: ;
				if (!T34_) goto LA36_;
				result = iterOverNode__types_u309(marker_p0, (*t_p1).n, iter_p2, closure_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
LA36_: ;
		}
		break;
		}
	}
LA12_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, iterOverType__types_u76)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyProc__aFU8JO3OZrh5M9aNLBLtcZA iter_p1, RootObj* closure_p2) {
	NIM_BOOL result;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA marker_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&marker_1), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	initIntSet__pureZcollectionsZintsets_u598((&marker_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = iterOverTypeAux__types_u304((&marker_1), t_p0, iter_p1, closure_p2);
	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(NIM_BOOL, containsGenericTypeIter__types_u3442)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, RootObj* closure_p1) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	switch ((*t_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	{
		result = ((*t_p0).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		colontmpD_ = NIM_NIL;
		colontmpD__2 = NIM_NIL;
		{
			colontmpD_ = base__ast_u5351(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
			if (!((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0))) goto LA6_;
			result = NIM_TRUE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA6_: ;
		{
			NIM_BOOL T10_;
			colontmpD__2 = base__ast_u5351(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
			T10_ = (NIM_BOOL)0;
			T10_ = containsGenericTypeIter__types_u3442(colontmpD__2, closure_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
			if (!T10_) goto LA11_;
			result = NIM_TRUE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA11_: ;
		result = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA3_:;
		}
		{
			oldNimErrFin3_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin3_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62):
	{
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	{
		result = isConcept__types_u3423(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericType__types_u3462)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	result = iterOverType__types_u76(t_p0, containsGenericTypeIter__types_u3442, ((RootObj*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRefPtrObject__types_u4254)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21));
	if (!(T1_)) goto LA2_;
	T1_ = (((*t_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)34)))&63U)))!=0);
LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, enumHasHoles__types_u271)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_1;
	NIM_BOOL T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	b_1 = NIM_NIL;
	b_1 = skipTypes__ast_u5379(t_p0, TM__PpBJsMJcrcWrpLTS6mci1g_282);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*b_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14));
	if (!(T1_)) goto LA2_;
	T1_ = (((*b_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)5)))&63U)))!=0);
LA2_: ;
	result = T1_;
	eqdestroy___ast_u3378(b_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__types_u283)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, NIM_BOOL allowEnumWithHoles_p1) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T4_;
	NIM_BOOL T5_;
	NIM_BOOL T8_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	colontmpD_ = NIM_NIL;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2) || (*t_p0).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) && (*t_p0).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35) || (*t_p0).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40) && (*t_p0).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)1) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14));
	if (!(T2_)) goto LA3_;
	T4_ = (NIM_BOOL)0;
	T5_ = (NIM_BOOL)0;
	T5_ = enumHasHoles__types_u271(t_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T4_ = !(T5_);
	if (T4_) goto LA6_;
	T4_ = allowEnumWithHoles_p1;
LA6_: ;
	T2_ = T4_;
LA3_: ;
	T1_ = T2_;
	if (T1_) goto LA7_;
	T8_ = (NIM_BOOL)0;
	T8_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13));
	if (!(T8_)) goto LA9_;
	colontmpD_ = skipModifier__ast_u5338(t_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T8_ = isOrdinalType__types_u283(colontmpD_, allowEnumWithHoles_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA9_: ;
	T1_ = T8_;
LA7_: ;
	result = T1_;
	eqdestroy___ast_u3378(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, getOrdValueAux__types_u148)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, NIM_BOOL* err_p1) {
	tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg colontmpD__2;
	tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg colontmpD__3;
	tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg colontmpD__4;
	tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg colontmpD__5;
	tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg colontmpD__6;
	tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw k_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg));
	colontmpD_ = NIM_NIL;
	nimZeroMem((void*)(&colontmpD__2), sizeof(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg));
	nimZeroMem((void*)(&colontmpD__3), sizeof(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg));
	nimZeroMem((void*)(&colontmpD__4), sizeof(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg));
	nimZeroMem((void*)(&colontmpD__5), sizeof(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg));
	nimZeroMem((void*)(&colontmpD__6), sizeof(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg));
	k_1 = (*n_p0).kind;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*n_p0).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		colontmpD_ = skipTypes__ast_u5379((*n_p0).typField, TM__PpBJsMJcrcWrpLTS6mci1g_283);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = ((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2) || (*colontmpD_).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40) && (*colontmpD_).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44));
LA4_: ;
		if (!T3_) goto LA5_;
		k_1 = ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)11);
	}
LA5_: ;
	switch (k_1) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)5):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)11) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)15):
	{
		colontmpD__2 = toInt128__int128_u717(((NU64) ((*n_p0)._kind_1.intVal)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = colontmpD__2;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)10):
	{
		colontmpD__3 = toInt128__int128_u937((*n_p0)._kind_1.intVal);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = colontmpD__3;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23):
	{
		colontmpD__4 = Zero__int128_u8;
		result = colontmpD__4;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58):
	{
		colontmpD__5 = getOrdValueAux__types_u148((*n_p0)._kind_6.sons.p->data[((NI)1)], err_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = colontmpD__5;
	}
	break;
	default:
	{
		(*err_p1) = NIM_TRUE;
		colontmpD__6 = Zero__int128_u8;
		result = colontmpD__6;
	}
	break;
	}
	eqdestroy___ast_u3378(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, getOrdValue__types_u167)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg result;
	NIM_BOOL err_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg));
	err_1 = NIM_FALSE;
	result = getOrdValueAux__types_u148(n_p0, (&err_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, firstOrd__types_u1182)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1) {
	tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg result;
NIM_BOOL oldNimErrFin3_;
NIM_BOOL oldNimErrFin7_;
NIM_BOOL oldNimErrFin33_;
NIM_BOOL oldNimErrFin28_;
NIM_BOOL oldNimErrFin46_;
NIM_BOOL oldNimErrFin50_;
NIM_BOOL oldNimErrFin59_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg));
	switch ((*t_p1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)1):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50):
	{
		result = Zero__int128_u8;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = elementType__ast_u5331(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
		result = firstOrd__types_u1182(conf_p0, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
		{
			LA3_:;
		}
		{
			oldNimErrFin3_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin3_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = indexType__ast_u5345(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		result = firstOrd__types_u1182(conf_p0, colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		{
			LA7_:;
		}
		{
			oldNimErrFin7_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin7_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
	{
		result = getOrdValue__types_u167((*(*t_p1).n)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31):
	{
		{
			if (!!((conf_p0 == ((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL)))) goto LA14_;
			switch ((*conf_p0).target.intSize) {
			case ((NI)8):
			{
				result = toInt128__int128_u937((IL64(-9223372036854775807) - IL64(1)));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((NI)4):
			{
				result = toInt128__types_u1207(((NI)(-2147483647 -1)));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((NI)2):
			{
				result = toInt128__types_u1207(((NI)-32768));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((NI)1):
			{
				result = toInt128__types_u1207(((NI)-128));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			default:
			{
				result = Zero__int128_u8;
			}
			break;
			}
		}
		goto LA12_;
LA14_: ;
		{
			result = toInt128__int128_u937((IL64(-9223372036854775807) - IL64(1)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA12_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32):
	{
		result = toInt128__types_u1207(((NI)-128));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)33):
	{
		result = toInt128__types_u1207(((NI)-32768));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)34):
	{
		result = toInt128__types_u1207(((NI)(-2147483647 -1)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35):
	{
		result = toInt128__int128_u937((IL64(-9223372036854775807) - IL64(1)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44):
	{
		result = Zero__int128_u8;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		colontmpD__3 = NIM_NIL;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
			colontmpD__3 = baseClass__ast_u5348(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			if (!!((colontmpD__3 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA31_;
			colontmpD__4 = NIM_NIL;
			colontmpD__4 = baseClass__ast_u5348(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
			result = firstOrd__types_u1182(conf_p0, colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
			{
				LA33_:;
			}
			{
				oldNimErrFin33_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
				*nimErr_ = oldNimErrFin33_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
		}
		goto LA29_;
LA31_: ;
		{
			{
				NI T39_;
				T39_ = (NI)0;
				T39_ = len__ast_u3190((*t_p1).n);
				if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
				if (!(((NI)0) < T39_)) goto LA40_;
				result = toInt128__types_u1207((*(*(*(*t_p1).n)._kind_6.sons.p->data[((NI)0)])._kind_4.sym).position);
				if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			}
			goto LA37_;
LA40_: ;
			{
				result = Zero__int128_u8;
			}
LA37_: ;
		}
LA29_: ;
		{
			LA28_:;
		}
		{
			oldNimErrFin28_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin28_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
		colontmpD__5 = NIM_NIL;
		colontmpD__5 = skipModifier__ast_u5338(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
		result = firstOrd__types_u1182(conf_p0, colontmpD__5);
		if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
		{
			LA46_:;
		}
		{
			oldNimErrFin46_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin46_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
		colontmpD__6 = NIM_NIL;
		colontmpD__6 = last__ast_u5278(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
		result = firstOrd__types_u1182(conf_p0, colontmpD__6);
		if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
		{
			LA50_:;
		}
		{
			oldNimErrFin50_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__6);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin50_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15):
	{
		{
			NIM_BOOL T56_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
			T56_ = (NIM_BOOL)0;
			T56_ = hasElementType__ast_u5660(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T56_) goto LA57_;
			colontmpD__7 = NIM_NIL;
			colontmpD__7 = skipModifier__ast_u5338(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
			result = firstOrd__types_u1182(conf_p0, colontmpD__7);
			if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
			{
				LA59_:;
			}
			{
				oldNimErrFin59_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__7);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin59_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA54_;
LA57_: ;
		{
			NimStringV2 colontmpD__8;
			NimStringV2 colontmpD__9;
			NimStringV2 T64_;
			colontmpD__8.len = 0; colontmpD__8.p = NIM_NIL;
			colontmpD__9.len = 0; colontmpD__9.p = NIM_NIL;
			result = Zero__int128_u8;
			T64_.len = 0; T64_.p = NIM_NIL;
			colontmpD__8 = dollar___ast_u182((*t_p1).kind);
			T64_ = rawNewString(colontmpD__8.len + 27);
appendString((&T64_), TM__PpBJsMJcrcWrpLTS6mci1g_285);
appendString((&T64_), colontmpD__8);
appendChar((&T64_), 41);
			colontmpD__9 = T64_;
			liMessage__msgs_u1227(conf_p0, unknownLineInfo__lineinfos_u364, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)1), colontmpD__9, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)1), (&TM__PpBJsMJcrcWrpLTS6mci1g_286), NIM_FALSE, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto LA63_;
			{
				LA63_:;
			}
			{
				eqdestroy___system_u2691(colontmpD__9);
				eqdestroy___system_u2691(colontmpD__8);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA54_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29):
	{
		result = Zero__int128_u8;
	}
	break;
	default:
	{
		NimStringV2 colontmpD__10;
		NimStringV2 colontmpD__11;
		NimStringV2 T70_;
		colontmpD__10.len = 0; colontmpD__10.p = NIM_NIL;
		colontmpD__11.len = 0; colontmpD__11.p = NIM_NIL;
		result = Zero__int128_u8;
		T70_.len = 0; T70_.p = NIM_NIL;
		colontmpD__10 = dollar___ast_u182((*t_p1).kind);
		T70_ = rawNewString(colontmpD__10.len + 27);
appendString((&T70_), TM__PpBJsMJcrcWrpLTS6mci1g_288);
appendString((&T70_), colontmpD__10);
appendChar((&T70_), 41);
		colontmpD__11 = T70_;
		liMessage__msgs_u1227(conf_p0, unknownLineInfo__lineinfos_u364, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)1), colontmpD__11, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)1), (&TM__PpBJsMJcrcWrpLTS6mci1g_289), NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA69_;
		{
			LA69_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__11);
			eqdestroy___system_u2691(colontmpD__10);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, lastOrd__types_u1304)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1) {
	tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg result;
NIM_BOOL oldNimErrFin4_;
NIM_BOOL oldNimErrFin8_;
NIM_BOOL oldNimErrFin48_;
NIM_BOOL oldNimErrFin52_;
NIM_BOOL oldNimErrFin62_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg));
	switch ((*t_p1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)1):
	{
		result = toInt128__types_u1308(((NU)1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2):
	{
		result = toInt128__types_u1308(((NU)255));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = elementType__ast_u5331(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
		result = lastOrd__types_u1304(conf_p0, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
		{
			LA4_:;
		}
		{
			oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin4_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = indexType__ast_u5345(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		result = lastOrd__types_u1304(conf_p0, colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		{
			LA8_:;
		}
		{
			oldNimErrFin8_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin8_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
	{
		result = getOrdValue__types_u167((*(*t_p1).n)._kind_6.sons.p->data[((NI)1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31):
	{
		{
			if (!!((conf_p0 == ((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL)))) goto LA15_;
			switch ((*conf_p0).target.intSize) {
			case ((NI)8):
			{
				result = toInt128__int128_u717(9223372036854775807ULL);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((NI)4):
			{
				result = toInt128__types_u1207(((NI)2147483647));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((NI)2):
			{
				result = toInt128__types_u1207(((NI)32767));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((NI)1):
			{
				result = toInt128__types_u1207(((NI)127));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			default:
			{
				result = Zero__int128_u8;
			}
			break;
			}
		}
		goto LA13_;
LA15_: ;
		{
			result = toInt128__int128_u717(9223372036854775807ULL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA13_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32):
	{
		result = toInt128__types_u1207(((NI)127));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)33):
	{
		result = toInt128__types_u1207(((NI)32767));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)34):
	{
		result = toInt128__types_u1207(((NI)2147483647));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35):
	{
		result = toInt128__int128_u717(9223372036854775807ULL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40):
	{
		{
			NIM_BOOL T30_;
			T30_ = (NIM_BOOL)0;
			T30_ = !((conf_p0 == ((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL)));
			if (!(T30_)) goto LA31_;
			T30_ = ((*conf_p0).target.intSize == ((NI)4));
LA31_: ;
			if (!T30_) goto LA32_;
			result = toInt128__int128_u937(IL64(4294967295));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA28_;
LA32_: ;
		{
			result = toInt128__int128_u717(18446744073709551615ULL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA28_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41):
	{
		result = toInt128__types_u1207(((NI)255));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)42):
	{
		result = toInt128__types_u1207(((NI)65535));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)43):
	{
		result = toInt128__int128_u937(IL64(4294967295));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44):
	{
		result = toInt128__int128_u717(18446744073709551615ULL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14):
	{
		{
			NI T42_;
			NI T45_;
			T42_ = (NI)0;
			T42_ = len__ast_u3190((*t_p1).n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI)0) < T42_)) goto LA43_;
			T45_ = (NI)0;
			T45_ = len__ast_u3190((*t_p1).n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = toInt128__types_u1207((*(*(*(*t_p1).n)._kind_6.sons.p->data[(NI)(T45_ - ((NI)1))])._kind_4.sym).position);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA40_;
LA43_: ;
		{
			result = Zero__int128_u8;
		}
LA40_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		colontmpD__3 = NIM_NIL;
		colontmpD__3 = skipModifier__ast_u5338(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
		result = lastOrd__types_u1304(conf_p0, colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
		{
			LA48_:;
		}
		{
			oldNimErrFin48_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin48_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
		colontmpD__4 = NIM_NIL;
		colontmpD__4 = last__ast_u5278(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
		result = lastOrd__types_u1304(conf_p0, colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
		{
			LA52_:;
		}
		{
			oldNimErrFin52_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin52_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50):
	{
		result = Zero__int128_u8;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15):
	{
		{
			NIM_BOOL T59_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
			T59_ = (NIM_BOOL)0;
			T59_ = hasElementType__ast_u5660(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T59_) goto LA60_;
			colontmpD__5 = NIM_NIL;
			colontmpD__5 = skipModifier__ast_u5338(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
			result = lastOrd__types_u1304(conf_p0, colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
			{
				LA62_:;
			}
			{
				oldNimErrFin62_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__5);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin62_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA57_;
LA60_: ;
		{
			NimStringV2 colontmpD__6;
			NimStringV2 colontmpD__7;
			NimStringV2 T67_;
			colontmpD__6.len = 0; colontmpD__6.p = NIM_NIL;
			colontmpD__7.len = 0; colontmpD__7.p = NIM_NIL;
			result = Zero__int128_u8;
			T67_.len = 0; T67_.p = NIM_NIL;
			colontmpD__6 = dollar___ast_u182((*t_p1).kind);
			T67_ = rawNewString(colontmpD__6.len + 26);
appendString((&T67_), TM__PpBJsMJcrcWrpLTS6mci1g_291);
appendString((&T67_), colontmpD__6);
appendChar((&T67_), 41);
			colontmpD__7 = T67_;
			liMessage__msgs_u1227(conf_p0, unknownLineInfo__lineinfos_u364, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)1), colontmpD__7, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)1), (&TM__PpBJsMJcrcWrpLTS6mci1g_292), NIM_FALSE, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto LA66_;
			{
				LA66_:;
			}
			{
				eqdestroy___system_u2691(colontmpD__7);
				eqdestroy___system_u2691(colontmpD__6);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA57_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
	{
		result = Zero__int128_u8;
	}
	break;
	default:
	{
		NimStringV2 colontmpD__8;
		NimStringV2 colontmpD__9;
		NimStringV2 T73_;
		colontmpD__8.len = 0; colontmpD__8.p = NIM_NIL;
		colontmpD__9.len = 0; colontmpD__9.p = NIM_NIL;
		result = Zero__int128_u8;
		T73_.len = 0; T73_.p = NIM_NIL;
		colontmpD__8 = dollar___ast_u182((*t_p1).kind);
		T73_ = rawNewString(colontmpD__8.len + 26);
appendString((&T73_), TM__PpBJsMJcrcWrpLTS6mci1g_293);
appendString((&T73_), colontmpD__8);
appendChar((&T73_), 41);
		colontmpD__9 = T73_;
		liMessage__msgs_u1227(conf_p0, unknownLineInfo__lineinfos_u364, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)1), colontmpD__9, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)1), (&TM__PpBJsMJcrcWrpLTS6mci1g_294), NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA72_;
		{
			LA72_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__9);
			eqdestroy___system_u2691(colontmpD__8);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NF, getFloatValue__types_u176)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NF result;
	NF T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NF)0;
	T1_ = (NF)0;
	switch ((*n_p0).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)16) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)19):
	{
		result = (*n_p0)._kind_2.floatVal;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58):
	{
		result = getFloatValue__types_u176((*n_p0)._kind_6.sons.p->data[((NI)1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = NAN;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NF, firstFloat__types_u1274)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NF result;
	NF T1_;
NIM_BOOL oldNimErrFin5_;
NIM_BOOL oldNimErrFin9_;
NIM_BOOL oldNimErrFin13_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NF)0;
	T1_ = (NF)0;
	switch ((*t_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)39):
	{
		result = -INF;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
	{
		result = getFloatValue__types_u176((*(*t_p0).n)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = elementType__ast_u5331(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		result = firstFloat__types_u1274(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		{
			LA5_:;
		}
		{
			oldNimErrFin5_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin5_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = skipModifier__ast_u5338(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		result = firstFloat__types_u1274(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		{
			LA9_:;
		}
		{
			oldNimErrFin9_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin9_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		colontmpD__3 = NIM_NIL;
		colontmpD__3 = last__ast_u5278(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
		result = firstFloat__types_u1274(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
		{
			LA13_:;
		}
		{
			oldNimErrFin13_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin13_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* colontmpD__4;
		NimStringV2 colontmpD__5;
		NimStringV2 colontmpD__6;
		NimStringV2 T18_;
		colontmpD__4 = NIM_NIL;
		colontmpD__5.len = 0; colontmpD__5.p = NIM_NIL;
		colontmpD__6.len = 0; colontmpD__6.p = NIM_NIL;
		colontmpD__4 = newPartialConfigRef__options_u2157();
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		T18_.len = 0; T18_.p = NIM_NIL;
		colontmpD__5 = dollar___ast_u182((*t_p0).kind);
		T18_ = rawNewString(colontmpD__5.len + 29);
appendString((&T18_), TM__PpBJsMJcrcWrpLTS6mci1g_296);
appendString((&T18_), colontmpD__5);
appendChar((&T18_), 41);
		colontmpD__6 = T18_;
		internalErrorImpl__msgs_u1598(colontmpD__4, unknownLineInfo__lineinfos_u364, colontmpD__6, (&TM__PpBJsMJcrcWrpLTS6mci1g_297));
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		result = NAN;
		{
			LA17_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__6);
			eqdestroy___system_u2691(colontmpD__5);
			eqdestroy___options_u2135(colontmpD__4);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NF, lastFloat__types_u1414)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NF result;
	NF T1_;
NIM_BOOL oldNimErrFin4_;
NIM_BOOL oldNimErrFin9_;
NIM_BOOL oldNimErrFin13_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NF)0;
	T1_ = (NF)0;
	switch ((*t_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)39):
	{
		result = INF;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = elementType__ast_u5331(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
		result = lastFloat__types_u1414(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
		{
			LA4_:;
		}
		{
			oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin4_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
	{
		result = getFloatValue__types_u176((*(*t_p0).n)._kind_6.sons.p->data[((NI)1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = skipModifier__ast_u5338(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		result = lastFloat__types_u1414(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		{
			LA9_:;
		}
		{
			oldNimErrFin9_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin9_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		colontmpD__3 = NIM_NIL;
		colontmpD__3 = last__ast_u5278(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
		result = lastFloat__types_u1414(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
		{
			LA13_:;
		}
		{
			oldNimErrFin13_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin13_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* colontmpD__4;
		NimStringV2 colontmpD__5;
		NimStringV2 colontmpD__6;
		NimStringV2 T18_;
		colontmpD__4 = NIM_NIL;
		colontmpD__5.len = 0; colontmpD__5.p = NIM_NIL;
		colontmpD__6.len = 0; colontmpD__6.p = NIM_NIL;
		colontmpD__4 = newPartialConfigRef__options_u2157();
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		T18_.len = 0; T18_.p = NIM_NIL;
		colontmpD__5 = dollar___ast_u182((*t_p0).kind);
		T18_ = rawNewString(colontmpD__5.len + 28);
appendString((&T18_), TM__PpBJsMJcrcWrpLTS6mci1g_299);
appendString((&T18_), colontmpD__5);
appendChar((&T18_), 41);
		colontmpD__6 = T18_;
		internalErrorImpl__msgs_u1598(colontmpD__4, unknownLineInfo__lineinfos_u364, colontmpD__6, (&TM__PpBJsMJcrcWrpLTS6mci1g_300));
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		result = NAN;
		{
			LA17_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__6);
			eqdestroy___system_u2691(colontmpD__5);
			eqdestroy___options_u2135(colontmpD__4);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg, targetSizeSignedToKind__types_u1294)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0) {
	tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg result;
	switch ((*conf_p0).target.intSize) {
	case ((NI)8):
	{
		result = ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35);
	}
	break;
	case ((NI)4):
	{
		result = ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)34);
	}
	break;
	case ((NI)2):
	{
		result = ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)33);
	}
	break;
	default:
	{
		result = ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg, targetSizeUnsignedToKind__types_u1297)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0) {
	tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg result;
	switch ((*conf_p0).target.intSize) {
	case ((NI)8):
	{
		result = ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44);
	}
	break;
	case ((NI)4):
	{
		result = ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)43);
	}
	break;
	case ((NI)2):
	{
		result = ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)42);
	}
	break;
	default:
	{
		result = ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg, normalizeKind__types_u1300)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg k_p1) {
	tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0;
	switch (k_p1) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31):
	{
		result = targetSizeSignedToKind__types_u1294(conf_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40):
	{
		result = targetSizeUnsignedToKind__types_u1297(conf_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = k_p1;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, lengthOrd__types_u1505)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1) {
	tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg));
	colontmpD_ = NIM_NIL;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		colontmpD_ = skipTypes__ast_u5379(t_p1, TM__PpBJsMJcrcWrpLTS6mci1g_301);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13))) goto LA4_;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = skipModifier__ast_u5338(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		result = lengthOrd__types_u1505(conf_p0, colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		{
			LA6_:;
		}
		{
			oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin6_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA2_;
LA4_: ;
	{
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg last_1;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg first_1;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T10_;
		last_1 = lastOrd__types_u1304(conf_p0, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		first_1 = firstOrd__types_u1182(conf_p0, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T10_ = minus___int128_u641(last_1, first_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		result = plus___int128_u615(T10_, One__int128_u9);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA2_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__types_u1826)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ flags_p2) {
	NIM_BOOL result;
	tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ c_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&c_1), sizeof(tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ));
	initSameTypeClosure__types_u1545((&c_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	c_1.flags = flags_p2;
	result = sameTypeAux__types_u1805(a_p0, b_p1, (&c_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		eqdestroy___types_u1550((&c_1));
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectTypes__types_u2018)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym253__1;
		tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym255__1;
		if (!!(((((*a_p0).flags | (*b_p1).flags) &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)8)))&63U)))!=0))) goto LA3_;
		xX60gensym253__1 = (*a_p0).itemId;
		xX60gensym255__1 = (*b_p1).itemId;
		result = ((NI)((NI)((NU64)(((NI) (xX60gensym253__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym253__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym255__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym255__1.item))));
	}
	goto LA1_;
LA3_: ;
	{
		{
			NIM_BOOL T8_;
			tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym258__1;
			tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym260__1;
			tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ c_1;
			T8_ = (NIM_BOOL)0;
			T8_ = ((((*a_p0).flags & (*b_p1).flags) &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)8)))&63U)))!=0);
			if (!(T8_)) goto LA9_;
			xX60gensym258__1 = (*(*a_p0).sym).itemId;
			xX60gensym260__1 = (*(*b_p1).sym).itemId;
			T8_ = ((NI)((NI)((NU64)(((NI) (xX60gensym258__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym258__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym260__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym260__1.item))));
LA9_: ;
			if (!T8_) goto LA10_;
			nimZeroMem((void*)(&c_1), sizeof(tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ));
			initSameTypeClosure__types_u1545((&c_1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
			result = sameTypeAux__types_u1805(a_p0, b_p1, (&c_1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
			{
				LA12_:;
			}
			{
				eqdestroy___types_u1550((&c_1));
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA6_;
LA10_: ;
		{
			result = NIM_FALSE;
		}
LA6_: ;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericRoot__types_u4285)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	switch ((*t_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
	{
		eqcopy___ast_u3381(&result, t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
	{
		result = genericHead__ast_u5376(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		{
			if (!!(((*t_p0).typeInst == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA6_;
			result = genericHead__ast_u5376((*t_p0).typeInst);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA4_;
LA6_: ;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = !(((*t_p0).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
			if (!(T9_)) goto LA10_;
			T9_ = ((*(*(*t_p0).sym).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10));
LA10_: ;
			if (!T9_) goto LA11_;
			eqcopy___ast_u3381(&result, (*(*t_p0).sym).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA4_;
LA11_: ;
		{
			result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
		}
LA4_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyTuple__7xZyzV9bi4zRvtJda9aONodA, getProcConvMismatch__types_u3811)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ rel_p3) {
	tyTuple__7xZyzV9bi4zRvtJda9aONodA result;
	nimZeroMem((void*)(&result), sizeof(tyTuple__7xZyzV9bi4zRvtJda9aONodA));
	result.Field1 = rel_p3;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)1)))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !((((*a_p2).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)1)))&63U)))!=0));
LA4_: ;
		if (!T3_) goto LA5_;
		result.Field0 |= ((NU8)1)<<(((((tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ)0))) & 7);
		result.Field1 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
	}
LA5_: ;
	{
		NIM_BOOL T9_;
		NIM_BOOL T10_;
		tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A T12_;
		T9_ = (NIM_BOOL)0;
		T10_ = (NIM_BOOL)0;
		T10_ = (((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)7)))&63U)))!=0);
		if (!(T10_)) goto LA11_;
		T12_ = 0;
		T10_ = (((*a_p2).flags & 130) == T12_);
LA11_: ;
		T9_ = T10_;
		if (!(T9_)) goto LA13_;
		T9_ = (((*c_p0).globalOptions &((NU64)1<<((NU)((((tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A)27)))&63U)))!=0);
LA13_: ;
		if (!T9_) goto LA14_;
		result.Field0 |= ((NU8)1)<<(((((tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ)1))) & 7);
		result.Field1 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
	}
LA14_: ;
	{
		if (!!((((*f_p1).flags & 32768) == ((*a_p2).flags & 32768)))) goto LA18_;
		result.Field0 |= ((NU8)1)<<(((((tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ)2))) & 7);
		result.Field1 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
	}
LA18_: ;
	{
		if (!!(((*f_p1).callConv == (*a_p2).callConv))) goto LA22_;
		{
			NIM_BOOL T26_;
			T26_ = (NIM_BOOL)0;
			T26_ = ((*f_p1).callConv == ((tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ)9));
			if (!(T26_)) goto LA27_;
			T26_ = ((*a_p2).callConv == ((tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ)0));
LA27_: ;
			if (!T26_) goto LA28_;
			switch (result.Field1) {
			case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)6):
			{
				result.Field1 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)7);
			}
			break;
			case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)5):
			{
				result.Field1 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)5);
			}
			break;
			default:
			{
				{
					if (!!((result.Field1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA35_;
					result.Field1 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
				}
				goto LA33_;
LA35_: ;
				{
					result.Field0 |= ((NU8)1)<<(((((tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ)3))) & 7);
				}
LA33_: ;
			}
			break;
			}
		}
		goto LA24_;
LA28_: ;
		{
			result.Field1 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			result.Field0 |= ((NU8)1)<<(((((tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ)3))) & 7);
		}
LA24_: ;
	}
LA22_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefectException__types_u3532)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_2;
NIM_BOOL oldNimErrFin4_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	t_2 = NIM_NIL;
	t_2 = skipTypes__ast_u5379(t_p0, TM__PpBJsMJcrcWrpLTS6mci1g_302);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__2;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T19_;
			if (!((*t_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17))) goto LA3;
			colontmpD_ = NIM_NIL;
			colontmpD__2 = NIM_NIL;
			colontmpD__3 = NIM_NIL;
			colontmpD__4 = NIM_NIL;
			{
				NIM_BOOL T7_;
				NIM_BOOL T8_;
				NIM_BOOL T9_;
				T7_ = (NIM_BOOL)0;
				T8_ = (NIM_BOOL)0;
				T9_ = (NIM_BOOL)0;
				T9_ = !(((*t_2).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
				if (!(T9_)) goto LA10_;
				colontmpD_ = owner__ast_u6254((*t_2).sym);
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
				T9_ = !((colontmpD_ == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA10_: ;
				T8_ = T9_;
				if (!(T8_)) goto LA11_;
				colontmpD__2 = owner__ast_u6254((*t_2).sym);
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
				T8_ = (((*colontmpD__2).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)15)))&63U)))!=0);
LA11_: ;
				T7_ = T8_;
				if (!(T7_)) goto LA12_;
				T7_ = eqStrings((*(*(*t_2).sym).name).s, TM__PpBJsMJcrcWrpLTS6mci1g_304);
LA12_: ;
				if (!T7_) goto LA13_;
				result = NIM_TRUE;
				eqdestroy___ast_u3378(colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(t_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA13_: ;
			{
				colontmpD__3 = baseClass__ast_u5348(t_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
				if (!(colontmpD__3 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA17_;
				eqdestroy___ast_u3378(colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				goto LA2;
			}
LA17_: ;
			colontmpD__4 = baseClass__ast_u5348(t_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
			T19_ = NIM_NIL;
			T19_ = skipTypes__ast_u5379(colontmpD__4, TM__PpBJsMJcrcWrpLTS6mci1g_302);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T19_); goto LA4_;}
			eqsink___ast_u3387(&t_2, T19_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
			{
				LA4_:;
			}
			{
				oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin4_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		} LA3: ;
	} LA2: ;
	result = NIM_FALSE;
	eqdestroy___ast_u3378(t_2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(t_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, inheritanceDiff__types_u2799)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	NI result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	x_1 = NIM_NIL;
	y_1 = NIM_NIL;
	{
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = (a_p0 == b_p1);
		if (T5_) goto LA6_;
		T5_ = ((*a_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50));
LA6_: ;
		T4_ = T5_;
		if (T4_) goto LA7_;
		T4_ = ((*b_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50));
LA7_: ;
		if (!T4_) goto LA8_;
		result = ((NI)0);
		eqdestroy___ast_u3378(y_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(x_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA8_: ;
	eqcopy___ast_u3381(&x_1, a_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = ((NI)0);
	{
		while (1) {
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T12_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T18_;
			if (!!((x_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA11;
			T12_ = NIM_NIL;
			T12_ = skipTypes__ast_u5379(x_1, TM__PpBJsMJcrcWrpLTS6mci1g_305);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T12_); goto LA1_;}
			eqsink___ast_u3387(&x_1, T12_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				NIM_BOOL T15_;
				T15_ = (NIM_BOOL)0;
				T15_ = sameObjectTypes__types_u2018(x_1, b_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T15_) goto LA16_;
				eqdestroy___ast_u3378(y_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(x_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA16_: ;
			T18_ = NIM_NIL;
			T18_ = baseClass__ast_u5348(x_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T18_); goto LA1_;}
			eqsink___ast_u3387(&x_1, T18_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			result -= ((NI)1);
		} LA11: ;
	}
	eqcopy___ast_u3381(&y_1, b_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = ((NI)0);
	{
		while (1) {
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T21_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T27_;
			if (!!((y_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA20;
			T21_ = NIM_NIL;
			T21_ = skipTypes__ast_u5379(y_1, TM__PpBJsMJcrcWrpLTS6mci1g_305);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T21_); goto LA1_;}
			eqsink___ast_u3387(&y_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				NIM_BOOL T24_;
				T24_ = (NIM_BOOL)0;
				T24_ = sameObjectTypes__types_u2018(y_1, a_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T24_) goto LA25_;
				eqdestroy___ast_u3378(y_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(x_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA25_: ;
			T27_ = NIM_NIL;
			T27_ = baseClass__ast_u5348(y_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T27_); goto LA1_;}
			eqsink___ast_u3387(&y_1, T27_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			result += ((NI)1);
		} LA20: ;
	}
	result = ((NI)IL64(9223372036854775807));
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(y_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(x_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, safeInheritanceDiff__types_u3510)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	NI result;
NIM_BOOL oldNimErrFin8_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*a_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50));
		if (T3_) goto LA4_;
		T3_ = ((*b_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50));
LA4_: ;
		if (!T3_) goto LA5_;
		result = ((NI)-1);
	}
	goto LA1_;
LA5_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		colontmpD_ = NIM_NIL;
		colontmpD__2 = NIM_NIL;
		colontmpD_ = skipTypes__ast_u5379(a_p0, TM__PpBJsMJcrcWrpLTS6mci1g_305);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		colontmpD__2 = skipTypes__ast_u5379(b_p1, TM__PpBJsMJcrcWrpLTS6mci1g_305);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		result = inheritanceDiff__types_u2799(colontmpD_, colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		{
			LA8_:;
		}
		{
			oldNimErrFin8_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin8_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compatibleExceptions__types_u3534)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* se_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* re_p1) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin17_;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		if (!(re_p1 == 0)) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
LA3_: ;
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* r_1;
		r_1 = NIM_NIL;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_u3197(re_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA9;
					i_1 = i_2;
					eqcopy___ast_u3255(&r_1, (*re_p1)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					{
						{
							NIM_BOOL T13_;
							T13_ = (NIM_BOOL)0;
							T13_ = isDefectException__types_u3532((*r_1).typField);
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
							if (!T13_) goto LA14_;
							goto LA10;
						}
LA14_: ;
						{
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* s_1;
							s_1 = NIM_NIL;
							s_1 = 0;
							{
								NI i_3;
								NI colontmp__2;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__2 = safeLen__ast_u3197(se_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								i_4 = ((NI)0);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA20;
										i_3 = i_4;
										eqcopy___ast_u3255(&s_1, (*se_p0)._kind_6.sons.p->data[i_3]);
										if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
										{
											NI T23_;
											T23_ = (NI)0;
											T23_ = safeInheritanceDiff__types_u3510((*r_1).typField, (*s_1).typField);
											if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
											if (!(T23_ <= ((NI)0))) goto LA24_;
											eqdestroy___ast_u3252(s_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
											goto LA10;
										}
LA24_: ;
										i_4 += ((NI)1);
									} LA20: ;
								}
							}
							{
								LA17_:;
							}
							{
								oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3252(s_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								*nimErr_ = oldNimErrFin17_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						}
						result = NIM_FALSE;
						eqdestroy___ast_u3252(r_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					} LA10: ;
					i_2 += ((NI)1);
				} LA9: ;
			}
		}
		{
			LA6_:;
		}
		{
			oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(r_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin6_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compatibleEffectsAux__types_u3522)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* se_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* re_p1) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin12_;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		if (!(re_p1 == 0)) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
LA3_: ;
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* r_1;
		r_1 = NIM_NIL;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_u3197(re_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA9;
					i_1 = i_2;
					eqcopy___ast_u3255(&r_1, (*re_p1)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					{
						{
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* s_1;
							s_1 = NIM_NIL;
							s_1 = 0;
							{
								NI i_3;
								NI colontmp__2;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__2 = safeLen__ast_u3197(se_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
								i_4 = ((NI)0);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA15;
										i_3 = i_4;
										eqcopy___ast_u3255(&s_1, (*se_p0)._kind_6.sons.p->data[i_3]);
										if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
										{
											NI T18_;
											T18_ = (NI)0;
											T18_ = safeInheritanceDiff__types_u3510((*r_1).typField, (*s_1).typField);
											if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
											if (!(T18_ <= ((NI)0))) goto LA19_;
											eqdestroy___ast_u3252(s_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
											goto LA10;
										}
LA19_: ;
										i_4 += ((NI)1);
									} LA15: ;
								}
							}
							{
								LA12_:;
							}
							{
								oldNimErrFin12_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3252(s_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								*nimErr_ = oldNimErrFin12_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						}
						result = NIM_FALSE;
						eqdestroy___ast_u3252(r_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					} LA10: ;
					i_2 += ((NI)1);
				} LA9: ;
			}
		}
		{
			LA6_:;
		}
		{
			oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(r_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin6_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasIncompatibleEffect__types_u3544)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* se_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* re_p1) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin11_;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_FALSE;
	{
		if (!(re_p1 == 0)) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
LA3_: ;
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* r_1;
		r_1 = NIM_NIL;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_u3197(re_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA9;
					i_1 = i_2;
					eqcopy___ast_u3255(&r_1, (*re_p1)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* s_1;
						s_1 = NIM_NIL;
						s_1 = 0;
						{
							NI i_3;
							NI colontmp__2;
							NI i_4;
							i_3 = (NI)0;
							colontmp__2 = (NI)0;
							colontmp__2 = safeLen__ast_u3197(se_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
							i_4 = ((NI)0);
							{
								while (1) {
									if (!(i_4 < colontmp__2)) goto LA14;
									i_3 = i_4;
									eqcopy___ast_u3255(&s_1, (*se_p0)._kind_6.sons.p->data[i_3]);
									if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
									{
										NI T17_;
										T17_ = (NI)0;
										T17_ = safeInheritanceDiff__types_u3510((*r_1).typField, (*s_1).typField);
										if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
										if (!!((T17_ == ((NI)IL64(9223372036854775807))))) goto LA18_;
										result = NIM_TRUE;
										eqdestroy___ast_u3252(s_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
										eqdestroy___ast_u3252(r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										goto BeforeRet_;
									}
LA18_: ;
									i_4 += ((NI)1);
								} LA14: ;
							}
						}
						{
							LA11_:;
						}
						{
							oldNimErrFin11_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(s_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
							*nimErr_ = oldNimErrFin11_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					}
					i_2 += ((NI)1);
				} LA9: ;
			}
		}
		{
			LA6_:;
		}
		{
			oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(r_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin6_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ, compatibleEffects__types_u3568)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p1) {
	tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* spec_1;
NIM_BOOL oldNimErrFin13_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)0;
	spec_1 = NIM_NIL;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*(*(*formal_p0).n)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152)));
		if (T4_) goto LA5_;
		T4_ = !(((*(*(*actual_p1).n)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152)));
LA5_: ;
		if (!T4_) goto LA6_;
		result = ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)4);
		eqdestroy___ast_u3252(spec_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA6_: ;
	eqcopy___ast_u3255(&spec_1, (*(*formal_p0).n)._kind_6.sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NI T10_;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* real_1;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* se_1;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* st_1;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* sn_1;
		T10_ = (NI)0;
		T10_ = len__ast_u3190(spec_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!!((T10_ == ((NI)0)))) goto LA11_;
		real_1 = NIM_NIL;
		se_1 = NIM_NIL;
		st_1 = NIM_NIL;
		sn_1 = NIM_NIL;
		eqcopy___ast_u3255(&real_1, (*(*actual_p1).n)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
		eqcopy___ast_u3255(&se_1, (*spec_1)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
		{
			NIM_BOOL T16_;
			NIM_BOOL res_1;
			T16_ = (NIM_BOOL)0;
			T16_ = !((se_1 == 0));
			if (!(T16_)) goto LA17_;
			T16_ = !(((*se_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152)));
LA17_: ;
			if (!T16_) goto LA18_;
			{
				NI T22_;
				T22_ = (NI)0;
				T22_ = len__ast_u3190(real_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
				if (!(T22_ == ((NI)0))) goto LA23_;
				result = ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)2);
				eqdestroy___ast_u3252(sn_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(st_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(se_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(real_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(spec_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA23_: ;
			res_1 = compatibleExceptions__types_u3534(se_1, (*real_1)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
			{
				if (!!(res_1)) goto LA27_;
				result = ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)1);
				eqdestroy___ast_u3252(sn_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(st_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(se_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(real_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(spec_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA27_: ;
		}
LA18_: ;
		eqcopy___ast_u3255(&st_1, (*spec_1)._kind_6.sons.p->data[((NI)3)]);
		if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
		{
			NIM_BOOL T31_;
			NIM_BOOL res_2;
			T31_ = (NIM_BOOL)0;
			T31_ = !((st_1 == 0));
			if (!(T31_)) goto LA32_;
			T31_ = !(((*st_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152)));
LA32_: ;
			if (!T31_) goto LA33_;
			{
				NI T37_;
				T37_ = (NI)0;
				T37_ = len__ast_u3190(real_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
				if (!(T37_ == ((NI)0))) goto LA38_;
				result = ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)4);
				eqdestroy___ast_u3252(sn_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(st_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(se_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(real_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(spec_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA38_: ;
			res_2 = compatibleEffectsAux__types_u3522(st_1, (*real_1)._kind_6.sons.p->data[((NI)3)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
			{
				if (!!(res_2)) goto LA42_;
				result = ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)3);
				eqdestroy___ast_u3252(sn_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(st_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(se_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(real_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(spec_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA42_: ;
		}
LA33_: ;
		eqcopy___ast_u3255(&sn_1, (*spec_1)._kind_6.sons.p->data[((NI)5)]);
		if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
		{
			NIM_BOOL T46_;
			T46_ = (NIM_BOOL)0;
			T46_ = !((sn_1 == 0));
			if (!(T46_)) goto LA47_;
			T46_ = !(((*sn_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152)));
LA47_: ;
			if (!T46_) goto LA48_;
			{
				NI T52_;
				T52_ = (NI)0;
				T52_ = len__ast_u3190(real_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
				if (!(((NI)0) == T52_)) goto LA53_;
				result = ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)4);
				eqdestroy___ast_u3252(sn_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(st_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(se_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(real_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(spec_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA50_;
LA53_: ;
			{
				NIM_BOOL T56_;
				T56_ = (NIM_BOOL)0;
				T56_ = hasIncompatibleEffect__types_u3544(sn_1, (*real_1)._kind_6.sons.p->data[((NI)3)]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
				if (!T56_) goto LA57_;
				result = ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)6);
				eqdestroy___ast_u3252(sn_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(st_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(se_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(real_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(spec_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA50_;
LA57_: ;
LA50_: ;
		}
LA48_: ;
		{
			LA13_:;
		}
		{
			oldNimErrFin13_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(sn_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3252(st_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3252(se_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3252(real_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin13_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA11_: ;
	{
		NI i_1;
		NI colontmp_;
		NI T62_;
		NI T63_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T62_ = (NI)0;
		T62_ = len__ast_u3190((*formal_p0).n);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T63_ = (NI)0;
		T63_ = len__ast_u3190((*actual_p1).n);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		colontmp_ = ((T62_ <= T63_) ? T62_ : T63_);
		i_2 = ((NI)1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA65;
				i_1 = i_2;
				{
					if (!!((((*(*(*(*formal_p0).n)._kind_6.sons.p->data[i_1])._kind_4.sym).flags & IL64(281474976710656)) == ((*(*(*(*actual_p1).n)._kind_6.sons.p->data[i_1])._kind_4.sym).flags & IL64(281474976710656))))) goto LA68_;
					result = ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)5);
					goto LA61;
				}
LA68_: ;
				i_2 += ((NI)1);
			} LA65: ;
		}
	} LA61: ;
	result = ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)0);
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3252(spec_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genericAliasDepth__types_u2153)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NI result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* it_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	it_1 = NIM_NIL;
	result = ((NI)0);
	it_1 = skipTypes__ast_u5379(t_p0, TM__PpBJsMJcrcWrpLTS6mci1g_278);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		while (1) {
			NIM_BOOL T3_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T4_;
			T3_ = (NIM_BOOL)0;
			T3_ = isGenericAlias__types_u2142(it_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T3_) goto LA2;
			colontmpD_ = NIM_NIL;
			colontmpD_ = skipModifier__ast_u5338(it_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T4_ = NIM_NIL;
			T4_ = skipTypes__ast_u5379(colontmpD_, TM__PpBJsMJcrcWrpLTS6mci1g_278);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T4_); goto BeforeRet_;}
			eqsink___ast_u3387(&it_1, T4_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result += ((NI)1);
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA2: ;
	}
	eqdestroy___ast_u3378(it_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyContainer__types_u3751)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	switch ((*t_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = elementType__ast_u5331(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = ((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3));
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = skipModifier__ast_u5338(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = isEmptyContainer__types_u3751(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, getProcHeader__types_u219)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p1, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p2, NIM_BOOL getDeclarationPath_p3) {
	NimStringV2 result;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
	NimStringV2 T2_;
NIM_BOOL oldNimErrFin11_;
NIM_BOOL oldNimErrFin7_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	colontmpD_ = NIM_NIL;
	T2_.len = 0; T2_.p = NIM_NIL;
	colontmpD_ = owner__ast_u6254(sym_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_ = rawNewString((*(*colontmpD_).name).s.len + (*(*sym_p1).name).s.len + 1);
appendString((&T2_), (*(*colontmpD_).name).s);
appendChar((&T2_), 46);
appendString((&T2_), (*(*sym_p1).name).s);
	result = T2_;
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_1;
		if (!((*sym_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) || (*sym_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)13) || (*sym_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)14) || (*sym_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)15) || (*sym_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)16) || (*sym_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17) || (*sym_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18))) goto LA5_;
		n_1 = NIM_NIL;
		nimAddCharV1((&result), 40);
		eqcopy___ast_u3255(&n_1, (*(*sym_p1).typ).n);
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_u3190(n_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			i_2 = ((NI)1);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* p_1;
					if (!(i_2 < colontmp_)) goto LA10;
					p_1 = NIM_NIL;
					i_1 = i_2;
					eqcopy___ast_u3255(&p_1, (*n_1)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
					{
						NimStringV2 colontmpD__2;
						if (!((*p_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3))) goto LA14_;
						colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
						prepareAdd((&result), (*(*(*p_1)._kind_4.sym).name).s.len + 0);
appendString((&result), (*(*(*p_1)._kind_4.sym).name).s);
						prepareAdd((&result), 2);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_306);
						colontmpD__2 = typeToString__types_u54((*(*p_1)._kind_4.sym).typ, prefer_p2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
						prepareAdd((&result), colontmpD__2.len + 0);
appendString((&result), colontmpD__2);
						{
							NI T19_;
							T19_ = (NI)0;
							T19_ = len__ast_u3190(n_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
							if (!!((i_1 == (NI)(T19_ - ((NI)1))))) goto LA20_;
							prepareAdd((&result), 2);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_307);
						}
LA20_: ;
						{
							LA16_:;
						}
						{
							eqdestroy___system_u2691(colontmpD__2);
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
					}
					goto LA12_;
LA14_: ;
					{
						NimStringV2 colontmpD__3;
						tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg T26_;
						colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
						T26_ = 0;
						colontmpD__3 = renderTree__renderer_u59(p_1, T26_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
						prepareAdd((&result), colontmpD__3.len + 0);
appendString((&result), colontmpD__3);
						{
							LA25_:;
						}
						{
							eqdestroy___system_u2691(colontmpD__3);
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
					}
LA12_: ;
					i_2 += ((NI)1);
					{
						LA11_:;
					}
					{
						oldNimErrFin11_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3252(p_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
						*nimErr_ = oldNimErrFin11_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				} LA10: ;
			}
		}
		nimAddCharV1((&result), 41);
		{
			NimStringV2 colontmpD__4;
			NimStringV2 colontmpD__5;
			NimStringV2 T36_;
			if (!!(((*(*n_1)._kind_6.sons.p->data[((NI)0)]).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA33_;
			colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
			colontmpD__5.len = 0; colontmpD__5.p = NIM_NIL;
			T36_.len = 0; T36_.p = NIM_NIL;
			colontmpD__4 = typeToString__types_u54((*(*n_1)._kind_6.sons.p->data[((NI)0)]).typField, prefer_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
			T36_ = rawNewString(colontmpD__4.len + 2);
appendString((&T36_), TM__PpBJsMJcrcWrpLTS6mci1g_308);
appendString((&T36_), colontmpD__4);
			colontmpD__5 = T36_;
			prepareAdd((&result), colontmpD__5.len + 0);
appendString((&result), colontmpD__5);
			{
				LA35_:;
			}
			{
				eqdestroy___system_u2691(colontmpD__5);
				eqdestroy___system_u2691(colontmpD__4);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		}
LA33_: ;
		{
			LA7_:;
		}
		{
			oldNimErrFin7_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(n_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin7_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA5_: ;
	{
		if (!getDeclarationPath_p3) goto LA43_;
		addDeclaredLoc__astmsgs_u16((&result), conf_p0, sym_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA43_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u4574(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsUnresolvedTypeIter__types_u3465)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, RootObj* closure_p1) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin7_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		if (!(((*t_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0)) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
LA3_: ;
	switch ((*t_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	{
		result = ((*t_p0).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		colontmpD_ = NIM_NIL;
		colontmpD__2 = NIM_NIL;
		{
			colontmpD_ = base__ast_u5351(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			if (!((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0))) goto LA10_;
			result = NIM_TRUE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA10_: ;
		{
			NIM_BOOL T14_;
			colontmpD__2 = base__ast_u5351(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			T14_ = (NIM_BOOL)0;
			T14_ = containsUnresolvedTypeIter__types_u3465(colontmpD__2, closure_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			if (!T14_) goto LA15_;
			result = NIM_TRUE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA15_: ;
		result = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA7_:;
		}
		{
			oldNimErrFin7_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin7_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59):
	{
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsUnresolvedType__types_u3481)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	result = iterOverType__types_u76(t_p0, containsUnresolvedTypeIter__types_u3465, ((RootObj*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNil__types_u1851)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ flags_p2) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		if (!(a_p0 == b_p1)) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
LA3_: ;
	{
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = (a_p0 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (T8_) goto LA9_;
			T8_ = (b_p1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA9_: ;
			if (!T8_) goto LA10_;
			result = NIM_FALSE;
		}
		goto LA6_;
LA10_: ;
		{
			result = sameType__types_u1826(a_p0, b_p1, flags_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA6_: ;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__types_u1495)(tyObject_HSlice__6GiwMwOD9b9cke69bnAPbb5Ew s_p0, NF value_p1) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = (s_p0.a <= value_p1);
	if (!(T1_)) goto LA2_;
	T1_ = (value_p1 <= s_p0.b);
LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(tyObject_HSlice__6GiwMwOD9b9cke69bnAPbb5Ew, dotdot___types_u1438)(NF a_p0, NF b_p1) {
	tyObject_HSlice__6GiwMwOD9b9cke69bnAPbb5Ew result;
	result.a = a_p0;
	result.b = b_p1;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, floatRangeCheck__types_u1434)(NF x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1) {
	NIM_BOOL result;
	NIM_BOOL T1_;
NIM_BOOL oldNimErrFin8_;
NIM_BOOL oldNimErrFin12_;
NIM_BOOL oldNimErrFin16_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	switch ((*t_p1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)39):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
	{
		NF T4_;
		NF T5_;
		tyObject_HSlice__6GiwMwOD9b9cke69bnAPbb5Ew T6_;
		T4_ = (NF)0;
		T4_ = firstFloat__types_u1274(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T5_ = (NF)0;
		T5_ = lastFloat__types_u1414(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = dotdot___types_u1438(T4_, T5_);
		result = contains__types_u1495(T6_, x_p0);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = elementType__ast_u5331(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		result = floatRangeCheck__types_u1434(x_p0, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		{
			LA8_:;
		}
		{
			oldNimErrFin8_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin8_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = skipModifier__ast_u5338(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
		result = floatRangeCheck__types_u1434(x_p0, colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
		{
			LA12_:;
		}
		{
			oldNimErrFin12_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin12_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		colontmpD__3 = NIM_NIL;
		colontmpD__3 = last__ast_u5278(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
		result = floatRangeCheck__types_u1434(x_p0, colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
		{
			LA16_:;
		}
		{
			oldNimErrFin16_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin16_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* colontmpD__4;
		NimStringV2 colontmpD__5;
		NimStringV2 colontmpD__6;
		NimStringV2 T21_;
		colontmpD__4 = NIM_NIL;
		colontmpD__5.len = 0; colontmpD__5.p = NIM_NIL;
		colontmpD__6.len = 0; colontmpD__6.p = NIM_NIL;
		colontmpD__4 = newPartialConfigRef__options_u2157();
		if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
		T21_.len = 0; T21_.p = NIM_NIL;
		colontmpD__5 = dollar___ast_u182((*t_p1).kind);
		T21_ = rawNewString(colontmpD__5.len + 33);
appendString((&T21_), TM__PpBJsMJcrcWrpLTS6mci1g_310);
appendString((&T21_), colontmpD__5);
		colontmpD__6 = T21_;
		internalErrorImpl__msgs_u1598(colontmpD__4, unknownLineInfo__lineinfos_u364, colontmpD__6, (&TM__PpBJsMJcrcWrpLTS6mci1g_311));
		if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
		result = NIM_FALSE;
		{
			LA20_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__6);
			eqdestroy___system_u2691(colontmpD__5);
			eqdestroy___options_u2135(colontmpD__4);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addPragmaAndCallConvMismatch__types_u3909)(NimStringV2* message_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p2, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p3) {
	NimStringV2 gotPragmas_1;
	NimStringV2 expectedPragmas_1;
	tyTuple__7xZyzV9bi4zRvtJda9aONodA tmpTuple_1;
	tySet_tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ convMismatch_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	gotPragmas_1.len = 0; gotPragmas_1.p = NIM_NIL;
	expectedPragmas_1.len = 0; expectedPragmas_1.p = NIM_NIL;
	tmpTuple_1 = getProcConvMismatch__types_u3811(conf_p3, formal_p1, actual_p2, ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	convMismatch_1 = tmpTuple_1.Field0;
	gotPragmas_1 = TM__PpBJsMJcrcWrpLTS6mci1g_327;
	expectedPragmas_1 = TM__PpBJsMJcrcWrpLTS6mci1g_328;
	{
		tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ reason_1;
		NI i_1;
		reason_1 = (tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ)0;
		i_1 = ((NI)0);
		{
			while (1) {
				if (!(i_1 <= ((NI)3))) goto LA4;
				{
					if (!((convMismatch_1 &((NU8)1<<((NU)((((tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ) (i_1))))&7U)))!=0)) goto LA7_;
					reason_1 = ((tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ) (i_1));
					switch (reason_1) {
					case ((tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ)3):
					{
						NimStringV2 colontmpD_;
						NimStringV2 colontmpD__2;
						NimStringV2 colontmpD__3;
						tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ T11_;
						colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
						colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
						colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
						colontmpD_ = dollar___ast_u26((*actual_p2).callConv);
						T11_[0] = colontmpD_;
						colontmpD__2 = dollar___ast_u26((*formal_p1).callConv);
						T11_[1] = colontmpD__2;
						colontmpD__3 = nsuFormatOpenArray(TM__PpBJsMJcrcWrpLTS6mci1g_330, T11_, 2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
						prepareAdd((&(*message_p0)), colontmpD__3.len + 0);
appendString((&(*message_p0)), colontmpD__3);
						{
							LA10_:;
						}
						{
							eqdestroy___system_u2691(colontmpD__3);
							eqdestroy___system_u2691(colontmpD__2);
							eqdestroy___system_u2691(colontmpD_);
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
					break;
					case ((tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ)0):
					{
						prepareAdd((&expectedPragmas_1), 14);
appendString((&expectedPragmas_1), TM__PpBJsMJcrcWrpLTS6mci1g_332);
					}
					break;
					case ((tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ)1):
					{
						prepareAdd((&expectedPragmas_1), 8);
appendString((&expectedPragmas_1), TM__PpBJsMJcrcWrpLTS6mci1g_334);
					}
					break;
					case ((tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ)2):
					{
					}
					break;
					default: __builtin_unreachable();
					}
				}
LA7_: ;
				i_1 += ((NI)1);
			} LA4: ;
		}
	}
	{
		NimStringV2 colontmpD__4;
		tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ T22_;
		if (!(((NI)0) < expectedPragmas_1.len)) goto LA19_;
		colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
		setLengthStrV2((&gotPragmas_1), (((((NI)0) >= (NI)(gotPragmas_1.len - ((NI)2))) ? ((NI)0) : (NI)(gotPragmas_1.len - ((NI)2)))));
		setLengthStrV2((&expectedPragmas_1), (((((NI)0) >= (NI)(expectedPragmas_1.len - ((NI)2))) ? ((NI)0) : (NI)(expectedPragmas_1.len - ((NI)2)))));
		T22_[0] = gotPragmas_1;
		T22_[1] = expectedPragmas_1;
		colontmpD__4 = nsuFormatOpenArray(TM__PpBJsMJcrcWrpLTS6mci1g_336, T22_, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
		prepareAdd((&(*message_p0)), colontmpD__4.len + 0);
appendString((&(*message_p0)), colontmpD__4);
		{
			LA21_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__4);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA19_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(expectedPragmas_1);
		eqdestroy___system_u2691(gotPragmas_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, processPragmaAndCallConvMismatch__types_u4017)(NimStringV2* msg_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p2, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p3) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*formal_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25));
		if (!(T3_)) goto LA4_;
		T3_ = ((*actual_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25));
LA4_: ;
		if (!T3_) goto LA5_;
		addPragmaAndCallConvMismatch__types_u3909(msg_p0, formal_p1, actual_p2, conf_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_ = (tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)0;
		T7_ = compatibleEffects__types_u3568(formal_p1, actual_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		switch (T7_) {
		case ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)0):
		{
		}
		break;
		case ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)1):
		{
			prepareAdd((&(*msg_p0)), 22);
appendString((&(*msg_p0)), TM__PpBJsMJcrcWrpLTS6mci1g_338);
		}
		break;
		case ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)2):
		{
			prepareAdd((&(*msg_p0)), 33);
appendString((&(*msg_p0)), TM__PpBJsMJcrcWrpLTS6mci1g_340);
		}
		break;
		case ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)3):
		{
			prepareAdd((&(*msg_p0)), 20);
appendString((&(*msg_p0)), TM__PpBJsMJcrcWrpLTS6mci1g_342);
		}
		break;
		case ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)4):
		{
			prepareAdd((&(*msg_p0)), 33);
appendString((&(*msg_p0)), TM__PpBJsMJcrcWrpLTS6mci1g_344);
		}
		break;
		case ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)5):
		{
			prepareAdd((&(*msg_p0)), 30);
appendString((&(*msg_p0)), TM__PpBJsMJcrcWrpLTS6mci1g_346);
		}
		break;
		case ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)6):
		{
			prepareAdd((&(*msg_p0)), 34);
appendString((&(*msg_p0)), TM__PpBJsMJcrcWrpLTS6mci1g_348);
		}
		break;
		default: __builtin_unreachable();
		}
	}
LA5_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, typeMismatch__types_u4034)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p3, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p4) {
NIM_BOOL oldNimErrFin7_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		NimStringV2 actualStr_1;
		NimStringV2 formalStr_1;
		NimStringV2 desc_1;
		NimStringV2 x_1;
		NimStringV2 msg_1;
		NimStringV2 colontmpD_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_1;
		NimStringV2 T8_;
		NIM_BOOL verbose_1;
		NIM_BOOL T15_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*formal_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50)));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*actual_p3).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50)));
LA4_: ;
		if (!T3_) goto LA5_;
		actualStr_1.len = 0; actualStr_1.p = NIM_NIL;
		formalStr_1.len = 0; formalStr_1.p = NIM_NIL;
		desc_1.len = 0; desc_1.p = NIM_NIL;
		x_1.len = 0; x_1.p = NIM_NIL;
		msg_1.len = 0; msg_1.p = NIM_NIL;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		a_1 = NIM_NIL;
		b_1 = NIM_NIL;
		actualStr_1 = typeToString__types_u54(actual_p3, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		formalStr_1 = typeToString__types_u54(formal_p2, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		desc_1 = typeToString__types_u54(formal_p2, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		T8_.len = 0; T8_.p = NIM_NIL;
		{
			if (!eqStrings(formalStr_1, desc_1)) goto LA11_;
			eqcopy___system_u2694((&x_1), formalStr_1);
		}
		goto LA9_;
LA11_: ;
		{
			NimStringV2 T14_;
			T14_.len = 0; T14_.p = NIM_NIL;
			T14_ = rawNewString(formalStr_1.len + desc_1.len + 3);
appendString((&T14_), formalStr_1);
appendString((&T14_), TM__PpBJsMJcrcWrpLTS6mci1g_313);
appendString((&T14_), desc_1);
			x_1 = T14_;
		}
LA9_: ;
		T15_ = (NIM_BOOL)0;
		T15_ = eqStrings(actualStr_1, formalStr_1);
		if (T15_) goto LA16_;
		T15_ = (((*conf_p0).globalOptions &((NU64)1<<((NU)((((tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A)41)))&63U)))!=0);
LA16_: ;
		verbose_1 = T15_;
		msg_1 = TM__PpBJsMJcrcWrpLTS6mci1g_315;
		{
			if (!verbose_1) goto LA19_;
			prepareAdd((&msg_1), 1);
appendString((&msg_1), TM__PpBJsMJcrcWrpLTS6mci1g_317);
		}
LA19_: ;
		{
			NIM_BOOL T23_;
			NimStringV2 colontmpD__2;
			T23_ = (NIM_BOOL)0;
			T23_ = isDefined__options_u959(conf_p0, TM__PpBJsMJcrcWrpLTS6mci1g_319);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			if (!T23_) goto LA24_;
			colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
			colontmpD__2 = nsuFormatSingleElem(TM__PpBJsMJcrcWrpLTS6mci1g_321, actualStr_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
			prepareAdd((&msg_1), colontmpD__2.len + 0);
appendString((&msg_1), colontmpD__2);
			{
				LA26_:;
			}
			{
				eqdestroy___system_u2691(colontmpD__2);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		}
		goto LA21_;
LA24_: ;
		{
			NimStringV2 colontmpD__3;
			NimStringV2 colontmpD__4;
			tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ T31_;
			tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg T32_;
			colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
			colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
			T31_[0] = actualStr_1;
			T32_ = 0;
			colontmpD__3 = renderTree__renderer_u59(n_p4, T32_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
			T31_[1] = colontmpD__3;
			colontmpD__4 = nsuFormatOpenArray(TM__PpBJsMJcrcWrpLTS6mci1g_323, T31_, 2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
			prepareAdd((&msg_1), colontmpD__4.len + 0);
appendString((&msg_1), colontmpD__4);
			{
				LA30_:;
			}
			{
				eqdestroy___system_u2691(colontmpD__4);
				eqdestroy___system_u2691(colontmpD__3);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		}
LA21_: ;
		{
			if (!verbose_1) goto LA37_;
			addDeclaredLoc__astmsgs_u32((&msg_1), conf_p0, actual_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			prepareAdd((&msg_1), 1);
appendString((&msg_1), TM__PpBJsMJcrcWrpLTS6mci1g_324);
		}
LA37_: ;
		colontmpD_ = nsuFormatSingleElem(TM__PpBJsMJcrcWrpLTS6mci1g_326, x_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		prepareAdd((&msg_1), colontmpD_.len + 0);
appendString((&msg_1), colontmpD_);
		{
			if (!verbose_1) goto LA41_;
			addDeclaredLoc__astmsgs_u32((&msg_1), conf_p0, formal_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		}
LA41_: ;
		eqcopy___ast_u3381(&a_1, formal_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		eqcopy___ast_u3381(&b_1, actual_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		{
			NIM_BOOL T45_;
			T45_ = (NIM_BOOL)0;
			T45_ = ((*formal_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16));
			if (!(T45_)) goto LA46_;
			T45_ = ((*actual_p3).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16));
LA46_: ;
			if (!T45_) goto LA47_;
			eqcopy___ast_u3381(&a_1, (*formal_p2).sons.p->data[((NI)1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			eqcopy___ast_u3381(&b_1, (*actual_p3).sons.p->data[((NI)1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			processPragmaAndCallConvMismatch__types_u4017((&msg_1), a_1, b_1, conf_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		}
		goto LA43_;
LA47_: ;
		{
			NIM_BOOL T50_;
			T50_ = (NIM_BOOL)0;
			T50_ = ((*formal_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24));
			if (!(T50_)) goto LA51_;
			T50_ = ((*actual_p3).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24));
LA51_: ;
			if (!T50_) goto LA52_;
			eqcopy___ast_u3381(&a_1, (*formal_p2).sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			eqcopy___ast_u3381(&b_1, (*actual_p3).sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			processPragmaAndCallConvMismatch__types_u4017((&msg_1), a_1, b_1, conf_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		}
		goto LA43_;
LA52_: ;
		{
			processPragmaAndCallConvMismatch__types_u4017((&msg_1), a_1, b_1, conf_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		}
LA43_: ;
		liMessage__msgs_u1227(conf_p0, info_p1, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), msg_1, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__PpBJsMJcrcWrpLTS6mci1g_349), NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		{
			LA7_:;
		}
		{
			oldNimErrFin7_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(b_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___system_u2691(colontmpD_);
			eqdestroy___system_u2691(msg_1);
			eqdestroy___system_u2691(x_1);
			eqdestroy___system_u2691(desc_1);
			eqdestroy___system_u2691(formalStr_1);
			eqdestroy___system_u2691(actualStr_1);
			*nimErr_ = oldNimErrFin7_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA5_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g, classify__types_u3703)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!(t_p0 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA3_;
		result = ((tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g)0);
	}
	goto LA1_;
LA3_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = skipTypes__ast_u5379(t_p0, TM__PpBJsMJcrcWrpLTS6mci1g_350);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		switch ((*colontmpD_).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)39):
		{
			result = ((tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g)2);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35):
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44):
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)1):
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2):
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14):
		{
			result = ((tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g)1);
		}
		break;
		default:
		{
			result = ((tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g)0);
		}
		break;
		}
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, skipConv__types_u3729)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3255(&result, n_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch ((*n_p0).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)67):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)66):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)70):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)68):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)69):
	{
		{
			tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g T4_;
			tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g T5_;
			T4_ = (tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g)0;
			T4_ = classify__types_u3703((*(*n_p0)._kind_6.sons.p->data[((NI)0)]).typField);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T5_ = (tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g)0;
			T5_ = classify__types_u3703((*n_p0).typField);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T4_ == T5_)) goto LA6_;
			eqcopy___ast_u3255(&result, (*n_p0)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA6_: ;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)60):
	{
		{
			tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g T11_;
			tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g T12_;
			T11_ = (tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g)0;
			T11_ = classify__types_u3703((*(*n_p0)._kind_6.sons.p->data[((NI)1)]).typField);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T12_ = (tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g)0;
			T12_ = classify__types_u3703((*n_p0).typField);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T11_ == T12_)) goto LA13_;
			eqcopy___ast_u3255(&result, (*n_p0)._kind_6.sons.p->data[((NI)1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA13_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, typeNameAndDesc__types_u4030)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NimStringV2 result;
	NimStringV2 desc_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	desc_1.len = 0; desc_1.p = NIM_NIL;
	result = typeToString__types_u54(t_p0, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	desc_1 = typeToString__types_u54(t_p0, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!!(eqStrings(result, desc_1))) goto LA4_;
		prepareAdd((&result), 3);
appendString((&result), TM__PpBJsMJcrcWrpLTS6mci1g_351);
		prepareAdd((&result), desc_1.len + 0);
appendString((&result), desc_1);
	}
LA4_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(desc_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, takeType__types_u3758)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* arg_p1, tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p2, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p3) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL oldNimErrFin10_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		if (!((*arg_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5))) goto LA3_;
		eqcopy___ast_u3381(&result, formal_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA3_: ;
	{
		NIM_BOOL T6_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__2;
		T6_ = (NIM_BOOL)0;
		T6_ = ((*formal_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27) || (*formal_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48) || (*formal_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24));
		if (!(T6_)) goto LA7_;
		T6_ = isEmptyContainer__types_u3751(arg_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA7_: ;
		if (!T6_) goto LA8_;
		a_1 = NIM_NIL;
		colontmpD_ = NIM_NIL;
		colontmpD__2 = NIM_NIL;
		colontmpD_ = skipTypes__ast_u5379(arg_p1, TM__PpBJsMJcrcWrpLTS6mci1g_352);
		if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
		colontmpD__2 = owner__ast_u6246(arg_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
		a_1 = copyType__ast_u6238(colontmpD_, idgen_p3, colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
		copyTypeProps__modulegraphs_u10674(g_p2, ((NI) ((*idgen_p3).module)), a_1, arg_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
		eqcopy___ast_u3381(&(*a_1).sons.p->data[((*arg_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16))], (*formal_p0).sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
		result = a_1;
		eqwasMoved___ast_u3375(&a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
		{
			LA10_:;
		}
		{
			oldNimErrFin10_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u4574(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin10_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA8_: ;
	{
		NIM_BOOL T14_;
		T14_ = (NIM_BOOL)0;
		T14_ = ((*formal_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18) || (*formal_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19));
		if (!(T14_)) goto LA15_;
		T14_ = ((*arg_p1).kind == (*formal_p0).kind);
LA15_: ;
		if (!T14_) goto LA16_;
		eqcopy___ast_u3381(&result, formal_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA16_: ;
	{
		eqcopy___ast_u3381(&result, arg_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, skipHiddenSubConv__types_u3791)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p1, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p2) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL oldNimErrFin5_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* arg_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_1;
		if (!((*n_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59))) goto LA3_;
		formal_1 = NIM_NIL;
		arg_1 = NIM_NIL;
		dest_1 = NIM_NIL;
		eqcopy___ast_u3381(&formal_1, (*n_p0).typField);
		if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		eqcopy___ast_u3255(&result, (*n_p0)._kind_6.sons.p->data[((NI)1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		eqcopy___ast_u3381(&arg_1, (*result).typField);
		if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		dest_1 = takeType__types_u3758(formal_1, arg_1, g_p1, idgen_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = (dest_1 == arg_1);
			if (!(T8_)) goto LA9_;
			T8_ = !(((*formal_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6)));
LA9_: ;
			if (!T8_) goto LA10_;
			eqcopy___ast_u3255(&result, n_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		}
		goto LA6_;
LA10_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T13_;
			T13_ = NIM_NIL;
			T13_ = copyTree__ast_u6891(result);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T13_); goto LA5_;}
			eqsink___ast_u3261(&result, T13_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
			eqsink___ast_u3387(&(*result).typField, dest_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
			eqwasMoved___ast_u3375(&dest_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		}
LA6_: ;
		{
			LA5_:;
		}
		{
			oldNimErrFin5_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(dest_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(formal_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin5_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA3_: ;
	{
		eqcopy___ast_u3255(&result, n_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRecursiveStructuralType__types_u4076)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* cycleDetector_p1) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin13_;
NIM_BOOL oldNimErrFin11_;
NIM_BOOL oldNimErrFin33_;
NIM_BOOL oldNimErrFin42_;
NIM_BOOL oldNimErrFin28_;
NIM_BOOL oldNimErrFin57_;
NIM_BOOL oldNimErrFin61_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		if (!(t_p0 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
LA3_: ;
	{
		tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym556__1;
		NIM_BOOL T7_;
		xX60gensym556__1 = (*t_p0).itemId;
		T7_ = (NIM_BOOL)0;
		T7_ = containsOrIncl__astyaml_u223(cycleDetector_p1, (NI)((NI)((NU64)(((NI) (xX60gensym556__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym556__1.item))));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T7_) goto LA8_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
LA8_: ;
	switch ((*t_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
	{
		tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA cycleDetectorCopy_1;
		nimZeroMem((void*)(&cycleDetectorCopy_1), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
		result = NIM_FALSE;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
			a_1 = NIM_NIL;
			{
				NI i_1;
				NI colontmp_;
				NI T15_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				T15_ = (*t_p0).sons.len;
				colontmp_ = T15_;
				i_2 = ((NI)0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA17;
						i_1 = i_2;
						eqcopy___ast_u3381(&a_1, (*t_p0).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
						eqcopy___pureZcollectionsZintsets_u250((&cycleDetectorCopy_1), (&(*cycleDetector_p1)));
						if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
						{
							NIM_BOOL T20_;
							T20_ = (NIM_BOOL)0;
							T20_ = isRecursiveStructuralType__types_u4076(a_1, (&cycleDetectorCopy_1));
							if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
							if (!T20_) goto LA21_;
							result = NIM_TRUE;
							eqdestroy___ast_u3378(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
							eqdestroy___pureZcollectionsZintsets_u230((&cycleDetectorCopy_1));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA21_: ;
						i_2 += ((NI)1);
					} LA17: ;
				}
			}
			{
				LA13_:;
			}
			{
				oldNimErrFin13_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				*nimErr_ = oldNimErrFin13_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		}
		{
			LA11_:;
		}
		{
			oldNimErrFin11_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___pureZcollectionsZintsets_u230((&cycleDetectorCopy_1));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin11_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
	{
		tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA cycleDetectorCopy_2;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		nimZeroMem((void*)(&cycleDetectorCopy_2), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
		colontmpD_ = NIM_NIL;
		result = NIM_FALSE;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
			colontmpD_ = returnType__ast_u5354(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			if (!!((colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA31_;
			colontmpD__2 = NIM_NIL;
			eqcopy___pureZcollectionsZintsets_u250((&cycleDetectorCopy_2), (&(*cycleDetector_p1)));
			if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
			{
				NIM_BOOL T36_;
				colontmpD__2 = returnType__ast_u5354(t_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
				T36_ = (NIM_BOOL)0;
				T36_ = isRecursiveStructuralType__types_u4076(colontmpD__2, (&cycleDetectorCopy_2));
				if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
				if (!T36_) goto LA37_;
				result = NIM_TRUE;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___pureZcollectionsZintsets_u230((&cycleDetectorCopy_2));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA37_: ;
			{
				LA33_:;
			}
			{
				oldNimErrFin33_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
				*nimErr_ = oldNimErrFin33_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
		}
LA31_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_2;
			NI __1;
			a_2 = NIM_NIL;
			__1 = (NI)0;
			{
				NI i_3;
				NI colontmp__2;
				NI T44_;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				T44_ = (*t_p0).sons.len;
				colontmp__2 = T44_;
				i_4 = ((NI)1);
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA46;
						i_3 = i_4;
						__1 = i_3;
						eqcopy___ast_u3381(&a_2, (*t_p0).sons.p->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
						eqcopy___pureZcollectionsZintsets_u250((&cycleDetectorCopy_2), (&(*cycleDetector_p1)));
						if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
						{
							NIM_BOOL T49_;
							T49_ = (NIM_BOOL)0;
							T49_ = isRecursiveStructuralType__types_u4076(a_2, (&cycleDetectorCopy_2));
							if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
							if (!T49_) goto LA50_;
							result = NIM_TRUE;
							eqdestroy___ast_u3378(a_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___pureZcollectionsZintsets_u230((&cycleDetectorCopy_2));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA50_: ;
						i_4 += ((NI)1);
					} LA46: ;
				}
			}
			{
				LA42_:;
			}
			{
				oldNimErrFin42_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(a_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
				*nimErr_ = oldNimErrFin42_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
		}
		{
			LA28_:;
		}
		{
			oldNimErrFin28_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___pureZcollectionsZintsets_u230((&cycleDetectorCopy_2));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin28_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		colontmpD__3 = NIM_NIL;
		colontmpD__3 = elementType__ast_u5331(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA57_;
		result = isRecursiveStructuralType__types_u4076(colontmpD__3, cycleDetector_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA57_;
		eqdestroy___ast_u3378(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA57_:;
		}
		{
			oldNimErrFin57_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin57_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
		colontmpD__4 = NIM_NIL;
		colontmpD__4 = skipModifier__ast_u5338(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA61_;
		result = isRecursiveStructuralType__types_u4076(colontmpD__4, cycleDetector_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA61_;
		eqdestroy___ast_u3378(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA61_:;
		}
		{
			oldNimErrFin61_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin61_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRecursiveStructuralType__types_u4110)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA cycleDetector_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&cycleDetector_1), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	initIntSet__pureZcollectionsZintsets_u598((&cycleDetector_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = isRecursiveStructuralType__types_u4076(t_p0, (&cycleDetector_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___pureZcollectionsZintsets_u230((&cycleDetector_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setImportedTypeSize__types_u3415)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, NI size_p2) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	(*t_p1).size = ((NI64) (size_p2));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*t_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)23)))&63U)))!=0);
		if (T3_) goto LA4_;
		T3_ = (size_p2 <= ((NI)1));
LA4_: ;
		if (!T3_) goto LA5_;
		(*t_p1).align = ((NI16)1);
	}
	goto LA1_;
LA5_: ;
	{
		if (!(size_p2 <= ((NI)2))) goto LA8_;
		(*t_p1).align = ((NI16)2);
	}
	goto LA1_;
LA8_: ;
	{
		if (!(size_p2 <= ((NI)4))) goto LA11_;
		(*t_p1).align = ((NI16)4);
	}
	goto LA1_;
LA11_: ;
	{
		NI16 T14_;
		T14_ = (NI16)0;
		T14_ = floatInt64Align__options_u4319(conf_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*t_p1).align = T14_;
	}
LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameBackendType__types_u637)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_p1) {
	NIM_BOOL result;
	tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ c_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&c_1), sizeof(tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ));
	initSameTypeClosure__types_u1545((&c_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	c_1.flags |= ((NU16)1)<<(((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)0))) & 15);
	c_1.cmp = ((tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw)1);
	result = sameTypeAux__types_u1805(x_p0, y_p1, (&c_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		eqdestroy___types_u1550((&c_1));
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycleNode__types_u611)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* orig_p3, NIM_BOOL withRef_p4, NIM_BOOL hasTrace_p5) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_FALSE;
	{
		NIM_BOOL hasCursor_1;
		NIM_BOOL T5_;
		if (!!((n_p2 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*n_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
		if (!(T5_)) goto LA6_;
		T5_ = (((*(*n_p2)._kind_4.sym).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)41)))&63U)))!=0);
LA6_: ;
		hasCursor_1 = T5_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = hasTrace_p5;
			if (T9_) goto LA10_;
			T9_ = !(hasCursor_1);
LA10_: ;
			if (!T9_) goto LA11_;
			result = canFormAcycleAux__types_u604(g_p0, marker_p1, (*n_p2).typField, orig_p3, withRef_p4, hasTrace_p5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!(result)) goto LA15_;
				switch ((*n_p2).kind) {
				case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)0) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23):
				{
				}
				break;
				default:
				{
					{
						NI i_1;
						NI colontmp_;
						NI i_2;
						i_1 = (NI)0;
						colontmp_ = (NI)0;
						colontmp_ = len__ast_u3190(n_p2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_2 = ((NI)0);
						{
							while (1) {
								if (!(i_2 < colontmp_)) goto LA21;
								i_1 = i_2;
								result = canFormAcycleNode__types_u611(g_p0, marker_p1, (*n_p2)._kind_6.sons.p->data[i_1], orig_p3, withRef_p4, hasTrace_p5);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								{
									if (!result) goto LA24_;
									goto BeforeRet_;
								}
LA24_: ;
								i_2 += ((NI)1);
							} LA21: ;
						}
					}
				}
				break;
				}
			}
LA15_: ;
		}
LA11_: ;
	}
LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycleAux__types_u604)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* orig_p3, NIM_BOOL withRef_p4, NIM_BOOL hasTrace_p5) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
NIM_BOOL oldNimErrFin31_;
NIM_BOOL oldNimErrFin58_;
NIM_BOOL oldNimErrFin47_;
NIM_BOOL oldNimErrFin87_;
NIM_BOOL oldNimErrFin109_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	t_1 = NIM_NIL;
	result = NIM_FALSE;
	{
		if (!(typ_p2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA4_;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	{
		if (!(((*typ_p2).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)39)))&63U)))!=0)) goto LA8_;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA8_: ;
	t_1 = skipTypes__ast_u5379(typ_p2, TM__PpBJsMJcrcWrpLTS6mci1g_353);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!(((*t_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)39)))&63U)))!=0)) goto LA12_;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA12_: ;
	switch ((*t_1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
	{
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = ((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22));
			if (T17_) goto LA18_;
			T17_ = hasTrace_p5;
LA18_: ;
			if (!T17_) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = withRef_p4;
				if (!(T23_)) goto LA24_;
				T23_ = sameBackendType__types_u637(t_1, orig_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA24_: ;
				if (!T23_) goto LA25_;
				result = NIM_TRUE;
			}
			goto LA21_;
LA25_: ;
			{
				tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym73__1;
				NIM_BOOL T28_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
				NIM_BOOL T32_;
				xX60gensym73__1 = (*t_1).itemId;
				T28_ = (NIM_BOOL)0;
				T28_ = containsOrIncl__astyaml_u223(marker_p1, (NI)((NI)((NU64)(((NI) (xX60gensym73__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym73__1.item))));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!!(T28_)) goto LA29_;
				colontmpD_ = NIM_NIL;
				colontmpD_ = elementType__ast_u5331(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
				T32_ = (NIM_BOOL)0;
				T32_ = withRef_p4;
				if (T32_) goto LA33_;
				T32_ = !(((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49)));
LA33_: ;
				result = canFormAcycleAux__types_u604(g_p0, marker_p1, colontmpD_, orig_p3, T32_, hasTrace_p5);
				if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
				{
					LA31_:;
				}
				{
					oldNimErrFin31_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin31_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			goto LA21_;
LA29_: ;
LA21_: ;
		}
LA19_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
	{
		{
			NIM_BOOL T39_;
			T39_ = (NIM_BOOL)0;
			T39_ = withRef_p4;
			if (!(T39_)) goto LA40_;
			T39_ = sameBackendType__types_u637(t_1, orig_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA40_: ;
			if (!T39_) goto LA41_;
			result = NIM_TRUE;
		}
		goto LA37_;
LA41_: ;
		{
			tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym76__1;
			NIM_BOOL T44_;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* op_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
			NIM_BOOL hasTrace_2;
			xX60gensym76__1 = (*t_1).itemId;
			T44_ = (NIM_BOOL)0;
			T44_ = containsOrIncl__astyaml_u223(marker_p1, (NI)((NI)((NU64)(((NI) (xX60gensym76__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym76__1.item))));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!!(T44_)) goto LA45_;
			op_1 = NIM_NIL;
			colontmpD__2 = NIM_NIL;
			colontmpD__3 = NIM_NIL;
			hasTrace_2 = hasTrace_p5;
			colontmpD__2 = skipTypes__ast_u5379(t_1, TM__PpBJsMJcrcWrpLTS6mci1g_354);
			if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
			op_1 = getAttachedOp__modulegraphs_u4987(g_p0, colontmpD__2, ((tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q)5));
			if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
			{
				NIM_BOOL T50_;
				T50_ = (NIM_BOOL)0;
				T50_ = !((op_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
				if (!(T50_)) goto LA51_;
				T50_ = (((*op_1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)35)))&63U)))!=0);
LA51_: ;
				if (!T50_) goto LA52_;
				hasTrace_2 = NIM_TRUE;
			}
LA52_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
				colontmpD__3 = baseClass__ast_u5348(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
				if (!!((colontmpD__3 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA56_;
				colontmpD__4 = NIM_NIL;
				colontmpD__4 = baseClass__ast_u5348(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA58_;
				result = canFormAcycleAux__types_u604(g_p0, marker_p1, colontmpD__4, orig_p3, withRef_p4, hasTrace_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA58_;
				{
					if (!result) goto LA61_;
					eqdestroy___ast_u3378(colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
					eqdestroy___ast_u3378(colontmpD__3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u4574(op_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(t_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA61_: ;
				{
					LA58_:;
				}
				{
					oldNimErrFin58_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
					*nimErr_ = oldNimErrFin58_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
			}
LA56_: ;
			{
				if (!!(((*t_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA67_;
				result = canFormAcycleNode__types_u611(g_p0, marker_p1, (*t_1).n, orig_p3, withRef_p4, hasTrace_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
			}
LA67_: ;
			{
				LA47_:;
			}
			{
				oldNimErrFin47_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(op_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin47_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA37_;
LA45_: ;
LA37_: ;
		{
			if (!!((((*t_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)2)))&63U)))!=0))) goto LA73_;
			result = NIM_TRUE;
		}
LA73_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
	{
		{
			NIM_BOOL T78_;
			T78_ = (NIM_BOOL)0;
			T78_ = withRef_p4;
			if (!(T78_)) goto LA79_;
			T78_ = sameBackendType__types_u637(t_1, orig_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA79_: ;
			if (!T78_) goto LA80_;
			result = NIM_TRUE;
		}
		goto LA76_;
LA80_: ;
		{
			tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym83__1;
			NIM_BOOL T83_;
			xX60gensym83__1 = (*t_1).itemId;
			T83_ = (NIM_BOOL)0;
			T83_ = containsOrIncl__astyaml_u223(marker_p1, (NI)((NI)((NU64)(((NI) (xX60gensym83__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym83__1.item))));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!!(T83_)) goto LA84_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
				a_1 = NIM_NIL;
				{
					NI i_1;
					NI colontmp_;
					NI T89_;
					NI i_2;
					i_1 = (NI)0;
					colontmp_ = (NI)0;
					T89_ = (*t_1).sons.len;
					colontmp_ = T89_;
					i_2 = ((NI)0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA91;
							i_1 = i_2;
							eqcopy___ast_u3381(&a_1, (*t_1).sons.p->data[i_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA87_;
							result = canFormAcycleAux__types_u604(g_p0, marker_p1, a_1, orig_p3, withRef_p4, hasTrace_p5);
							if (NIM_UNLIKELY(*nimErr_)) goto LA87_;
							{
								if (!result) goto LA94_;
								eqdestroy___ast_u3378(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3378(t_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA94_: ;
							i_2 += ((NI)1);
						} LA91: ;
					}
				}
				{
					LA87_:;
				}
				{
					oldNimErrFin87_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin87_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
		}
		goto LA76_;
LA84_: ;
LA76_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48):
	{
		{
			NIM_BOOL T101_;
			T101_ = (NIM_BOOL)0;
			T101_ = withRef_p4;
			if (!(T101_)) goto LA102_;
			T101_ = sameBackendType__types_u637(t_1, orig_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA102_: ;
			if (!T101_) goto LA103_;
			result = NIM_TRUE;
		}
		goto LA99_;
LA103_: ;
		{
			tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym85__1;
			NIM_BOOL T106_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
			xX60gensym85__1 = (*t_1).itemId;
			T106_ = (NIM_BOOL)0;
			T106_ = containsOrIncl__astyaml_u223(marker_p1, (NI)((NI)((NU64)(((NI) (xX60gensym85__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym85__1.item))));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!!(T106_)) goto LA107_;
			colontmpD__5 = NIM_NIL;
			colontmpD__5 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA109_;
			result = canFormAcycleAux__types_u604(g_p0, marker_p1, colontmpD__5, orig_p3, withRef_p4, hasTrace_p5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA109_;
			{
				LA109_:;
			}
			{
				oldNimErrFin109_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__5);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin109_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA99_;
LA107_: ;
LA99_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
	{
		result = ((*typ_p2).callConv == ((tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ)9));
	}
	break;
	default:
	{
	}
	break;
	}
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycle__types_u784)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1) {
	NIM_BOOL result;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA marker_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&marker_1), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	t_1 = NIM_NIL;
	initIntSet__pureZcollectionsZintsets_u598((&marker_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	t_1 = skipTypes__ast_u5379(typ_p1, TM__PpBJsMJcrcWrpLTS6mci1g_353);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = canFormAcycleAux__types_u604(g_p0, (&marker_1), t_1, t_1, NIM_FALSE, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZcollectionsZintsets_u230((&marker_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**, X5BX5D___ast_u5211)(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_u5208)(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_u5211((((*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_u3255(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeNodeForAux__types_u370)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyProc__iTi2aSteq9cki9bjIjUU2gYg p_p1, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p2) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin18_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_FALSE;
	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_u3190(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 = searchTypeNodeForAux__types_u370((*n_p0)._kind_6.sons.p->data[i_1], p_p1, marker_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!result) goto LA7_;
						goto BeforeRet_;
					}
LA7_: ;
					i_2 += ((NI)1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)139):
	{
		result = searchTypeNodeForAux__types_u370((*n_p0)._kind_6.sons.p->data[((NI)0)], p_p1, marker_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!result) 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_u3190(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_u5208((*n_p0)._kind_6.sons.p->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
						result = searchTypeNodeForAux__types_u370(colontmpD_, p_p1, marker_p2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
						{
							if (!result) goto LA21_;
							eqdestroy___ast_u3252(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA21_: ;
						{
							LA18_:;
						}
						{
							oldNimErrFin18_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(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 = searchTypeForAux__types_u366((*(*n_p0)._kind_4.sym).typ, p_p1, marker_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeForAux__types_u366)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyProc__iTi2aSteq9cki9bjIjUU2gYg predicate_p1, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p2) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin20_;
NIM_BOOL oldNimErrFin15_;
NIM_BOOL oldNimErrFin30_;
NIM_BOOL oldNimErrFin35_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_FALSE;
	{
		if (!(t_p0 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
LA3_: ;
	{
		tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym53__1;
		NIM_BOOL T7_;
		xX60gensym53__1 = (*t_p0).itemId;
		T7_ = (NIM_BOOL)0;
		T7_ = containsOrIncl__astyaml_u223(marker_p2, (NI)((NI)((NU64)(((NI) (xX60gensym53__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym53__1.item))));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T7_) goto LA8_;
		goto BeforeRet_;
	}
LA8_: ;
	result = predicate_p1(t_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!result) goto LA12_;
		goto BeforeRet_;
	}
LA12_: ;
	switch ((*t_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_u5348(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA15_;
			if (!!((colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA18_;
			colontmpD__2 = NIM_NIL;
			colontmpD__3 = NIM_NIL;
			colontmpD__2 = baseClass__ast_u5348(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
			colontmpD__3 = skipTypes__ast_u5379(colontmpD__2, TM__PpBJsMJcrcWrpLTS6mci1g_305);
			if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
			result = searchTypeForAux__types_u366(colontmpD__3, predicate_p1, marker_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
			{
				LA20_:;
			}
			{
				oldNimErrFin20_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA15_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA15_;
				*nimErr_ = oldNimErrFin20_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA15_;
		}
LA18_: ;
		{
			if (!!(result)) goto LA25_;
			result = searchTypeNodeForAux__types_u370((*t_p0).n, predicate_p1, marker_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA15_;
		}
LA25_: ;
		{
			LA15_:;
		}
		{
			oldNimErrFin15_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin15_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	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_u5338(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
		result = searchTypeForAux__types_u366(colontmpD__4, predicate_p1, marker_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
		{
			LA30_:;
		}
		{
			oldNimErrFin30_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin30_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
			a_1 = NIM_NIL;
			{
				NI i_1;
				NI colontmp_;
				NI T37_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				T37_ = (*t_p0).sons.len;
				colontmp_ = T37_;
				i_2 = ((NI)0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA39;
						i_1 = i_2;
						eqcopy___ast_u3381(&a_1, (*t_p0).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
						result = searchTypeForAux__types_u366(a_1, predicate_p1, marker_p2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
						{
							if (!result) goto LA42_;
							eqdestroy___ast_u3378(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA42_: ;
						i_2 += ((NI)1);
					} LA39: ;
				}
			}
			{
				LA35_:;
			}
			{
				oldNimErrFin35_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin35_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeFor__types_u423)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyProc__iTi2aSteq9cki9bjIjUU2gYg predicate_p1) {
	NIM_BOOL result;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA marker_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&marker_1), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	initIntSet__pureZcollectionsZintsets_u598((&marker_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = searchTypeForAux__types_u366(t_p0, predicate_p1, (&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(NIM_BOOL, isGCRef__types_u532)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25));
	if (!(T3_)) goto LA4_;
	T3_ = ((*t_p0).callConv == ((tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ)9));
LA4_: ;
	T1_ = T3_;
LA2_: ;
	result = T1_;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = result;
		if (!(T8_)) goto LA9_;
		T8_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24));
LA9_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA10_;
		T7_ = (((*t_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)31)))&63U)))!=0);
LA10_: ;
		if (!T7_) goto LA11_;
		result = NIM_FALSE;
	}
LA11_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGarbageCollectedRef__types_u555)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	result = searchTypeFor__types_u423(typ_p0, isGCRef__types_u532);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, supportsCopyMem__types_u4315)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_2;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A T5_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	t_2 = NIM_NIL;
	t_2 = skipTypes__ast_u5379(t_p0, TM__PpBJsMJcrcWrpLTS6mci1g_355);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = containsGarbageCollectedRef__types_u555(t_2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_ = !(T3_);
	if (!(T2_)) goto LA4_;
	T5_ = 0;
	T2_ = !(!(((IL64(2147483664) & (*t_2).flags) == T5_)));
LA4_: ;
	result = T2_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(t_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isPureObject__types_u121)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
	NIM_BOOL T7_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	t_1 = NIM_NIL;
	eqcopy___ast_u3381(&t_1, typ_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		while (1) {
			NIM_BOOL T3_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T5_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T6_;
			T3_ = (NIM_BOOL)0;
			T3_ = ((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
			if (!(T3_)) goto LA4_;
			T5_ = NIM_NIL;
			T5_ = baseClass__ast_u5348(t_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T5_); goto BeforeRet_;}
			eqsink___ast_u3387(&colontmpD_, T5_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T3_ = !((colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
LA4_: ;
			if (!T3_) goto LA2;
			colontmpD__2 = NIM_NIL;
			colontmpD__2 = baseClass__ast_u5348(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T6_ = NIM_NIL;
			T6_ = skipTypes__ast_u5379(colontmpD__2, TM__PpBJsMJcrcWrpLTS6mci1g_305);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T6_); goto BeforeRet_;}
			eqsink___ast_u3387(&t_1, T6_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA2: ;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	T7_ = (NIM_BOOL)0;
	T7_ = !(((*t_1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
	if (!(T7_)) goto LA8_;
	T7_ = (((*(*t_1).sym).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)11)))&63U)))!=0);
LA8_: ;
	result = T7_;
	eqdestroy___ast_u3378(t_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFinal__types_u772)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_2;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	t_2 = NIM_NIL;
	t_2 = skipTypes__ast_u5379(t_p0, TM__PpBJsMJcrcWrpLTS6mci1g_283);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !(((*t_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17)));
	if (T2_) goto LA3_;
	T2_ = (((*t_2).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)2)))&63U)))!=0);
LA3_: ;
	T1_ = T2_;
	if (T1_) goto LA4_;
	T1_ = isPureObject__types_u121(t_2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA4_: ;
	result = T1_;
	eqdestroy___ast_u3378(t_2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, align__types_u2981)(NI64 address_p0, NI64 alignment_p1) {
	NI64 result;
	result = (NI64)((NI64)(address_p0 + (NI64)(alignment_p1 - IL64(1))) & (NI64)((NU64) ~((NI64)(alignment_p1 - IL64(1)))));
	return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p_p0) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
		cell_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T5_));
		{
			if (!((NI)((*cell_1).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc = minuspercent___system_u805((*cell_1).rc, ((NI)16));
		}
LA6_: ;
		rememberCycle__system_u3492(result, cell_1, (*((TNimTypeV2**) (p_p0))));
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___types_u2999)(tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicDyn((*dest_p0).Sup.Sup.Sup.up);
		if (!T3_) goto LA4_;
		nimDestroyAndDispose((*dest_p0).Sup.Sup.Sup.up);
	}
LA4_: ;
	eqdestroy___system_u3694((*dest_p0).Sup.Sup.Sup.trace);
	eqdestroy___system_u2691((*dest_p0).Sup.Sup.Sup.message);
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = nimDecRefIsLastCyclicDyn((*dest_p0).Sup.Sup.Sup.parent);
		if (!T8_) goto LA9_;
		nimDestroyAndDispose((*dest_p0).Sup.Sup.Sup.parent);
	}
LA9_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__types_u5058)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	eqdestroy___types_u2999((&(*((tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g*) (dest_p0)))));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NI, pluspercent___system_u785)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU64)(((NU) (x_p0))) + (NU64)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(void, add__system_u3013)(tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg* s_p0, void** c_p1, TNimTypeV2* t_p2) {
	void** colontmp_;
	TNimTypeV2* colontmp__2;
	{
		if (!((*s_p0).cap <= (*s_p0).len)) goto LA3_;
		resize__system_u3021(s_p0);
	}
LA3_: ;
	colontmp_ = c_p1;
	colontmp__2 = t_p2;
	(*s_p0).d[(*s_p0).len].Field0 = colontmp_;
	(*s_p0).d[(*s_p0).len].Field1 = colontmp__2;
	(*s_p0).len = pluspercent___system_u785((*s_p0).len, ((NI)1));
}
static N_INLINE(void, nimTraceRefDyn)(void* q_p0, void* env_p1) {
	void** p_1;
	p_1 = ((void**) (q_p0));
	{
		tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w* j_1;
		if (!!(((*p_1) == NIM_NIL))) goto LA3_;
		j_1 = ((tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w*) (env_p1));
		add__system_u3013((&(*j_1).traceStack), p_1, (*((TNimTypeV2**) ((*p_1)))));
	}
LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___types_u3011)(tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g* dest_p0, void* env_p1) {
	nimTraceRefDyn(&(*dest_p0).Sup.Sup.Sup.parent, env_p1);
	nimTraceRefDyn(&(*dest_p0).Sup.Sup.Sup.up, env_p1);
}
N_LIB_PRIVATE N_NIMCALL(void, raiseIllegalTypeRecursion__types_u2994)(void) {
	tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g* T1_;
{	T1_ = NIM_NIL;
	T1_ = (tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g*) nimNewObj(sizeof(tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g), NIM_ALIGNOF(tyObject_IllegalTypeRecursionError__79aknCeBcRoLPl9bLAa9amr5g));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIv2__79aknCeBcRoLPl9bLAa9amr5g_);
	(*T1_).Sup.Sup.Sup.name = "IllegalTypeRecursionError";
	(*T1_).Sup.Sup.Sup.message = TM__PpBJsMJcrcWrpLTS6mci1g_358;
	(*T1_).Sup.Sup.Sup.parent = ((Exception*) NIM_NIL);
	raiseExceptionEx((Exception*)T1_, "IllegalTypeRecursionError", "raiseIllegalTypeRecursion", "sizealignoffsetimpl.nim", 29);
goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI32, align__types_u2985)(NI32 address_p0, NI32 alignment_p1) {
	NI32 result;
	result = (NI32)((NI32)(address_p0 + (NI32)(alignment_p1 - ((NI32)1))) & (NI32)((NU32) ~((NI32)(alignment_p1 - ((NI32)1)))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, align__types_u3071)(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw* arg_p0, NI32 value_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = NIM_UNLIKELY((value_p1 == ((NI32)-2)));
		if (!T3_) goto LA4_;
		raiseIllegalTypeRecursion__types_u2994();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA4_: ;
	{
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		T8_ = (NIM_BOOL)0;
		T9_ = (NIM_BOOL)0;
		T9_ = (value_p1 == ((NI32)-3));
		if (T9_) goto LA10_;
		T9_ = ((*arg_p0).maxAlign == ((NI32)-3));
LA10_: ;
		T8_ = T9_;
		if (T8_) goto LA11_;
		T8_ = ((*arg_p0).offset == ((NI32)-3));
LA11_: ;
		if (!T8_) goto LA12_;
		(*arg_p0).maxAlign = ((NI32)-3);
		(*arg_p0).offset = ((NI32)-3);
	}
	goto LA6_;
LA12_: ;
	{
		NI32 T15_;
		(*arg_p0).maxAlign = ((value_p1 >= (*arg_p0).maxAlign) ? value_p1 : (*arg_p0).maxAlign);
		T15_ = (NI32)0;
		T15_ = align__types_u2985((*arg_p0).offset, value_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*arg_p0).offset = T15_;
	}
LA6_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, inc__types_u3060)(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw* arg_p0, NI32 value_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = NIM_UNLIKELY((value_p1 == ((NI32)-2)));
		if (!T3_) goto LA4_;
		raiseIllegalTypeRecursion__types_u2994();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = (value_p1 == ((NI32)-3));
		if (T8_) goto LA9_;
		T8_ = ((*arg_p0).offset == ((NI32)-3));
LA9_: ;
		if (!T8_) goto LA10_;
		(*arg_p0).offset = ((NI32)-3);
	}
	goto LA6_;
LA10_: ;
	{
		(*arg_p0).offset += value_p1;
	}
LA6_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI32, finish__types_u3077)(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw* arg_p0) {
	NI32 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI32)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*arg_p0).maxAlign == ((NI32)-3));
		if (T3_) goto LA4_;
		T3_ = ((*arg_p0).offset == ((NI32)-3));
LA4_: ;
		if (!T3_) goto LA5_;
		result = ((NI32)-3);
		(*arg_p0).offset = ((NI32)-3);
	}
	goto LA1_;
LA5_: ;
	{
		NI32 T8_;
		T8_ = (NI32)0;
		T8_ = align__types_u2985((*arg_p0).offset, (*arg_p0).maxAlign);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = (NI32)(T8_ - (*arg_p0).offset);
		(*arg_p0).offset += result;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isObjDisplayCheck)(TNimTypeV2* source_p0, NI16 targetDepth_p1, NU32 token_p2) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = (targetDepth_p1 <= (*source_p0).depth);
	if (!(T1_)) goto LA2_;
	T1_ = ((*source_p0).display[targetDepth_p1] == token_p2);
LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
	Exception* result;
	result = currException__system_u3623;
	return result;
}
static N_INLINE(void, popCurrentException)(void) {
	eqcopy___system_u3656(&currException__system_u3623, (*currException__system_u3623).up, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObjectWithTypeFieldPredicate__types_u438)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	NIM_BOOL T6_;
	tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg T8_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	colontmpD_ = NIM_NIL;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
	if (!(T3_)) goto LA4_;
	colontmpD_ = baseClass__ast_u5348(t_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	T6_ = (NIM_BOOL)0;
	T6_ = !(((*t_p0).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
	if (!(T6_)) goto LA7_;
	T8_ = 0;
	T6_ = !(((IL64(4294969344) & (*(*t_p0).sym).flags) == T8_));
LA7_: ;
	T2_ = !(T6_);
LA5_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA9_;
	T1_ = !((((*t_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)2)))&63U)))!=0));
LA9_: ;
	result = T1_;
	eqdestroy___ast_u3378(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeBranch__types_u3074)(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw* arg_p0, tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw value_p1) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = (value_p1.maxAlign == ((NI32)-3));
		if (T5_) goto LA6_;
		T5_ = ((*arg_p0).maxAlign == ((NI32)-3));
LA6_: ;
		T4_ = T5_;
		if (T4_) goto LA7_;
		T4_ = (value_p1.offset == ((NI32)-3));
LA7_: ;
		T3_ = T4_;
		if (T3_) goto LA8_;
		T3_ = ((*arg_p0).offset == ((NI32)-3));
LA8_: ;
		if (!T3_) goto LA9_;
		(*arg_p0).maxAlign = ((NI32)-3);
		(*arg_p0).offset = ((NI32)-3);
	}
	goto LA1_;
LA9_: ;
	{
		(*arg_p0).offset = (((*arg_p0).offset >= value_p1.offset) ? (*arg_p0).offset : value_p1.offset);
		(*arg_p0).maxAlign = (((*arg_p0).maxAlign >= value_p1.maxAlign) ? (*arg_p0).maxAlign : value_p1.maxAlign);
	}
LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, computeUnionObjectOffsetsFoldFunction__types_u3211)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, NIM_BOOL packed_p2, tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw* accum_p3) {
NIM_BOOL oldNimErrFin4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	switch ((*n_p1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)139):
	{
		(*accum_p3).offset = ((NI32)-3);
		(*accum_p3).maxAlign = ((NI32)-3);
		liMessage__msgs_u1227(conf_p0, (*n_p1).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), TM__PpBJsMJcrcWrpLTS6mci1g_364, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__PpBJsMJcrcWrpLTS6mci1g_365), NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)138):
	{
		tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw accumRoot_1;
		accumRoot_1 = (*accum_p3);
		{
			tySequence__9ahcSjIErJohSBBFLwuF56Q colontmp_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** child_1;
			NI i_1;
			NI L_1;
			NI T5_;
			colontmp_.len = 0; colontmp_.p = NIM_NIL;
			child_1 = (tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**)0;
			eqcopy___ast_u3699((&colontmp_), (*n_p1)._kind_6.sons);
			if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
			i_1 = ((NI)0);
			T5_ = colontmp_.len;
			L_1 = T5_;
			{
				while (1) {
					tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw branchAccum_1;
					NI32 T8_;
					if (!(i_1 < L_1)) goto LA7;
					child_1 = &colontmp_.p->data[i_1];
					branchAccum_1.offset = accumRoot_1.offset;
					branchAccum_1.maxAlign = ((NI32)1);
					computeUnionObjectOffsetsFoldFunction__types_u3211(conf_p0, (*child_1), packed_p2, (&branchAccum_1));
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					T8_ = (NI32)0;
					T8_ = finish__types_u3077((&branchAccum_1));
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					(void)(T8_);
					mergeBranch__types_u3074(accum_p3, branchAccum_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					i_1 += ((NI)1);
				} LA7: ;
			}
			{
				LA4_:;
			}
			{
				oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3696(colontmp_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin4_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		NI32 size_1;
		NI32 align_1;
		size_1 = ((NI32)-3);
		align_1 = ((NI32)-3);
		{
			NI32 T16_;
			if (!((*(*n_p1)._kind_4.sym)._kind_2.bitsize == ((NI)0))) goto LA14_;
			computeSizeAlign__types_u3084(conf_p0, (*(*n_p1)._kind_4.sym).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			size_1 = ((NI32) ((*(*(*n_p1)._kind_4.sym).typ).size));
			T16_ = (NI32)0;
			{
				if (!packed_p2) goto LA19_;
				align_1 = ((NI32)1);
			}
			goto LA17_;
LA19_: ;
			{
				align_1 = ((NI32) ((*(*(*n_p1)._kind_4.sym).typ).align));
			}
LA17_: ;
		}
LA14_: ;
		align__types_u3071(accum_p3, align_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(((NI)0) < (*(*n_p1)._kind_4.sym)._kind_2.alignment)) goto LA24_;
			align__types_u3071(accum_p3, ((NI32) ((*(*n_p1)._kind_4.sym)._kind_2.alignment)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA24_: ;
		(*(*n_p1)._kind_4.sym).offset = (*accum_p3).offset;
		inc__types_u3060(accum_p3, size_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		(*accum_p3).maxAlign = ((NI32)-3);
		(*accum_p3).offset = ((NI32)-3);
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI64, computeSubObjectAlign__types_u3087)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	NI64 result;
NIM_BOOL oldNimErrFin7_;
NIM_BOOL oldNimErrFin5_;
NIM_BOOL oldNimErrFin19_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI64)0;
	switch ((*n_p1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)139):
	{
		result = computeSubObjectAlign__types_u3087(conf_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)1);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* child_1;
					if (!(i_2 < colontmp_)) goto LA4;
					child_1 = NIM_NIL;
					i_1 = i_2;
					eqcopy___ast_u3255(&child_1, (*n_p1)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
					switch ((*child_1).kind) {
					case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)85):
					case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)88):
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
						NI64 align_1;
						colontmpD_ = NIM_NIL;
						colontmpD_ = lastSon__ast_u5208(child_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
						align_1 = computeSubObjectAlign__types_u3087(conf_p0, colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
						{
							if (!(align_1 < IL64(0))) goto LA10_;
							result = align_1;
							eqdestroy___ast_u3252(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
							eqdestroy___ast_u3252(child_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA10_: ;
						result = ((result >= align_1) ? result : align_1);
						{
							LA7_:;
						}
						{
							oldNimErrFin7_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
							*nimErr_ = oldNimErrFin7_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
					}
					break;
					default:
					{
						internalErrorImpl__msgs_u1598(conf_p0, unknownLineInfo__lineinfos_u364, TM__PpBJsMJcrcWrpLTS6mci1g_367, (&TM__PpBJsMJcrcWrpLTS6mci1g_368));
						if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
					}
					break;
					}
					i_2 += ((NI)1);
					{
						LA5_:;
					}
					{
						oldNimErrFin5_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3252(child_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						*nimErr_ = oldNimErrFin5_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)138):
	{
		result = IL64(1);
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* child_2;
			tySequence__9ahcSjIErJohSBBFLwuF56Q colontmp__2;
			NI i_3;
			NI i_4;
			NI L_1;
			NI T20_;
			child_2 = NIM_NIL;
			colontmp__2.len = 0; colontmp__2.p = NIM_NIL;
			i_3 = (NI)0;
			eqcopy___ast_u3699((&colontmp__2), (*n_p1)._kind_6.sons);
			if (NIM_UNLIKELY(*nimErr_)) goto LA19_;
			i_4 = ((NI)0);
			T20_ = colontmp__2.len;
			L_1 = T20_;
			{
				while (1) {
					NI64 align_2;
					if (!(i_4 < L_1)) goto LA22;
					i_3 = i_4;
					eqcopy___ast_u3255(&child_2, colontmp__2.p->data[i_4]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA19_;
					align_2 = computeSubObjectAlign__types_u3087(conf_p0, (*n_p1)._kind_6.sons.p->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA19_;
					{
						if (!(align_2 < IL64(0))) goto LA25_;
						result = align_2;
						eqdestroy___ast_u3696(colontmp__2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3252(child_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA25_: ;
					result = ((result >= align_2) ? result : align_2);
					i_4 += ((NI)1);
				} LA22: ;
			}
			{
				LA19_:;
			}
			{
				oldNimErrFin19_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3696(colontmp__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3252(child_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin19_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		computeSizeAlign__types_u3084(conf_p0, (*(*n_p1)._kind_4.sym).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = ((NI64) ((*(*(*n_p1)._kind_4.sym).typ).align));
	}
	break;
	default:
	{
		result = IL64(1);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI32, alignmentMax__types_u3067)(NI32 a_p0, NI32 b_p1) {
	NI32 result;
	NI colontmpD_;
	NI colontmpD__2;
	NI T8_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI32)0;
	colontmpD_ = (NI)0;
	colontmpD__2 = (NI)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a_p0 == ((NI32)-2));
		if (T3_) goto LA4_;
		T3_ = (b_p1 == ((NI32)-2));
LA4_: ;
		T5_ = (NIM_BOOL)0;
		T5_ = NIM_UNLIKELY(T3_);
		if (!T5_) goto LA6_;
		raiseIllegalTypeRecursion__types_u2994();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA6_: ;
	T8_ = (NI)0;
	{
		NIM_BOOL T11_;
		T11_ = (NIM_BOOL)0;
		T11_ = (a_p0 == ((NI32)-3));
		if (T11_) goto LA12_;
		T11_ = (b_p1 == ((NI32)-3));
LA12_: ;
		if (!T11_) goto LA13_;
		colontmpD_ = ((NI)-3);
		T8_ = colontmpD_;
	}
	goto LA9_;
LA13_: ;
	{
		colontmpD__2 = ((NI) (((a_p0 >= b_p1) ? a_p0 : b_p1)));
		T8_ = colontmpD__2;
	}
LA9_: ;
	result = ((NI32) (T8_));
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setOffsetsToUnknown__types_u3129)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*n_p0)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)19));
LA4_: ;
		if (!T3_) goto LA5_;
		(*(*n_p0)._kind_4.sym).offset = ((NI32)-3);
	}
	goto LA1_;
LA5_: ;
	{
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_u3197(n_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA10;
					i_1 = i_2;
					setOffsetsToUnknown__types_u3129((*n_p0)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI)1);
				} LA10: ;
			}
		}
	}
LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, computeObjectOffsetsFoldFunction__types_u3144)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, NIM_BOOL packed_p2, tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw* accum_p3) {
NIM_BOOL oldNimErrFin22_;
NIM_BOOL oldNimErrFin20_;
NIM_BOOL oldNimErrFin37_;
NIM_BOOL oldNimErrFin43_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*n_p1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*n_p1).typField).size == IL64(-2));
LA4_: ;
		if (!T3_) goto LA5_;
		raiseIllegalTypeRecursion__types_u2994();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA5_: ;
	switch ((*n_p1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)139):
	{
		NI32 colontmpD_;
		NI32 colontmpD__2;
		NI32 maxChildAlign_1;
		colontmpD_ = (NI32)0;
		colontmpD__2 = (NI32)0;
		computeObjectOffsetsFoldFunction__types_u3144(conf_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)], packed_p2, accum_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!((*accum_p3).offset == ((NI32)-3))) goto LA10_;
			colontmpD_ = ((NI32)-3);
			maxChildAlign_1 = colontmpD_;
		}
		goto LA8_;
LA10_: ;
		{
			colontmpD__2 = ((NI32)1);
			maxChildAlign_1 = colontmpD__2;
		}
LA8_: ;
		{
			if (!!(packed_p2)) goto LA15_;
			{
				NI i_1;
				NI colontmp_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_u3190(n_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI)1);
				{
					while (1) {
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* child_1;
						if (!(i_2 < colontmp_)) goto LA19;
						child_1 = NIM_NIL;
						i_1 = i_2;
						eqcopy___ast_u3255(&child_1, (*n_p1)._kind_6.sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
						switch ((*child_1).kind) {
						case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)85):
						case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)88):
						{
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__3;
							NI32 align_1;
							NI64 T23_;
							colontmpD__3 = NIM_NIL;
							colontmpD__3 = lastSon__ast_u5208((*n_p1)._kind_6.sons.p->data[i_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
							T23_ = (NI64)0;
							T23_ = computeSubObjectAlign__types_u3087(conf_p0, colontmpD__3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
							align_1 = ((NI32) (T23_));
							maxChildAlign_1 = alignmentMax__types_u3067(maxChildAlign_1, align_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
							{
								LA22_:;
							}
							{
								oldNimErrFin22_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3252(colontmpD__3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
								*nimErr_ = oldNimErrFin22_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
						}
						break;
						default:
						{
							internalErrorImpl__msgs_u1598(conf_p0, unknownLineInfo__lineinfos_u364, TM__PpBJsMJcrcWrpLTS6mci1g_370, (&TM__PpBJsMJcrcWrpLTS6mci1g_371));
							if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
						}
						break;
						}
						i_2 += ((NI)1);
						{
							LA20_:;
						}
						{
							oldNimErrFin20_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(child_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							*nimErr_ = oldNimErrFin20_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					} LA19: ;
				}
			}
		}
LA15_: ;
		{
			if (!(maxChildAlign_1 == ((NI32)-3))) goto LA31_;
			setOffsetsToUnknown__types_u3129(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*accum_p3).offset = ((NI32)-3);
			(*accum_p3).maxAlign = ((NI32)-3);
		}
		goto LA29_;
LA31_: ;
		{
			tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw accumRoot_1;
			align__types_u3071(accum_p3, maxChildAlign_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			accumRoot_1 = (*accum_p3);
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_u3190(n_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_4 = ((NI)1);
				{
					while (1) {
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__4;
						tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw branchAccum_1;
						NI32 T38_;
						if (!(i_4 < colontmp__2)) goto LA36;
						colontmpD__4 = NIM_NIL;
						i_3 = i_4;
						branchAccum_1.offset = accumRoot_1.offset;
						branchAccum_1.maxAlign = ((NI32)1);
						colontmpD__4 = lastSon__ast_u5208((*n_p1)._kind_6.sons.p->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA37_;
						computeObjectOffsetsFoldFunction__types_u3144(conf_p0, colontmpD__4, packed_p2, (&branchAccum_1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA37_;
						T38_ = (NI32)0;
						T38_ = finish__types_u3077((&branchAccum_1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA37_;
						(void)(T38_);
						mergeBranch__types_u3074(accum_p3, branchAccum_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA37_;
						i_4 += ((NI)1);
						{
							LA37_:;
						}
						{
							oldNimErrFin37_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(colontmpD__4);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							*nimErr_ = oldNimErrFin37_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					} LA36: ;
				}
			}
		}
LA29_: ;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)138):
	{
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* child_2;
			tySequence__9ahcSjIErJohSBBFLwuF56Q colontmp__3;
			NI i_5;
			NI i_6;
			NI L_1;
			NI T44_;
			child_2 = NIM_NIL;
			colontmp__3.len = 0; colontmp__3.p = NIM_NIL;
			i_5 = (NI)0;
			eqcopy___ast_u3699((&colontmp__3), (*n_p1)._kind_6.sons);
			if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
			i_6 = ((NI)0);
			T44_ = colontmp__3.len;
			L_1 = T44_;
			{
				while (1) {
					if (!(i_6 < L_1)) goto LA46;
					i_5 = i_6;
					eqcopy___ast_u3255(&child_2, colontmp__3.p->data[i_6]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
					computeObjectOffsetsFoldFunction__types_u3144(conf_p0, child_2, packed_p2, accum_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
					i_6 += ((NI)1);
				} LA46: ;
			}
			{
				LA43_:;
			}
			{
				oldNimErrFin43_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3696(colontmp__3);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3252(child_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin43_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		NI32 size_1;
		NI32 align_2;
		size_1 = ((NI32)-3);
		align_2 = ((NI32)-3);
		{
			NI32 T54_;
			if (!((*(*n_p1)._kind_4.sym)._kind_2.bitsize == ((NI)0))) goto LA52_;
			computeSizeAlign__types_u3084(conf_p0, (*(*n_p1)._kind_4.sym).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			size_1 = ((NI32) ((*(*(*n_p1)._kind_4.sym).typ).size));
			T54_ = (NI32)0;
			{
				if (!packed_p2) goto LA57_;
				align_2 = ((NI32)1);
			}
			goto LA55_;
LA57_: ;
			{
				align_2 = ((NI32) ((*(*(*n_p1)._kind_4.sym).typ).align));
			}
LA55_: ;
		}
LA52_: ;
		align__types_u3071(accum_p3, align_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(((NI)0) < (*(*n_p1)._kind_4.sym)._kind_2.alignment)) goto LA62_;
			align__types_u3071(accum_p3, ((NI32) ((*(*n_p1)._kind_4.sym)._kind_2.alignment)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA62_: ;
		(*(*n_p1)._kind_4.sym).offset = (*accum_p3).offset;
		inc__types_u3060(accum_p3, size_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		(*accum_p3).maxAlign = ((NI32)-3);
		(*accum_p3).offset = ((NI32)-3);
	}
	break;
	}
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, lacksMTypeField__types_u2951)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !(((*typ_p0).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
	if (!(T2_)) goto LA3_;
	T2_ = (((*(*typ_p0).sym).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)11)))&63U)))!=0);
LA3_: ;
	T1_ = T2_;
	if (T1_) goto LA4_;
	T1_ = (((*typ_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)2)))&63U)))!=0);
LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, computeSizeAlign__types_u3084)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1) {
	NIM_BOOL hasSize_1;
	NIM_BOOL hasAlign_1;
	NI64 revertSize_1;
	NI16 revertAlign_1;
	tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg tk_1;
NIM_BOOL oldNimErrFin36_;
NIM_BOOL oldNimErrFin59_;
NIM_BOOL oldNimErrFin74_;
NIM_BOOL oldNimErrFin105_;
NIM_BOOL oldNimErrFin99_;
NIM_BOOL oldNimErrFin133_;
NIM_BOOL oldNimErrFin139_;
NIM_BOOL oldNimErrFin168_;
NIM_BOOL oldNimErrFin203_;
NIM_BOOL oldNimErrFin162_;
NIM_BOOL oldNimErrFin248_;
NIM_BOOL oldNimErrFin256_;
NIM_BOOL oldNimErrFin268_;
NIM_BOOL oldNimErrFin277_;
NIM_BOOL oldNimErrFin290_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	hasSize_1 = !(((*typ_p1).size == IL64(-1)));
	hasAlign_1 = !(((*typ_p1).align == ((NI16)-1)));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasSize_1;
		if (!(T3_)) goto LA4_;
		T3_ = hasAlign_1;
LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	revertSize_1 = (*typ_p1).size;
	revertAlign_1 = (*typ_p1).align;
	{
		NIM_BOOL T10_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*typ_p1).size == IL64(-2));
		if (T10_) goto LA11_;
		T10_ = ((*typ_p1).align == ((NI16)-2));
LA11_: ;
		if (!T10_) goto LA12_;
		{
			if (!hasSize_1) goto LA16_;
			(*typ_p1).size = revertSize_1;
		}
LA16_: ;
		{
			if (!hasAlign_1) goto LA20_;
			(*typ_p1).align = revertAlign_1;
		}
LA20_: ;
		goto BeforeRet_;
	}
LA12_: ;
	(*typ_p1).size = IL64(-2);
	(*typ_p1).align = ((NI16)-2);
	(*typ_p1).paddingAtEnd = ((NI16)0);
	tk_1 = (*typ_p1).kind;
	switch (tk_1) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
	{
		{
			if (!((*typ_p1).callConv == ((tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ)9))) goto LA25_;
			(*typ_p1).size = ((NI64) ((NI)(((NI)2) * (*conf_p0).target.ptrSize)));
		}
		goto LA23_;
LA25_: ;
		{
			(*typ_p1).size = ((NI64) ((*conf_p0).target.ptrSize));
		}
LA23_: ;
		(*typ_p1).align = ((NI16) ((*conf_p0).target.ptrSize));
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
	{
		(*typ_p1).size = ((NI64) ((*conf_p0).target.ptrSize));
		(*typ_p1).align = ((NI16) ((*conf_p0).target.ptrSize));
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28):
	{
		{
			if (!(((*conf_p0).globalOptions &((NU64)1<<((NU)((((tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A)45)))&63U)))!=0)) goto LA32_;
			(*typ_p1).size = ((NI64) ((NI)((*conf_p0).target.ptrSize * ((NI)2))));
		}
		goto LA30_;
LA32_: ;
		{
			(*typ_p1).size = ((NI64) ((*conf_p0).target.ptrSize));
		}
LA30_: ;
		(*typ_p1).align = ((NI16) ((*conf_p0).target.ptrSize));
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* base_1;
		base_1 = NIM_NIL;
		base_1 = last__ast_u5278(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA36_;
		{
			if (!(base_1 == typ_p1)) goto LA39_;
			(*typ_p1).size = IL64(-2);
			(*typ_p1).align = ((NI16)-2);
			(*typ_p1).paddingAtEnd = ((NI16)-2);
			eqdestroy___ast_u3378(base_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			{
				if (!hasSize_1) goto LA43_;
				(*typ_p1).size = revertSize_1;
			}
LA43_: ;
			{
				if (!hasAlign_1) goto LA47_;
				(*typ_p1).align = revertAlign_1;
			}
LA47_: ;
			goto BeforeRet_;
		}
LA39_: ;
		(*typ_p1).align = ((NI16) ((*conf_p0).target.ptrSize));
		{
			NIM_BOOL T51_;
			T51_ = (NIM_BOOL)0;
			T51_ = ((*typ_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24));
			if (!(T51_)) goto LA52_;
			T51_ = (((*conf_p0).globalOptions &((NU64)1<<((NU)((((tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A)45)))&63U)))!=0);
LA52_: ;
			if (!T51_) goto LA53_;
			(*typ_p1).size = ((NI64) ((NI)((*conf_p0).target.ptrSize * ((NI)2))));
		}
		goto LA49_;
LA53_: ;
		{
			(*typ_p1).size = ((NI64) ((*conf_p0).target.ptrSize));
		}
LA49_: ;
		{
			LA36_:;
		}
		{
			oldNimErrFin36_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(base_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			*nimErr_ = oldNimErrFin36_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		NI64 elemSize_1;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg len_1;
		colontmpD_ = NIM_NIL;
		colontmpD__2 = NIM_NIL;
		colontmpD__3 = NIM_NIL;
		colontmpD_ = elementType__ast_u5331(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
		computeSizeAlign__types_u3084(conf_p0, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
		colontmpD__2 = elementType__ast_u5331(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
		elemSize_1 = (*colontmpD__2).size;
		colontmpD__3 = indexType__ast_u5345(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
		len_1 = lengthOrd__types_u1505(conf_p0, colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
		{
			if (!(elemSize_1 < IL64(0))) goto LA62_;
			(*typ_p1).size = elemSize_1;
			(*typ_p1).align = ((NI16) (elemSize_1));
		}
		goto LA60_;
LA62_: ;
		{
			NIM_BOOL T65_;
			T65_ = (NIM_BOOL)0;
			T65_ = lt___int128_u933(len_1, IL64(0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
			if (!T65_) goto LA66_;
			(*typ_p1).size = IL64(-3);
			(*typ_p1).align = ((NI16)-3);
		}
		goto LA60_;
LA66_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T69_;
			NI64 T70_;
			colontmpD__4 = NIM_NIL;
			T69_ = star___int128_u684(len_1, ((NI32) (elemSize_1)));
			if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
			T70_ = (NI64)0;
			T70_ = toInt64Checked__int128_u103(T69_, IL64(-4));
			if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
			(*typ_p1).size = T70_;
			colontmpD__4 = elementType__ast_u5331(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
			(*typ_p1).align = (*colontmpD__4).align;
			eqdestroy___ast_u3378(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
		}
LA60_: ;
		{
			LA59_:;
		}
		{
			oldNimErrFin59_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			*nimErr_ = oldNimErrFin59_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* base_2;
		base_2 = NIM_NIL;
		base_2 = last__ast_u5278(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA74_;
		computeSizeAlign__types_u3084(conf_p0, base_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA74_;
		(*typ_p1).size = IL64(0);
		(*typ_p1).align = (*base_2).align;
		{
			LA74_:;
		}
		{
			oldNimErrFin74_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(base_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			*nimErr_ = oldNimErrFin74_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14):
	{
		{
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T80_;
			NIM_BOOL T81_;
			T80_ = firstOrd__types_u1182(conf_p0, typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			T81_ = (NIM_BOOL)0;
			T81_ = lt___int128_u404(T80_, Zero__int128_u8);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			if (!T81_) goto LA82_;
			(*typ_p1).size = IL64(4);
			(*typ_p1).align = ((NI16)4);
		}
		goto LA78_;
LA82_: ;
		{
			NI64 lastOrd_1;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T85_;
			T85_ = lastOrd__types_u1304(conf_p0, typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			lastOrd_1 = toInt64__int128_u53(T85_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			{
				if (!(lastOrd_1 < IL64(256))) goto LA88_;
				(*typ_p1).size = IL64(1);
				(*typ_p1).align = ((NI16)1);
			}
			goto LA86_;
LA88_: ;
			{
				if (!(lastOrd_1 < IL64(65536))) goto LA91_;
				(*typ_p1).size = IL64(2);
				(*typ_p1).align = ((NI16)2);
			}
			goto LA86_;
LA91_: ;
			{
				if (!(lastOrd_1 < IL64(4294967296))) goto LA94_;
				(*typ_p1).size = IL64(4);
				(*typ_p1).align = ((NI16)4);
			}
			goto LA86_;
LA94_: ;
			{
				NI16 T97_;
				(*typ_p1).size = IL64(8);
				T97_ = (NI16)0;
				T97_ = floatInt64Align__options_u4319(conf_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				(*typ_p1).align = T97_;
			}
LA86_: ;
		}
LA78_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
		colontmpD__5 = NIM_NIL;
		{
			colontmpD__5 = elementType__ast_u5331(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
			if (!((*colontmpD__5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA102_;
			(*typ_p1).size = IL64(-1);
			(*typ_p1).align = ((NI16)-1);
		}
		goto LA100_;
LA102_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
			NI64 length_1;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T106_;
			colontmpD__6 = NIM_NIL;
			colontmpD__6 = elementType__ast_u5331(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
			T106_ = lengthOrd__types_u1505(conf_p0, colontmpD__6);
			if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
			length_1 = toInt64__int128_u53(T106_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
			{
				if (!(length_1 <= IL64(8))) goto LA109_;
				(*typ_p1).size = IL64(1);
				(*typ_p1).align = ((NI16)1);
			}
			goto LA107_;
LA109_: ;
			{
				if (!(length_1 <= IL64(16))) goto LA112_;
				(*typ_p1).size = IL64(2);
				(*typ_p1).align = ((NI16)2);
			}
			goto LA107_;
LA112_: ;
			{
				if (!(length_1 <= IL64(32))) goto LA115_;
				(*typ_p1).size = IL64(4);
				(*typ_p1).align = ((NI16)4);
			}
			goto LA107_;
LA115_: ;
			{
				NI16 T120_;
				if (!(length_1 <= IL64(64))) goto LA118_;
				(*typ_p1).size = IL64(8);
				T120_ = (NI16)0;
				T120_ = floatInt64Align__options_u4319(conf_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
				(*typ_p1).align = T120_;
			}
			goto LA107_;
LA118_: ;
			{
				NI64 T122_;
				NI64 T125_;
				T122_ = (NI64)0;
				T122_ = align__types_u2981(length_1, IL64(8));
				if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
				if (!((NI64)(T122_ % IL64(8)) == IL64(0))) goto LA123_;
				T125_ = (NI64)0;
				T125_ = align__types_u2981(length_1, IL64(8));
				if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
				(*typ_p1).size = (NI64)(T125_ / IL64(8));
				(*typ_p1).align = ((NI16)1);
			}
			goto LA107_;
LA123_: ;
			{
				NI64 T127_;
				T127_ = (NI64)0;
				T127_ = align__types_u2981(length_1, IL64(8));
				if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
				(*typ_p1).size = (NI64)((NI64)(T127_ / IL64(8)) + IL64(1));
				(*typ_p1).align = ((NI16)1);
			}
LA107_: ;
			{
				LA105_:;
			}
			{
				oldNimErrFin105_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__6);
				if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
				*nimErr_ = oldNimErrFin105_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
		}
LA100_: ;
		{
			LA99_:;
		}
		{
			oldNimErrFin99_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			*nimErr_ = oldNimErrFin99_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__8;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__9;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__10;
		colontmpD__7 = NIM_NIL;
		colontmpD__8 = NIM_NIL;
		colontmpD__9 = NIM_NIL;
		colontmpD__10 = NIM_NIL;
		colontmpD__7 = elementType__ast_u5331(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA133_;
		computeSizeAlign__types_u3084(conf_p0, colontmpD__7);
		if (NIM_UNLIKELY(*nimErr_)) goto LA133_;
		colontmpD__8 = elementType__ast_u5331(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA133_;
		(*typ_p1).size = (*colontmpD__8).size;
		colontmpD__9 = elementType__ast_u5331(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA133_;
		(*typ_p1).align = (*colontmpD__9).align;
		colontmpD__10 = elementType__ast_u5331(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA133_;
		(*typ_p1).paddingAtEnd = (*colontmpD__10).paddingAtEnd;
		{
			LA133_:;
		}
		{
			oldNimErrFin133_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__10);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			eqdestroy___ast_u3378(colontmpD__9);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			eqdestroy___ast_u3378(colontmpD__8);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			eqdestroy___ast_u3378(colontmpD__7);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			*nimErr_ = oldNimErrFin133_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
	{
		tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw accum_1;
		NI32 T150_;
		NI64 T151_;
		nimZeroMem((void*)(&accum_1), sizeof(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw));
		accum_1.maxAlign = ((NI32)1);
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* child_1;
			NI i_1;
			child_1 = NIM_NIL;
			i_1 = (NI)0;
			{
				NI i_2;
				NI colontmp_;
				NI T141_;
				NI i_3;
				i_2 = (NI)0;
				colontmp_ = (NI)0;
				T141_ = (*typ_p1).sons.len;
				colontmp_ = T141_;
				i_3 = ((NI)0);
				{
					while (1) {
						if (!(i_3 < colontmp_)) goto LA143;
						i_2 = i_3;
						i_1 = i_2;
						eqcopy___ast_u3381(&child_1, (*typ_p1).sons.p->data[i_2]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
						computeSizeAlign__types_u3084(conf_p0, child_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
						align__types_u3071((&accum_1), ((NI32) ((*child_1).align)));
						if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_1;
							if (!!(((*typ_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA146_;
							sym_1 = NIM_NIL;
							eqcopy___ast_u4577(&sym_1, (*(*(*typ_p1).n)._kind_6.sons.p->data[i_1])._kind_4.sym);
							if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
							(*sym_1).offset = accum_1.offset;
							eqdestroy___ast_u4574(sym_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
						}
LA146_: ;
						inc__types_u3060((&accum_1), ((NI32) ((*child_1).size)));
						if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
						i_3 += ((NI)1);
					} LA143: ;
				}
			}
			{
				LA139_:;
			}
			{
				oldNimErrFin139_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(child_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA137_;
				*nimErr_ = oldNimErrFin139_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA137_;
		}
		T150_ = (NI32)0;
		T150_ = finish__types_u3077((&accum_1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA137_;
		(*typ_p1).paddingAtEnd = ((NI16) (T150_));
		T151_ = (NI64)0;
		{
			if (!(accum_1.offset == ((NI32)0))) goto LA154_;
			(*typ_p1).size = IL64(1);
		}
		goto LA152_;
LA154_: ;
		{
			(*typ_p1).size = ((NI64) (accum_1.offset));
		}
LA152_: ;
		(*typ_p1).align = ((NI16) (accum_1.maxAlign));
		if (NIM_UNLIKELY(*nimErr_)) {
			LA137_:;
			if (isObjDisplayCheck(nimBorrowCurrentException()->Sup.m_type, 4, 3643214080)) {
				*nimErr_ = NIM_FALSE;
				(*typ_p1).paddingAtEnd = ((NI16)-2);
				(*typ_p1).size = IL64(-2);
				(*typ_p1).align = ((NI16)-2);
				popCurrentException();
				LA158_:;
			}
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__11;
		tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw colontmpD__12;
		tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw colontmpD__13;
		tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw colontmpD__14;
		tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw accum_2;
		NI16 paddingAtEnd_1;
		NI32 T221_;
		colontmpD__11 = NIM_NIL;
		nimZeroMem((void*)(&colontmpD__12), sizeof(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw));
		nimZeroMem((void*)(&colontmpD__13), sizeof(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw));
		nimZeroMem((void*)(&colontmpD__14), sizeof(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw));
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T165_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* st_1;
			tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw colontmpD__15;
			tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw colontmpD__16;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T169_;
			T165_ = NIM_NIL;
			T165_ = baseClass__ast_u5348(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T165_); goto LA162_;}
			colontmpD__11 = T165_;
			if (!!((colontmpD__11 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA166_;
			st_1 = NIM_NIL;
			nimZeroMem((void*)(&colontmpD__15), sizeof(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw));
			nimZeroMem((void*)(&colontmpD__16), sizeof(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw));
			T169_ = NIM_NIL;
			T169_ = baseClass__ast_u5348(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T169_); goto LA168_;}
			st_1 = T169_;
			{
				while (1) {
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T172_;
					if (!((TM__PpBJsMJcrcWrpLTS6mci1g_305[(NU)(((*st_1).kind))>>3] &(1U<<((NU)(((*st_1).kind))&7U)))!=0)) goto LA171;
					T172_ = NIM_NIL;
					T172_ = skipModifier__ast_u5338(st_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T172_); goto LA168_;}
					eqsink___ast_u3387(&st_1, T172_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA168_;
				} LA171: ;
			}
			computeSizeAlign__types_u3084(conf_p0, st_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA168_;
			{
				if (!((*conf_p0).backend == ((tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw)2))) goto LA175_;
				colontmpD__15.offset = (NI32)(((NI32) ((*st_1).size)) - ((NI32) ((*st_1).paddingAtEnd)));
				colontmpD__15.maxAlign = ((NI32) ((*st_1).align));
				colontmpD__12 = colontmpD__15;
			}
			goto LA173_;
LA175_: ;
			{
				colontmpD__16.offset = ((NI32) ((*st_1).size));
				colontmpD__16.maxAlign = ((NI32) ((*st_1).align));
				colontmpD__12 = colontmpD__16;
			}
LA173_: ;
			accum_2 = colontmpD__12;
			{
				LA168_:;
			}
			{
				oldNimErrFin168_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(st_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA162_;
				*nimErr_ = oldNimErrFin168_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA162_;
		}
		goto LA163_;
LA166_: ;
		{
			NIM_BOOL T181_;
			T181_ = (NIM_BOOL)0;
			T181_ = isObjectWithTypeFieldPredicate__types_u438(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA162_;
			if (!T181_) goto LA182_;
			colontmpD__13.offset = ((NI32) ((*conf_p0).target.intSize));
			colontmpD__13.maxAlign = ((NI32) ((*conf_p0).target.intSize));
			accum_2 = colontmpD__13;
		}
		goto LA163_;
LA182_: ;
		{
			nimZeroMem((void*)(&colontmpD__14), sizeof(tyObject_OffsetAccum__CiBPncotXkuCydZAVWwAjw));
			colontmpD__14.maxAlign = ((NI32)1);
			accum_2 = colontmpD__14;
		}
LA163_: ;
		{
			if (!(((*typ_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)1)))&63U)))!=0)) goto LA187_;
			{
				tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA colontmpD__17;
				tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA colontmpD__18;
				tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_1;
				if (!!((accum_2.offset == ((NI32)0)))) goto LA191_;
				nimZeroMem((void*)(&colontmpD__17), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
				nimZeroMem((void*)(&colontmpD__18), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
				{
					if (!!(((*typ_p1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA195_;
					colontmpD__17 = (*(*typ_p1).sym).info;
					info_1 = colontmpD__17;
				}
				goto LA193_;
LA195_: ;
				{
					colontmpD__18 = unknownLineInfo__lineinfos_u364;
					info_1 = colontmpD__18;
				}
LA193_: ;
				liMessage__msgs_u1227(conf_p0, info_1, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), TM__PpBJsMJcrcWrpLTS6mci1g_360, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__PpBJsMJcrcWrpLTS6mci1g_361), NIM_FALSE, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto LA162_;
				accum_2.offset = ((NI32)-3);
				accum_2.maxAlign = ((NI32)-3);
			}
			goto LA189_;
LA191_: ;
			{
				computeUnionObjectOffsetsFoldFunction__types_u3211(conf_p0, (*typ_p1).n, (((*typ_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)23)))&63U)))!=0), (&accum_2));
				if (NIM_UNLIKELY(*nimErr_)) goto LA162_;
			}
LA189_: ;
		}
		goto LA185_;
LA187_: ;
		{
			if (!(((*typ_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)23)))&63U)))!=0)) goto LA200_;
			accum_2.maxAlign = ((NI32)1);
			computeObjectOffsetsFoldFunction__types_u3144(conf_p0, (*typ_p1).n, NIM_TRUE, (&accum_2));
			if (NIM_UNLIKELY(*nimErr_)) goto LA162_;
		}
		goto LA185_;
LA200_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__19;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__20;
			colontmpD__19 = NIM_NIL;
			colontmpD__20 = NIM_NIL;
			{
				NIM_BOOL T206_;
				NIM_BOOL T207_;
				NIM_BOOL T208_;
				NIM_BOOL T209_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T210_;
				NI T213_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T216_;
				T206_ = (NIM_BOOL)0;
				T207_ = (NIM_BOOL)0;
				T208_ = (NIM_BOOL)0;
				T209_ = (NIM_BOOL)0;
				T210_ = NIM_NIL;
				T210_ = baseClass__ast_u5348(typ_p1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T210_); goto LA203_;}
				colontmpD__19 = T210_;
				T209_ = (colontmpD__19 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (!(T209_)) goto LA211_;
				T209_ = lacksMTypeField__types_u2951(typ_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA203_;
LA211_: ;
				T208_ = T209_;
				if (!(T208_)) goto LA212_;
				T213_ = (NI)0;
				T213_ = len__ast_u3190((*typ_p1).n);
				if (NIM_UNLIKELY(*nimErr_)) goto LA203_;
				T208_ = (T213_ == ((NI)1));
LA212_: ;
				T207_ = T208_;
				if (!(T207_)) goto LA214_;
				T207_ = ((*(*(*typ_p1).n)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
LA214_: ;
				T206_ = T207_;
				if (!(T206_)) goto LA215_;
				T216_ = NIM_NIL;
				T216_ = skipTypes__ast_u5379((*(*(*(*typ_p1).n)._kind_6.sons.p->data[((NI)0)])._kind_4.sym).typ, TM__PpBJsMJcrcWrpLTS6mci1g_283);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T216_); goto LA203_;}
				colontmpD__20 = T216_;
				T206_ = ((*colontmpD__20).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49));
LA215_: ;
				if (!T206_) goto LA217_;
				accum_2.offset = ((NI32)1);
			}
LA217_: ;
			computeObjectOffsetsFoldFunction__types_u3144(conf_p0, (*typ_p1).n, NIM_FALSE, (&accum_2));
			if (NIM_UNLIKELY(*nimErr_)) goto LA203_;
			{
				LA203_:;
			}
			{
				oldNimErrFin203_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__20);
				if (NIM_UNLIKELY(*nimErr_)) goto LA162_;
				eqdestroy___ast_u3378(colontmpD__19);
				if (NIM_UNLIKELY(*nimErr_)) goto LA162_;
				*nimErr_ = oldNimErrFin203_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA162_;
		}
LA185_: ;
		T221_ = (NI32)0;
		T221_ = finish__types_u3077((&accum_2));
		if (NIM_UNLIKELY(*nimErr_)) goto LA162_;
		paddingAtEnd_1 = ((NI16) (T221_));
		{
			NIM_BOOL T224_;
			NIM_BOOL T225_;
			T224_ = (NIM_BOOL)0;
			T225_ = (NIM_BOOL)0;
			T225_ = !(((*typ_p1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
			if (!(T225_)) goto LA226_;
			T225_ = (((*(*typ_p1).sym).flags & 262208) == 64);
LA226_: ;
			T224_ = T225_;
			if (!(T224_)) goto LA227_;
			T224_ = !((((*typ_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)41)))&63U)))!=0));
LA227_: ;
			if (!T224_) goto LA228_;
			(*typ_p1).size = IL64(-3);
			(*typ_p1).align = ((NI16)-3);
			(*typ_p1).paddingAtEnd = ((NI16)-3);
		}
		goto LA222_;
LA228_: ;
		{
			NI64 T231_;
			T231_ = (NI64)0;
			{
				if (!(accum_2.offset == ((NI32)0))) goto LA234_;
				(*typ_p1).size = IL64(1);
			}
			goto LA232_;
LA234_: ;
			{
				(*typ_p1).size = ((NI64) (accum_2.offset));
			}
LA232_: ;
			(*typ_p1).align = ((NI16) (accum_2.maxAlign));
			(*typ_p1).paddingAtEnd = paddingAtEnd_1;
		}
LA222_: ;
		{
			LA162_:;
		}
		{
			oldNimErrFin162_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__11);
			if (NIM_UNLIKELY(*nimErr_)) goto LA161_;
			*nimErr_ = oldNimErrFin162_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA161_;
		if (NIM_UNLIKELY(*nimErr_)) {
			LA161_:;
			if (isObjDisplayCheck(nimBorrowCurrentException()->Sup.m_type, 4, 3643214080)) {
				*nimErr_ = NIM_FALSE;
				(*typ_p1).size = IL64(-2);
				(*typ_p1).align = ((NI16)-2);
				(*typ_p1).paddingAtEnd = ((NI16)-2);
				popCurrentException();
				LA240_:;
			}
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	{
		{
			NIM_BOOL T245_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__21;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__22;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__23;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__24;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T249_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T250_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T251_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T252_;
			T245_ = (NIM_BOOL)0;
			T245_ = hasElementType__ast_u5660(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			if (!T245_) goto LA246_;
			colontmpD__21 = NIM_NIL;
			colontmpD__22 = NIM_NIL;
			colontmpD__23 = NIM_NIL;
			colontmpD__24 = NIM_NIL;
			T249_ = NIM_NIL;
			T249_ = last__ast_u5278(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T249_); goto LA248_;}
			colontmpD__21 = T249_;
			computeSizeAlign__types_u3084(conf_p0, colontmpD__21);
			if (NIM_UNLIKELY(*nimErr_)) goto LA248_;
			T250_ = NIM_NIL;
			T250_ = last__ast_u5278(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T250_); goto LA248_;}
			colontmpD__22 = T250_;
			(*typ_p1).size = (*colontmpD__22).size;
			T251_ = NIM_NIL;
			T251_ = last__ast_u5278(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T251_); goto LA248_;}
			colontmpD__23 = T251_;
			(*typ_p1).align = (*colontmpD__23).align;
			T252_ = NIM_NIL;
			T252_ = last__ast_u5278(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T252_); goto LA248_;}
			colontmpD__24 = T252_;
			(*typ_p1).paddingAtEnd = (*colontmpD__24).paddingAtEnd;
			{
				LA248_:;
			}
			{
				oldNimErrFin248_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__24);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				eqdestroy___ast_u3378(colontmpD__23);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				eqdestroy___ast_u3378(colontmpD__22);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				eqdestroy___ast_u3378(colontmpD__21);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				*nimErr_ = oldNimErrFin248_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		}
LA246_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__25;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__26;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__27;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__28;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T257_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T258_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T259_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T260_;
		colontmpD__25 = NIM_NIL;
		colontmpD__26 = NIM_NIL;
		colontmpD__27 = NIM_NIL;
		colontmpD__28 = NIM_NIL;
		T257_ = NIM_NIL;
		T257_ = skipModifier__ast_u5338(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T257_); goto LA256_;}
		colontmpD__25 = T257_;
		computeSizeAlign__types_u3084(conf_p0, colontmpD__25);
		if (NIM_UNLIKELY(*nimErr_)) goto LA256_;
		T258_ = NIM_NIL;
		T258_ = skipModifier__ast_u5338(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T258_); goto LA256_;}
		colontmpD__26 = T258_;
		(*typ_p1).size = (*colontmpD__26).size;
		T259_ = NIM_NIL;
		T259_ = skipModifier__ast_u5338(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T259_); goto LA256_;}
		colontmpD__27 = T259_;
		(*typ_p1).align = (*colontmpD__27).align;
		T260_ = NIM_NIL;
		T260_ = last__ast_u5278(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T260_); goto LA256_;}
		colontmpD__28 = T260_;
		(*typ_p1).paddingAtEnd = (*colontmpD__28).paddingAtEnd;
		{
			LA256_:;
		}
		{
			oldNimErrFin256_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__28);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			eqdestroy___ast_u3378(colontmpD__27);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			eqdestroy___ast_u3378(colontmpD__26);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			eqdestroy___ast_u3378(colontmpD__25);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			*nimErr_ = oldNimErrFin256_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__29;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__30;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__31;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__32;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T269_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T270_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T271_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T272_;
			if (!(((*typ_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)10)))&63U)))!=0)) goto LA266_;
			colontmpD__29 = NIM_NIL;
			colontmpD__30 = NIM_NIL;
			colontmpD__31 = NIM_NIL;
			colontmpD__32 = NIM_NIL;
			T269_ = NIM_NIL;
			T269_ = last__ast_u5278(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T269_); goto LA268_;}
			colontmpD__29 = T269_;
			computeSizeAlign__types_u3084(conf_p0, colontmpD__29);
			if (NIM_UNLIKELY(*nimErr_)) goto LA268_;
			T270_ = NIM_NIL;
			T270_ = last__ast_u5278(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T270_); goto LA268_;}
			colontmpD__30 = T270_;
			(*typ_p1).size = (*colontmpD__30).size;
			T271_ = NIM_NIL;
			T271_ = last__ast_u5278(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T271_); goto LA268_;}
			colontmpD__31 = T271_;
			(*typ_p1).align = (*colontmpD__31).align;
			T272_ = NIM_NIL;
			T272_ = last__ast_u5278(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T272_); goto LA268_;}
			colontmpD__32 = T272_;
			(*typ_p1).paddingAtEnd = (*colontmpD__32).paddingAtEnd;
			{
				LA268_:;
			}
			{
				oldNimErrFin268_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__32);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				eqdestroy___ast_u3378(colontmpD__31);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				eqdestroy___ast_u3378(colontmpD__30);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				eqdestroy___ast_u3378(colontmpD__29);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				*nimErr_ = oldNimErrFin268_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		}
		goto LA264_;
LA266_: ;
		{
			(*typ_p1).size = IL64(-3);
			(*typ_p1).align = ((NI16)-3);
			(*typ_p1).paddingAtEnd = ((NI16)-3);
		}
LA264_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__33;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__34;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__35;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__36;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T278_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T279_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T280_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T281_;
		colontmpD__33 = NIM_NIL;
		colontmpD__34 = NIM_NIL;
		colontmpD__35 = NIM_NIL;
		colontmpD__36 = NIM_NIL;
		T278_ = NIM_NIL;
		T278_ = base__ast_u5351(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T278_); goto LA277_;}
		colontmpD__33 = T278_;
		computeSizeAlign__types_u3084(conf_p0, colontmpD__33);
		if (NIM_UNLIKELY(*nimErr_)) goto LA277_;
		T279_ = NIM_NIL;
		T279_ = base__ast_u5351(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T279_); goto LA277_;}
		colontmpD__34 = T279_;
		(*typ_p1).size = (*colontmpD__34).size;
		T280_ = NIM_NIL;
		T280_ = base__ast_u5351(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T280_); goto LA277_;}
		colontmpD__35 = T280_;
		(*typ_p1).align = (*colontmpD__35).align;
		T281_ = NIM_NIL;
		T281_ = base__ast_u5351(typ_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T281_); goto LA277_;}
		colontmpD__36 = T281_;
		(*typ_p1).paddingAtEnd = (*colontmpD__36).paddingAtEnd;
		{
			LA277_:;
		}
		{
			oldNimErrFin277_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__36);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			eqdestroy___ast_u3378(colontmpD__35);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			eqdestroy___ast_u3378(colontmpD__34);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			eqdestroy___ast_u3378(colontmpD__33);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			*nimErr_ = oldNimErrFin277_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)30):
	{
		(*typ_p1).size = IL64(-3);
		(*typ_p1).align = ((NI16)-3);
		(*typ_p1).paddingAtEnd = ((NI16)-3);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__37;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__38;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__39;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__40;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T291_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T292_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T293_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T294_;
			if (!!(((*typ_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA288_;
			colontmpD__37 = NIM_NIL;
			colontmpD__38 = NIM_NIL;
			colontmpD__39 = NIM_NIL;
			colontmpD__40 = NIM_NIL;
			T291_ = NIM_NIL;
			T291_ = last__ast_u5278(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T291_); goto LA290_;}
			colontmpD__37 = T291_;
			computeSizeAlign__types_u3084(conf_p0, colontmpD__37);
			if (NIM_UNLIKELY(*nimErr_)) goto LA290_;
			T292_ = NIM_NIL;
			T292_ = last__ast_u5278(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T292_); goto LA290_;}
			colontmpD__38 = T292_;
			(*typ_p1).size = (*colontmpD__38).size;
			T293_ = NIM_NIL;
			T293_ = last__ast_u5278(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T293_); goto LA290_;}
			colontmpD__39 = T293_;
			(*typ_p1).align = (*colontmpD__39).align;
			T294_ = NIM_NIL;
			T294_ = last__ast_u5278(typ_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T294_); goto LA290_;}
			colontmpD__40 = T294_;
			(*typ_p1).paddingAtEnd = (*colontmpD__40).paddingAtEnd;
			{
				LA290_:;
			}
			{
				oldNimErrFin290_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__40);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				eqdestroy___ast_u3378(colontmpD__39);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				eqdestroy___ast_u3378(colontmpD__38);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				eqdestroy___ast_u3378(colontmpD__37);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				*nimErr_ = oldNimErrFin290_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		}
		goto LA286_;
LA288_: ;
		{
			(*typ_p1).size = IL64(-3);
			(*typ_p1).align = ((NI16)-3);
			(*typ_p1).paddingAtEnd = ((NI16)-3);
		}
LA286_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40):
	{
		(*typ_p1).size = ((NI64) (((NI16) ((*conf_p0).target.intSize))));
		(*typ_p1).align = ((NI16) ((*conf_p0).target.intSize));
		(*typ_p1).paddingAtEnd = ((NI16)0);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)1):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32):
	{
		(*typ_p1).size = IL64(1);
		(*typ_p1).align = ((NI16)1);
		(*typ_p1).paddingAtEnd = ((NI16)0);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)33):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)42):
	{
		(*typ_p1).size = IL64(2);
		(*typ_p1).align = ((NI16)2);
		(*typ_p1).paddingAtEnd = ((NI16)0);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)34):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)43):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)37):
	{
		(*typ_p1).size = IL64(4);
		(*typ_p1).align = ((NI16)4);
		(*typ_p1).paddingAtEnd = ((NI16)0);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)38):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36):
	{
		(*typ_p1).size = IL64(8);
		(*typ_p1).align = ((NI16)8);
		(*typ_p1).paddingAtEnd = ((NI16)0);
	}
	break;
	default:
	{
		(*typ_p1).size = IL64(-3);
		(*typ_p1).align = ((NI16)-3);
		(*typ_p1).paddingAtEnd = ((NI16)-3);
	}
	break;
	}
	{
		LA7_:;
	}
	{
		{
			if (!hasSize_1) goto LA308_;
			(*typ_p1).size = revertSize_1;
		}
LA308_: ;
		{
			if (!hasAlign_1) goto LA312_;
			(*typ_p1).align = revertAlign_1;
		}
LA312_: ;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI64, getSize__types_u3411)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1) {
	NI64 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI64)0;
	computeSizeAlign__types_u3084(conf_p0, typ_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (*typ_p1).size;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, getOrdValue__types_u171)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg onError_p1) {
	tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg result;
	NIM_BOOL err_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg));
	err_1 = NIM_FALSE;
	result = getOrdValueAux__types_u148(n_p0, (&err_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!err_1) goto LA3_;
		result = onError_p1;
	}
LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnsigned__types_u141)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	colontmpD_ = NIM_NIL;
	colontmpD_ = skipTypes__ast_u5379(t_p0, TM__PpBJsMJcrcWrpLTS6mci1g_283);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = ((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2) || (*colontmpD_).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40) && (*colontmpD_).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44));
	eqdestroy___ast_u3378(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, getAlign__types_u3407)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1) {
	NI64 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI64)0;
	computeSizeAlign__types_u3084(conf_p0, typ_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = ((NI64) ((*typ_p1).align));
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, skipConvTakeType__types_u3748)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = skipConv__types_u3729(n_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3381(&(*result).typField, (*n_p0).typField);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, skipHidden__types_u3741)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3255(&result, n_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		while (1) {
			switch ((*result).kind) {
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58):
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59):
			{
				{
					tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g T6_;
					tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g T7_;
					T6_ = (tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g)0;
					T6_ = classify__types_u3703((*(*result)._kind_6.sons.p->data[((NI)1)]).typField);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T7_ = (tyEnum_OrdinalType__DMPgYwDZ8ljQBegqLlrv6g)0;
					T7_ = classify__types_u3703((*result).typField);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!(T6_ == T7_)) goto LA8_;
					eqcopy___ast_u3255(&result, (*result)._kind_6.sons.p->data[((NI)1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA4_;
LA8_: ;
				{
					goto LA1;
				}
LA4_: ;
			}
			break;
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65):
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)64):
			{
				eqcopy___ast_u3255(&result, (*result)._kind_6.sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, commonSuperclass__types_u2861)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_1;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA ancestors_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_1;
NIM_BOOL oldNimErrFin13_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	x_1 = NIM_NIL;
	nimZeroMem((void*)(&ancestors_1), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	y_1 = NIM_NIL;
	result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = sameObjectTypes__types_u2018(a_p0, b_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T4_) goto LA5_;
		eqcopy___ast_u3381(&result, a_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(y_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZcollectionsZintsets_u230((&ancestors_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(x_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA5_: ;
	eqcopy___ast_u3381(&x_1, a_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	initIntSet__pureZcollectionsZintsets_u598((&ancestors_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T9_;
			tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym393__1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T10_;
			if (!!((x_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA8;
			T9_ = NIM_NIL;
			T9_ = skipTypes__ast_u5379(x_1, TM__PpBJsMJcrcWrpLTS6mci1g_305);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T9_); goto LA1_;}
			eqsink___ast_u3387(&x_1, T9_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			xX60gensym393__1 = (*x_1).itemId;
			incl__pureZcollectionsZintsets_u366((&ancestors_1), (NI)((NI)((NU64)(((NI) (xX60gensym393__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym393__1.item))));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T10_ = NIM_NIL;
			T10_ = baseClass__ast_u5348(x_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T10_); goto LA1_;}
			eqsink___ast_u3387(&x_1, T10_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		} LA8: ;
	}
	eqcopy___ast_u3381(&y_1, b_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T14_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T24_;
			if (!!((y_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA12;
			t_1 = NIM_NIL;
			eqcopy___ast_u3381(&t_1, y_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
			T14_ = NIM_NIL;
			T14_ = skipTypes__ast_u5379(y_1, TM__PpBJsMJcrcWrpLTS6mci1g_305);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T14_); goto LA13_;}
			eqsink___ast_u3387(&y_1, T14_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
			{
				tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym396__1;
				NIM_BOOL T17_;
				xX60gensym396__1 = (*y_1).itemId;
				T17_ = (NIM_BOOL)0;
				T17_ = contains__astalgo_u2846((&ancestors_1), (NI)((NI)((NU64)(((NI) (xX60gensym396__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym396__1.item))));
				if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
				if (!T17_) goto LA18_;
				{
					if (!!(((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11)))) goto LA22_;
					eqsink___ast_u3387(&t_1, y_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
					eqwasMoved___ast_u3375(&y_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
				}
LA22_: ;
				result = t_1;
				eqwasMoved___ast_u3375(&t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
				eqdestroy___ast_u3378(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(y_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___pureZcollectionsZintsets_u230((&ancestors_1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(x_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA18_: ;
			T24_ = NIM_NIL;
			T24_ = baseClass__ast_u5348(y_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T24_); goto LA13_;}
			eqsink___ast_u3387(&y_1, T24_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
			{
				LA13_:;
			}
			{
				oldNimErrFin13_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin13_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		} LA12: ;
	}
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(y_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZcollectionsZintsets_u230((&ancestors_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(x_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addTypeHeader__types_u209)(NimStringV2* result_p0, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p2, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p3, NIM_BOOL getDeclarationPath_p4) {
	NimStringV2 colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	colontmpD_ = typeToString__types_u54(typ_p2, prefer_p3);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	prepareAdd((&(*result_p0)), colontmpD_.len + 0);
appendString((&(*result_p0)), colontmpD_);
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = getDeclarationPath_p4;
		if (!(T4_)) goto LA5_;
		T4_ = !(((*typ_p2).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA5_: ;
		if (!T4_) goto LA6_;
		addDeclaredLoc__astmsgs_u16(result_p0, conf_p1, (*typ_p2).sym);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA6_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(colontmpD_);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericConstraint__ast_u5678)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*t_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, nominalRoot__types_u4265)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
	switch ((*t_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T2_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = skipModifier__ast_u5338(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T2_ = NIM_NIL;
		T2_ = nominalRoot__types_u4265(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T2_); goto BeforeRet_;}
		eqsink___ast_u3387(&result, T2_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T4_;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = skipModifier__ast_u5338(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = NIM_NIL;
		T4_ = nominalRoot__types_u4265(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T4_); goto BeforeRet_;}
		eqsink___ast_u3387(&result, T4_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T10_;
		eqcopy___ast_u3381(&result, t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
			colontmpD__3 = NIM_NIL;
			while (1) {
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T8_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T9_;
				T8_ = NIM_NIL;
				T8_ = skipModifier__ast_u5338(result);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T8_); goto BeforeRet_;}
				eqsink___ast_u3387(&colontmpD__3, T8_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!((*colontmpD__3).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9) || (*colontmpD__3).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11))) goto LA7;
				T9_ = NIM_NIL;
				T9_ = skipModifier__ast_u5338(result);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T9_); goto BeforeRet_;}
				eqsink___ast_u3387(&result, T9_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA7: ;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		T10_ = NIM_NIL;
		T10_ = nominalRoot__types_u4265((*result).sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T10_); goto BeforeRet_;}
		eqsink___ast_u3387(&result, T10_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* val_1;
		val_1 = NIM_NIL;
		eqcopy___ast_u3381(&result, t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
			colontmpD__4 = NIM_NIL;
			while (1) {
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T14_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
				T14_ = NIM_NIL;
				T14_ = skipModifier__ast_u5338(result);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T14_); goto BeforeRet_;}
				eqsink___ast_u3387(&colontmpD__4, T14_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!((*colontmpD__4).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9) || (*colontmpD__4).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11))) goto LA13;
				colontmpD__5 = NIM_NIL;
				colontmpD__5 = skipModifier__ast_u5338(result);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqcopy___ast_u3381(&result, (*colontmpD__5).sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD__5);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA13: ;
			eqdestroy___ast_u3378(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		val_1 = skipModifier__ast_u5338(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = ((*val_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13) || (*val_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14) || (*val_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
			if (T17_) goto LA18_;
			T17_ = isRefPtrObject__types_u4254(val_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA18_: ;
			if (!T17_) goto LA19_;
		}
		goto LA15_;
LA19_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T22_;
			T22_ = NIM_NIL;
			T22_ = nominalRoot__types_u4265(val_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T22_); goto BeforeRet_;}
			eqsink___ast_u3387(&result, T22_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA15_: ;
		eqdestroy___ast_u3378(val_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T24_;
		colontmpD__6 = NIM_NIL;
		colontmpD__6 = skipModifier__ast_u5338(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T24_ = NIM_NIL;
		T24_ = nominalRoot__types_u4265(colontmpD__6);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T24_); goto BeforeRet_;}
		eqsink___ast_u3387(&result, T24_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12):
	{
		{
			NIM_BOOL T28_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T31_;
			T28_ = (NIM_BOOL)0;
			T28_ = genericParamHasConstraints__ast_u5654(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T28_) goto LA29_;
			colontmpD__7 = NIM_NIL;
			colontmpD__7 = genericConstraint__ast_u5678(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T31_ = NIM_NIL;
			T31_ = nominalRoot__types_u4265(colontmpD__7);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T31_); goto BeforeRet_;}
			eqsink___ast_u3387(&result, T31_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD__7);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA26_;
LA29_: ;
		{
			eqsink___ast_u3387(&result, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA26_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
	{
		eqcopy___ast_u3381(&result, t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
	{
		{
			if (!(((*t_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)34)))&63U)))!=0)) goto LA37_;
			eqcopy___ast_u3381(&result, t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA35_;
LA37_: ;
		{
			eqsink___ast_u3387(&result, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA35_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__8;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T41_;
		colontmpD__8 = NIM_NIL;
		colontmpD__8 = base__ast_u5351(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T41_ = NIM_NIL;
		T41_ = nominalRoot__types_u4265(colontmpD__8);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T41_); goto BeforeRet_;}
		eqsink___ast_u3387(&result, T41_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__8);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		eqsink___ast_u3387(&result, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag, equalParam__types_u1868)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* a_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* b_p1) {
	tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTypeOrNil__types_u1851((*a_p0).typ, (*b_p1).typ, 4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_)) goto LA4_;
		T3_ = exprStructuralEquivalent__trees_u63((*a_p0).constraint, (*b_p1).constraint, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (!((*a_p0).ast == (*b_p1).ast)) goto LA9_;
			result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)1);
		}
		goto LA7_;
LA9_: ;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = !(((*a_p0).ast == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
			if (!(T12_)) goto LA13_;
			T12_ = !(((*b_p1).ast == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA13_: ;
			if (!T12_) goto LA14_;
			{
				NIM_BOOL T18_;
				T18_ = (NIM_BOOL)0;
				T18_ = exprStructuralEquivalent__trees_u63((*a_p0).ast, (*b_p1).ast, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T18_) goto LA19_;
				result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)1);
			}
			goto LA16_;
LA19_: ;
			{
				result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)2);
			}
LA16_: ;
		}
		goto LA7_;
LA14_: ;
		{
			if (!!(((*a_p0).ast == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA23_;
			result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)1);
		}
		goto LA7_;
LA23_: ;
		{
			if (!!(((*b_p1).ast == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA26_;
			result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)2);
		}
		goto LA7_;
LA26_: ;
		{
			result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)0);
		}
LA7_: ;
	}
	goto LA1_;
LA5_: ;
	{
		result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)0);
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag, equalParams__types_u87)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* b_p1) {
	tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag result;
NIM_BOOL oldNimErrFin11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)1);
	{
		NI T3_;
		NI T4_;
		T3_ = (NI)0;
		T3_ = len__ast_u3190(a_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NI)0;
		T4_ = len__ast_u3190(b_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!((T3_ == T4_))) goto LA5_;
		result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)0);
	}
	goto LA1_;
LA5_: ;
	{
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_u3190(a_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)1);
			{
				while (1) {
					tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* m_1;
					tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* n_1;
					tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag T12_;
					if (!(i_2 < colontmp_)) goto LA10;
					m_1 = NIM_NIL;
					n_1 = NIM_NIL;
					i_1 = i_2;
					eqcopy___ast_u4577(&m_1, (*(*a_p0)._kind_6.sons.p->data[i_1])._kind_4.sym);
					if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
					eqcopy___ast_u4577(&n_1, (*(*b_p1)._kind_6.sons.p->data[i_1])._kind_4.sym);
					if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
					T12_ = (tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)0;
					T12_ = equalParam__types_u1868(m_1, n_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
					switch (T12_) {
					case ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)0):
					{
						result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)0);
						eqdestroy___ast_u4574(n_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u4574(m_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
					break;
					case ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)1):
					{
					}
					break;
					case ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)2):
					{
						result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)2);
					}
					break;
					default: __builtin_unreachable();
					}
					{
						if (!!(((*(*m_1).name).id == (*(*n_1).name).id))) goto LA18_;
						result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)0);
						eqdestroy___ast_u4574(n_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u4574(m_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA18_: ;
					i_2 += ((NI)1);
					{
						LA11_:;
					}
					{
						oldNimErrFin11_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u4574(n_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u4574(m_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						*nimErr_ = oldNimErrFin11_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA10: ;
			}
		}
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = sameTypeOrNil__types_u1851((*a_p0).typField, (*b_p1).typField, 4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(T24_)) goto LA25_;
			{
				NIM_BOOL T29_;
				T29_ = (NIM_BOOL)0;
				T29_ = ((*a_p0).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (T29_) goto LA30_;
				T29_ = ((*b_p1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA30_: ;
				if (!T29_) goto LA31_;
				result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)0);
			}
			goto LA27_;
LA31_: ;
			{
				result = ((tyEnum_TParamsEquality__KzHY7whkx6wRszfj1biQag)2);
			}
LA27_: ;
		}
LA25_: ;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addTypeDeclVerboseMaybe__types_u57)(NimStringV2* result_p0, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p2) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NimStringV2 colontmpD_;
		if (!(((*conf_p1).globalOptions &((NU64)1<<((NU)((((tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A)41)))&63U)))!=0)) goto LA3_;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		colontmpD_ = typeToString__types_u54(typ_p2, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)7));
		if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		prepareAdd((&(*result_p0)), colontmpD_.len + 0);
appendString((&(*result_p0)), colontmpD_);
		addDeclaredLoc__astmsgs_u32(result_p0, conf_p1, typ_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		{
			LA5_:;
		}
		{
			eqdestroy___system_u2691(colontmpD_);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA3_: ;
	{
		NimStringV2 colontmpD__2;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		colontmpD__2 = typeToString__types_u54(typ_p2, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		prepareAdd((&(*result_p0)), colontmpD__2.len + 0);
appendString((&(*result_p0)), colontmpD__2);
		{
			LA9_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__2);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTyRef__types_u576)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25));
	if (!(T3_)) goto LA4_;
	T3_ = ((*t_p0).callConv == ((tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ)9));
LA4_: ;
	T1_ = T3_;
LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsTyRef__types_u591)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	result = searchTypeFor__types_u423(typ_p0, isTyRef__types_u576);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCharArrayPtr__types_u4232)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, NIM_BOOL allowPointerToChar_p1) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_2;
NIM_BOOL oldNimErrFin9_;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	t_2 = NIM_NIL;
	t_2 = skipTypes__ast_u5379(t_p0, TM__PpBJsMJcrcWrpLTS6mci1g_283);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* pointsTo_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		if (!((*t_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21))) goto LA4_;
		pointsTo_1 = NIM_NIL;
		colontmpD_ = NIM_NIL;
		colontmpD_ = elementType__ast_u5331(t_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		pointsTo_1 = skipTypes__ast_u5379(colontmpD_, TM__PpBJsMJcrcWrpLTS6mci1g_283);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		switch ((*pointsTo_1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
			colontmpD__2 = NIM_NIL;
			colontmpD__2 = elementType__ast_u5331(pointsTo_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			result = ((*colontmpD__2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2));
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
			NIM_BOOL T10_;
			NIM_BOOL T11_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T13_;
			colontmpD__3 = NIM_NIL;
			colontmpD__4 = NIM_NIL;
			colontmpD__5 = NIM_NIL;
			colontmpD__6 = NIM_NIL;
			T10_ = (NIM_BOOL)0;
			T11_ = (NIM_BOOL)0;
			colontmpD__3 = elementType__ast_u5331(pointsTo_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
			T11_ = ((*colontmpD__3).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2));
			if (!(T11_)) goto LA12_;
			colontmpD__4 = indexType__ast_u5345(pointsTo_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
			T13_ = firstOrd__types_u1182(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
			T11_ = eqeq___int128_u980(T13_, IL64(0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
LA12_: ;
			T10_ = T11_;
			if (!(T10_)) goto LA14_;
			colontmpD__5 = indexType__ast_u5345(pointsTo_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
			colontmpD__6 = skipTypes__ast_u5379(colontmpD__5, TM__PpBJsMJcrcWrpLTS6mci1g_372);
			if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
			T10_ = ((*colontmpD__6).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) && (*colontmpD__6).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35));
LA14_: ;
			result = T10_;
			{
				LA9_:;
			}
			{
				oldNimErrFin9_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__6);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				eqdestroy___ast_u3378(colontmpD__5);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				eqdestroy___ast_u3378(colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				*nimErr_ = oldNimErrFin9_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2):
		{
			result = allowPointerToChar_p1;
		}
		break;
		default:
		{
			result = NIM_FALSE;
		}
		break;
		}
		{
			LA6_:;
		}
		{
			oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(pointsTo_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin6_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA2_;
LA4_: ;
	{
		result = NIM_FALSE;
	}
LA2_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(t_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSinkTypeForParam__types_u4201)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	colontmpD_ = NIM_NIL;
	colontmpD_ = skipTypes__ast_u5379(t_p0, TM__PpBJsMJcrcWrpLTS6mci1g_352);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = ((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46) || (*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45));
	eqdestroy___ast_u3378(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, baseOfDistinct__types_u3484)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p1, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p2) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		if (!((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13))) goto LA3_;
		result = elementType__ast_u5331(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA3_: ;
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* parent_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* it_1;
		colontmpD_ = NIM_NIL;
		parent_1 = NIM_NIL;
		it_1 = NIM_NIL;
		colontmpD_ = owner__ast_u6246(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		result = copyType__ast_u6238(t_p0, idgen_p2, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		copyTypeProps__modulegraphs_u10674(g_p1, ((NI) ((*idgen_p2).module)), result, t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		parent_1 = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
		eqcopy___ast_u3381(&it_1, result);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		{
			while (1) {
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T9_;
				if (!((*it_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21) || (*it_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*it_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45))) goto LA8;
				eqcopy___ast_u3381(&parent_1, it_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				T9_ = NIM_NIL;
				T9_ = elementType__ast_u5331(it_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T9_); goto LA6_;}
				eqsink___ast_u3387(&it_1, T9_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			} LA8: ;
		}
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = ((*it_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13));
			if (!(T12_)) goto LA13_;
			T12_ = !((parent_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
LA13_: ;
			if (!T12_) goto LA14_;
			eqcopy___ast_u3381(&(*parent_1).sons.p->data[((NI)0)], (*it_1).sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		}
LA14_: ;
		{
			LA6_:;
		}
		{
			oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(it_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(parent_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u4574(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin6_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, computeSize__types_u3393)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1) {
	NI64 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI64)0;
	computeSizeAlign__types_u3084(conf_p0, typ_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (*typ_p1).size;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isException__types_u4114)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_2;
NIM_BOOL oldNimErrFin4_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	t_2 = NIM_NIL;
	t_2 = skipTypes__ast_u5379(t_p0, TM__PpBJsMJcrcWrpLTS6mci1g_283);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T15_;
			if (!((*t_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17))) goto LA3;
			colontmpD_ = NIM_NIL;
			colontmpD__2 = NIM_NIL;
			{
				NIM_BOOL T7_;
				T7_ = (NIM_BOOL)0;
				T7_ = !(((*t_2).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
				if (!(T7_)) goto LA8_;
				T7_ = ((*(*t_2).sym).magic == ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)269));
LA8_: ;
				if (!T7_) goto LA9_;
				result = NIM_TRUE;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(t_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA9_: ;
			{
				colontmpD_ = baseClass__ast_u5348(t_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
				if (!(colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA13_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				goto LA2;
			}
LA13_: ;
			colontmpD__2 = baseClass__ast_u5348(t_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
			T15_ = NIM_NIL;
			T15_ = skipTypes__ast_u5379(colontmpD__2, TM__PpBJsMJcrcWrpLTS6mci1g_302);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T15_); goto LA4_;}
			eqsink___ast_u3387(&t_2, T15_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
			{
				LA4_:;
			}
			{
				oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin4_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		} LA3: ;
	} LA2: ;
	result = NIM_FALSE;
	eqdestroy___ast_u3378(t_2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(t_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, safeSkipTypes__types_u3670)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kinds_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA seen_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	nimZeroMem((void*)(&seen_1), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	eqcopy___ast_u3381(&result, t_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	initIntSet__pureZcollectionsZintsets_u598((&seen_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		while (1) {
			NIM_BOOL T3_;
			tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym510__1;
			NIM_BOOL T5_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T6_;
			T3_ = (NIM_BOOL)0;
			T3_ = ((kinds_p1[(NU)(((*result).kind))>>3] &(1U<<((NU)(((*result).kind))&7U)))!=0);
			if (!(T3_)) goto LA4_;
			xX60gensym510__1 = (*result).itemId;
			T5_ = (NIM_BOOL)0;
			T5_ = containsOrIncl__astyaml_u223((&seen_1), (NI)((NI)((NU64)(((NI) (xX60gensym510__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym510__1.item))));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T3_ = !(T5_);
LA4_: ;
			if (!T3_) goto LA2;
			T6_ = NIM_NIL;
			T6_ = skipModifier__ast_u5338(result);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T6_); goto BeforeRet_;}
			eqsink___ast_u3387(&result, T6_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA2: ;
	}
	eqdestroy___pureZcollectionsZintsets_u230((&seen_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefectOrCatchableError__types_u4171)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_2;
NIM_BOOL oldNimErrFin4_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	t_2 = NIM_NIL;
	t_2 = skipTypes__ast_u5379(t_p0, TM__PpBJsMJcrcWrpLTS6mci1g_302);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__2;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T21_;
			if (!((*t_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17))) goto LA3;
			colontmpD_ = NIM_NIL;
			colontmpD__2 = NIM_NIL;
			colontmpD__3 = NIM_NIL;
			colontmpD__4 = NIM_NIL;
			{
				NIM_BOOL T7_;
				NIM_BOOL T8_;
				NIM_BOOL T9_;
				NIM_BOOL T13_;
				T7_ = (NIM_BOOL)0;
				T8_ = (NIM_BOOL)0;
				T9_ = (NIM_BOOL)0;
				T9_ = !(((*t_2).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
				if (!(T9_)) goto LA10_;
				colontmpD_ = owner__ast_u6254((*t_2).sym);
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
				T9_ = !((colontmpD_ == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA10_: ;
				T8_ = T9_;
				if (!(T8_)) goto LA11_;
				colontmpD__2 = owner__ast_u6254((*t_2).sym);
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
				T8_ = (((*colontmpD__2).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)15)))&63U)))!=0);
LA11_: ;
				T7_ = T8_;
				if (!(T7_)) goto LA12_;
				T13_ = (NIM_BOOL)0;
				T13_ = eqStrings((*(*(*t_2).sym).name).s, TM__PpBJsMJcrcWrpLTS6mci1g_373);
				if (T13_) goto LA14_;
				T13_ = eqStrings((*(*(*t_2).sym).name).s, TM__PpBJsMJcrcWrpLTS6mci1g_375);
LA14_: ;
				T7_ = T13_;
LA12_: ;
				if (!T7_) goto LA15_;
				result = NIM_TRUE;
				eqdestroy___ast_u3378(colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(t_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA15_: ;
			{
				colontmpD__3 = baseClass__ast_u5348(t_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
				if (!(colontmpD__3 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA19_;
				eqdestroy___ast_u3378(colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				goto LA2;
			}
LA19_: ;
			colontmpD__4 = baseClass__ast_u5348(t_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
			T21_ = NIM_NIL;
			T21_ = skipTypes__ast_u5379(colontmpD__4, TM__PpBJsMJcrcWrpLTS6mci1g_302);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T21_); goto LA4_;}
			eqsink___ast_u3387(&t_2, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
			{
				LA4_:;
			}
			{
				oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin4_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		} LA3: ;
	} LA2: ;
	result = NIM_FALSE;
	eqdestroy___ast_u3378(t_2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(t_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, lookupFieldAgain__types_u4208)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ty_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* field_p1) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ty_2;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	ty_2 = NIM_NIL;
	result = ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL);
	eqcopy___ast_u3381(&ty_2, ty_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T4_;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T5_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T10_;
			if (!!((ty_2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA3;
			T4_ = NIM_NIL;
			T4_ = skipTypes__ast_u5379(ty_2, TM__PpBJsMJcrcWrpLTS6mci1g_305);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T4_); goto LA1_;}
			eqsink___ast_u3387(&ty_2, T4_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T5_ = NIM_NIL;
			T5_ = lookupInRecord__astalgo_u30((*ty_2).n, (*field_p1).name);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T5_); goto LA1_;}
			eqsink___ast_u4583(&result, T5_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				if (!!((result == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA8_;
				goto LA2;
			}
LA8_: ;
			T10_ = NIM_NIL;
			T10_ = baseClass__ast_u5348(ty_2);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T10_); goto LA1_;}
			eqsink___ast_u3387(&ty_2, T10_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		} LA3: ;
	} LA2: ;
	{
		if (!(result == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL))) goto LA13_;
		eqcopy___ast_u4577(&result, field_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA13_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(ty_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag, analyseObjectWithTypeFieldAux__types_u472)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p1) {
	tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag result;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL oldNimErrFin41_;
NIM_BOOL oldNimErrFin46_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag)0);
	{
		if (!(t_p0 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
LA3_: ;
	switch ((*t_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_1;
		tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag res_1;
		x_1 = NIM_NIL;
		{
			if (!!(((*t_p0).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA9_;
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = searchTypeNodeForAux__types_u370((*t_p0).n, isObjectWithTypeFieldPredicate__types_u438, marker_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				if (!T13_) goto LA14_;
				result = ((tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag)2);
				eqdestroy___ast_u3378(x_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA14_: ;
		}
LA9_: ;
		x_1 = baseClass__ast_u5348(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T20_;
			if (!!((x_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA18_;
			T20_ = NIM_NIL;
			T20_ = skipTypes__ast_u5379(x_1, TM__PpBJsMJcrcWrpLTS6mci1g_305);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T20_); goto LA6_;}
			eqsink___ast_u3387(&x_1, T20_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		}
LA18_: ;
		res_1 = analyseObjectWithTypeFieldAux__types_u472(x_1, marker_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		{
			if (!(res_1 == ((tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag)2))) goto LA23_;
			result = ((tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag)2);
			eqdestroy___ast_u3378(x_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA23_: ;
		{
			if (!(res_1 == ((tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag)1))) goto LA27_;
			result = ((tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag)1);
		}
LA27_: ;
		{
			if (!(result == ((tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag)0))) goto LA31_;
			{
				NIM_BOOL T35_;
				T35_ = (NIM_BOOL)0;
				T35_ = isObjectWithTypeFieldPredicate__types_u438(t_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				if (!T35_) goto LA36_;
				result = ((tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag)1);
			}
LA36_: ;
		}
LA31_: ;
		{
			LA6_:;
		}
		{
			oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(x_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin6_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	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_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = skipModifier__ast_u5338(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
		result = analyseObjectWithTypeFieldAux__types_u472(colontmpD_, marker_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
		{
			LA41_:;
		}
		{
			oldNimErrFin41_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin41_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
			a_1 = NIM_NIL;
			{
				NI i_1;
				NI colontmp_;
				NI T48_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				T48_ = (*t_p0).sons.len;
				colontmp_ = T48_;
				i_2 = ((NI)0);
				{
					while (1) {
						tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag res_2;
						if (!(i_2 < colontmp_)) goto LA50;
						i_1 = i_2;
						eqcopy___ast_u3381(&a_1, (*t_p0).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
						res_2 = analyseObjectWithTypeFieldAux__types_u472(a_1, marker_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
						{
							if (!!((res_2 == ((tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag)0)))) goto LA53_;
							result = ((tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag)2);
							eqdestroy___ast_u3378(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA53_: ;
						i_2 += ((NI)1);
					} LA50: ;
				}
			}
			{
				LA46_:;
			}
			{
				oldNimErrFin46_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin46_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag, analyseObjectWithTypeField__types_u528)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag result;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA marker_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TTypeFieldResult__jQSyZUgToorx8YweWMVnag)0;
	nimZeroMem((void*)(&marker_1), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	initIntSet__pureZcollectionsZintsets_u598((&marker_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = analyseObjectWithTypeFieldAux__types_u472(t_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(NIM_BOOL, isHiddenPointer__types_u594)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	result = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsHiddenPointer__types_u601)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	result = searchTypeFor__types_u423(typ_p0, isHiddenPointer__types_u594);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isManagedMemory__types_u558)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25));
	if (!(T3_)) goto LA4_;
	T3_ = ((*t_p0).callConv == ((tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ)9));
LA4_: ;
	T1_ = T3_;
LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsManagedMemory__types_u573)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	result = searchTypeFor__types_u423(typ_p0, isManagedMemory__types_u558);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameBackendTypePickyAliases__types_u2771)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_p1) {
	NIM_BOOL result;
	tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ c_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&c_1), sizeof(tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ));
	initSameTypeClosure__types_u1545((&c_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	c_1.flags = (c_1.flags | 1665);
	c_1.cmp = ((tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw)1);
	result = sameTypeAux__types_u1805(x_p0, y_p1, (&c_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		eqdestroy___types_u1550((&c_1));
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameBackendTypeIgnoreRange__types_u2758)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_p1) {
	NIM_BOOL result;
	tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ c_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&c_1), sizeof(tyObject_TSameTypeClosure__vIHlFD6CRW9a4iIAWiai8iQ));
	initSameTypeClosure__types_u1545((&c_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	c_1.flags |= ((NU16)1)<<(((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)0))) & 15);
	c_1.flags |= ((NU16)1)<<(((((tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ)10))) & 15);
	c_1.cmp = ((tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw)1);
	result = sameTypeAux__types_u1805(x_p0, y_p1, (&c_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		eqdestroy___types_u1550((&c_1));
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___types_u1580)(tySequence__8Np6tlClE5az1CyqZdN19bQ* dest_p0, tySequence__8Np6tlClE5az1CyqZdN19bQ src_p1) {
	if ((*dest_p0).p != src_p1.p) {	eqdestroy___types_u1571((*dest_p0));
	}
(*dest_p0).len = src_p1.len; (*dest_p0).p = src_p1.p;
}
