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

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
typedef struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg;
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_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 NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA;
typedef struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q tySequence__9ahcSjIErJohSBBFLwuF56Q;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content tySequence__9ahcSjIErJohSBBFLwuF56Q_Content;
typedef struct tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw;
typedef struct tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug;
typedef struct tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww;
typedef struct tySequence__AE2UIxl7EbPzzBnmYsjIcw tySequence__AE2UIxl7EbPzzBnmYsjIcw;
typedef struct tySequence__AE2UIxl7EbPzzBnmYsjIcw_Content tySequence__AE2UIxl7EbPzzBnmYsjIcw_Content;
typedef struct tyObject_TProcCon__ftBtv4UEhPouLts4uXXNLQ tyObject_TProcCon__ftBtv4UEhPouLts4uXXNLQ;
typedef struct tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg;
typedef struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA tySequence__ZCZaCk14bTmSb6LMW9aWPVA;
typedef struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content;
typedef struct tySequence__tsHRsYLyvTCPLlGRExqi7Q tySequence__tsHRsYLyvTCPLlGRExqi7Q;
typedef struct tySequence__tsHRsYLyvTCPLlGRExqi7Q_Content tySequence__tsHRsYLyvTCPLlGRExqi7Q_Content;
typedef struct tySequence__lAikaRQvUF0uwNAz0U4FFA tySequence__lAikaRQvUF0uwNAz0U4FFA;
typedef struct tySequence__lAikaRQvUF0uwNAz0U4FFA_Content tySequence__lAikaRQvUF0uwNAz0U4FFA_Content;
typedef struct tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A;
typedef struct tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg;
typedef struct tyObject_TCtx__FHLmhXedV9bg0OyLunsHRew tyObject_TCtx__FHLmhXedV9bg0OyLunsHRew;
typedef struct tySequence__4zAALtm0xUbRlYWQ2V8K7A tySequence__4zAALtm0xUbRlYWQ2V8K7A;
typedef struct tySequence__4zAALtm0xUbRlYWQ2V8K7A_Content tySequence__4zAALtm0xUbRlYWQ2V8K7A_Content;
typedef struct tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA;
typedef struct tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw;
typedef struct tySequence__9bffTLF0HkxjFCzZL8og4GA tySequence__9bffTLF0HkxjFCzZL8og4GA;
typedef struct tySequence__9bffTLF0HkxjFCzZL8og4GA_Content tySequence__9bffTLF0HkxjFCzZL8og4GA_Content;
typedef struct tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ;
typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw tySequence__Bis5AbpONWcIRrPyPJS8Yw;
typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw_Content tySequence__Bis5AbpONWcIRrPyPJS8Yw_Content;
typedef struct tyObject_Table__nBRoNCTSfpfbfAeK9bNW1qw tyObject_Table__nBRoNCTSfpfbfAeK9bNW1qw;
typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw tySequence__E8pi9b5QNahsURYzXMjh3qw;
typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw_Content tySequence__E8pi9b5QNahsURYzXMjh3qw_Content;
typedef struct tyObject_Table__g77QNejuRRKraNk8K2YkoA tyObject_Table__g77QNejuRRKraNk8K2YkoA;
typedef struct tySequence__3B6hFqG0Do0FxDvnNucL7w tySequence__3B6hFqG0Do0FxDvnNucL7w;
typedef struct tySequence__3B6hFqG0Do0FxDvnNucL7w_Content tySequence__3B6hFqG0Do0FxDvnNucL7w_Content;
typedef struct tyObject_Table__toCaB3NxiVHPRVLgcez0Xg tyObject_Table__toCaB3NxiVHPRVLgcez0Xg;
typedef struct tySequence__QqvaCqCpEE1QmQZbcZLi5A tySequence__QqvaCqCpEE1QmQZbcZLi5A;
typedef struct tySequence__QqvaCqCpEE1QmQZbcZLi5A_Content tySequence__QqvaCqCpEE1QmQZbcZLi5A_Content;
typedef struct tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw;
typedef struct tyObject_TOptionEntry__KeABxBvAlGa1KroFfkcqAg tyObject_TOptionEntry__KeABxBvAlGa1KroFfkcqAg;
typedef struct tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig;
typedef struct tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA;
typedef struct tySequence__7OXYQ6bHRkhJpRaiS7kiwQ tySequence__7OXYQ6bHRkhJpRaiS7kiwQ;
typedef struct tySequence__7OXYQ6bHRkhJpRaiS7kiwQ_Content tySequence__7OXYQ6bHRkhJpRaiS7kiwQ_Content;
typedef struct tyObject_TInstantiationPair__bS87nlCVAcAYxO9aJequmYw tyObject_TInstantiationPair__bS87nlCVAcAYxO9aJequmYw;
typedef struct tyObject_TInstantiation__jr8MibvPn2sQBnO7XCoZRQ tyObject_TInstantiation__jr8MibvPn2sQBnO7XCoZRQ;
typedef struct tyTuple__09aD69az7aYn14Gt61AHvLIA tyTuple__09aD69az7aYn14Gt61AHvLIA;
typedef struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tyTuple__CH9a39cWKma9c9c9cYqCyX1wBsw tyTuple__CH9a39cWKma9c9c9cYqCyX1wBsw;
typedef struct tySequence__KYLoGmc5aaHsSDjEH1FTxQ tySequence__KYLoGmc5aaHsSDjEH1FTxQ;
typedef struct tySequence__KYLoGmc5aaHsSDjEH1FTxQ_Content tySequence__KYLoGmc5aaHsSDjEH1FTxQ_Content;
typedef struct tyTuple__EbsafWGli8bW2GRJQ9apsjA tyTuple__EbsafWGli8bW2GRJQ9apsjA;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content tySequence__qwqHTkRvwhrRyENtudHQ7g_Content;
typedef struct tyObject_TIdPair__jFcUgE4X1tLOqan9b4YIIeg tyObject_TIdPair__jFcUgE4X1tLOqan9b4YIIeg;
typedef struct tyTuple__ZUrTP7BFWWFkSv3xO9crp9aQ tyTuple__ZUrTP7BFWWFkSv3xO9crp9aQ;
typedef NU8 tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw;
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;
};
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 NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
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;
};
struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA {
	NU16 line;
	NI16 col;
	NI32 fileIndex;
};
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;
};
};
typedef NU8 tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
typedef NU16 tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw;
typedef NU8 tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg[9];
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_TPassContext__QQOybmyOwFn29csyFzTSLNQ {
	RootObj Sup;
	tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen;
};
struct tySequence__AE2UIxl7EbPzzBnmYsjIcw {
  NI len; tySequence__AE2UIxl7EbPzzBnmYsjIcw_Content* p;
};
typedef tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* tyArray__uJvLVbod8mnHGzJkQj89bWg[38];
struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA {
  NI len; tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content* p;
};
struct tySequence__tsHRsYLyvTCPLlGRExqi7Q {
  NI len; tySequence__tsHRsYLyvTCPLlGRExqi7Q_Content* p;
};
struct tySequence__lAikaRQvUF0uwNAz0U4FFA {
  NI len; tySequence__lAikaRQvUF0uwNAz0U4FFA_Content* p;
};
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__Yik7hgYZHhPeLJ5RsXTPqg) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p2);
typedef NU32 tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg;
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__JIyBW5s9ba7hfYBnWxDVvgg) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p3);
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__iXlRd9cBAN0CQpA5dkyhRvw) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_p2);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7FLV9alRQFu6LOhr9bksExQQ) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, void* ClE_0);
void* ClE_0;
} tyProc__0qHBYUhlP28E2DV7mVNNAg;
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__1nD4dBuhjTAOzMZJo9bmgog) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
typedef NU32 tySet_tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__209aOewTLBT6nbWmyvOQFiw) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* nOrig_p2, tySet_tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q filter_p3, tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_p4, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p5);
typedef N_NIMCALL_PTR(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, tyProc__D9aXgBooMpgLrPTmha6q31w) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prev_p2);
typedef struct {
N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2, void* ClE_0);
void* ClE_0;
} tyProc__GbPSPD9bjvt0RIJnnVTczJA;
typedef struct {
N_NIMCALL_PTR(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* fn_p1, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, void* ClE_0);
void* ClE_0;
} tyProc__iDJMP540ifFac3zJ49bj2cA;
typedef struct {
N_NIMCALL_PTR(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* prc_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, void* ClE_0);
void* ClE_0;
} tyProc__gq9a76bauTeymgreaiTI9cmg;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** n_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p2, void* ClE_0);
void* ClE_0;
} tyProc__Gji0NjiFFDU49aJiF3QZF8A;
struct tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg {
	NI counter;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA data;
};
struct tySequence__4zAALtm0xUbRlYWQ2V8K7A {
  NI len; tySequence__4zAALtm0xUbRlYWQ2V8K7A_Content* p;
};
typedef NU8 tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q;
typedef N_NIMCALL_PTR(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, tyProc__UAj9bGJLVN9cwAsTcRZFyWmg) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dc_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q op_p4, NI col_p5);
typedef NU32 tySet_tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ;
struct tySequence__9bffTLF0HkxjFCzZL8og4GA {
  NI len; tySequence__9bffTLF0HkxjFCzZL8og4GA_Content* p;
};
struct tySequence__Bis5AbpONWcIRrPyPJS8Yw {
  NI len; tySequence__Bis5AbpONWcIRrPyPJS8Yw_Content* p;
};
struct tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ {
	tySequence__Bis5AbpONWcIRrPyPJS8Yw data;
	NI counter;
};
struct tySequence__E8pi9b5QNahsURYzXMjh3qw {
  NI len; tySequence__E8pi9b5QNahsURYzXMjh3qw_Content* p;
};
struct tyObject_Table__nBRoNCTSfpfbfAeK9bNW1qw {
	tySequence__E8pi9b5QNahsURYzXMjh3qw data;
	NI counter;
};
struct tySequence__3B6hFqG0Do0FxDvnNucL7w {
  NI len; tySequence__3B6hFqG0Do0FxDvnNucL7w_Content* p;
};
struct tyObject_Table__g77QNejuRRKraNk8K2YkoA {
	tySequence__3B6hFqG0Do0FxDvnNucL7w data;
	NI counter;
};
struct tySequence__QqvaCqCpEE1QmQZbcZLi5A {
  NI len; tySequence__QqvaCqCpEE1QmQZbcZLi5A_Content* p;
};
struct tyObject_Table__toCaB3NxiVHPRVLgcez0Xg {
	tySequence__QqvaCqCpEE1QmQZbcZLi5A data;
	NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__bvRec9bo79ajqrJt3Bkg9c33w) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw k_p2);
struct tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw {
	tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ Sup;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* enforceVoidContext;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* voidType;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* module;
	tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* currentScope;
	tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* moduleScope;
	tySequence__AE2UIxl7EbPzzBnmYsjIcw imports;
	tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* topLevelScope;
	tyObject_TProcCon__ftBtv4UEhPouLts4uXXNLQ* p;
	tyArray__uJvLVbod8mnHGzJkQj89bWg intTypeCache;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* nilTypeCache;
	tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg* matchedConcept;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA friendModules;
	NI instCounter;
	NI* templInstCounter;
	NI inGenericContext;
	NI inStaticContext;
	NI inUnrolledContext;
	NI compilesContextId;
	NI compilesContextIdGenerator;
	NI inGenericInst;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA converters;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA patterns;
	tySequence__tsHRsYLyvTCPLlGRExqi7Q optionStack;
	tySequence__lAikaRQvUF0uwNAz0U4FFA libs;
	tyProc__Yik7hgYZHhPeLJ5RsXTPqg semConstExpr;
	tyProc__JIyBW5s9ba7hfYBnWxDVvgg semExpr;
	tyProc__JIyBW5s9ba7hfYBnWxDVvgg semExprWithType;
	tyProc__iXlRd9cBAN0CQpA5dkyhRvw semTryExpr;
	tyProc__Yik7hgYZHhPeLJ5RsXTPqg semTryConstExpr;
	tyProc__7FLV9alRQFu6LOhr9bksExQQ computeRequiresInit;
	tyProc__0qHBYUhlP28E2DV7mVNNAg hasUnresolvedArgs;
	tyProc__iXlRd9cBAN0CQpA5dkyhRvw semOperand;
	tyProc__1nD4dBuhjTAOzMZJo9bmgog semConstBoolExpr;
	tyProc__209aOewTLBT6nbWmyvOQFiw semOverloadedCall;
	tyProc__D9aXgBooMpgLrPTmha6q31w semTypeNode;
	tyProc__GbPSPD9bjvt0RIJnnVTczJA semInferredLambda;
	tyProc__iDJMP540ifFac3zJ49bj2cA semGenerateInstance;
	tyProc__gq9a76bauTeymgreaiTI9cmg instantiateOnlyProcType;
	tyProc__Gji0NjiFFDU49aJiF3QZF8A fitDefaultNode;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA includedFiles;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg pureEnumFields;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg userPragmas;
	tyObject_TCtx__FHLmhXedV9bg0OyLunsHRew* evalContext;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA unknownIdents;
	tySequence__4zAALtm0xUbRlYWQ2V8K7A generics;
	NI topStmts;
	NI lastGenericIdx;
	NI inParallelStmt;
	tyProc__UAj9bGJLVN9cwAsTcRZFyWmg instTypeBoundOp;
	tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* cache;
	tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg signatures;
	NimStringV2 recursiveDep;
	NIM_BOOL suggestionsMade;
	NIM_BOOL isAmbiguous;
	tySet_tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ features;
	NI inTypeContext;
	NI inConceptDecl;
	tySequence__9bffTLF0HkxjFCzZL8og4GA unusedImports;
	tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ exportIndirections;
	tyObject_Table__nBRoNCTSfpfbfAeK9bNW1qw importModuleMap;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA lastTLineInfo;
	tyObject_Table__g77QNejuRRKraNk8K2YkoA sideEffects;
	NI inUncheckedAssignSection;
	tyObject_Table__toCaB3NxiVHPRVLgcez0Xg importModuleLookup;
	tySequence__9ahcSjIErJohSBBFLwuF56Q skipTypes;
	NI inTypeofContext;
	tyProc__bvRec9bo79ajqrJt3Bkg9c33w semAsgnOpr;
};
typedef NU8 tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ;
typedef NU8 tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw;
typedef NU8 tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A;
struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content { NI cap; tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA* data[SEQ_DECL_SIZE]; };
struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content { NI cap; tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* data[SEQ_DECL_SIZE]; };
struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content { NI cap; tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* data[SEQ_DECL_SIZE]; };
typedef NU8 tyEnum_ImportMode__rHuf2PYQqUqEBlVu227wVQ;
struct tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* m;
	tyEnum_ImportMode__rHuf2PYQqUqEBlVu227wVQ mode;
union{
	struct {
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA imported;
} _mode_2;
	struct {
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA exceptSet;
} _mode_3;
};
};
struct tySequence__AE2UIxl7EbPzzBnmYsjIcw_Content { NI cap; tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw data[SEQ_DECL_SIZE]; };
struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content { NI cap; tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* data[SEQ_DECL_SIZE]; };
struct tySequence__tsHRsYLyvTCPLlGRExqi7Q_Content { NI cap; tyObject_TOptionEntry__KeABxBvAlGa1KroFfkcqAg* data[SEQ_DECL_SIZE]; };
struct tySequence__lAikaRQvUF0uwNAz0U4FFA_Content { NI cap; tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig* data[SEQ_DECL_SIZE]; };
struct tySequence__7OXYQ6bHRkhJpRaiS7kiwQ {
  NI len; tySequence__7OXYQ6bHRkhJpRaiS7kiwQ_Content* p;
};
struct tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA {
	NI counter;
	tySequence__7OXYQ6bHRkhJpRaiS7kiwQ data;
};
struct tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A {
	tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA topLayer;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* nextLayer;
	NI previousLen;
};
struct tyObject_TInstantiationPair__bS87nlCVAcAYxO9aJequmYw {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* genericSym;
	tyObject_TInstantiation__jr8MibvPn2sQBnO7XCoZRQ* inst;
};
struct tySequence__4zAALtm0xUbRlYWQ2V8K7A_Content { NI cap; tyObject_TInstantiationPair__bS87nlCVAcAYxO9aJequmYw data[SEQ_DECL_SIZE]; };
struct tyTuple__09aD69az7aYn14Gt61AHvLIA {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field0;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field1;
};
struct tySequence__9bffTLF0HkxjFCzZL8og4GA_Content { NI cap; tyTuple__09aD69az7aYn14Gt61AHvLIA data[SEQ_DECL_SIZE]; };
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
	NI Field0;
	NI Field1;
};
struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ {
	NI Field0;
	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ Field1;
};
struct tySequence__Bis5AbpONWcIRrPyPJS8Yw_Content { NI cap; tyTuple__NAaJgGVgNmlGoqmiWxdOHQ data[SEQ_DECL_SIZE]; };
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
	NI Field0;
	NI Field1;
	NI Field2;
};
struct tySequence__E8pi9b5QNahsURYzXMjh3qw_Content { NI cap; tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE]; };
struct tySequence__KYLoGmc5aaHsSDjEH1FTxQ {
  NI len; tySequence__KYLoGmc5aaHsSDjEH1FTxQ_Content* p;
};
struct tyTuple__CH9a39cWKma9c9c9cYqCyX1wBsw {
	NI Field0;
	NI Field1;
	tySequence__KYLoGmc5aaHsSDjEH1FTxQ Field2;
};
struct tySequence__3B6hFqG0Do0FxDvnNucL7w_Content { NI cap; tyTuple__CH9a39cWKma9c9c9cYqCyX1wBsw data[SEQ_DECL_SIZE]; };
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  NI len; tySequence__qwqHTkRvwhrRyENtudHQ7g_Content* p;
};
struct tyTuple__EbsafWGli8bW2GRJQ9apsjA {
	NI Field0;
	NI Field1;
	tySequence__qwqHTkRvwhrRyENtudHQ7g Field2;
};
struct tySequence__QqvaCqCpEE1QmQZbcZLi5A_Content { NI cap; tyTuple__EbsafWGli8bW2GRJQ9apsjA data[SEQ_DECL_SIZE]; };
struct tyObject_TIdPair__jFcUgE4X1tLOqan9b4YIIeg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* val;
};
struct tySequence__7OXYQ6bHRkhJpRaiS7kiwQ_Content { NI cap; tyObject_TIdPair__jFcUgE4X1tLOqan9b4YIIeg data[SEQ_DECL_SIZE]; };
struct tyTuple__ZUrTP7BFWWFkSv3xO9crp9aQ {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field0;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field1;
};
struct tySequence__KYLoGmc5aaHsSDjEH1FTxQ_Content { NI cap; tyTuple__ZUrTP7BFWWFkSv3xO9crp9aQ data[SEQ_DECL_SIZE]; };
struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content { NI cap; NI data[SEQ_DECL_SIZE]; };
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);
static N_INLINE(void, initIntSet__pureZcollectionsZintsets_u598)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* Result);
N_LIB_PRIVATE N_NIMCALL(void, initPackedSet__pureZcollectionsZintsets_u37)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* Result);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw, classifyViewTypeAux__typeallowed_u506)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__astyaml_u223)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* s_p0, NI key_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipModifier__ast_u5338)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3381)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**, X5BX5D___ast_u5281)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** s_p0, NI s_p0Len_0, NI i_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3378)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0);
static N_INLINE(NIM_BOOL, hasElementType__ast_u5660)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(void, combine__typeallowed_u479)(tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw* dest_p0, tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw b_p1);
N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw, classifyViewTypeNode__typeallowed_u509)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, lastSon__ast_u5208)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3255)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
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(void, eqdestroy___ast_u3252)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* dest_p0);
static N_INLINE(NI, safeLen__ast_u3197)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(NI, len__ast_u3190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, baseClass__ast_u5348)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZcollectionsZintsets_u230)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, typeAllowedAux__typeallowed_u24)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1, tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind_p2, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p3, tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw flags_p4);
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(void, eqwasMoved___ast_u3375)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0);
static N_INLINE(NIM_BOOL, isOutParam__ast_u7655)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elementType__ast_u5331)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(NIM_BOOL, isInlineIterator__ast_u7400)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, returnType__ast_u5354)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, last__ast_u5278)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, typeAllowedNode__typeallowed_u30)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind_p2, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p3, tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw flags_p4);
N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw, classifyViewType__typeallowed_u552)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw, directViewType__typeallowed_u556)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__FLm9aU7VXleJfAvJR1cpHXQ_2 = {
0x10, 0xa8, 0x00, 0x00, 0x00, 0x20, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__FLm9aU7VXleJfAvJR1cpHXQ_3 = {
0x10, 0xa8, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__FLm9aU7VXleJfAvJR1cpHXQ_4 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
extern NIM_BOOL nimInErrorMode__system_u4180;
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*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4180);
	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_: ;
}
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(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(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(void, combine__typeallowed_u479)(tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw* dest_p0, tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw b_p1) {
	switch ((*dest_p0)) {
	case ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0):
	case ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)2):
	{
		(*dest_p0) = b_p1;
	}
	break;
	case ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)1):
	{
		{
			if (!(b_p1 == ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)2))) goto LA5_;
			(*dest_p0) = b_p1;
		}
LA5_: ;
	}
	break;
	default: __builtin_unreachable();
	}
}
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;
}
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(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_NIMCALL(tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw, classifyViewTypeNode__typeallowed_u509)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw result;
NIM_BOOL oldNimErrFin3_;
NIM_BOOL oldNimErrFin8_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0;
	switch ((*n_p1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		result = classifyViewTypeAux__typeallowed_u506(marker_p0, (*n_p1).typField);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)85):
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = lastSon__ast_u5208(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
		result = classifyViewTypeNode__typeallowed_u509(marker_p0, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
		{
			LA3_:;
		}
		{
			oldNimErrFin3_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin3_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0);
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* child_1;
			child_1 = NIM_NIL;
			{
				NI i_1;
				NI colontmp_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_u3197(n_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
				i_2 = ((NI)0);
				{
					while (1) {
						tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw T12_;
						if (!(i_2 < colontmp_)) goto LA11;
						i_1 = i_2;
						eqcopy___ast_u3255(&child_1, (*n_p1)._kind_6.sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
						T12_ = (tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0;
						T12_ = classifyViewTypeNode__typeallowed_u509(marker_p0, child_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
						combine__typeallowed_u479((&result), T12_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
						{
							if (!(result == ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)2))) goto LA15_;
							eqdestroy___ast_u3252(child_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto LA7;
						}
LA15_: ;
						i_2 += ((NI)1);
					} LA11: ;
				}
			}
			{
				LA8_:;
			}
			{
				oldNimErrFin8_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(child_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin8_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA7: ;
	}
	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(tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw, classifyViewTypeAux__typeallowed_u506)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1) {
	tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw result;
NIM_BOOL oldNimErrFin9_;
NIM_BOOL oldNimErrFin18_;
NIM_BOOL oldNimErrFin24_;
NIM_BOOL oldNimErrFin46_;
NIM_BOOL oldNimErrFin37_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0;
	{
		tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym74__1;
		NIM_BOOL T3_;
		xX60gensym74__1 = (*t_p1).itemId;
		T3_ = (NIM_BOOL)0;
		T3_ = containsOrIncl__astyaml_u223(marker_p0, (NI)((NI)((NU32)(((NI) (xX60gensym74__1.module))) << (NU32)(((NI)20) & (32 - 1))) + ((NI) (xX60gensym74__1.item))));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		result = ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0);
		goto BeforeRet_;
	}
LA4_: ;
	switch ((*t_p1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	{
		result = ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)2);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48):
	{
		result = ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)1);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = skipModifier__ast_u5338(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		result = classifyViewTypeAux__typeallowed_u506(marker_p0, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		{
			LA9_:;
		}
		{
			oldNimErrFin9_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin9_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61):
	{
		{
			NIM_BOOL T15_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
			T15_ = (NIM_BOOL)0;
			T15_ = hasElementType__ast_u5660(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T15_) goto LA16_;
			colontmpD__2 = NIM_NIL;
			colontmpD__2 = skipModifier__ast_u5338(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
			result = classifyViewTypeAux__typeallowed_u506(marker_p0, colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
			{
				LA18_:;
			}
			{
				oldNimErrFin18_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin18_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA13_;
LA16_: ;
		{
			result = ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0);
		}
LA13_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
	{
		result = ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0);
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
			a_1 = NIM_NIL;
			{
				NI i_1;
				NI colontmp_;
				NI T26_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				T26_ = (*t_p1).sons.len;
				colontmp_ = T26_;
				i_2 = ((NI)0);
				{
					while (1) {
						tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw T29_;
						if (!(i_2 < colontmp_)) goto LA28;
						i_1 = i_2;
						eqcopy___ast_u3381(&a_1, (*t_p1).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
						T29_ = (tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0;
						T29_ = classifyViewTypeAux__typeallowed_u506(marker_p0, a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
						combine__typeallowed_u479((&result), T29_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
						{
							if (!(result == ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)2))) goto LA32_;
							eqdestroy___ast_u3378(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto LA23;
						}
LA32_: ;
						i_2 += ((NI)1);
					} LA28: ;
				}
			}
			{
				LA24_:;
			}
			{
				oldNimErrFin24_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin24_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA23: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		colontmpD__3 = NIM_NIL;
		result = ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0);
		{
			if (!!(((*t_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA40_;
			result = classifyViewTypeNode__typeallowed_u509(marker_p0, (*t_p1).n);
			if (NIM_UNLIKELY(*nimErr_)) goto LA37_;
		}
LA40_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
			tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw T47_;
			colontmpD__3 = baseClass__ast_u5348(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA37_;
			if (!!((colontmpD__3 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA44_;
			colontmpD__4 = NIM_NIL;
			colontmpD__4 = baseClass__ast_u5348(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
			T47_ = (tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0;
			T47_ = classifyViewTypeAux__typeallowed_u506(marker_p0, colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
			combine__typeallowed_u479((&result), T47_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
			{
				LA46_:;
			}
			{
				oldNimErrFin46_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA37_;
				*nimErr_ = oldNimErrFin46_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA37_;
		}
LA44_: ;
		{
			LA37_:;
		}
		{
			oldNimErrFin37_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin37_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw, classifyViewType__typeallowed_u552)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw result;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA marker_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0;
	nimZeroMem((void*)(&marker_1), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	initIntSet__pureZcollectionsZintsets_u598((&marker_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = classifyViewTypeAux__typeallowed_u506((&marker_1), t_p0);
	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;
}
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_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(NIM_BOOL, isInlineIterator__ast_u7400)(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).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25));
	if (!(T2_)) goto LA3_;
	T2_ = (((*typ_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)15)))&63U)))!=0);
LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = !(((*typ_p0).callConv == ((tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ)9)));
LA4_: ;
	result = T1_;
	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(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;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, typeAllowedNode__typeallowed_u30)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind_p2, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p3, tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw flags_p4) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL oldNimErrFin14_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		if (!!((n_p1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA3_;
		result = typeAllowedAux__typeallowed_u24(marker_p0, (*n_p1).typField, kind_p2, c_p3, flags_p4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA7_;
			switch ((*n_p1).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_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 = ((NI)0);
					{
						while (1) {
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* it_1;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T15_;
							if (!(i_2 < colontmp_)) goto LA13;
							it_1 = NIM_NIL;
							i_1 = i_2;
							eqcopy___ast_u3255(&it_1, (*n_p1)._kind_6.sons.p->data[i_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
							T15_ = NIM_NIL;
							T15_ = typeAllowedNode__typeallowed_u30(marker_p0, it_1, kind_p2, c_p3, flags_p4);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T15_); goto LA14_;}
							eqsink___ast_u3387(&result, T15_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
							{
								if (!!((result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA18_;
								eqdestroy___ast_u3252(it_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto LA11;
							}
LA18_: ;
							i_2 += ((NI)1);
							{
								LA14_:;
							}
							{
								oldNimErrFin14_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3252(it_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								*nimErr_ = oldNimErrFin14_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						} LA13: ;
					}
				} LA11: ;
			}
			break;
			}
		}
LA7_: ;
	}
	goto LA1_;
LA3_: ;
	{
		result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, typeAllowedAux__typeallowed_u24)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1, tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind_p2, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p3, tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw flags_p4) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
	tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw colontmpD_;
	tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw colontmpD__2;
	tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw flags_2;
NIM_BOOL oldNimErrFin46_;
NIM_BOOL oldNimErrFin105_;
NIM_BOOL oldNimErrFin123_;
NIM_BOOL oldNimErrFin92_;
NIM_BOOL oldNimErrFin171_;
NIM_BOOL oldNimErrFin193_;
NIM_BOOL oldNimErrFin212_;
NIM_BOOL oldNimErrFin224_;
NIM_BOOL oldNimErrFin239_;
NIM_BOOL oldNimErrFin229_;
NIM_BOOL oldNimErrFin253_;
NIM_BOOL oldNimErrFin263_;
NIM_BOOL oldNimErrFin258_;
NIM_BOOL oldNimErrFin283_;
NIM_BOOL oldNimErrFin274_;
NIM_BOOL oldNimErrFin301_;
NIM_BOOL oldNimErrFin306_;
NIM_BOOL oldNimErrFin311_;
NIM_BOOL oldNimErrFin326_;
NIM_BOOL oldNimErrFin316_;
NIM_BOOL oldNimErrFin341_;
NIM_BOOL oldNimErrFin374_;
NIM_BOOL oldNimErrFin367_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	t_1 = NIM_NIL;
	nimZeroMem((void*)(&colontmpD_), sizeof(tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw));
	nimZeroMem((void*)(&colontmpD__2), sizeof(tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw));
	result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
	{
		if (!(typ_p1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA4_;
		result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	{
		tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym8__1;
		NIM_BOOL T8_;
		xX60gensym8__1 = (*typ_p1).itemId;
		T8_ = (NIM_BOOL)0;
		T8_ = containsOrIncl__astyaml_u223(marker_p0, (NI)((NI)((NU32)(((NI) (xX60gensym8__1.module))) << (NU32)(((NI)20) & (32 - 1))) + ((NI) (xX60gensym8__1.item))));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T8_) goto LA9_;
		result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA9_: ;
	t_1 = skipTypes__ast_u5379(typ_p1, TM__FLm9aU7VXleJfAvJR1cpHXQ_2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63))) goto LA13_;
		colontmpD_ = flags_p4;
		flags_2 = colontmpD_;
	}
	goto LA11_;
LA13_: ;
	{
		colontmpD__2 = (flags_p4 & ~ 1024);
		flags_2 = colontmpD__2;
	}
LA11_: ;
	switch ((*t_1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
	{
		{
			NIM_BOOL T19_;
			T19_ = (NIM_BOOL)0;
			T19_ = (kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)13) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)10));
			if (!(T19_)) goto LA20_;
			T19_ = !((((*c_p3).features &((NU32)1<<((NU)((((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)12)))&31U)))!=0));
LA20_: ;
			if (!T19_) goto LA21_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA17_;
LA21_: ;
		{
			if (!((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)4)))&15U)))!=0)) goto LA24_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA17_;
LA24_: ;
		{
			NIM_BOOL T27_;
			NIM_BOOL T29_;
			NIM_BOOL T30_;
			NIM_BOOL T31_;
			NIM_BOOL T35_;
			tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw T37_;
			T27_ = (NIM_BOOL)0;
			T27_ = ((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47));
			if (!(T27_)) goto LA28_;
			T29_ = (NIM_BOOL)0;
			T30_ = (NIM_BOOL)0;
			T31_ = (NIM_BOOL)0;
			T31_ = !((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)11)));
			if (T31_) goto LA32_;
			T31_ = ((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)1)))&15U)))!=0);
LA32_: ;
			T30_ = T31_;
			if (!(T30_)) goto LA33_;
			T30_ = !((((*c_p3).features &((NU32)1<<((NU)((((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)12)))&31U)))!=0));
LA33_: ;
			T29_ = T30_;
			if (T29_) goto LA34_;
			T35_ = (NIM_BOOL)0;
			T35_ = (kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3));
			if (!(T35_)) goto LA36_;
			T37_ = 0;
			T35_ = ((259 & flags_2) == T37_);
LA36_: ;
			T29_ = T35_;
LA34_: ;
			T27_ = T29_;
LA28_: ;
			if (!T27_) goto LA38_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA17_;
LA38_: ;
		{
			NIM_BOOL T41_;
			T41_ = (NIM_BOOL)0;
			T41_ = isOutParam__ast_u7655(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!(T41_)) goto LA42_;
			T41_ = !((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3)));
LA42_: ;
			if (!T41_) goto LA43_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA17_;
LA43_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t2_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
			t2_1 = NIM_NIL;
			colontmpD__3 = NIM_NIL;
			colontmpD__3 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
			t2_1 = skipTypes__ast_u5379(colontmpD__3, TM__FLm9aU7VXleJfAvJR1cpHXQ_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
			switch ((*t2_1).kind) {
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
			{
				{
					if (!!(((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)2)))&15U)))!=0))) goto LA50_;
					eqsink___ast_u3387(&result, t2_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
					eqwasMoved___ast_u3375(&t2_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
				}
LA50_: ;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
			{
				{
					NIM_BOOL T55_;
					NIM_BOOL T56_;
					T55_ = (NIM_BOOL)0;
					T56_ = (NIM_BOOL)0;
					T56_ = !((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3)));
					if (!(T56_)) goto LA57_;
					T56_ = !((((*c_p3).features &((NU32)1<<((NU)((((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)12)))&31U)))!=0));
LA57_: ;
					T55_ = T56_;
					if (T55_) goto LA58_;
					T55_ = ((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)4)))&15U)))!=0);
LA58_: ;
					if (!T55_) goto LA59_;
					eqsink___ast_u3387(&result, t_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
					eqwasMoved___ast_u3375(&t_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
				}
				goto LA53_;
LA59_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T62_;
					T62_ = NIM_NIL;
					T62_ = typeAllowedAux__typeallowed_u24(marker_p0, (*t2_1).sons.p->data[((NI)0)], kind_p2, c_p3, (flags_2 | 16));
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T62_); goto LA46_;}
					eqsink___ast_u3387(&result, T62_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
				}
LA53_: ;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
			{
				{
					NIM_BOOL T66_;
					T66_ = (NIM_BOOL)0;
					T66_ = !((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3)));
					if (!(T66_)) goto LA67_;
					T66_ = !((((*c_p3).features &((NU32)1<<((NU)((((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)12)))&31U)))!=0));
LA67_: ;
					if (!T66_) goto LA68_;
					eqsink___ast_u3387(&result, t_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
					eqwasMoved___ast_u3375(&t_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
				}
				goto LA64_;
LA68_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T71_;
					T71_ = NIM_NIL;
					T71_ = typeAllowedAux__typeallowed_u24(marker_p0, (*t2_1).sons.p->data[((NI)0)], kind_p2, c_p3, flags_2);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T71_); goto LA46_;}
					eqsink___ast_u3387(&result, T71_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
				}
LA64_: ;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
			{
				eqsink___ast_u3387(&result, t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
				eqwasMoved___ast_u3375(&t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
			}
			break;
			default:
			{
				{
					NIM_BOOL T76_;
					T76_ = (NIM_BOOL)0;
					T76_ = !((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)11)));
					if (!(T76_)) goto LA77_;
					T76_ = !((((*c_p3).features &((NU32)1<<((NU)((((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)12)))&31U)))!=0));
LA77_: ;
					if (!T76_) goto LA78_;
					eqsink___ast_u3387(&result, t_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
					eqwasMoved___ast_u3375(&t_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
				}
				goto LA74_;
LA78_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T81_;
					T81_ = NIM_NIL;
					T81_ = typeAllowedAux__typeallowed_u24(marker_p0, t2_1, kind_p2, c_p3, flags_2);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T81_); goto LA46_;}
					eqsink___ast_u3387(&result, T81_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
				}
LA74_: ;
			}
			break;
			}
			{
				LA46_:;
			}
			{
				oldNimErrFin46_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(t2_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin46_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA17_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
	{
		{
			NIM_BOOL T87_;
			T87_ = (NIM_BOOL)0;
			T87_ = (kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)9) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)10));
			if (!(T87_)) goto LA88_;
			T87_ = ((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)6)))&15U)))!=0);
LA88_: ;
			if (!T87_) goto LA89_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA85_;
LA89_: ;
		{
			tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw colontmpD__4;
			tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw colontmpD__5;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
			tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw innerFlags_1;
			tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw f_1;
			nimZeroMem((void*)(&colontmpD__4), sizeof(tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw));
			nimZeroMem((void*)(&colontmpD__5), sizeof(tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw));
			colontmpD__6 = NIM_NIL;
			{
				NIM_BOOL T95_;
				T95_ = (NIM_BOOL)0;
				T95_ = isInlineIterator__ast_u7400(typ_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA92_;
				if (!(T95_)) goto LA96_;
				T95_ = (kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)9) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)10) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)11));
LA96_: ;
				if (!T95_) goto LA97_;
				eqcopy___ast_u3381(&result, t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA92_;
			}
LA97_: ;
			innerFlags_1 = (flags_2 & ~ 19);
			{
				if (!(kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)13))) goto LA101_;
				colontmpD__4 = (innerFlags_1 | 32);
				f_1 = colontmpD__4;
			}
			goto LA99_;
LA101_: ;
			{
				colontmpD__5 = innerFlags_1;
				f_1 = colontmpD__5;
			}
LA99_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
				NI __1;
				a_1 = NIM_NIL;
				__1 = (NI)0;
				{
					NI i_1;
					NI colontmp_;
					NI T107_;
					NI i_2;
					i_1 = (NI)0;
					colontmp_ = (NI)0;
					T107_ = (*t_1).sons.len;
					colontmp_ = T107_;
					i_2 = ((NI)1);
					{
						while (1) {
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T114_;
							if (!(i_2 < colontmp_)) goto LA109;
							i_1 = i_2;
							__1 = i_1;
							eqcopy___ast_u3381(&a_1, (*t_1).sons.p->data[i_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
							{
								if (!!((result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA112_;
								eqdestroy___ast_u3378(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA92_;
								goto LA104;
							}
LA112_: ;
							T114_ = NIM_NIL;
							T114_ = typeAllowedAux__typeallowed_u24(marker_p0, a_1, ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3), c_p3, f_1);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T114_); goto LA105_;}
							eqsink___ast_u3387(&result, T114_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
							i_2 += ((NI)1);
						} LA109: ;
					}
				}
				{
					LA105_:;
				}
				{
					oldNimErrFin105_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA92_;
					*nimErr_ = oldNimErrFin105_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA92_;
			} LA104: ;
			{
				NIM_BOOL T119_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T124_;
				T119_ = (NIM_BOOL)0;
				T119_ = (result == 0);
				if (!(T119_)) goto LA120_;
				colontmpD__6 = returnType__ast_u5354(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA92_;
				T119_ = !((colontmpD__6 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
LA120_: ;
				if (!T119_) goto LA121_;
				colontmpD__7 = NIM_NIL;
				colontmpD__7 = returnType__ast_u5354(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA123_;
				T124_ = NIM_NIL;
				T124_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__7, ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)11), c_p3, innerFlags_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T124_); goto LA123_;}
				eqsink___ast_u3387(&result, T124_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA123_;
				{
					LA123_:;
				}
				{
					oldNimErrFin123_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__7);
					if (NIM_UNLIKELY(*nimErr_)) goto LA92_;
					*nimErr_ = oldNimErrFin123_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA92_;
			}
LA121_: ;
			{
				LA92_:;
			}
			{
				oldNimErrFin92_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__6);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin92_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA85_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	{
		{
			NIM_BOOL T132_;
			T132_ = (NIM_BOOL)0;
			T132_ = (kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)9) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)10));
			if (!(T132_)) goto LA133_;
			T132_ = ((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)7)))&15U)))!=0);
LA133_: ;
			if (!T132_) goto LA134_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA130_;
LA134_: ;
		{
			eqsink___ast_u3387(&result, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA130_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7):
	{
		{
			NIM_BOOL T140_;
			T140_ = (NIM_BOOL)0;
			T140_ = !((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)11)));
			if (T140_) goto LA141_;
			T140_ = ((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)5)))&15U)))!=0);
LA141_: ;
			if (!T140_) goto LA142_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA142_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)64):
	{
		{
			NIM_BOOL T147_;
			T147_ = (NIM_BOOL)0;
			T147_ = !((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3)));
			if (T147_) goto LA148_;
			T147_ = ((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)5)))&15U)))!=0);
LA148_: ;
			if (!T147_) goto LA149_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA149_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	{
		{
			if (!!((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3)))) goto LA154_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA154_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63):
	{
		{
			if (!!(((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)10)))&15U)))!=0))) goto LA159_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA159_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62):
	{
		{
			NIM_BOOL T164_;
			T164_ = (NIM_BOOL)0;
			T164_ = (((*t_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)25)))&63U)))!=0);
			if (T164_) goto LA165_;
			T164_ = ((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)3)))&15U)))!=0);
LA165_: ;
			if (!T164_) goto LA166_;
		}
		goto LA162_;
LA166_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__8;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T172_;
			if (!(((*t_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)10)))&63U)))!=0)) goto LA169_;
			colontmpD__8 = NIM_NIL;
			colontmpD__8 = last__ast_u5278(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA171_;
			T172_ = NIM_NIL;
			T172_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__8, kind_p2, c_p3, flags_2);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T172_); goto LA171_;}
			eqsink___ast_u3387(&result, T172_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA171_;
			{
				LA171_:;
			}
			{
				oldNimErrFin171_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__8);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin171_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA162_;
LA169_: ;
		{
			if (!!((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)11)))) goto LA176_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA162_;
LA176_: ;
LA162_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)30):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61):
	{
		eqsink___ast_u3387(&result, t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqwasMoved___ast_u3375(&t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
	{
		{
			NIM_BOOL T182_;
			T182_ = (NIM_BOOL)0;
			T182_ = !((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)10)));
			if (!(T182_)) goto LA183_;
			T182_ = !((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3)));
LA183_: ;
			if (!T182_) goto LA184_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA184_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)1):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)26):
	{
		eqsink___ast_u3387(&result, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15):
	{
		{
			if (!!((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3)))) goto LA190_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA190_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__9;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T194_;
		colontmpD__9 = NIM_NIL;
		colontmpD__9 = skipModifier__ast_u5338(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA193_;
		T194_ = NIM_NIL;
		T194_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__9, kind_p2, c_p3, flags_2);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T194_); goto LA193_;}
		eqsink___ast_u3387(&result, T194_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA193_;
		{
			LA193_:;
		}
		{
			oldNimErrFin193_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__9);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin193_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__10;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__11;
		colontmpD__10 = NIM_NIL;
		colontmpD__11 = NIM_NIL;
		{
			colontmpD__10 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			colontmpD__11 = skipTypes__ast_u5379(colontmpD__10, TM__FLm9aU7VXleJfAvJR1cpHXQ_3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!!(((*colontmpD__11).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2) || (*colontmpD__11).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14) || (*colontmpD__11).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) && (*colontmpD__11).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)39) || (*colontmpD__11).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) && (*colontmpD__11).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44) || (*colontmpD__11).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20)))) goto LA200_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA200_: ;
		eqdestroy___ast_u3378(colontmpD__11);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD__10);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
	{
		{
			NIM_BOOL T205_;
			NIM_BOOL T206_;
			T205_ = (NIM_BOOL)0;
			T206_ = (NIM_BOOL)0;
			T206_ = !((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3)));
			if (T206_) goto LA207_;
			T206_ = ((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)4)))&15U)))!=0);
LA207_: ;
			T205_ = T206_;
			if (!(T205_)) goto LA208_;
			T205_ = !((((*c_p3).features &((NU32)1<<((NU)((((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)12)))&31U)))!=0));
LA208_: ;
			if (!T205_) goto LA209_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA203_;
LA209_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__12;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T213_;
			colontmpD__12 = NIM_NIL;
			colontmpD__12 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA212_;
			T213_ = NIM_NIL;
			T213_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__12, kind_p2, c_p3, (flags_2 | 16));
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T213_); goto LA212_;}
			eqsink___ast_u3387(&result, T213_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA212_;
			{
				LA212_:;
			}
			{
				oldNimErrFin212_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__12);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin212_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA203_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48):
	{
		{
			NIM_BOOL T219_;
			T219_ = (NIM_BOOL)0;
			T219_ = !((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3)));
			if (T219_) goto LA220_;
			T219_ = ((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)4)))&15U)))!=0);
LA220_: ;
			if (!T219_) goto LA221_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA217_;
LA221_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__13;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T225_;
			colontmpD__13 = NIM_NIL;
			colontmpD__13 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA224_;
			T225_ = NIM_NIL;
			T225_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__13, kind_p2, c_p3, (flags_2 | 16));
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T225_); goto LA224_;}
			eqsink___ast_u3387(&result, T225_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA224_;
			{
				LA224_:;
			}
			{
				oldNimErrFin224_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__13);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin224_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA217_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__14;
		colontmpD__14 = NIM_NIL;
		{
			NIM_BOOL T232_;
			NIM_BOOL T233_;
			T232_ = (NIM_BOOL)0;
			T233_ = (NIM_BOOL)0;
			T233_ = !((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3)));
			if (T233_) goto LA234_;
			T233_ = ((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)4)))&15U)))!=0);
LA234_: ;
			T232_ = T233_;
			if (T232_) goto LA235_;
			colontmpD__14 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA229_;
			T232_ = ((*colontmpD__14).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46) || (*colontmpD__14).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47) || (*colontmpD__14).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23));
LA235_: ;
			if (!T232_) goto LA236_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA229_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA229_;
		}
		goto LA230_;
LA236_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__15;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T240_;
			colontmpD__15 = NIM_NIL;
			colontmpD__15 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA239_;
			T240_ = NIM_NIL;
			T240_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__15, kind_p2, c_p3, flags_2);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T240_); goto LA239_;}
			eqsink___ast_u3387(&result, T240_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA239_;
			{
				LA239_:;
			}
			{
				oldNimErrFin239_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__15);
				if (NIM_UNLIKELY(*nimErr_)) goto LA229_;
				*nimErr_ = oldNimErrFin239_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA229_;
		}
LA230_: ;
		{
			LA229_:;
		}
		{
			oldNimErrFin229_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__14);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin229_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
	{
		{
			NIM_BOOL T248_;
			T248_ = (NIM_BOOL)0;
			T248_ = !((kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3)));
			if (!(T248_)) goto LA249_;
			T248_ = !(((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)2)))&15U)))!=0));
LA249_: ;
			if (!T248_) goto LA250_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA246_;
LA250_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__16;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T254_;
			colontmpD__16 = NIM_NIL;
			colontmpD__16 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA253_;
			T254_ = NIM_NIL;
			T254_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__16, kind_p2, c_p3, (flags_2 & ~ 4));
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T254_); goto LA253_;}
			eqsink___ast_u3387(&result, T254_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA253_;
			{
				LA253_:;
			}
			{
				oldNimErrFin253_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__16);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin253_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA246_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__17;
		colontmpD__17 = NIM_NIL;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__18;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T264_;
			colontmpD__17 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA258_;
			if (!!(((*colontmpD__17).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3)))) goto LA261_;
			colontmpD__18 = NIM_NIL;
			colontmpD__18 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA263_;
			T264_ = NIM_NIL;
			T264_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__18, kind_p2, c_p3, (flags_2 | 4));
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T264_); goto LA263_;}
			eqsink___ast_u3387(&result, T264_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA263_;
			{
				LA263_:;
			}
			{
				oldNimErrFin263_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__18);
				if (NIM_UNLIKELY(*nimErr_)) goto LA258_;
				*nimErr_ = oldNimErrFin263_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA258_;
		}
		goto LA259_;
LA261_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T270_;
			if (!(kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)9))) goto LA268_;
			T270_ = NIM_NIL;
			T270_ = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T270_); goto LA258_;}
			eqsink___ast_u3387(&result, T270_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA258_;
		}
		goto LA259_;
LA268_: ;
LA259_: ;
		{
			LA258_:;
		}
		{
			oldNimErrFin258_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__17);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin258_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__19;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__20;
		colontmpD__19 = NIM_NIL;
		colontmpD__20 = NIM_NIL;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T279_;
			colontmpD__19 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA274_;
			if (!((*colontmpD__19).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA277_;
			T279_ = NIM_NIL;
			T279_ = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T279_); goto LA274_;}
			eqsink___ast_u3387(&result, T279_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA274_;
		}
		goto LA275_;
LA277_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__21;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T284_;
			colontmpD__20 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA274_;
			if (!!(((*colontmpD__20).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3)))) goto LA281_;
			colontmpD__21 = NIM_NIL;
			colontmpD__21 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA283_;
			T284_ = NIM_NIL;
			T284_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__21, kind_p2, c_p3, flags_2);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T284_); goto LA283_;}
			eqsink___ast_u3387(&result, T284_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA283_;
			{
				LA283_:;
			}
			{
				oldNimErrFin283_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__21);
				if (NIM_UNLIKELY(*nimErr_)) goto LA274_;
				*nimErr_ = oldNimErrFin283_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA274_;
		}
		goto LA275_;
LA281_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T290_;
			if (!(kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)9))) goto LA288_;
			T290_ = NIM_NIL;
			T290_ = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T290_); goto LA274_;}
			eqsink___ast_u3387(&result, T290_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA274_;
		}
		goto LA275_;
LA288_: ;
LA275_: ;
		{
			LA274_:;
		}
		{
			oldNimErrFin274_ = *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_ = oldNimErrFin274_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
	{
		{
			NIM_BOOL T296_;
			T296_ = (NIM_BOOL)0;
			T296_ = (kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)10));
			if (!(T296_)) goto LA297_;
			T296_ = !(((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)9)))&15U)))!=0));
LA297_: ;
			if (!T296_) goto LA298_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA294_;
LA298_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__22;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T302_;
			colontmpD__22 = NIM_NIL;
			colontmpD__22 = elementType__ast_u5331(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA301_;
			T302_ = NIM_NIL;
			T302_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__22, kind_p2, c_p3, (flags_2 | 4));
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T302_); goto LA301_;}
			eqsink___ast_u3387(&result, T302_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA301_;
			{
				LA301_:;
			}
			{
				oldNimErrFin301_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__22);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin301_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA294_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__23;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T307_;
		colontmpD__23 = NIM_NIL;
		colontmpD__23 = elementType__ast_u5331(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA306_;
		T307_ = NIM_NIL;
		T307_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__23, kind_p2, c_p3, (flags_2 | 4));
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T307_); goto LA306_;}
		eqsink___ast_u3387(&result, T307_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA306_;
		{
			LA306_:;
		}
		{
			oldNimErrFin306_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__23);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin306_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__24;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T312_;
		colontmpD__24 = NIM_NIL;
		colontmpD__24 = elementType__ast_u5331(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA311_;
		T312_ = NIM_NIL;
		T312_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__24, kind_p2, c_p3, flags_2);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T312_); goto LA311_;}
		eqsink___ast_u3387(&result, T312_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA311_;
		{
			LA311_:;
		}
		{
			oldNimErrFin311_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__24);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin311_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__25;
		colontmpD__25 = NIM_NIL;
		{
			NIM_BOOL T319_;
			NIM_BOOL T320_;
			T319_ = (NIM_BOOL)0;
			T320_ = (NIM_BOOL)0;
			T320_ = (kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)13) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)10));
			if (!(T320_)) goto LA321_;
			colontmpD__25 = baseClass__ast_u5348(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA316_;
			T320_ = !((colontmpD__25 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
LA321_: ;
			T319_ = T320_;
			if (!(T319_)) goto LA322_;
			T319_ = !(((flags_2 &((NU16)1<<((NU)((((tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw)9)))&15U)))!=0));
LA322_: ;
			if (!T319_) goto LA323_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA316_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA316_;
		}
		goto LA317_;
LA323_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__26;
			tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw flags_3;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T327_;
			colontmpD__26 = NIM_NIL;
			flags_3 = (flags_2 | 1026);
			colontmpD__26 = baseClass__ast_u5348(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA326_;
			T327_ = NIM_NIL;
			T327_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__26, kind_p2, c_p3, flags_3);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T327_); goto LA326_;}
			eqsink___ast_u3387(&result, T327_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA326_;
			{
				NIM_BOOL T330_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T334_;
				T330_ = (NIM_BOOL)0;
				T330_ = (result == 0);
				if (!(T330_)) goto LA331_;
				T330_ = !(((*t_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA331_: ;
				if (!T330_) goto LA332_;
				T334_ = NIM_NIL;
				T334_ = typeAllowedNode__typeallowed_u30(marker_p0, (*t_1).n, kind_p2, c_p3, flags_3);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T334_); goto LA326_;}
				eqsink___ast_u3387(&result, T334_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA326_;
			}
LA332_: ;
			{
				LA326_:;
			}
			{
				oldNimErrFin326_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__26);
				if (NIM_UNLIKELY(*nimErr_)) goto LA316_;
				*nimErr_ = oldNimErrFin326_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA316_;
		}
LA317_: ;
		{
			LA316_:;
		}
		{
			oldNimErrFin316_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__25);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin316_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
	{
		tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw flags_4;
		flags_4 = (flags_2 | 1025);
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_2;
			a_2 = NIM_NIL;
			{
				NI i_3;
				NI colontmp__2;
				NI T343_;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				T343_ = (*t_1).sons.len;
				colontmp__2 = T343_;
				i_4 = ((NI)0);
				{
					while (1) {
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T346_;
						if (!(i_4 < colontmp__2)) goto LA345;
						i_3 = i_4;
						eqcopy___ast_u3381(&a_2, (*t_1).sons.p->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA341_;
						T346_ = NIM_NIL;
						T346_ = typeAllowedAux__typeallowed_u24(marker_p0, a_2, kind_p2, c_p3, flags_4);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T346_); goto LA341_;}
						eqsink___ast_u3387(&result, T346_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA341_;
						{
							if (!!((result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA349_;
							eqdestroy___ast_u3378(a_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							goto LA340;
						}
LA349_: ;
						i_4 += ((NI)1);
					} LA345: ;
				}
			}
			{
				LA341_:;
			}
			{
				oldNimErrFin341_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(a_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin341_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		} LA340: ;
		{
			NIM_BOOL T355_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T359_;
			T355_ = (NIM_BOOL)0;
			T355_ = (result == 0);
			if (!(T355_)) goto LA356_;
			T355_ = !(((*t_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA356_: ;
			if (!T355_) goto LA357_;
			T359_ = NIM_NIL;
			T359_ = typeAllowedNode__typeallowed_u30(marker_p0, (*t_1).n, kind_p2, c_p3, flags_4);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T359_); goto LA1_;}
			eqsink___ast_u3387(&result, T359_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA357_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3):
	{
		{
			if (!(kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8) || kind_p2 == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)9))) goto LA363_;
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA363_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50):
	{
		eqsink___ast_u3387(&result, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__27;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__28;
		colontmpD__27 = NIM_NIL;
		colontmpD__28 = NIM_NIL;
		{
			NIM_BOOL T370_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__29;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T375_;
			T370_ = (NIM_BOOL)0;
			T370_ = hasElementType__ast_u5660(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA367_;
			if (!(T370_)) goto LA371_;
			colontmpD__27 = skipModifier__ast_u5338(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA367_;
			colontmpD__28 = skipTypes__ast_u5379(colontmpD__27, TM__FLm9aU7VXleJfAvJR1cpHXQ_4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA367_;
			T370_ = ((*colontmpD__28).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*colontmpD__28).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21) || (*colontmpD__28).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25));
LA371_: ;
			if (!T370_) goto LA372_;
			colontmpD__29 = NIM_NIL;
			colontmpD__29 = skipModifier__ast_u5338(t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA374_;
			T375_ = NIM_NIL;
			T375_ = typeAllowedAux__typeallowed_u24(marker_p0, colontmpD__29, kind_p2, c_p3, (flags_2 | 4));
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T375_); goto LA374_;}
			eqsink___ast_u3387(&result, T375_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA374_;
			{
				LA374_:;
			}
			{
				oldNimErrFin374_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__29);
				if (NIM_UNLIKELY(*nimErr_)) goto LA367_;
				*nimErr_ = oldNimErrFin374_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA367_;
		}
		goto LA368_;
LA372_: ;
		{
			eqsink___ast_u3387(&result, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA367_;
			eqwasMoved___ast_u3375(&t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA367_;
		}
LA368_: ;
		{
			LA367_:;
		}
		{
			oldNimErrFin367_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__28);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__27);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin367_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	default: __builtin_unreachable();
	}
	{
		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(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, typeAllowed__typeallowed_u465)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind_p1, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p2, tySet_tyEnum_TTypeAllowedFlag__foQVJo6zcVTiG7TNsJ9bicw flags_p3) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA marker_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	nimZeroMem((void*)(&marker_1), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	initIntSet__pureZcollectionsZintsets_u598((&marker_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = typeAllowedAux__typeallowed_u24((&marker_1), t_p0, kind_p1, c_p2, flags_p3);
	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, requiresInit__typeallowed_u563)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A T2_;
	tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw T4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = 0;
	T1_ = !((((*t_p0).flags & 917504) == T2_));
	if (T1_) goto LA3_;
	T4_ = (tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0;
	T4_ = classifyViewType__typeallowed_u552(t_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = !((T4_ == ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0)));
LA3_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw, directViewType__typeallowed_u556)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0;
	switch ((*t_p0).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	{
		result = ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)2);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
	{
		result = ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)1);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = skipModifier__ast_u5338(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = directViewType__typeallowed_u556(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = ((tyEnum_ViewTypeKind__29b0TWM75qypjUa6azRUxIw)0);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
