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

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
typedef struct tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw;
typedef struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg;
typedef struct tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A;
typedef struct tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw;
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_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA;
typedef struct tySequence__G9cHmkmNmy6ZlkFfXcex3Hw tySequence__G9cHmkmNmy6ZlkFfXcex3Hw;
typedef struct tySequence__G9cHmkmNmy6ZlkFfXcex3Hw_Content tySequence__G9cHmkmNmy6ZlkFfXcex3Hw_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_TLib__sVuuRvQkiYNOUiPRZhmZig tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig;
typedef struct tyTuple__JqV0huqZNAHtnE3agKOyZg tyTuple__JqV0huqZNAHtnE3agKOyZg;
typedef struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA tySequence__ZCZaCk14bTmSb6LMW9aWPVA;
typedef struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content;
typedef struct tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A;
typedef struct tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w;
typedef struct tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg;
typedef struct tyTuple__N4J9cV4JZGem3ljqqj5rT0Q tyTuple__N4J9cV4JZGem3ljqqj5rT0Q;
typedef struct tyObject_CellSeq__IHvIqxITv1yMjJj8lwLrhg tyObject_CellSeq__IHvIqxITv1yMjJj8lwLrhg;
typedef struct tyTuple__DTRsWi2kgTewbhN2TT5mbA tyTuple__DTRsWi2kgTewbhN2TT5mbA;
typedef struct tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww;
typedef struct tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ;
typedef struct tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug;
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__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_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_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_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tySequence__TfHJycarvNts8E4mVG4Mfg tySequence__TfHJycarvNts8E4mVG4Mfg;
typedef struct tySequence__TfHJycarvNts8E4mVG4Mfg_Content tySequence__TfHJycarvNts8E4mVG4Mfg_Content;
typedef struct tyObject_PackedModuleGraph__vzv9a6xTiz616FotDgUeo9bg tyObject_PackedModuleGraph__vzv9a6xTiz616FotDgUeo9bg;
typedef struct tySequence__5reviU45axUMPQgL9aoENrg tySequence__5reviU45axUMPQgL9aoENrg;
typedef struct tySequence__5reviU45axUMPQgL9aoENrg_Content tySequence__5reviU45axUMPQgL9aoENrg_Content;
typedef struct tySequence__dtr79aXjHrgHuH79ac55I2aw tySequence__dtr79aXjHrgHuH79ac55I2aw;
typedef struct tySequence__dtr79aXjHrgHuH79ac55I2aw_Content tySequence__dtr79aXjHrgHuH79ac55I2aw_Content;
typedef struct tyObject_Table__EBJpp1hXwvFl9cyekUv4qHg tyObject_Table__EBJpp1hXwvFl9cyekUv4qHg;
typedef struct tySequence__8y0Gi4GwtXi2wk2mK1IOzw tySequence__8y0Gi4GwtXi2wk2mK1IOzw;
typedef struct tySequence__8y0Gi4GwtXi2wk2mK1IOzw_Content tySequence__8y0Gi4GwtXi2wk2mK1IOzw_Content;
typedef struct tyObject_Table__nn0jq9adRZXGGj9assM9c9bR0w tyObject_Table__nn0jq9adRZXGGj9assM9c9bR0w;
typedef struct tySequence__C2ivDnhTZ6IxAdui1rfuqw tySequence__C2ivDnhTZ6IxAdui1rfuqw;
typedef struct tySequence__C2ivDnhTZ6IxAdui1rfuqw_Content tySequence__C2ivDnhTZ6IxAdui1rfuqw_Content;
typedef struct tyObject_Table__ChMwcRY3QzpOEBWbGAfvcA tyObject_Table__ChMwcRY3QzpOEBWbGAfvcA;
typedef struct tySequence__3vEEVfBECLN6NIRA3FIp5g tySequence__3vEEVfBECLN6NIRA3FIp5g;
typedef struct tySequence__3vEEVfBECLN6NIRA3FIp5g_Content tySequence__3vEEVfBECLN6NIRA3FIp5g_Content;
typedef struct tyObject_Table__tEqt8LkShErhjQ9acvGyE7g tyObject_Table__tEqt8LkShErhjQ9acvGyE7g;
typedef struct tySequence__9aSa87aKMiolq9a7z3kC0jTw tySequence__9aSa87aKMiolq9a7z3kC0jTw;
typedef struct tySequence__9aSa87aKMiolq9a7z3kC0jTw_Content tySequence__9aSa87aKMiolq9a7z3kC0jTw_Content;
typedef struct tyObject_Table__QS2Z9cQjmvkp1aaFGq4ippw tyObject_Table__QS2Z9cQjmvkp1aaFGq4ippw;
typedef struct tySequence__N589c2UsUgqqOITU2JfIuAQ tySequence__N589c2UsUgqqOITU2JfIuAQ;
typedef struct tySequence__N589c2UsUgqqOITU2JfIuAQ_Content tySequence__N589c2UsUgqqOITU2JfIuAQ_Content;
typedef struct tyObject_Table__bnfVX2VJ9aUicVujDM0GIhw tyObject_Table__bnfVX2VJ9aUicVujDM0GIhw;
typedef struct tySequence__GYDW6wGgERshoSd16jJ3eQ tySequence__GYDW6wGgERshoSd16jJ3eQ;
typedef struct tySequence__GYDW6wGgERshoSd16jJ3eQ_Content tySequence__GYDW6wGgERshoSd16jJ3eQ_Content;
typedef struct tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content tySequence__7lEisrXlQEzwtUKW5pzRCw_Content;
typedef struct tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ;
typedef struct tyObject_Table__79b4rr6WWQqgRr9b4NH4UF9cw tyObject_Table__79b4rr6WWQqgRr9b4NH4UF9cw;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg_Content tySequence__fdmz6VkIf1ewwrssKYqRFg_Content;
typedef struct tyObject_Table__AC9bec2JdoOuC3xQePGWgmA tyObject_Table__AC9bec2JdoOuC3xQePGWgmA;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg_Content tySequence__kxu4GK0onha2t9bo86mdVAg_Content;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA_Content tySequence__48JTohSgTy339bRxHzUD8KA_Content;
typedef struct tyObject_Table__bHTcQUCehDW9clHfFZXI7lQ tyObject_Table__bHTcQUCehDW9clHfFZXI7lQ;
typedef struct tySequence__fz0REU1l0nYmKHXgMLRrIg tySequence__fz0REU1l0nYmKHXgMLRrIg;
typedef struct tySequence__fz0REU1l0nYmKHXgMLRrIg_Content tySequence__fz0REU1l0nYmKHXgMLRrIg_Content;
typedef struct tyObject_Table__w2vCG1OPnHmNolvQVT168g tyObject_Table__w2vCG1OPnHmNolvQVT168g;
typedef struct tySequence__Ip9aV1IKO2gVdheNOM31DCQ tySequence__Ip9aV1IKO2gVdheNOM31DCQ;
typedef struct tySequence__Ip9aV1IKO2gVdheNOM31DCQ_Content tySequence__Ip9aV1IKO2gVdheNOM31DCQ_Content;
typedef struct tySequence__kHjIdgrpmuSn9cUIIKpSiDg tySequence__kHjIdgrpmuSn9cUIIKpSiDg;
typedef struct tySequence__kHjIdgrpmuSn9cUIIKpSiDg_Content tySequence__kHjIdgrpmuSn9cUIIKpSiDg_Content;
typedef struct tyObject_CountTable__qvMelb9coODdwoghoAPc9c9aA tyObject_CountTable__qvMelb9coODdwoghoAPc9c9aA;
typedef struct tySequence__Wd0Vle6gxRCPPoSlNEvfTA tySequence__Wd0Vle6gxRCPPoSlNEvfTA;
typedef struct tySequence__Wd0Vle6gxRCPPoSlNEvfTA_Content tySequence__Wd0Vle6gxRCPPoSlNEvfTA_Content;
typedef struct tyObject_Table__fZyCWkMwhdvr3pauCNDaag tyObject_Table__fZyCWkMwhdvr3pauCNDaag;
typedef struct tySequence__T7nNEWoEbKBa0G5Htr45Xw tySequence__T7nNEWoEbKBa0G5Htr45Xw;
typedef struct tySequence__T7nNEWoEbKBa0G5Htr45Xw_Content tySequence__T7nNEWoEbKBa0G5Htr45Xw_Content;
typedef struct tyObject_Table__5vmBY49areSIlgIs4A1LLKQ tyObject_Table__5vmBY49areSIlgIs4A1LLKQ;
typedef struct tySequence__q9cHvMDDxYU1hSCdG4YwIhA tySequence__q9cHvMDDxYU1hSCdG4YwIhA;
typedef struct tySequence__q9cHvMDDxYU1hSCdG4YwIhA_Content tySequence__q9cHvMDDxYU1hSCdG4YwIhA_Content;
typedef struct tySequence__olFOFaYzOJN9aV5BWqK4b9bA tySequence__olFOFaYzOJN9aV5BWqK4b9bA;
typedef struct tySequence__olFOFaYzOJN9aV5BWqK4b9bA_Content tySequence__olFOFaYzOJN9aV5BWqK4b9bA_Content;
typedef struct tyObject_Table__9bmd0cvHWe1s4FTDn5BPmfw tyObject_Table__9bmd0cvHWe1s4FTDn5BPmfw;
typedef struct tySequence__vJcM7B74R2U5db9cxyXT9coA tySequence__vJcM7B74R2U5db9cxyXT9coA;
typedef struct tySequence__vJcM7B74R2U5db9cxyXT9coA_Content tySequence__vJcM7B74R2U5db9cxyXT9coA_Content;
typedef struct tyObject_Table__GhjCMuklnRqwdX9bZo9bCoNg tyObject_Table__GhjCMuklnRqwdX9bZo9bCoNg;
typedef struct tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg;
typedef struct tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg_Content tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg_Content;
typedef struct tyObject_Table__pI3mJh4Ap2XujSCfcSeUvQ tyObject_Table__pI3mJh4Ap2XujSCfcSeUvQ;
typedef struct tySequence__R9c39btP6BwOBBPnbaNUtMQg tySequence__R9c39btP6BwOBBPnbaNUtMQg;
typedef struct tySequence__R9c39btP6BwOBBPnbaNUtMQg_Content tySequence__R9c39btP6BwOBBPnbaNUtMQg_Content;
typedef struct tyObject_Table__MsPmCuYz1KcEw6lr7P9cGkw tyObject_Table__MsPmCuYz1KcEw6lr7P9cGkw;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA_Content tySequence__squ9b9bUH4OLHf6cEMrt6hVA_Content;
typedef struct tyObject_Table__1HJsK7ponJ4Vb1lJgVFVTQ tyObject_Table__1HJsK7ponJ4Vb1lJgVFVTQ;
typedef struct tySequence__3nALyQgqjnfK2Qjc6ny2Uw tySequence__3nALyQgqjnfK2Qjc6ny2Uw;
typedef struct tySequence__3nALyQgqjnfK2Qjc6ny2Uw_Content tySequence__3nALyQgqjnfK2Qjc6ny2Uw_Content;
typedef struct tySequence__WbW5Q8QVks0bQpUJSGmuVg tySequence__WbW5Q8QVks0bQpUJSGmuVg;
typedef struct tySequence__WbW5Q8QVks0bQpUJSGmuVg_Content tySequence__WbW5Q8QVks0bQpUJSGmuVg_Content;
typedef struct tyObject_Operators__yrAfvKhiysDamJlcGNgVfQ tyObject_Operators__yrAfvKhiysDamJlcGNgVfQ;
typedef struct tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg;
typedef struct tyObject_TIdPair__jFcUgE4X1tLOqan9b4YIIeg tyObject_TIdPair__jFcUgE4X1tLOqan9b4YIIeg;
typedef struct tyTuple__9ay7GjiPeMMFnmoYwk84apw tyTuple__9ay7GjiPeMMFnmoYwk84apw;
typedef struct tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw;
typedef struct tyObject_TOptionEntry__KeABxBvAlGa1KroFfkcqAg tyObject_TOptionEntry__KeABxBvAlGa1KroFfkcqAg;
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_Iface__j1FkQxwEAKMJy1o9bap1xow tyObject_Iface__j1FkQxwEAKMJy1o9bap1xow;
typedef struct tyObject_LoadedModule__7NEKRkz5hkiOxQy5guqIHA tyObject_LoadedModule__7NEKRkz5hkiOxQy5guqIHA;
typedef struct tyObject_PackedModule__sRHd9aQ2ZMII76xRsfAbE9aQ tyObject_PackedModule__sRHd9aQ2ZMII76xRsfAbE9aQ;
typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA_Content tySequence__PXIzfWocnrafGz5p3CP5LA_Content;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content;
typedef struct tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w;
typedef struct tySequence__OxRbUT0qZaZN5UjnqQjGPA tySequence__OxRbUT0qZaZN5UjnqQjGPA;
typedef struct tySequence__OxRbUT0qZaZN5UjnqQjGPA_Content tySequence__OxRbUT0qZaZN5UjnqQjGPA_Content;
typedef struct tySequence__ezS5mGPcRfBURJyMgqYVzA tySequence__ezS5mGPcRfBURJyMgqYVzA;
typedef struct tySequence__ezS5mGPcRfBURJyMgqYVzA_Content tySequence__ezS5mGPcRfBURJyMgqYVzA_Content;
typedef struct tySequence__wW7xkohjuUKO9aMaB0nt9cqA tySequence__wW7xkohjuUKO9aMaB0nt9cqA;
typedef struct tySequence__wW7xkohjuUKO9aMaB0nt9cqA_Content tySequence__wW7xkohjuUKO9aMaB0nt9cqA_Content;
typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
typedef struct tySequence__b89aLriiJnVTD186H6zNIgg_Content tySequence__b89aLriiJnVTD186H6zNIgg_Content;
typedef struct tySequence__hIPTk9aFdaMMVAOzEbnPyqg tySequence__hIPTk9aFdaMMVAOzEbnPyqg;
typedef struct tySequence__hIPTk9aFdaMMVAOzEbnPyqg_Content tySequence__hIPTk9aFdaMMVAOzEbnPyqg_Content;
typedef struct tySequence__YYy1721YAuPF0ajBYHd8Wg tySequence__YYy1721YAuPF0ajBYHd8Wg;
typedef struct tySequence__YYy1721YAuPF0ajBYHd8Wg_Content tySequence__YYy1721YAuPF0ajBYHd8Wg_Content;
typedef struct tySequence__UODJbvzmu39c3Ho9cqhSk9agQ tySequence__UODJbvzmu39c3Ho9cqhSk9agQ;
typedef struct tySequence__UODJbvzmu39c3Ho9cqhSk9agQ_Content tySequence__UODJbvzmu39c3Ho9cqhSk9agQ_Content;
typedef struct tySequence__F1qNdU7m0Czu7Y2q0eksXw tySequence__F1qNdU7m0Czu7Y2q0eksXw;
typedef struct tySequence__F1qNdU7m0Czu7Y2q0eksXw_Content tySequence__F1qNdU7m0Czu7Y2q0eksXw_Content;
typedef struct tySequence__r3Kz9breImOXyFFoJ29aBM8Q tySequence__r3Kz9breImOXyFFoJ29aBM8Q;
typedef struct tySequence__r3Kz9breImOXyFFoJ29aBM8Q_Content tySequence__r3Kz9breImOXyFFoJ29aBM8Q_Content;
typedef struct tySequence__qBes3XzcQQ9cyia9bRwnmbJw tySequence__qBes3XzcQQ9cyia9bRwnmbJw;
typedef struct tySequence__qBes3XzcQQ9cyia9bRwnmbJw_Content tySequence__qBes3XzcQQ9cyia9bRwnmbJw_Content;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct tyObject_OrderedTable__vodBW9bS41CI2hVVsJJ8qiw tyObject_OrderedTable__vodBW9bS41CI2hVVsJJ8qiw;
typedef struct tySequence__Vl1abU3gfp0RqCb1KKfmDA tySequence__Vl1abU3gfp0RqCb1KKfmDA;
typedef struct tySequence__Vl1abU3gfp0RqCb1KKfmDA_Content tySequence__Vl1abU3gfp0RqCb1KKfmDA_Content;
typedef struct tyObject_OrderedTable__y5tq9cRly5CxS2mQPchEHcw tyObject_OrderedTable__y5tq9cRly5CxS2mQPchEHcw;
typedef struct tySequence__qyyNkmlc4fzOzelC8spUkQ tySequence__qyyNkmlc4fzOzelC8spUkQ;
typedef struct tySequence__qyyNkmlc4fzOzelC8spUkQ_Content tySequence__qyyNkmlc4fzOzelC8spUkQ_Content;
typedef struct tyObject_BiTable__KR9c7QZguPO3OKZOIcphgcA tyObject_BiTable__KR9c7QZguPO3OKZOIcphgcA;
typedef struct tyObject_BiTable__9aUXwPoJbNPqj9a249c0iSmlg tyObject_BiTable__9aUXwPoJbNPqj9a249c0iSmlg;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ_Content tySequence__IHUFRsFxZNv7YydiUO2esQ_Content;
typedef struct tyObject_LineInfoManager__TTy646Kfh1cVyXU9aSMasUQ tyObject_LineInfoManager__TTy646Kfh1cVyXU9aSMasUQ;
typedef struct tySequence__orxtl6CusdjXleqrxi67gw tySequence__orxtl6CusdjXleqrxi67gw;
typedef struct tySequence__orxtl6CusdjXleqrxi67gw_Content tySequence__orxtl6CusdjXleqrxi67gw_Content;
typedef struct tyObject_OrderedTable__h8mIUVGY8LJXF9cakgvB9bqQ tyObject_OrderedTable__h8mIUVGY8LJXF9cakgvB9bqQ;
typedef struct tySequence__K0j67V58u5FW0dCC534FQw tySequence__K0j67V58u5FW0dCC534FQw;
typedef struct tySequence__K0j67V58u5FW0dCC534FQw_Content tySequence__K0j67V58u5FW0dCC534FQw_Content;
typedef struct tyObject_OrderedTable__DED9c7j9bI3Lh5w4GQakK8yQ tyObject_OrderedTable__DED9c7j9bI3Lh5w4GQakK8yQ;
typedef struct tySequence__UE4b6iUkm1b3zTPamTTkDw tySequence__UE4b6iUkm1b3zTPamTTkDw;
typedef struct tySequence__UE4b6iUkm1b3zTPamTTkDw_Content tySequence__UE4b6iUkm1b3zTPamTTkDw_Content;
typedef struct tyObject_Table__BH9cy1hZ1rZZoGkNCEN1uvg tyObject_Table__BH9cy1hZ1rZZoGkNCEN1uvg;
typedef struct tySequence__FmsTQiIcS9arxHxs3QY48vA tySequence__FmsTQiIcS9arxHxs3QY48vA;
typedef struct tySequence__FmsTQiIcS9arxHxs3QY48vA_Content tySequence__FmsTQiIcS9arxHxs3QY48vA_Content;
typedef struct tyObject_PackedEncoder__FGa18gE2dyYyuq9ckHprjTQ tyObject_PackedEncoder__FGa18gE2dyYyuq9ckHprjTQ;
typedef struct tyObject_Table__uaQEKxLZNO5fpFluyxnhTg tyObject_Table__uaQEKxLZNO5fpFluyxnhTg;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ_Content tySequence__9cnx3zXnWzeclW8Ko4oUgAQ_Content;
typedef struct tyTuple__7TXOq9czx9cn1FWKG5gXNK8Q tyTuple__7TXOq9czx9cn1FWKG5gXNK8Q;
typedef struct tySequence__vb3AGHvMJTxdOSSwMmBmTQ tySequence__vb3AGHvMJTxdOSSwMmBmTQ;
typedef struct tySequence__vb3AGHvMJTxdOSSwMmBmTQ_Content tySequence__vb3AGHvMJTxdOSSwMmBmTQ_Content;
typedef struct tyTuple__F1mMODXmKFMNQ5rLCtcv0Q tyTuple__F1mMODXmKFMNQ5rLCtcv0Q;
typedef struct tySequence__apM9bRAO19cVjhWlxqd1PGeA tySequence__apM9bRAO19cVjhWlxqd1PGeA;
typedef struct tySequence__apM9bRAO19cVjhWlxqd1PGeA_Content tySequence__apM9bRAO19cVjhWlxqd1PGeA_Content;
typedef struct tyTuple__vHfXSpEC1R9b9cKgfFB9a58gw tyTuple__vHfXSpEC1R9b9cKgfFB9a58gw;
typedef struct tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA;
typedef struct tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ;
typedef struct tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig;
typedef struct tyTuple__4iq9bD09amB7Ah0r9cBB0nSPQ tyTuple__4iq9bD09amB7Ah0r9cBB0nSPQ;
typedef struct tySequence__9bW2eTK9b7vXE70Sx5VPH1mw tySequence__9bW2eTK9b7vXE70Sx5VPH1mw;
typedef struct tySequence__9bW2eTK9b7vXE70Sx5VPH1mw_Content tySequence__9bW2eTK9b7vXE70Sx5VPH1mw_Content;
typedef struct tyTuple__bnJwOH0eJlAwCAMbr1inhw tyTuple__bnJwOH0eJlAwCAMbr1inhw;
typedef struct tyTuple__YG7h1OUHzgfgTeH9cl0U0dw tyTuple__YG7h1OUHzgfgTeH9cl0U0dw;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__tG5yYi8DnD7bl00aT9cgctQ tyTuple__tG5yYi8DnD7bl00aT9cgctQ;
typedef struct tyObject_SuggestFileSymbolDatabase__o0ahEzaLn5a7TdNqH4OVqQ tyObject_SuggestFileSymbolDatabase__o0ahEzaLn5a7TdNqH4OVqQ;
typedef struct tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg;
typedef struct tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg_Content tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg_Content;
typedef struct tySequence__yUWoZehF86MIc40opFgacw tySequence__yUWoZehF86MIc40opFgacw;
typedef struct tySequence__yUWoZehF86MIc40opFgacw_Content tySequence__yUWoZehF86MIc40opFgacw_Content;
typedef struct tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw;
typedef struct tyTuple__gnRkA1L4XiR4uByriyHW8Q tyTuple__gnRkA1L4XiR4uByriyHW8Q;
typedef struct tySequence__nSO1ltijM4vhc0UrrXKEqA tySequence__nSO1ltijM4vhc0UrrXKEqA;
typedef struct tySequence__nSO1ltijM4vhc0UrrXKEqA_Content tySequence__nSO1ltijM4vhc0UrrXKEqA_Content;
typedef struct tyTuple__CvjVmQeIfivirDme2r5MRw tyTuple__CvjVmQeIfivirDme2r5MRw;
typedef struct tyTuple__2QDyOgS51ZMPO0W1pWCY6g tyTuple__2QDyOgS51ZMPO0W1pWCY6g;
typedef struct tyTuple__UbCNQED4XJUgxOgPHJUcAQ tyTuple__UbCNQED4XJUgxOgPHJUcAQ;
typedef struct tySequence__juxPMVNF1FoR2ltzeQu8NQ tySequence__juxPMVNF1FoR2ltzeQu8NQ;
typedef struct tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content;
typedef struct tyTuple__zExIg9bDTcVf2FHROUpzoow tyTuple__zExIg9bDTcVf2FHROUpzoow;
typedef struct tyTuple__XrHNJHOzS3O7uwF9bvCySiA tyTuple__XrHNJHOzS3O7uwF9bvCySiA;
typedef struct tyTuple__EdLY4EJQ37VFgbAn5g5rXQ tyTuple__EdLY4EJQ37VFgbAn5g5rXQ;
typedef struct tyTuple__OtlgAx3kBps9cOSMNDZSzBA tyTuple__OtlgAx3kBps9cOSMNDZSzBA;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__RFOJ4fF7D9bpvmh9birH1JhQ tyTuple__RFOJ4fF7D9bpvmh9birH1JhQ;
typedef struct tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw;
typedef struct tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q;
typedef struct tyTuple__O3g9a8zTXSX36ljWponcAoA tyTuple__O3g9a8zTXSX36ljWponcAoA;
typedef struct tyTuple__ZUrTP7BFWWFkSv3xO9crp9aQ tyTuple__ZUrTP7BFWWFkSv3xO9crp9aQ;
typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
typedef struct tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w;
typedef struct tyTuple__48iPM3yLBKU5nyEuYwJvuQ tyTuple__48iPM3yLBKU5nyEuYwJvuQ;
typedef struct tyTuple__R3ddFrA0G9buJY57Qhf9cTpg tyTuple__R3ddFrA0G9buJY57Qhf9cTpg;
typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
typedef struct tyTuple__7rmdAMLZ8fDd79brQn2ixZA tyTuple__7rmdAMLZ8fDd79brQn2ixZA;
typedef struct tyTuple__qPXRCRNQuZLLKto7CIIEzw tyTuple__qPXRCRNQuZLLKto7CIIEzw;
typedef struct tyObject_PackedInstantiation__C3FSePJFY8gUIMObsjT2dg tyObject_PackedInstantiation__C3FSePJFY8gUIMObsjT2dg;
typedef struct tyTuple__6kG8KAxm9aXPdLdlxcxqJJw tyTuple__6kG8KAxm9aXPdLdlxcxqJJw;
typedef struct tyTuple__TRK7rrwoha9bbDAdPWsqJMw tyTuple__TRK7rrwoha9bbDAdPWsqJMw;
typedef struct tyTuple__V1VWX9bHapuzCjpMfFfys5Q tyTuple__V1VWX9bHapuzCjpMfFfys5Q;
typedef struct tyObject_PackedSym__KKnx6w8Cc9aaVsaPOpaqxbw tyObject_PackedSym__KKnx6w8Cc9aaVsaPOpaqxbw;
typedef struct tyObject_PackedLib__EpwVLk0Fuc5Q9agKLMWedbg tyObject_PackedLib__EpwVLk0Fuc5Q9agKLMWedbg;
typedef struct tyTuple__anemVmHCFglLFt6LiEhFvg tyTuple__anemVmHCFglLFt6LiEhFvg;
typedef struct tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ;
typedef struct tyTuple__MaWaKZwaGUqCXKsSK12rVg tyTuple__MaWaKZwaGUqCXKsSK12rVg;
typedef struct tyTuple__nL9cBxaIV4ZA9b9ceY79coA5eA tyTuple__nL9cBxaIV4ZA9b9ceY79coA5eA;
typedef struct tyTuple__1xWeGeoNoZxaLhTUDDWYyA tyTuple__1xWeGeoNoZxaLhTUDDWYyA;
typedef struct tyTuple__MZVSn3SE3XUBJOaMu7ofRQ tyTuple__MZVSn3SE3XUBJOaMu7ofRQ;
typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
typedef struct tyObject_LazyType__dsEGDq9cOhnzsRvTUTwwwuA tyObject_LazyType__dsEGDq9cOhnzsRvTUTwwwuA;
typedef struct tyObject_LazyInstantiation__n72c7MnOoHWBy9c9akgwGqEA tyObject_LazyInstantiation__n72c7MnOoHWBy9c9akgwGqEA;
typedef struct tySequence__YxH9cgSorHRI8ZPzHf47NNQ tySequence__YxH9cgSorHRI8ZPzHf47NNQ;
typedef struct tySequence__YxH9cgSorHRI8ZPzHf47NNQ_Content tySequence__YxH9cgSorHRI8ZPzHf47NNQ_Content;
typedef struct tyTuple__lGHLhAAUpxgfrnQkIzNrMw tyTuple__lGHLhAAUpxgfrnQkIzNrMw;
typedef struct tyObject_TinyLineInfo__qW2GTIPjeOQ42q9c2MPWLLA tyObject_TinyLineInfo__qW2GTIPjeOQ42q9c2MPWLLA;
typedef struct tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA;
typedef struct tyTuple__V6P73hvHy70PBBwharKjig tyTuple__V6P73hvHy70PBBwharKjig;
typedef NU8 tySet_tyEnum_MatchFlags__te9cp1iI7j4FnZSmB5ytuQw;
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 tySequence__G9cHmkmNmy6ZlkFfXcex3Hw {
  NI len; tySequence__G9cHmkmNmy6ZlkFfXcex3Hw_Content* p;
};
struct tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA {
	tySequence__G9cHmkmNmy6ZlkFfXcex3Hw data;
	NI counter;
};
typedef NU16 tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg;
struct tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw {
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A bindings;
	tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA marker;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* potentialImplementation;
	tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg magic;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concpt;
	tySet_tyEnum_MatchFlags__te9cp1iI7j4FnZSmB5ytuQw flags;
};
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;
};
typedef NU8 tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA;
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;
};
};
struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA {
	NI id;
	NimStringV2 s;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* next;
	NI h;
};
typedef NU8 tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
typedef NU64 tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
typedef NU32 tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ;
struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA itemId;
	tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind;
union{
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* gcUnsafetyReason;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* transformedBody;
} _kind_1;
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* guard;
	NI bitsize;
	NI alignment;
} _kind_2;
};
	tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg magic;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* name;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* ownerField;
	tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg flags;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* ast;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	NI position;
	NI32 offset;
	NI32 disamb;
	tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw loc;
	tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig* annex;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* constraint;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* instantiatedFrom;
};
typedef NU8 tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A;
typedef NU8 tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg[9];
struct tyTuple__JqV0huqZNAHtnE3agKOyZg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
};
typedef NU32 tySet_tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA {
  NI len; tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content* p;
};
typedef NU8 tyEnum_MatchFlags__te9cp1iI7j4FnZSmB5ytuQw;
typedef NU16 tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ;
struct TNimTypeV2 {
	void* destructor;
	NI size;
	NI16 align;
	NI16 depth;
	NU32* display;
	void* traceImpl;
	void* typeInfoV1;
	NI flags;
	void* vTable[SEQ_DECL_SIZE];
};
struct RootObj {
	TNimTypeV2* m_type;
};
struct tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw {
	RootObj Sup;
	NI colonstate_;
	tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* colonenvP1_;
	NI i2;
	NI colontmp3_;
	NI i4;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* i5;
};
struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A {
	NI rc;
	NI rootIdx;
};
struct tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg {
	NI len;
	NI cap;
	tyTuple__N4J9cV4JZGem3ljqqj5rT0Q* d;
};
struct tyObject_CellSeq__IHvIqxITv1yMjJj8lwLrhg {
	NI len;
	NI cap;
	tyTuple__DTRsWi2kgTewbhN2TT5mbA* d;
};
struct tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w {
	tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg traceStack;
	tyObject_CellSeq__IHvIqxITv1yMjJj8lwLrhg toFree;
	NI freed;
	NI touched;
	NI edges;
	NI rcSum;
	NIM_BOOL keepThreshold;
};
struct tyTuple__N4J9cV4JZGem3ljqqj5rT0Q {
	void** Field0;
	TNimTypeV2* Field1;
};
typedef struct {
N_NIMCALL_PTR(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, ClP_0) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, void* ClE_0);
void* ClE_0;
} tyProc__MPRzYOiRtpy059b8263P7bQ;
typedef N_CLOSURE_PTR(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, TM__yT8oP4IKFRSvia7t9bb5q3Q_5) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
typedef N_CLOSURE_PTR(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, TM__yT8oP4IKFRSvia7t9bb5q3Q_6) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
typedef N_CLOSURE_PTR(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, TM__yT8oP4IKFRSvia7t9bb5q3Q_7) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
typedef N_CLOSURE_PTR(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, TM__yT8oP4IKFRSvia7t9bb5q3Q_8) (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
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__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 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 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_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;
};
struct tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww {
	NI depthLevel;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg symbols;
	tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* parent;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA allowPrivateAccess;
	NI optionStackLen;
};
typedef NU8 tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA;
typedef NU8 tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w;
struct tySequence__TfHJycarvNts8E4mVG4Mfg {
  NI len; tySequence__TfHJycarvNts8E4mVG4Mfg_Content* p;
};
struct tySequence__5reviU45axUMPQgL9aoENrg {
  NI len; tySequence__5reviU45axUMPQgL9aoENrg_Content* p;
};
struct tyObject_PackedModuleGraph__vzv9a6xTiz616FotDgUeo9bg {
	tySequence__5reviU45axUMPQgL9aoENrg pm;
};
struct tySequence__dtr79aXjHrgHuH79ac55I2aw {
  NI len; tySequence__dtr79aXjHrgHuH79ac55I2aw_Content* p;
};
struct tySequence__8y0Gi4GwtXi2wk2mK1IOzw {
  NI len; tySequence__8y0Gi4GwtXi2wk2mK1IOzw_Content* p;
};
struct tyObject_Table__EBJpp1hXwvFl9cyekUv4qHg {
	tySequence__8y0Gi4GwtXi2wk2mK1IOzw data;
	NI counter;
};
struct tySequence__C2ivDnhTZ6IxAdui1rfuqw {
  NI len; tySequence__C2ivDnhTZ6IxAdui1rfuqw_Content* p;
};
struct tyObject_Table__nn0jq9adRZXGGj9assM9c9bR0w {
	tySequence__C2ivDnhTZ6IxAdui1rfuqw data;
	NI counter;
};
struct tySequence__3vEEVfBECLN6NIRA3FIp5g {
  NI len; tySequence__3vEEVfBECLN6NIRA3FIp5g_Content* p;
};
struct tyObject_Table__ChMwcRY3QzpOEBWbGAfvcA {
	tySequence__3vEEVfBECLN6NIRA3FIp5g data;
	NI counter;
};
typedef tyObject_Table__ChMwcRY3QzpOEBWbGAfvcA tyArray__HTPiakF26bUQGH9bgtmrtkA[7];
struct tySequence__9aSa87aKMiolq9a7z3kC0jTw {
  NI len; tySequence__9aSa87aKMiolq9a7z3kC0jTw_Content* p;
};
struct tyObject_Table__tEqt8LkShErhjQ9acvGyE7g {
	tySequence__9aSa87aKMiolq9a7z3kC0jTw data;
	NI counter;
};
struct tySequence__N589c2UsUgqqOITU2JfIuAQ {
  NI len; tySequence__N589c2UsUgqqOITU2JfIuAQ_Content* p;
};
struct tyObject_Table__QS2Z9cQjmvkp1aaFGq4ippw {
	tySequence__N589c2UsUgqqOITU2JfIuAQ data;
	NI counter;
};
struct tySequence__GYDW6wGgERshoSd16jJ3eQ {
  NI len; tySequence__GYDW6wGgERshoSd16jJ3eQ_Content* p;
};
struct tyObject_Table__bnfVX2VJ9aUicVujDM0GIhw {
	tySequence__GYDW6wGgERshoSd16jJ3eQ data;
	NI counter;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  NI len; tySequence__7lEisrXlQEzwtUKW5pzRCw_Content* p;
};
struct tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A {
	tySequence__7lEisrXlQEzwtUKW5pzRCw data;
	NI counter;
};
typedef NU8 tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw;
typedef NU8 tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg;
typedef NU8 tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA;
typedef NU64 tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A;
struct tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ {
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw backend;
	tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg selectedGC;
	tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA cCompiler;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A globalOptions;
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
  NI len; tySequence__fdmz6VkIf1ewwrssKYqRFg_Content* p;
};
struct tyObject_Table__79b4rr6WWQqgRr9b4NH4UF9cw {
	tySequence__fdmz6VkIf1ewwrssKYqRFg data;
	NI counter;
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg {
  NI len; tySequence__kxu4GK0onha2t9bo86mdVAg_Content* p;
};
struct tyObject_Table__AC9bec2JdoOuC3xQePGWgmA {
	tySequence__kxu4GK0onha2t9bo86mdVAg data;
	NI counter;
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  NI len; tySequence__48JTohSgTy339bRxHzUD8KA_Content* p;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
struct tySequence__fz0REU1l0nYmKHXgMLRrIg {
  NI len; tySequence__fz0REU1l0nYmKHXgMLRrIg_Content* p;
};
struct tyObject_Table__bHTcQUCehDW9clHfFZXI7lQ {
	tySequence__fz0REU1l0nYmKHXgMLRrIg data;
	NI counter;
};
struct tySequence__Ip9aV1IKO2gVdheNOM31DCQ {
  NI len; tySequence__Ip9aV1IKO2gVdheNOM31DCQ_Content* p;
};
struct tyObject_Table__w2vCG1OPnHmNolvQVT168g {
	tySequence__Ip9aV1IKO2gVdheNOM31DCQ data;
	NI counter;
};
struct tySequence__kHjIdgrpmuSn9cUIIKpSiDg {
  NI len; tySequence__kHjIdgrpmuSn9cUIIKpSiDg_Content* p;
};
struct tySequence__Wd0Vle6gxRCPPoSlNEvfTA {
  NI len; tySequence__Wd0Vle6gxRCPPoSlNEvfTA_Content* p;
};
struct tyObject_CountTable__qvMelb9coODdwoghoAPc9c9aA {
	tySequence__Wd0Vle6gxRCPPoSlNEvfTA data;
	NI counter;
	NIM_BOOL isSorted;
};
struct tySequence__T7nNEWoEbKBa0G5Htr45Xw {
  NI len; tySequence__T7nNEWoEbKBa0G5Htr45Xw_Content* p;
};
struct tyObject_Table__fZyCWkMwhdvr3pauCNDaag {
	tySequence__T7nNEWoEbKBa0G5Htr45Xw data;
	NI counter;
};
struct tySequence__q9cHvMDDxYU1hSCdG4YwIhA {
  NI len; tySequence__q9cHvMDDxYU1hSCdG4YwIhA_Content* p;
};
struct tyObject_Table__5vmBY49areSIlgIs4A1LLKQ {
	tySequence__q9cHvMDDxYU1hSCdG4YwIhA data;
	NI counter;
};
struct tySequence__olFOFaYzOJN9aV5BWqK4b9bA {
  NI len; tySequence__olFOFaYzOJN9aV5BWqK4b9bA_Content* p;
};
typedef tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* tyArray__EOkbZZXacNOZHC8p7xc7hw[65];
struct tySequence__vJcM7B74R2U5db9cxyXT9coA {
  NI len; tySequence__vJcM7B74R2U5db9cxyXT9coA_Content* p;
};
struct tyObject_Table__9bmd0cvHWe1s4FTDn5BPmfw {
	tySequence__vJcM7B74R2U5db9cxyXT9coA data;
	NI counter;
};
struct tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg {
  NI len; tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg_Content* p;
};
struct tyObject_Table__GhjCMuklnRqwdX9bZo9bCoNg {
	tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg data;
	NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, tyProc__QieBhPPkGvcmpFg89a4ftcA) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* m_p1, NI32 fileIdx_p2);
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__F2ahyGAjs3aNLJYEXzu07g) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* m_p1, NI32 fileIdx_p2);
struct tySequence__R9c39btP6BwOBBPnbaNUtMQg {
  NI len; tySequence__R9c39btP6BwOBBPnbaNUtMQg_Content* p;
};
struct tyObject_Table__pI3mJh4Ap2XujSCfcSeUvQ {
	tySequence__R9c39btP6BwOBBPnbaNUtMQg data;
	NI counter;
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  NI len; tySequence__squ9b9bUH4OLHf6cEMrt6hVA_Content* p;
};
struct tyObject_Table__MsPmCuYz1KcEw6lr7P9cGkw {
	tySequence__squ9b9bUH4OLHf6cEMrt6hVA data;
	NI counter;
};
struct tySequence__3nALyQgqjnfK2Qjc6ny2Uw {
  NI len; tySequence__3nALyQgqjnfK2Qjc6ny2Uw_Content* p;
};
struct tyObject_Table__1HJsK7ponJ4Vb1lJgVFVTQ {
	tySequence__3nALyQgqjnfK2Qjc6ny2Uw data;
	NI counter;
};
struct tySequence__WbW5Q8QVks0bQpUJSGmuVg {
  NI len; tySequence__WbW5Q8QVks0bQpUJSGmuVg_Content* p;
};
typedef NU8 tyEnum_PipelinePass__kO50VlNfBJZtrNuD4VL9aTg;
typedef N_NIMCALL_PTR(void, tyProc__c9a5q9aZQWYYOu1vHoRoq9bVQ) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p2);
typedef N_NIMCALL_PTR(void, tyProc__kj3TYePLaHBuXxhRznQQNQ) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* body_p2);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__D3Q9bYoPIpHZVLfEIxpBssA) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p2);
struct tyObject_Operators__yrAfvKhiysDamJlcGNgVfQ {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opNot;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opContains;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opLe;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opLt;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opAnd;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opOr;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opIsNil;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opEq;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opAdd;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opSub;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opMul;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opDiv;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opLen;
};
struct tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw {
	tySequence__TfHJycarvNts8E4mVG4Mfg ifaces;
	tyObject_PackedModuleGraph__vzv9a6xTiz616FotDgUeo9bg packed_0;
	tySequence__dtr79aXjHrgHuH79ac55I2aw encoders;
	tyObject_Table__EBJpp1hXwvFl9cyekUv4qHg typeInstCache;
	tyObject_Table__nn0jq9adRZXGGj9assM9c9bR0w procInstCache;
	tyArray__HTPiakF26bUQGH9bgtmrtkA attachedOps;
	tyObject_Table__tEqt8LkShErhjQ9acvGyE7g methodsPerGenericType;
	tyObject_Table__QS2Z9cQjmvkp1aaFGq4ippw memberProcsPerType;
	tyObject_Table__bnfVX2VJ9aUicVujDM0GIhw initializersPerType;
	tyObject_Table__ChMwcRY3QzpOEBWbGAfvcA enumToStringProcs;
	tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A emittedTypeInfo;
	tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ startupPackedConfig;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg packageSyms;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA deps;
	tyObject_Table__79b4rr6WWQqgRr9b4NH4UF9cw importDeps;
	NIM_BOOL suggestMode;
	NIM_BOOL invalidTransitiveClosure;
	NIM_BOOL interactive;
	NIM_BOOL withinSystem;
	tyObject_Table__AC9bec2JdoOuC3xQePGWgmA inclToMod;
	tySequence__48JTohSgTy339bRxHzUD8KA importStack;
	RootObj* backend;
	tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config;
	tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* cache;
	RootObj* vm;
	RootObj* repl;
	tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* usageSym;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA owners;
	tyObject_Table__bHTcQUCehDW9clHfFZXI7lQ suggestSymbols;
	tyObject_Table__w2vCG1OPnHmNolvQVT168g suggestErrors;
	tySequence__kHjIdgrpmuSn9cUIIKpSiDg methods;
	tyObject_CountTable__qvMelb9coODdwoghoAPc9c9aA bucketTable;
	tyObject_Table__fZyCWkMwhdvr3pauCNDaag objectTree;
	tyObject_Table__5vmBY49areSIlgIs4A1LLKQ methodsPerType;
	tySequence__olFOFaYzOJN9aV5BWqK4b9bA dispatchers;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* systemModule;
	tyArray__EOkbZZXacNOZHC8p7xc7hw sysTypes;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg compilerprocs;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg exposed;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg packageTypes;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* emptyNode;
	tyObject_Table__9bmd0cvHWe1s4FTDn5BPmfw canonTypes;
	tyObject_Table__GhjCMuklnRqwdX9bZo9bCoNg symBodyHashes;
	tyProc__QieBhPPkGvcmpFg89a4ftcA importModuleCallback;
	tyProc__F2ahyGAjs3aNLJYEXzu07g includeFileCallback;
	tyObject_Table__pI3mJh4Ap2XujSCfcSeUvQ cacheSeqs;
	tyObject_Table__MsPmCuYz1KcEw6lr7P9cGkw cacheCounters;
	tyObject_Table__1HJsK7ponJ4Vb1lJgVFVTQ cacheTables;
	tySequence__WbW5Q8QVks0bQpUJSGmuVg passes;
	tyEnum_PipelinePass__kO50VlNfBJZtrNuD4VL9aTg pipelinePass;
	tyProc__c9a5q9aZQWYYOu1vHoRoq9bVQ onDefinition;
	tyProc__c9a5q9aZQWYYOu1vHoRoq9bVQ onDefinitionResolveForward;
	tyProc__c9a5q9aZQWYYOu1vHoRoq9bVQ onUsage;
	tySequence__9ahcSjIErJohSBBFLwuF56Q globalDestructors;
	tyProc__kj3TYePLaHBuXxhRznQQNQ strongSemCheck;
	tyProc__D3Q9bYoPIpHZVLfEIxpBssA compatibleProps;
	tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen;
	tyObject_Operators__yrAfvKhiysDamJlcGNgVfQ operators;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* cachedFiles;
	tySequence__9ahcSjIErJohSBBFLwuF56Q procGlobals;
};
typedef NU16 tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
	NimStringV2 Field0;
	NI Field1;
	NI Field2;
};
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__9ay7GjiPeMMFnmoYwk84apw {
	NI Field0;
	tyTuple__JqV0huqZNAHtnE3agKOyZg Field1;
};
struct tySequence__G9cHmkmNmy6ZlkFfXcex3Hw_Content { NI cap; tyTuple__9ay7GjiPeMMFnmoYwk84apw 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]; };
struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content { NI cap; tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* 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__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__ZeWVlH6DqG79b1pTDhrrUYA_Content { NI cap; tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA* data[SEQ_DECL_SIZE]; };
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_Iface__j1FkQxwEAKMJy1o9bap1xow {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* module;
	tySequence__olFOFaYzOJN9aV5BWqK4b9bA converters;
	tySequence__olFOFaYzOJN9aV5BWqK4b9bA patterns;
	tySequence__olFOFaYzOJN9aV5BWqK4b9bA pureEnums;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg interf;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg interfHidden;
	NimStringV2 uniqueName;
};
struct tySequence__TfHJycarvNts8E4mVG4Mfg_Content { NI cap; tyObject_Iface__j1FkQxwEAKMJy1o9bap1xow data[SEQ_DECL_SIZE]; };
typedef NU8 tyEnum_ModuleStatus__uT4B39a2dNaG9a9aunVdyhQtQ;
struct tySequence__PXIzfWocnrafGz5p3CP5LA {
  NI len; tySequence__PXIzfWocnrafGz5p3CP5LA_Content* p;
};
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA {
  NI len; tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content* p;
};
struct tySequence__OxRbUT0qZaZN5UjnqQjGPA {
  NI len; tySequence__OxRbUT0qZaZN5UjnqQjGPA_Content* p;
};
struct tySequence__ezS5mGPcRfBURJyMgqYVzA {
  NI len; tySequence__ezS5mGPcRfBURJyMgqYVzA_Content* p;
};
struct tySequence__wW7xkohjuUKO9aMaB0nt9cqA {
  NI len; tySequence__wW7xkohjuUKO9aMaB0nt9cqA_Content* p;
};
struct tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w {
	tySequence__OxRbUT0qZaZN5UjnqQjGPA nodes;
	tySequence__ezS5mGPcRfBURJyMgqYVzA withFlags;
	tySequence__wW7xkohjuUKO9aMaB0nt9cqA withTypes;
};
struct tySequence__b89aLriiJnVTD186H6zNIgg {
  NI len; tySequence__b89aLriiJnVTD186H6zNIgg_Content* p;
};
struct tySequence__hIPTk9aFdaMMVAOzEbnPyqg {
  NI len; tySequence__hIPTk9aFdaMMVAOzEbnPyqg_Content* p;
};
struct tySequence__YYy1721YAuPF0ajBYHd8Wg {
  NI len; tySequence__YYy1721YAuPF0ajBYHd8Wg_Content* p;
};
struct tySequence__UODJbvzmu39c3Ho9cqhSk9agQ {
  NI len; tySequence__UODJbvzmu39c3Ho9cqhSk9agQ_Content* p;
};
struct tySequence__F1qNdU7m0Czu7Y2q0eksXw {
  NI len; tySequence__F1qNdU7m0Czu7Y2q0eksXw_Content* p;
};
struct tySequence__r3Kz9breImOXyFFoJ29aBM8Q {
  NI len; tySequence__r3Kz9breImOXyFFoJ29aBM8Q_Content* p;
};
struct tySequence__qBes3XzcQQ9cyia9bRwnmbJw {
  NI len; tySequence__qBes3XzcQQ9cyia9bRwnmbJw_Content* p;
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
typedef NU8 tySet_tyEnum_ModuleBackendFlag__5FvIlwIIbpcHU0ZRU9a5hrQ;
struct tySequence__Vl1abU3gfp0RqCb1KKfmDA {
  NI len; tySequence__Vl1abU3gfp0RqCb1KKfmDA_Content* p;
};
struct tyObject_OrderedTable__vodBW9bS41CI2hVVsJJ8qiw {
	tySequence__Vl1abU3gfp0RqCb1KKfmDA data;
	NI counter;
	NI first;
	NI last;
};
struct tySequence__qyyNkmlc4fzOzelC8spUkQ {
  NI len; tySequence__qyyNkmlc4fzOzelC8spUkQ_Content* p;
};
struct tyObject_OrderedTable__y5tq9cRly5CxS2mQPchEHcw {
	tySequence__qyyNkmlc4fzOzelC8spUkQ data;
	NI counter;
	NI first;
	NI last;
};
struct tyObject_BiTable__KR9c7QZguPO3OKZOIcphgcA {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ vals;
	tySequence__9bAGqSvkAaFL9bWjsEPslrFA keys;
};
struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
  NI len; tySequence__IHUFRsFxZNv7YydiUO2esQ_Content* p;
};
struct tyObject_BiTable__9aUXwPoJbNPqj9a249c0iSmlg {
	tySequence__IHUFRsFxZNv7YydiUO2esQ vals;
	tySequence__9bAGqSvkAaFL9bWjsEPslrFA keys;
};
struct tySequence__orxtl6CusdjXleqrxi67gw {
  NI len; tySequence__orxtl6CusdjXleqrxi67gw_Content* p;
};
struct tyObject_LineInfoManager__TTy646Kfh1cVyXU9aSMasUQ {
	tySequence__orxtl6CusdjXleqrxi67gw aside;
};
struct tyObject_PackedModule__sRHd9aQ2ZMII76xRsfAbE9aQ {
	NimStringV2 definedSymbols;
	tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg moduleFlags;
	tySequence__PXIzfWocnrafGz5p3CP5LA includes;
	tySequence__9bAGqSvkAaFL9bWjsEPslrFA imports;
	tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w toReplay;
	tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w topLevel;
	tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w bodies;
	tySequence__b89aLriiJnVTD186H6zNIgg exports;
	tySequence__b89aLriiJnVTD186H6zNIgg hidden;
	tySequence__hIPTk9aFdaMMVAOzEbnPyqg reexports;
	tySequence__b89aLriiJnVTD186H6zNIgg compilerProcs;
	tySequence__48JTohSgTy339bRxHzUD8KA converters;
	tySequence__48JTohSgTy339bRxHzUD8KA methods;
	tySequence__48JTohSgTy339bRxHzUD8KA trmacros;
	tySequence__48JTohSgTy339bRxHzUD8KA pureEnums;
	tySequence__YYy1721YAuPF0ajBYHd8Wg typeInstCache;
	tySequence__UODJbvzmu39c3Ho9cqhSk9agQ procInstCache;
	tySequence__F1qNdU7m0Czu7Y2q0eksXw attachedOps;
	tySequence__r3Kz9breImOXyFFoJ29aBM8Q methodsPerGenericType;
	tySequence__YYy1721YAuPF0ajBYHd8Wg enumToStringProcs;
	tySequence__YYy1721YAuPF0ajBYHd8Wg methodsPerType;
	tySequence__qBes3XzcQQ9cyia9bRwnmbJw dispatchers;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ emittedTypeInfo;
	tySet_tyEnum_ModuleBackendFlag__5FvIlwIIbpcHU0ZRU9a5hrQ backendFlags;
	tyObject_OrderedTable__vodBW9bS41CI2hVVsJJ8qiw syms;
	tyObject_OrderedTable__y5tq9cRly5CxS2mQPchEHcw types;
	tyObject_BiTable__KR9c7QZguPO3OKZOIcphgcA strings;
	tyObject_BiTable__9aUXwPoJbNPqj9a249c0iSmlg numbers;
	tyObject_LineInfoManager__TTy646Kfh1cVyXU9aSMasUQ man;
	tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ cfg;
};
struct tySequence__K0j67V58u5FW0dCC534FQw {
  NI len; tySequence__K0j67V58u5FW0dCC534FQw_Content* p;
};
struct tyObject_OrderedTable__h8mIUVGY8LJXF9cakgvB9bqQ {
	tySequence__K0j67V58u5FW0dCC534FQw data;
	NI counter;
	NI first;
	NI last;
};
struct tySequence__UE4b6iUkm1b3zTPamTTkDw {
  NI len; tySequence__UE4b6iUkm1b3zTPamTTkDw_Content* p;
};
struct tyObject_OrderedTable__DED9c7j9bI3Lh5w4GQakK8yQ {
	tySequence__UE4b6iUkm1b3zTPamTTkDw data;
	NI counter;
	NI first;
	NI last;
};
struct tySequence__FmsTQiIcS9arxHxs3QY48vA {
  NI len; tySequence__FmsTQiIcS9arxHxs3QY48vA_Content* p;
};
struct tyObject_Table__BH9cy1hZ1rZZoGkNCEN1uvg {
	tySequence__FmsTQiIcS9arxHxs3QY48vA data;
	NI counter;
};
struct tyObject_LoadedModule__7NEKRkz5hkiOxQy5guqIHA {
	tyEnum_ModuleStatus__uT4B39a2dNaG9a9aunVdyhQtQ status;
	NIM_BOOL symsInit;
	NIM_BOOL typesInit;
	NIM_BOOL loadedButAliveSetChanged;
	tyObject_PackedModule__sRHd9aQ2ZMII76xRsfAbE9aQ fromDisk;
	tyObject_OrderedTable__h8mIUVGY8LJXF9cakgvB9bqQ syms;
	tyObject_OrderedTable__DED9c7j9bI3Lh5w4GQakK8yQ types;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* module;
	tyObject_Table__BH9cy1hZ1rZZoGkNCEN1uvg iface;
	tyObject_Table__BH9cy1hZ1rZZoGkNCEN1uvg ifaceHidden;
};
struct tySequence__5reviU45axUMPQgL9aoENrg_Content { NI cap; tyObject_LoadedModule__7NEKRkz5hkiOxQy5guqIHA data[SEQ_DECL_SIZE]; };
struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ {
  NI len; tySequence__9cnx3zXnWzeclW8Ko4oUgAQ_Content* p;
};
struct tyObject_Table__uaQEKxLZNO5fpFluyxnhTg {
	tySequence__9cnx3zXnWzeclW8Ko4oUgAQ data;
	NI counter;
};
struct tyObject_PackedEncoder__FGa18gE2dyYyuq9ckHprjTQ {
	NI32 thisModule;
	NI32 lastFile;
	NU32 lastLit;
	tyObject_Table__uaQEKxLZNO5fpFluyxnhTg filenames;
	tySequence__d8ZV4IMgHt9biik9cS9a0hrmg pendingTypes;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA pendingSyms;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA typeMarker;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA symMarker;
	tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config;
};
struct tySequence__dtr79aXjHrgHuH79ac55I2aw_Content { NI cap; tyObject_PackedEncoder__FGa18gE2dyYyuq9ckHprjTQ data[SEQ_DECL_SIZE]; };
struct tySequence__vb3AGHvMJTxdOSSwMmBmTQ {
  NI len; tySequence__vb3AGHvMJTxdOSSwMmBmTQ_Content* p;
};
struct tyTuple__7TXOq9czx9cn1FWKG5gXNK8Q {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__vb3AGHvMJTxdOSSwMmBmTQ Field2;
};
struct tySequence__8y0Gi4GwtXi2wk2mK1IOzw_Content { NI cap; tyTuple__7TXOq9czx9cn1FWKG5gXNK8Q data[SEQ_DECL_SIZE]; };
struct tySequence__apM9bRAO19cVjhWlxqd1PGeA {
  NI len; tySequence__apM9bRAO19cVjhWlxqd1PGeA_Content* p;
};
struct tyTuple__F1mMODXmKFMNQ5rLCtcv0Q {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__apM9bRAO19cVjhWlxqd1PGeA Field2;
};
struct tySequence__C2ivDnhTZ6IxAdui1rfuqw_Content { NI cap; tyTuple__F1mMODXmKFMNQ5rLCtcv0Q data[SEQ_DECL_SIZE]; };
struct tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig {
	NU32 module;
	NI32 item;
};
struct tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ {
	NI module;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig packed_0;
};
struct tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA {
	tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ id;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym;
};
struct tyTuple__vHfXSpEC1R9b9cKgfFB9a58gw {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA Field2;
};
struct tySequence__3vEEVfBECLN6NIRA3FIp5g_Content { NI cap; tyTuple__vHfXSpEC1R9b9cKgfFB9a58gw data[SEQ_DECL_SIZE]; };
struct tySequence__9bW2eTK9b7vXE70Sx5VPH1mw {
  NI len; tySequence__9bW2eTK9b7vXE70Sx5VPH1mw_Content* p;
};
struct tyTuple__4iq9bD09amB7Ah0r9cBB0nSPQ {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__9bW2eTK9b7vXE70Sx5VPH1mw Field2;
};
struct tySequence__9aSa87aKMiolq9a7z3kC0jTw_Content { NI cap; tyTuple__4iq9bD09amB7Ah0r9cBB0nSPQ data[SEQ_DECL_SIZE]; };
struct tyTuple__bnJwOH0eJlAwCAMbr1inhw {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA Field2;
};
struct tySequence__N589c2UsUgqqOITU2JfIuAQ_Content { NI cap; tyTuple__bnJwOH0eJlAwCAMbr1inhw data[SEQ_DECL_SIZE]; };
struct tyTuple__YG7h1OUHzgfgTeH9cl0U0dw {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* Field2;
};
struct tySequence__GYDW6wGgERshoSd16jJ3eQ_Content { NI cap; tyTuple__YG7h1OUHzgfgTeH9cl0U0dw data[SEQ_DECL_SIZE]; };
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
	NI Field0;
	NimStringV2 Field1;
	NI32 Field2;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content { NI cap; tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE]; };
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
	NI Field0;
	NI32 Field1;
	tySequence__48JTohSgTy339bRxHzUD8KA Field2;
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg_Content { NI cap; tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE]; };
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
	NI Field0;
	NI32 Field1;
	NI32 Field2;
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg_Content { NI cap; tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE]; };
struct tySequence__48JTohSgTy339bRxHzUD8KA_Content { NI cap; NI32 data[SEQ_DECL_SIZE]; };
struct tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg {
  NI len; tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg_Content* p;
};
struct tySequence__yUWoZehF86MIc40opFgacw {
  NI len; tySequence__yUWoZehF86MIc40opFgacw_Content* p;
};
struct tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw {
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA s;
	NI len;
};
struct tyObject_SuggestFileSymbolDatabase__o0ahEzaLn5a7TdNqH4OVqQ {
	tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg lineInfo;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA sym;
	tySequence__yUWoZehF86MIc40opFgacw caughtExceptions;
	tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw caughtExceptionsSet;
	tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw isDecl;
	tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw isGenericInstance;
	NI32 fileIndex;
	NIM_BOOL trackCaughtExceptions;
	NIM_BOOL isSorted;
};
struct tyTuple__tG5yYi8DnD7bl00aT9cgctQ {
	NI Field0;
	NI32 Field1;
	tyObject_SuggestFileSymbolDatabase__o0ahEzaLn5a7TdNqH4OVqQ Field2;
};
struct tySequence__fz0REU1l0nYmKHXgMLRrIg_Content { NI cap; tyTuple__tG5yYi8DnD7bl00aT9cgctQ data[SEQ_DECL_SIZE]; };
struct tySequence__nSO1ltijM4vhc0UrrXKEqA {
  NI len; tySequence__nSO1ltijM4vhc0UrrXKEqA_Content* p;
};
struct tyTuple__gnRkA1L4XiR4uByriyHW8Q {
	NI Field0;
	NI32 Field1;
	tySequence__nSO1ltijM4vhc0UrrXKEqA Field2;
};
struct tySequence__Ip9aV1IKO2gVdheNOM31DCQ_Content { NI cap; tyTuple__gnRkA1L4XiR4uByriyHW8Q data[SEQ_DECL_SIZE]; };
struct tyTuple__CvjVmQeIfivirDme2r5MRw {
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA Field0;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field1;
};
struct tySequence__kHjIdgrpmuSn9cUIIKpSiDg_Content { NI cap; tyTuple__CvjVmQeIfivirDme2r5MRw data[SEQ_DECL_SIZE]; };
struct tyTuple__2QDyOgS51ZMPO0W1pWCY6g {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field0;
	NI Field1;
};
struct tySequence__Wd0Vle6gxRCPPoSlNEvfTA_Content { NI cap; tyTuple__2QDyOgS51ZMPO0W1pWCY6g data[SEQ_DECL_SIZE]; };
struct tySequence__juxPMVNF1FoR2ltzeQu8NQ {
  NI len; tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content* p;
};
struct tyTuple__UbCNQED4XJUgxOgPHJUcAQ {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__juxPMVNF1FoR2ltzeQu8NQ Field2;
};
struct tySequence__T7nNEWoEbKBa0G5Htr45Xw_Content { NI cap; tyTuple__UbCNQED4XJUgxOgPHJUcAQ data[SEQ_DECL_SIZE]; };
struct tyTuple__zExIg9bDTcVf2FHROUpzoow {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__olFOFaYzOJN9aV5BWqK4b9bA Field2;
};
struct tySequence__q9cHvMDDxYU1hSCdG4YwIhA_Content { NI cap; tyTuple__zExIg9bDTcVf2FHROUpzoow data[SEQ_DECL_SIZE]; };
struct tySequence__olFOFaYzOJN9aV5BWqK4b9bA_Content { NI cap; tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA data[SEQ_DECL_SIZE]; };
typedef NU8 tyArray__dnD8kjh6rJ1Yy5jHvid0Ow[16];
struct tyTuple__XrHNJHOzS3O7uwF9bvCySiA {
	NI Field0;
	tyArray__dnD8kjh6rJ1Yy5jHvid0Ow Field1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* Field2;
};
struct tySequence__vJcM7B74R2U5db9cxyXT9coA_Content { NI cap; tyTuple__XrHNJHOzS3O7uwF9bvCySiA data[SEQ_DECL_SIZE]; };
struct tyTuple__EdLY4EJQ37VFgbAn5g5rXQ {
	NI Field0;
	NI Field1;
	tyArray__dnD8kjh6rJ1Yy5jHvid0Ow Field2;
};
struct tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg_Content { NI cap; tyTuple__EdLY4EJQ37VFgbAn5g5rXQ data[SEQ_DECL_SIZE]; };
struct tyTuple__OtlgAx3kBps9cOSMNDZSzBA {
	NI Field0;
	NimStringV2 Field1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* Field2;
};
struct tySequence__R9c39btP6BwOBBPnbaNUtMQg_Content { NI cap; tyTuple__OtlgAx3kBps9cOSMNDZSzBA data[SEQ_DECL_SIZE]; };
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
	NI Field0;
	NimStringV2 Field1;
	NI64 Field2;
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA_Content { NI cap; tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE]; };
struct tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw {
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* root;
	NI entries;
};
struct tyTuple__RFOJ4fF7D9bpvmh9birH1JhQ {
	NI Field0;
	NimStringV2 Field1;
	tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw Field2;
};
struct tySequence__3nALyQgqjnfK2Qjc6ny2Uw_Content { NI cap; tyTuple__RFOJ4fF7D9bpvmh9birH1JhQ data[SEQ_DECL_SIZE]; };
typedef N_NIMCALL_PTR(tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ*, tyProc__TVHQTM3bKm4Mi6Ul6zgzuQ) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* module_p1, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p2);
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__74nHWc2UIRu3iSR9akqDDBg) (tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ* p_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* topLevelStmt_p1);
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__S9bLWKf8jgjzoiotAmEyFSw) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ* p_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2);
struct tyTuple__O3g9a8zTXSX36ljWponcAoA {
	tyProc__TVHQTM3bKm4Mi6Ul6zgzuQ Field0;
	tyProc__74nHWc2UIRu3iSR9akqDDBg Field1;
	tyProc__S9bLWKf8jgjzoiotAmEyFSw Field2;
	NIM_BOOL Field3;
};
struct tySequence__WbW5Q8QVks0bQpUJSGmuVg_Content { NI cap; tyTuple__O3g9a8zTXSX36ljWponcAoA 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]; };
struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
	NU32 Field0;
	NimStringV2 Field1;
};
struct tySequence__PXIzfWocnrafGz5p3CP5LA_Content { NI cap; tyTuple__0q9cmhneJEKnQERTpXXdz6Q data[SEQ_DECL_SIZE]; };
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content { NI cap; NU32 data[SEQ_DECL_SIZE]; };
struct tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w {
	NU32 x;
	NU32 info;
};
struct tySequence__OxRbUT0qZaZN5UjnqQjGPA_Content { NI cap; tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w data[SEQ_DECL_SIZE]; };
struct tyTuple__48iPM3yLBKU5nyEuYwJvuQ {
	NI32 Field0;
	tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw Field1;
};
struct tySequence__ezS5mGPcRfBURJyMgqYVzA_Content { NI cap; tyTuple__48iPM3yLBKU5nyEuYwJvuQ data[SEQ_DECL_SIZE]; };
struct tyTuple__R3ddFrA0G9buJY57Qhf9cTpg {
	NI32 Field0;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field1;
};
struct tySequence__wW7xkohjuUKO9aMaB0nt9cqA_Content { NI cap; tyTuple__R3ddFrA0G9buJY57Qhf9cTpg data[SEQ_DECL_SIZE]; };
struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
	NU32 Field0;
	NI32 Field1;
};
struct tySequence__b89aLriiJnVTD186H6zNIgg_Content { NI cap; tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE]; };
struct tyTuple__7rmdAMLZ8fDd79brQn2ixZA {
	NU32 Field0;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field1;
};
struct tySequence__hIPTk9aFdaMMVAOzEbnPyqg_Content { NI cap; tyTuple__7rmdAMLZ8fDd79brQn2ixZA data[SEQ_DECL_SIZE]; };
struct tyTuple__qPXRCRNQuZLLKto7CIIEzw {
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field0;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field1;
};
struct tySequence__YYy1721YAuPF0ajBYHd8Wg_Content { NI cap; tyTuple__qPXRCRNQuZLLKto7CIIEzw data[SEQ_DECL_SIZE]; };
struct tyObject_PackedInstantiation__C3FSePJFY8gUIMObsjT2dg {
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig key;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig sym;
	tySequence__qBes3XzcQQ9cyia9bRwnmbJw concreteTypes;
};
struct tySequence__UODJbvzmu39c3Ho9cqhSk9agQ_Content { NI cap; tyObject_PackedInstantiation__C3FSePJFY8gUIMObsjT2dg data[SEQ_DECL_SIZE]; };
struct tyTuple__6kG8KAxm9aXPdLdlxcxqJJw {
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field0;
	tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q Field1;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field2;
};
struct tySequence__F1qNdU7m0Czu7Y2q0eksXw_Content { NI cap; tyTuple__6kG8KAxm9aXPdLdlxcxqJJw data[SEQ_DECL_SIZE]; };
struct tyTuple__TRK7rrwoha9bbDAdPWsqJMw {
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field0;
	NI Field1;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field2;
};
struct tySequence__r3Kz9breImOXyFFoJ29aBM8Q_Content { NI cap; tyTuple__TRK7rrwoha9bbDAdPWsqJMw data[SEQ_DECL_SIZE]; };
struct tySequence__qBes3XzcQQ9cyia9bRwnmbJw_Content { NI cap; tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig data[SEQ_DECL_SIZE]; };
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; };
typedef NU8 tyEnum_TLibKind__BkKL8ReLoyYDI7of9aQPV0A;
struct tyObject_PackedLib__EpwVLk0Fuc5Q9agKLMWedbg {
	tyEnum_TLibKind__BkKL8ReLoyYDI7of9aQPV0A kind;
	NIM_BOOL generated;
	NIM_BOOL isOverridden;
	NU32 name;
	NI32 path;
};
struct tyObject_PackedSym__KKnx6w8Cc9aaVsaPOpaqxbw {
	NI32 id;
	tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind;
	NU32 name;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig typ;
	tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg flags;
	tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg magic;
	NU32 info;
	NI32 ast;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig owner;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig guard;
	NI bitsize;
	NI alignment;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	NI position;
	NI32 offset;
	NI32 disamb;
	NU32 externalName;
	tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg locFlags;
	tyObject_PackedLib__EpwVLk0Fuc5Q9agKLMWedbg annex;
	NI32 constraint;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig instantiatedFrom;
};
struct tyTuple__V1VWX9bHapuzCjpMfFfys5Q {
	NI Field0;
	NI Field1;
	NI32 Field2;
	tyObject_PackedSym__KKnx6w8Cc9aaVsaPOpaqxbw Field3;
};
struct tySequence__Vl1abU3gfp0RqCb1KKfmDA_Content { NI cap; tyTuple__V1VWX9bHapuzCjpMfFfys5Q data[SEQ_DECL_SIZE]; };
struct tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ {
	NI32 id;
	tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind;
	tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ callConv;
	tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A flags;
	tySequence__qBes3XzcQQ9cyia9bRwnmbJw types;
	NI32 n;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig sym;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig owner;
	NI64 size;
	NI16 align;
	NI16 paddingAtEnd;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig typeInst;
	NI32 nonUniqueId;
};
struct tyTuple__anemVmHCFglLFt6LiEhFvg {
	NI Field0;
	NI Field1;
	NI32 Field2;
	tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ Field3;
};
struct tySequence__qyyNkmlc4fzOzelC8spUkQ_Content { NI cap; tyTuple__anemVmHCFglLFt6LiEhFvg data[SEQ_DECL_SIZE]; };
struct tySequence__IHUFRsFxZNv7YydiUO2esQ_Content { NI cap; NI64 data[SEQ_DECL_SIZE]; };
struct tyTuple__MaWaKZwaGUqCXKsSK12rVg {
	NU32 Field0;
	NI32 Field1;
	NI32 Field2;
};
struct tySequence__orxtl6CusdjXleqrxi67gw_Content { NI cap; tyTuple__MaWaKZwaGUqCXKsSK12rVg data[SEQ_DECL_SIZE]; };
struct tyTuple__nL9cBxaIV4ZA9b9ceY79coA5eA {
	NI Field0;
	NI Field1;
	NI32 Field2;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field3;
};
struct tySequence__K0j67V58u5FW0dCC534FQw_Content { NI cap; tyTuple__nL9cBxaIV4ZA9b9ceY79coA5eA data[SEQ_DECL_SIZE]; };
struct tyTuple__1xWeGeoNoZxaLhTUDDWYyA {
	NI Field0;
	NI Field1;
	NI32 Field2;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* Field3;
};
struct tySequence__UE4b6iUkm1b3zTPamTTkDw_Content { NI cap; tyTuple__1xWeGeoNoZxaLhTUDDWYyA data[SEQ_DECL_SIZE]; };
struct tyTuple__MZVSn3SE3XUBJOaMu7ofRQ {
	NI Field0;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* Field1;
	tySequence__qBes3XzcQQ9cyia9bRwnmbJw Field2;
};
struct tySequence__FmsTQiIcS9arxHxs3QY48vA_Content { NI cap; tyTuple__MZVSn3SE3XUBJOaMu7ofRQ data[SEQ_DECL_SIZE]; };
struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
	NI Field0;
	NI32 Field1;
	NU32 Field2;
};
struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ_Content { NI cap; tyTuple__UvldbCB6B9ayi9bGYW7vJNLA data[SEQ_DECL_SIZE]; };
struct tyObject_LazyType__dsEGDq9cOhnzsRvTUTwwwuA {
	tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ id;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ;
};
struct tySequence__vb3AGHvMJTxdOSSwMmBmTQ_Content { NI cap; tyObject_LazyType__dsEGDq9cOhnzsRvTUTwwwuA data[SEQ_DECL_SIZE]; };
struct tySequence__YxH9cgSorHRI8ZPzHf47NNQ {
  NI len; tySequence__YxH9cgSorHRI8ZPzHf47NNQ_Content* p;
};
struct tyObject_LazyInstantiation__n72c7MnOoHWBy9c9akgwGqEA {
	NI module;
	tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ sym;
	tySequence__YxH9cgSorHRI8ZPzHf47NNQ concreteTypes;
	tyObject_TInstantiation__jr8MibvPn2sQBnO7XCoZRQ* inst;
};
struct tySequence__apM9bRAO19cVjhWlxqd1PGeA_Content { NI cap; tyObject_LazyInstantiation__n72c7MnOoHWBy9c9akgwGqEA data[SEQ_DECL_SIZE]; };
struct tyTuple__lGHLhAAUpxgfrnQkIzNrMw {
	NI Field0;
	tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA Field1;
};
struct tySequence__9bW2eTK9b7vXE70Sx5VPH1mw_Content { NI cap; tyTuple__lGHLhAAUpxgfrnQkIzNrMw data[SEQ_DECL_SIZE]; };
struct tyObject_TinyLineInfo__qW2GTIPjeOQ42q9c2MPWLLA {
	NU16 line;
	NI16 col;
};
struct tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg_Content { NI cap; tyObject_TinyLineInfo__qW2GTIPjeOQ42q9c2MPWLLA data[SEQ_DECL_SIZE]; };
struct tySequence__yUWoZehF86MIc40opFgacw_Content { NI cap; tySequence__d8ZV4IMgHt9biik9cS9a0hrmg data[SEQ_DECL_SIZE]; };
struct tySequence__nSO1ltijM4vhc0UrrXKEqA_Content { NI cap; tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* data[SEQ_DECL_SIZE]; };
struct tyTuple__V6P73hvHy70PBBwharKjig {
	NI Field0;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* Field1;
};
struct tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content { NI cap; tyTuple__V6P73hvHy70PBBwharKjig data[SEQ_DECL_SIZE]; };
struct tySequence__YxH9cgSorHRI8ZPzHf47NNQ_Content { NI cap; tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ 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);
N_LIB_PRIVATE N_NIMCALL(void, eqdup___layeredtable_u239)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* src_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, eqdup___ast_u3384)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA, initHashSet__concepts_u1492)(NI initialSize_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConcept__types_u3423)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA, conceptsMatch__concepts_u1041)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fc_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ac_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3252)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, conceptBody__concepts_u192)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
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);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
static N_INLINE(NI, len__ast_u5502)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_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);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cmpConceptDefs__concepts_u1022)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* fn_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* an_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3378)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0);
static N_INLINE(NIM_BOOL, eqeq___idents_u366)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* a_p0, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* b_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, defSignatureType__concepts_u189)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3381)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___layeredtable_u242)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* dest_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, newTypeMapLayer__layeredtable_u272)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* Result);
static N_INLINE(NIM_BOOL, isSelf__semdata_u4610)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchType__concepts_u96)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fo_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ao_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u3387)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, existingBinding__concepts_u112)(tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* key_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, lookup__layeredtable_u711)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, getOrDefault__layeredtable_u519)(tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, lookup__layeredtable_u506)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
static N_INLINE(NIM_BOOL, hasElementType__ast_u5660)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elementType__ast_u5331)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**, X5BX5D___ast_u5281)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** s_p0, NI s_p0Len_0, NI i_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, acceptsAllTypes__concepts_u195)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
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(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, reduceToBase__types_u4300)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchConceptToImpl__concepts_u247)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* potentialImpl_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___layeredtable_u233)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__concepts_u304)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA s_p0, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p1);
N_LIB_PRIVATE N_NIMCALL(void, incl__concepts_u526)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* s_p0, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p1);
N_LIB_PRIVATE N_NIMCALL(void, excl__concepts_u892)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* s_p0, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___layeredtable_u236)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* dest_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___ast_u3375)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, processConcept__concepts_u106)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concpt_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* invocation_p2, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* bindings_p3, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p4);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, base__ast_u5351)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(NI, kidsLen__ast_u5648)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bindParam__concepts_u132)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* key_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* v_p3);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, unrollGenericParam__concepts_u121)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* param_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, last__ast_u5278)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(void, put__layeredtable_u734)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* value_p2);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___layeredtable_u742)(tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA* t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* val_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, conceptMatchNode__concepts_u92)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchSyms__concepts_u1365)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySet_tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kinds_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3);
N_LIB_PRIVATE N_NIMCALL(tySequence__ZCZaCk14bTmSb6LMW9aWPVA, searchScopes__lookups_u2487)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* s_p1, tySet_tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q filter_p2);
N_LIB_PRIVATE N_NIMCALL(void, searchImportsAll__lookups_u2468)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* s_p1, tySet_tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q filter_p2, tySequence__ZCZaCk14bTmSb6LMW9aWPVA* holding_p3);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchSym__concepts_u1326)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* candidate_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkConstraint__concepts_u1310)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3);
static N_INLINE(void, setToPreviousLayer__layeredtable_u286)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchReturnType__concepts_u101)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3);
static N_INLINE(NIM_BOOL, isEmptyType__ast_u7234)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, returnType__ast_u5354)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u4848)(tySequence__ZCZaCk14bTmSb6LMW9aWPVA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, fixBindings__concepts_u1387)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* bindings_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concpt_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* invocation_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___layeredtable_u230)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* dest_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipModifier__ast_u5338)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__types_u1826)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ flags_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObjectSubtype__concepts_u1078)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, baseClass__ast_u5348)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectTypes__types_u2018)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchKids__concepts_u223)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3, NI start_p4);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericHead__ast_u5376)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__types_u283)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, NIM_BOOL allowEnumWithHoles_p1);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__concepts_u1885)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___concepts_u1669)(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicStatic)(void* p_p0, TNimTypeV2* desc_p1);
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NOINLINE(void, rememberCycle__system_u3492)(NIM_BOOL isDestroyAction_p0, tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* s_p1, TNimTypeV2* desc_p2);
N_LIB_PRIVATE N_NIMCALL(void, nimRawDispose)(void* p_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___concepts_u1681)(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* dest_p0, void* env_p1);
static N_INLINE(void, nimTraceRef)(void* q_p0, TNimTypeV2* desc_p1, void* env_p2);
static N_INLINE(void, add__system_u3013)(tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg* s_p0, void** c_p1, TNimTypeV2* t_p2);
N_LIB_PRIVATE N_NIMCALL(void, resize__system_u3021)(tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg* s_p0);
static N_INLINE(NI, pluspercent___system_u785)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_CLOSURE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, traverseTyOr__concepts_u242)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___concepts_u1722)(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw** dest_p0, tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___concepts_u1711)(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___concepts_u1578)(tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, unregisterCycle__system_u3122)(tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3288)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___concepts_u408)(tySequence__G9cHmkmNmy6ZlkFfXcex3Hw dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___layeredtable_u168)(tySequence__7OXYQ6bHRkhJpRaiS7kiwQ dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww*, openScope__lookups_u65)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0);
N_LIB_PRIVATE N_NIMCALL(void, declareSelf__concepts_u13)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, getCurrOwner__semdata_u425)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, newSym__ast_u4205)(tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q symKind_p0, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* name_p1, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p2, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p3, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p4, tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options_p5);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA*, getIdent__idents_u206)(tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* ic_p0, NimStringV2 identifier_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, newType__ast_u5900)(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind_p0, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_p3);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_u3881)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* father_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_p1);
static N_INLINE(void, addDecl__lookups_u3785)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p2);
N_LIB_PRIVATE N_NIMCALL(void, addDeclAt__lookups_u3253)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___idents_u155)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u4574)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, semConceptDecl__concepts_u23)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, shallowCopy__ast_u6876)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u3261)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_u1227)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA msg_p2, NimStringV2 arg_p3, tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w eh_p4, tyTuple__kN8up2W6YKc5YA9avn5mV5w* info2_p5, NIM_BOOL isRaw_p6, NIM_BOOL ignoreError_p7);
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1);
static N_INLINE(void, copyMem__system_u1742)(void* dest_p0, void* source_p1, NI size_p2);
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, renderTree__renderer_u59)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg renderFlags_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rawNewString)(NI space_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u2691)(NimStringV2 dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, rawCloseScope__lookups_u96)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u74)(tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* dest_p0);
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__yT8oP4IKFRSvia7t9bb5q3Q_2 = {
0x10, 0x00, 0x80, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__yT8oP4IKFRSvia7t9bb5q3Q_3 = {
0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
N_LIB_PRIVATE TNimTypeV2 NTIv2__7eUV7OPVyjamwpNzv7cq9bw_;
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__yT8oP4IKFRSvia7t9bb5q3Q_9 = { 4 | NIM_STRLIT_FLAG, "Self" };
static const NimStringV2 TM__yT8oP4IKFRSvia7t9bb5q3Q_10 = {4, (NimStrPayload*)&TM__yT8oP4IKFRSvia7t9bb5q3Q_9};
static const struct {
  NI cap; NIM_CHAR data[48+1];
} TM__yT8oP4IKFRSvia7t9bb5q3Q_11 = { 48 | NIM_STRLIT_FLAG, "unexpected construct in the new-styled concept: " };
static const NimStringV2 TM__yT8oP4IKFRSvia7t9bb5q3Q_12 = {48, (NimStrPayload*)&TM__yT8oP4IKFRSvia7t9bb5q3Q_11};
static const struct {
  NI cap; NIM_CHAR data[63+1];
} TM__yT8oP4IKFRSvia7t9bb5q3Q_14 = { 63 | NIM_STRLIT_FLAG, "/home/runner/work/nightlies/nightlies/nim/compiler/concepts.nim" };
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__yT8oP4IKFRSvia7t9bb5q3Q_13 = {{63, (NimStrPayload*)&TM__yT8oP4IKFRSvia7t9bb5q3Q_14},
((NI)55),
((NI)14)}
;
extern NIM_BOOL nimInErrorMode__system_u4138;
static NIM_CONST NU32 TM__yT8oP4IKFRSvia7t9bb5q3Q_4[2] = {3701606400, 3843419136};
N_LIB_PRIVATE TNimTypeV2 NTIv2__7eUV7OPVyjamwpNzv7cq9bw_ = {.destructor = (void*)rttiDestroy__concepts_u1885, .size = sizeof(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw), .align = (NI16) NIM_ALIGNOF(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw), .depth = 1, .display = TM__yT8oP4IKFRSvia7t9bb5q3Q_4, .traceImpl = (void*)eqtrace___concepts_u1681, .flags = 0};
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(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(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4138);
	return result;
}
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, lastSon__ast_u5208)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**)0;
	T1_ = X5BX5D___ast_u5211((((*n_p0)._kind_6.sons).p) ? ((*n_p0)._kind_6.sons.p->data) : NIM_NIL, (*n_p0)._kind_6.sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3255(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, conceptBody__concepts_u192)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = lastSon__ast_u5208((*n_p0).n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, len__ast_u5502)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	NI result;
	NI T1_;
	T1_ = (*n_p0).sons.len;
	result = T1_;
	return result;
}
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;
}
static N_INLINE(NIM_BOOL, eqeq___idents_u366)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* a_p0, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* b_p1) {
	NIM_BOOL result;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a_p0 == 0);
		if (T3_) goto LA4_;
		T3_ = (b_p1 == 0);
LA4_: ;
		if (!T3_) goto LA5_;
		result = (a_p0 == b_p1);
	}
	goto LA1_;
LA5_: ;
	{
		result = ((*a_p0).id == (*b_p1).id);
	}
LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, defSignatureType__concepts_u189)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*(*(*n_p0)._kind_6.sons.p->data[((NI)0)])._kind_4.sym).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isSelf__semdata_u4610)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8));
	if (!(T1_)) goto LA2_;
	T1_ = (((*t_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)23)))&63U)))!=0);
LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, lookup__layeredtable_u711)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = getOrDefault__layeredtable_u519((*typeMap_p0).topLayer, key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = (result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*typeMap_p0).nextLayer == ((tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A*) NIM_NIL)));
LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = NIM_NIL;
		T7_ = lookup__layeredtable_u506((*typeMap_p0).nextLayer, key_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T7_); goto BeforeRet_;}
		eqsink___ast_u3387(&result, T7_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, existingBinding__concepts_u112)(tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* key_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = lookup__layeredtable_u711((&(*m_p0).bindings), (*key_p1).itemId);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA3_;
		eqcopy___ast_u3381(&result, key_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, hasElementType__ast_u5660)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = (((NI)0) < T1_);
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**, 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*, 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;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, acceptsAllTypes__concepts_u195)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_FALSE;
	{
		if (!((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59))) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
LA3_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		if (!((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA6_;
		colontmpD_ = NIM_NIL;
		{
			if (!(((*t_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)26)))&63U)))!=0)) goto LA10_;
			result = NIM_TRUE;
		}
LA10_: ;
		{
			NIM_BOOL T14_;
			NIM_BOOL T15_;
			T14_ = (NIM_BOOL)0;
			T15_ = (NIM_BOOL)0;
			T15_ = hasElementType__ast_u5660(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T14_ = !(T15_);
			if (T14_) goto LA16_;
			colontmpD_ = elementType__ast_u5331(t_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T14_ = ((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0));
LA16_: ;
			if (!T14_) goto LA17_;
			result = NIM_TRUE;
		}
LA17_: ;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA6_: ;
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___concepts_u824)(tyTuple__JqV0huqZNAHtnE3agKOyZg dest_p0) {
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___concepts_u821)(tyTuple__JqV0huqZNAHtnE3agKOyZg* dest_p0) {
	(*dest_p0).Field0.module = 0;
	(*dest_p0).Field0.item = 0;
	(*dest_p0).Field1.module = 0;
	(*dest_p0).Field1.item = 0;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, base__ast_u5351)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*t_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, kidsLen__ast_u5648)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NI result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, unrollGenericParam__concepts_u121)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* param_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = skipTypes__ast_u5379(param_p0, TM__yT8oP4IKFRSvia7t9bb5q3Q_2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		while (1) {
			NIM_BOOL T3_;
			NIM_BOOL T4_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T7_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T8_;
			T3_ = (NIM_BOOL)0;
			T4_ = (NIM_BOOL)0;
			T4_ = ((*result).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12) || (*result).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8));
			if (!(T4_)) goto LA5_;
			T4_ = hasElementType__ast_u5660(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA5_: ;
			T3_ = T4_;
			if (!(T3_)) goto LA6_;
			T7_ = NIM_NIL;
			T7_ = elementType__ast_u5331(result);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T7_); goto BeforeRet_;}
			eqsink___ast_u3387(&colontmpD_, T7_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T3_ = !(((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0)));
LA6_: ;
			if (!T3_) goto LA2;
			T8_ = NIM_NIL;
			T8_ = elementType__ast_u5331(result);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T8_); goto BeforeRet_;}
			eqsink___ast_u3387(&result, T8_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA2: ;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, last__ast_u5278)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5281((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3381(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, put__layeredtable_u734)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* value_p2) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	X5BX5Deq___layeredtable_u742((&(*typeMap_p0).topLayer), key_p1, value_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bindParam__concepts_u132)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* key_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* v_p3) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* value_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* old_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
NIM_BOOL oldNimErrFin49_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	value_1 = NIM_NIL;
	old_1 = NIM_NIL;
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	{
		if (!((*v_p3).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA4_;
		result = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(old_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(value_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	value_1 = unrollGenericParam__concepts_u121(v_p3);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T10_;
		if (!((*value_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA8_;
		T10_ = NIM_NIL;
		T10_ = existingBinding__concepts_u112((&(*m_p1)), value_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T10_); goto LA1_;}
		eqsink___ast_u3387(&value_1, T10_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			if (!((*value_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA13_;
			{
				NIM_BOOL T17_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T20_;
				T17_ = (NIM_BOOL)0;
				T17_ = hasElementType__ast_u5660(value_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T17_) goto LA18_;
				T20_ = NIM_NIL;
				T20_ = elementType__ast_u5331(value_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T20_); goto LA1_;}
				eqsink___ast_u3387(&value_1, T20_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			goto LA15_;
LA18_: ;
			{
				result = NIM_TRUE;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(old_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(value_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA15_: ;
		}
LA13_: ;
	}
LA8_: ;
	{
		if (!((*value_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60))) goto LA24_;
		result = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(old_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(value_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA24_: ;
	{
		NIM_BOOL T28_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T32_;
		T28_ = (NIM_BOOL)0;
		T28_ = ((*m_p1).magic == ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)6) || (*m_p1).magic == ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)5));
		if (!(T28_)) goto LA29_;
		T28_ = ((*value_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16) || (*value_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27) || (*value_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28) || (*value_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24) || (*value_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29) || (*value_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18));
LA29_: ;
		if (!T28_) goto LA30_;
		T32_ = NIM_NIL;
		T32_ = last__ast_u5278(value_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T32_); goto LA1_;}
		eqsink___ast_u3387(&value_1, T32_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA30_: ;
	old_1 = existingBinding__concepts_u112((&(*m_p1)), key_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!!((old_1 == key_p2))) goto LA35_;
		{
			NIM_BOOL T39_;
			T39_ = (NIM_BOOL)0;
			T39_ = matchType__concepts_u96(c_p0, old_1, value_1, m_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!!(T39_)) goto LA40_;
			result = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(old_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(value_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA40_: ;
	}
	goto LA33_;
LA35_: ;
	{
		NIM_BOOL T43_;
		NIM_BOOL T44_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		T43_ = (NIM_BOOL)0;
		T44_ = (NIM_BOOL)0;
		T44_ = hasElementType__ast_u5660(key_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!(T44_)) goto LA45_;
		colontmpD_ = elementType__ast_u5331(key_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T44_ = !((colontmpD_ == 0));
LA45_: ;
		T43_ = T44_;
		if (!(T43_)) goto LA46_;
		colontmpD__2 = elementType__ast_u5331(key_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T43_ = !(((*colontmpD__2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0)));
LA46_: ;
		if (!T43_) goto LA47_;
		colontmpD__3 = NIM_NIL;
		{
			NIM_BOOL T52_;
			colontmpD__3 = unrollGenericParam__concepts_u121(key_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
			T52_ = (NIM_BOOL)0;
			T52_ = matchType__concepts_u96(c_p0, colontmpD__3, value_1, m_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
			if (!(T52_ == NIM_FALSE)) goto LA53_;
			result = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(old_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(value_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA53_: ;
		{
			LA49_:;
		}
		{
			oldNimErrFin49_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin49_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA33_;
LA47_: ;
LA33_: ;
	put__layeredtable_u734((&(*m_p1).bindings), (*key_p2).itemId, value_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = NIM_TRUE;
	eqdestroy___ast_u3378(colontmpD__2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3378(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3378(old_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3378(value_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(old_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(value_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, checkConstraint__concepts_u1310)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3) {
	NIM_BOOL result;
	NIM_BOOL T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = matchType__concepts_u96(c_p0, f_p1, a_p2, m_p3);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (T1_) goto LA2_;
	T1_ = matchType__concepts_u96(c_p0, a_p2, f_p1, m_p3);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA2_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, setToPreviousLayer__layeredtable_u286)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	eqcopy___layeredtable_u236((&(*pt_p0)), (&(*(*pt_p0).nextLayer)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, isEmptyType__ast_u7234)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = (t_p0 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (T1_) goto LA2_;
	T1_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7));
LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchReturnType__concepts_u101)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmptyType__ast_u7234(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		result = isEmptyType__ast_u7234(a_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA4_: ;
	{
		if (!(a_p2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA7_;
		result = NIM_FALSE;
	}
	goto LA1_;
LA7_: ;
	{
		result = checkConstraint__concepts_u1310(c_p0, f_p1, a_p2, m_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, returnType__ast_u5354)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchSym__concepts_u1326)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* candidate_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3) {
	NIM_BOOL result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* can_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* con_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T2_;
	NI common_1;
	NI T22_;
	NI T23_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	can_1 = NIM_NIL;
	con_1 = NIM_NIL;
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	colontmpD__3 = NIM_NIL;
	colontmpD__4 = NIM_NIL;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	newTypeMapLayer__layeredtable_u272((&(*m_p3).bindings), (&T2_));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqsink___layeredtable_u242((&(*m_p3).bindings), (&T2_));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3255(&can_1, (*(*candidate_p1).typ).n);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD_ = defSignatureType__concepts_u189(n_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3255(&con_1, (*colontmpD_).n);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NI T5_;
		NI T6_;
		T5_ = (NI)0;
		T5_ = len__ast_u3190(can_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T6_ = (NI)0;
		T6_ = len__ast_u3190(con_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!(T5_ < T6_)) goto LA7_;
		result = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(con_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(can_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA7_: ;
	{
		NI T11_;
		NI T12_;
		T11_ = (NI)0;
		T11_ = len__ast_u3190(con_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T12_ = (NI)0;
		T12_ = len__ast_u3190(can_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!(T11_ < T12_)) goto LA13_;
		{
			NI i_1;
			NI colontmp_;
			NI colontmp__2;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp__2 = (NI)0;
			colontmp_ = len__ast_u3190(con_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			colontmp__2 = len__ast_u3190(can_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			i_2 = colontmp_;
			{
				while (1) {
					if (!(i_2 < colontmp__2)) goto LA17;
					i_1 = i_2;
					{
						if (!((*(*(*can_1)._kind_6.sons.p->data[i_1])._kind_4.sym).ast == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA20_;
						result = NIM_FALSE;
						eqdestroy___ast_u3378(colontmpD__4);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(colontmpD__3);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3252(con_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3252(can_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA20_: ;
					i_2 += ((NI)1);
				} LA17: ;
			}
		}
	}
LA13_: ;
	T22_ = (NI)0;
	T22_ = len__ast_u3190(can_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T23_ = (NI)0;
	T23_ = len__ast_u3190(con_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	common_1 = ((T22_ <= T23_) ? T22_ : T23_);
	{
		NI i_3;
		NI i_4;
		i_3 = (NI)0;
		i_4 = ((NI)1);
		{
			while (1) {
				if (!(i_4 < common_1)) goto LA26;
				i_3 = i_4;
				{
					NIM_BOOL T29_;
					T29_ = (NIM_BOOL)0;
					T29_ = checkConstraint__concepts_u1310(c_p0, (*(*con_1)._kind_6.sons.p->data[i_3]).typField, (*(*can_1)._kind_6.sons.p->data[i_3]).typField, m_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if (!!(T29_)) goto LA30_;
					setToPreviousLayer__layeredtable_u286((&(*m_p3).bindings));
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					result = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD__3);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3252(con_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3252(can_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA30_: ;
				i_4 += ((NI)1);
			} LA26: ;
		}
	}
	{
		NIM_BOOL T34_;
		colontmpD__2 = defSignatureType__concepts_u189(n_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		colontmpD__3 = returnType__ast_u5354(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		colontmpD__4 = returnType__ast_u5354((*candidate_p1).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T34_ = (NIM_BOOL)0;
		T34_ = matchReturnType__concepts_u101(c_p0, colontmpD__3, colontmpD__4, m_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!!(T34_)) goto LA35_;
		setToPreviousLayer__layeredtable_u286((&(*m_p3).bindings));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		result = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(con_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(can_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA35_: ;
	{
		NI i_5;
		NI colontmp__3;
		NI i_6;
		i_5 = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__3 = len__ast_u3190(can_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		i_6 = common_1;
		{
			while (1) {
				if (!(i_6 < colontmp__3)) goto LA39;
				i_5 = i_6;
				{
					if (!((*(*(*can_1)._kind_6.sons.p->data[i_5])._kind_4.sym).ast == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA42_;
					setToPreviousLayer__layeredtable_u286((&(*m_p3).bindings));
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					result = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD__3);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3252(con_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3252(can_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA42_: ;
				i_6 += ((NI)1);
			} LA39: ;
		}
	}
	result = NIM_TRUE;
	eqdestroy___ast_u3378(colontmpD__4);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3378(colontmpD__3);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3378(colontmpD__2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3378(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3252(con_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3252(can_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(con_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(can_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, matchSyms__concepts_u1365)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySet_tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kinds_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3) {
	NIM_BOOL result;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA candidates_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	candidates_1.len = 0; candidates_1.p = NIM_NIL;
	result = NIM_FALSE;
	candidates_1 = searchScopes__lookups_u2487(c_p0, (*(*(*n_p1)._kind_6.sons.p->data[((NI)0)])._kind_4.sym).name, kinds_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	searchImportsAll__lookups_u2468(c_p0, (*(*(*n_p1)._kind_6.sons.p->data[((NI)0)])._kind_4.sym).name, kinds_p2, (&candidates_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** candidate_1;
		NI i_1;
		NI L_1;
		NI T3_;
		candidate_1 = (tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg**)0;
		i_1 = ((NI)0);
		T3_ = candidates_1.len;
		L_1 = T3_;
		{
			while (1) {
				if (!(i_1 < L_1)) goto LA5;
				candidate_1 = &candidates_1.p->data[i_1];
				(*m_p3).magic = (*(*candidate_1)).magic;
				{
					NIM_BOOL T8_;
					T8_ = (NIM_BOOL)0;
					T8_ = matchSym__concepts_u1326(c_p0, (*candidate_1), n_p1, m_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if (!T8_) goto LA9_;
					result = NIM_TRUE;
					goto LA2;
				}
LA9_: ;
				i_1 += ((NI)1);
			} LA5: ;
		}
	} LA2: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u4848(candidates_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, conceptMatchNode__concepts_u92)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p2) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	switch ((*n_p1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)115):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)126):
	{
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i_1 = i_2;
					{
						NIM_BOOL T7_;
						T7_ = (NIM_BOOL)0;
						T7_ = conceptMatchNode__concepts_u92(c_p0, (*n_p1)._kind_6.sons.p->data[i_1], m_p2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!!(T7_)) goto LA8_;
						result = NIM_FALSE;
						goto BeforeRet_;
					}
LA8_: ;
					i_2 += ((NI)1);
				} LA4: ;
			}
		}
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)79):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)159):
	{
		result = matchSyms__concepts_u1365(c_p0, n_p1, 487424, m_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)83):
	{
		result = matchSyms__concepts_u1365(c_p0, n_p1, 262144, m_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)82):
	{
		result = matchSyms__concepts_u1365(c_p0, n_p1, 131072, m_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)81):
	{
		result = matchSyms__concepts_u1365(c_p0, n_p1, 65536, m_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)80):
	{
		result = matchSyms__concepts_u1365(c_p0, n_p1, 16384, m_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)84):
	{
		result = matchSyms__concepts_u1365(c_p0, n_p1, 32768, m_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)125):
	{
		result = NIM_TRUE;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fixBindings__concepts_u1387)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* bindings_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concpt_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* invocation_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3) {
NIM_BOOL oldNimErrFin13_;
NIM_BOOL oldNimErrFin28_;
NIM_BOOL oldNimErrFin7_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* genBody_1;
		T3_ = (NIM_BOOL)0;
		T3_ = !((invocation_p2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = ((*invocation_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9));
LA4_: ;
		if (!T3_) goto LA5_;
		genBody_1 = NIM_NIL;
		{
			NI i_1;
			NI colontmp_;
			NI T9_;
			NI res_1;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			T9_ = (NI)0;
			T9_ = len__ast_u5502((*(*concpt_p1).sym).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			colontmp_ = (NI)(T9_ - ((NI)1));
			res_1 = ((NI)0);
			{
				while (1) {
					if (!(res_1 <= colontmp_)) goto LA11;
					i_1 = ((NI) (res_1));
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* thisSym_1;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* found_1;
						thisSym_1 = NIM_NIL;
						colontmpD_ = NIM_NIL;
						found_1 = NIM_NIL;
						eqcopy___ast_u3381(&thisSym_1, (*(*(*concpt_p1).sym).typ).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
						{
							colontmpD_ = lookup__layeredtable_u711((&(*bindings_p0)), (*thisSym_1).itemId);
							if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
							if (!!((colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA16_;
							eqdestroy___ast_u3378(found_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							eqdestroy___ast_u3378(thisSym_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							goto LA12;
						}
LA16_: ;
						found_1 = lookup__layeredtable_u711((&(*m_p3).bindings), (*thisSym_1).itemId);
						if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
						{
							if (!!((found_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA20_;
							put__layeredtable_u734(bindings_p0, (*thisSym_1).itemId, found_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
						}
LA20_: ;
						{
							LA13_:;
						}
						{
							oldNimErrFin13_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3378(found_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							eqdestroy___ast_u3378(thisSym_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							*nimErr_ = oldNimErrFin13_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
					} LA12: ;
					res_1 += ((NI)1);
				} LA11: ;
			}
		}
		genBody_1 = base__ast_u5351(invocation_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		{
			NI i_2;
			NI colontmp__2;
			NI i_3;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = kidsLen__ast_u5648(invocation_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			i_3 = ((NI)1);
			{
				while (1) {
					if (!(i_3 < colontmp__2)) goto LA26;
					i_2 = i_3;
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* bpram_1;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* boundV_1;
						bpram_1 = NIM_NIL;
						colontmpD__2 = NIM_NIL;
						boundV_1 = NIM_NIL;
						eqcopy___ast_u3381(&bpram_1, (*genBody_1).sons.p->data[(NI)(i_2 - ((NI)1))]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
						{
							colontmpD__2 = lookup__layeredtable_u711((&(*bindings_p0)), (*(*invocation_p2).sons.p->data[i_2]).itemId);
							if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
							if (!!((colontmpD__2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA31_;
							eqdestroy___ast_u3378(boundV_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							eqdestroy___ast_u3378(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							eqdestroy___ast_u3378(bpram_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							goto LA27;
						}
LA31_: ;
						boundV_1 = lookup__layeredtable_u711((&(*bindings_p0)), (*bpram_1).itemId);
						if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
						{
							if (!!((boundV_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA35_;
							put__layeredtable_u734(bindings_p0, (*(*invocation_p2).sons.p->data[i_2]).itemId, boundV_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
						}
LA35_: ;
						{
							LA28_:;
						}
						{
							oldNimErrFin28_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3378(boundV_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							eqdestroy___ast_u3378(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							eqdestroy___ast_u3378(bpram_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							*nimErr_ = oldNimErrFin28_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
					} LA27: ;
					i_3 += ((NI)1);
				} LA26: ;
			}
		}
		{
			LA7_:;
		}
		{
			oldNimErrFin7_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(genBody_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin7_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA5_: ;
	put__layeredtable_u734(bindings_p0, (*concpt_p1).itemId, (*m_p3).potentialImplementation);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, processConcept__concepts_u106)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concpt_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* invocation_p2, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* bindings_p3, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p4) {
	NIM_BOOL result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T2_;
NIM_BOOL oldNimErrFin9_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	colontmpD_ = NIM_NIL;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	newTypeMapLayer__layeredtable_u272((&(*m_p4).bindings), (&T2_));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqsink___layeredtable_u242((&(*m_p4).bindings), (&T2_));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T5_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* genericBody_1;
		T5_ = (NIM_BOOL)0;
		T5_ = !((invocation_p2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T5_)) goto LA6_;
		T5_ = ((*invocation_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11));
LA6_: ;
		if (!T5_) goto LA7_;
		genericBody_1 = NIM_NIL;
		genericBody_1 = base__ast_u5351(invocation_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		{
			NI i_1;
			NI colontmp_;
			NI T11_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			T11_ = (NI)0;
			T11_ = kidsLen__ast_u5648(invocation_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
			colontmp_ = (NI)(T11_ - ((NI)1));
			i_2 = ((NI)1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA13;
					i_1 = i_2;
					{
						NIM_BOOL T18_;
						if (!!(((*(*invocation_p2).sons.p->data[i_1]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63)))) goto LA16_;
						T18_ = (NIM_BOOL)0;
						T18_ = bindParam__concepts_u132(c_p0, m_p4, (*genericBody_1).sons.p->data[(NI)(i_1 - ((NI)1))], (*invocation_p2).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					}
LA16_: ;
					i_2 += ((NI)1);
				} LA13: ;
			}
		}
		{
			LA9_:;
		}
		{
			oldNimErrFin9_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(genericBody_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin9_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA7_: ;
	colontmpD_ = conceptBody__concepts_u192(concpt_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = conceptMatchNode__concepts_u92(c_p0, colontmpD_, m_p4);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T23_;
		T23_ = (NIM_BOOL)0;
		T23_ = result;
		if (!(T23_)) goto LA24_;
		T23_ = !((((*m_p4).flags &((NU8)1<<((NU)((((tyEnum_MatchFlags__te9cp1iI7j4FnZSmB5ytuQw)0)))&7U)))!=0));
LA24_: ;
		if (!T23_) goto LA25_;
		fixBindings__concepts_u1387(bindings_p3, concpt_p1, invocation_p2, m_p4);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA25_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3252(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchConceptToImpl__concepts_u247)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* potentialImpl_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concpt_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* efPot_1;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A oldBindings_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* oldPotentialImplementation_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* oldConcept_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* invocation_1;
	tyTuple__JqV0huqZNAHtnE3agKOyZg pair_1;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T28_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	concpt_1 = NIM_NIL;
	efPot_1 = NIM_NIL;
	nimZeroMem((void*)(&oldBindings_1), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	oldPotentialImplementation_1 = NIM_NIL;
	oldConcept_1 = NIM_NIL;
	invocation_1 = NIM_NIL;
	concpt_1 = reduceToBase__types_u4300(f_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!((*concpt_1).n == 0)) goto LA4_;
		{
			NIM_BOOL T8_;
			NIM_BOOL T9_;
			tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym41__1;
			tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym43__1;
			T8_ = (NIM_BOOL)0;
			T9_ = (NIM_BOOL)0;
			T9_ = !(((*concpt_1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
			if (!(T9_)) goto LA10_;
			T9_ = !(((*(*m_p3).concpt).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA10_: ;
			T8_ = T9_;
			if (!(T8_)) goto LA11_;
			T8_ = ((*concpt_1).sym == (*(*m_p3).concpt).sym);
LA11_: ;
			if (!T8_) goto LA12_;
			xX60gensym41__1 = (*potentialImpl_p2).itemId;
			xX60gensym43__1 = (*(*m_p3).potentialImplementation).itemId;
			result = ((NI)((NI)((NU64)(((NI) (xX60gensym41__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym41__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym43__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym43__1.item))));
			eqdestroy___ast_u3378(oldConcept_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(oldPotentialImplementation_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___layeredtable_u233((&oldBindings_1));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(efPot_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(concpt_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA12_: ;
		result = NIM_FALSE;
		eqdestroy___ast_u3378(oldConcept_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(oldPotentialImplementation_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___layeredtable_u233((&oldBindings_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(efPot_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(concpt_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	pair_1.Field0 = (*concpt_1).itemId;
	pair_1.Field1 = (*potentialImpl_p2).itemId;
	{
		NIM_BOOL T16_;
		T16_ = (NIM_BOOL)0;
		T16_ = contains__concepts_u304((*m_p3).marker, pair_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T16_) goto LA17_;
		result = NIM_TRUE;
		eqdestroy___ast_u3378(oldConcept_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(oldPotentialImplementation_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___layeredtable_u233((&oldBindings_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(efPot_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(concpt_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA17_: ;
	incl__concepts_u526((&(*m_p3).marker), pair_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&efPot_1, potentialImpl_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T21_;
		T21_ = (NIM_BOOL)0;
		T21_ = isSelf__semdata_u4610(potentialImpl_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T21_) goto LA22_;
		{
			if (!((*(*m_p3).concpt).n == (*concpt_1).n)) goto LA26_;
			excl__concepts_u892((&(*m_p3).marker), pair_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			result = NIM_TRUE;
			eqdestroy___ast_u3378(oldConcept_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(oldPotentialImplementation_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___layeredtable_u233((&oldBindings_1));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(efPot_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(concpt_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA26_: ;
		eqcopy___ast_u3381(&efPot_1, (*m_p3).potentialImplementation);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA22_: ;
	eqcopy___layeredtable_u236((&oldBindings_1), (&(*m_p3).bindings));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	nimZeroMem((void*)(&T28_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	newTypeMapLayer__layeredtable_u272((&(*m_p3).bindings), (&T28_));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqsink___layeredtable_u242((&(*m_p3).bindings), (&T28_));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&oldPotentialImplementation_1, (*m_p3).potentialImplementation);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqsink___ast_u3387(&(*m_p3).potentialImplementation, efPot_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqwasMoved___ast_u3375(&efPot_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&oldConcept_1, (*m_p3).concpt);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&(*m_p3).concpt, concpt_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	invocation_1 = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
	{
		if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9) || (*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11))) goto LA31_;
		invocation_1 = f_p1;
	}
LA31_: ;
	result = processConcept__concepts_u106(c_p0, concpt_1, invocation_1, (&oldBindings_1), m_p3);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqsink___ast_u3387(&(*m_p3).potentialImplementation, oldPotentialImplementation_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqwasMoved___ast_u3375(&oldPotentialImplementation_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqsink___ast_u3387(&(*m_p3).concpt, oldConcept_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqwasMoved___ast_u3375(&oldConcept_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqsink___layeredtable_u242((&(*m_p3).bindings), (&oldBindings_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqwasMoved___layeredtable_u230((&oldBindings_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	excl__concepts_u892((&(*m_p3).marker), pair_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(oldConcept_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(oldPotentialImplementation_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___layeredtable_u233((&oldBindings_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(efPot_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(concpt_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipModifier__ast_u5338)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5281((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3381(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, baseClass__ast_u5348)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObjectSubtype__concepts_u1078)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	t_1 = NIM_NIL;
	eqcopy___ast_u3381(&t_1, a_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = NIM_FALSE;
	{
		while (1) {
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T4_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T9_;
			if (!!((t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA3;
			T4_ = NIM_NIL;
			T4_ = baseClass__ast_u5348(t_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T4_); goto LA1_;}
			eqsink___ast_u3387(&t_1, T4_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				if (!(t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA7_;
				goto LA2;
			}
LA7_: ;
			T9_ = NIM_NIL;
			T9_ = skipTypes__ast_u5379(t_1, TM__yT8oP4IKFRSvia7t9bb5q3Q_3);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T9_); goto LA1_;}
			eqsink___ast_u3387(&t_1, T9_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				if (!(t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA12_;
				goto LA2;
			}
LA12_: ;
			{
				if (!!(((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17)))) goto LA16_;
				goto LA2;
			}
LA16_: ;
			{
				NIM_BOOL T20_;
				T20_ = (NIM_BOOL)0;
				T20_ = sameObjectTypes__types_u2018(f_p0, t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T20_) goto LA21_;
				result = NIM_TRUE;
				goto LA2;
			}
LA21_: ;
		} LA3: ;
	} LA2: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchKids__concepts_u223)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3, NI start_p4) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_TRUE;
	{
		NI i_1;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = kidsLen__ast_u5648(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmp_ = (NI)(T2_ - ((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11) || (*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9)));
		i_2 = start_p4;
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i_1 = i_2;
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = matchType__concepts_u96(c_p0, (*f_p1).sons.p->data[i_1], (*a_p2).sons.p->data[i_1], m_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!!(T7_)) goto LA8_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
LA8_: ;
				i_2 += ((NI)1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericHead__ast_u5376)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU64)(((NU) (x_p0))) - (NU64)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicStatic)(void* p_p0, TNimTypeV2* desc_p1) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
		cell_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T5_));
		{
			if (!((NI)((*cell_1).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc = minuspercent___system_u805((*cell_1).rc, ((NI)16));
		}
LA6_: ;
		rememberCycle__system_u3492(result, cell_1, desc_p1);
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___concepts_u1669)(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicStatic((*dest_p0).colonenvP1_, ((TNimTypeV2*) ((&NTIv2__7eUV7OPVyjamwpNzv7cq9bw_))));
		if (!T3_) goto LA4_;
		eqdestroy___concepts_u1669((&(*(*dest_p0).colonenvP1_)));
		nimRawDispose((*dest_p0).colonenvP1_, ((NI)8));
	}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__concepts_u1885)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	eqdestroy___concepts_u1669((&(*((tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw*) (dest_p0)))));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NI, pluspercent___system_u785)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU64)(((NU) (x_p0))) + (NU64)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(void, add__system_u3013)(tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg* s_p0, void** c_p1, TNimTypeV2* t_p2) {
	void** colontmp_;
	TNimTypeV2* colontmp__2;
	{
		if (!((*s_p0).cap <= (*s_p0).len)) goto LA3_;
		resize__system_u3021(s_p0);
	}
LA3_: ;
	colontmp_ = c_p1;
	colontmp__2 = t_p2;
	(*s_p0).d[(*s_p0).len].Field0 = colontmp_;
	(*s_p0).d[(*s_p0).len].Field1 = colontmp__2;
	(*s_p0).len = pluspercent___system_u785((*s_p0).len, ((NI)1));
}
static N_INLINE(void, nimTraceRef)(void* q_p0, TNimTypeV2* desc_p1, void* env_p2) {
	void** p_1;
	p_1 = ((void**) (q_p0));
	{
		tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w* j_1;
		if (!!(((*p_1) == NIM_NIL))) goto LA3_;
		j_1 = ((tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w*) (env_p2));
		add__system_u3013((&(*j_1).traceStack), p_1, desc_p1);
	}
LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___concepts_u1681)(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* dest_p0, void* env_p1) {
	nimTraceRef(&(*dest_p0).colonenvP1_, ((TNimTypeV2*) ((&NTIv2__7eUV7OPVyjamwpNzv7cq9bw_))), env_p1);
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___concepts_u1722)(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw** dest_p0, tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* src_p1) {
	tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* colontmp_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmp_ = (*dest_p0);
	(*dest_p0) = src_p1;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicStatic(colontmp_, ((TNimTypeV2*) ((&NTIv2__7eUV7OPVyjamwpNzv7cq9bw_))));
		if (!T3_) goto LA4_;
		eqdestroy___concepts_u1669((&(*colontmp_)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose(colontmp_, ((NI)8));
	}
LA4_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_CLOSURE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, traverseTyOr__concepts_u242)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, void* ClE_0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* colonenvP__1;
NIM_BOOL oldNimErrFin30_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	colonenvP__1 = (tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw*) ClE_0;
	while (1) {
		{
			switch ((*colonenvP__1).colonstate_) {
			case ((NI)0):
			{
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T5_;
					T5_ = NIM_NIL;
					eqsink___ast_u3387(&(*colonenvP__1).i5, T5_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						NI T7_;
						(*colonenvP__1).i4 = (NI)0;
						(*colonenvP__1).colontmp3_ = (NI)0;
						T7_ = (*t_p0).sons.len;
						(*colonenvP__1).colontmp3_ = T7_;
						(*colonenvP__1).i2 = ((NI)0);
						{
							(*colonenvP__1).colonstate_ = ((NI)1);
							goto LA2;
						}
					}
				}
			}
			break;
			case ((NI)1):
			{
				{
					if (!((*colonenvP__1).i2 < (*colonenvP__1).colontmp3_)) goto LA12_;
					(*colonenvP__1).i4 = (*colonenvP__1).i2;
					eqcopy___ast_u3381(&(*colonenvP__1).i5, (*t_p0).sons.p->data[(*colonenvP__1).i4]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					switch ((*(*colonenvP__1).i5).kind) {
					case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12):
					{
						{
							NIM_BOOL T17_;
							T17_ = (NIM_BOOL)0;
							T17_ = hasElementType__ast_u5660((*colonenvP__1).i5);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!T17_) goto LA18_;
							{
								tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* T21_;
								T21_ = NIM_NIL;
								T21_ = (tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw*) nimNewObj(sizeof(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw), NIM_ALIGNOF(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw));
								(*T21_).Sup.m_type = (&NTIv2__7eUV7OPVyjamwpNzv7cq9bw_);
								eqsink___concepts_u1722(&(*colonenvP__1).colonenvP1_, T21_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*colonenvP__1).colonstate_ = ((NI)2);
								goto LA2;
							}
						}
						goto LA15_;
LA18_: ;
						{
							(*colonenvP__1).colonstate_ = ((NI)3);
							eqcopy___ast_u3381(&result, (*colonenvP__1).i5);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA15_: ;
					}
					break;
					default:
					{
						(*colonenvP__1).colonstate_ = ((NI)3);
						eqcopy___ast_u3381(&result, (*colonenvP__1).i5);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
					break;
					}
				}
				goto LA10_;
LA12_: ;
				{
					(*colonenvP__1).colonstate_ = ((NI)4);
					goto LA2;
				}
LA10_: ;
			}
			break;
			case ((NI)2):
			{
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* s_1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
					tyProc__MPRzYOiRtpy059b8263P7bQ T31_;
					if (!NIM_TRUE) goto LA28_;
					s_1 = NIM_NIL;
					colontmpD_ = NIM_NIL;
					nimZeroMem((void*)(&T31_), sizeof(tyProc__MPRzYOiRtpy059b8263P7bQ));
					T31_.ClP_0 = traverseTyOr__concepts_u242; T31_.ClE_0 = (*colonenvP__1).colonenvP1_;
					colontmpD_ = elementType__ast_u5331((*colonenvP__1).i5);
					if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
					s_1 = T31_.ClP_0(colontmpD_, T31_.ClE_0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
					{
						if (!(((NI*) (*colonenvP__1).colonenvP1_)[1] < 0)) goto LA34_;
						(*colonenvP__1).colonstate_ = ((NI)3);
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(s_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto LA2;
					}
LA34_: ;
					(*colonenvP__1).colonstate_ = ((NI)2);
					result = s_1;
					eqwasMoved___ast_u3375(&s_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(s_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
					{
						LA30_:;
					}
					{
						oldNimErrFin30_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(s_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						*nimErr_ = oldNimErrFin30_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				goto LA26_;
LA28_: ;
				{
					(*colonenvP__1).colonstate_ = ((NI)3);
					goto LA2;
				}
LA26_: ;
			}
			break;
			case ((NI)3):
			{
				(*colonenvP__1).i2 += ((NI)1);
				(*colonenvP__1).colonstate_ = ((NI)1);
				goto LA2;
			}
			break;
			case ((NI)4):
			{
				(*colonenvP__1).colonstate_ = ((NI)-1);
				goto LA2;
			}
			break;
			default:
			{
				goto BeforeRet_;
			}
			break;
			}
		} LA2: ;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___concepts_u1711)(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicStatic(dest_p0, ((TNimTypeV2*) ((&NTIv2__7eUV7OPVyjamwpNzv7cq9bw_))));
		if (!T3_) goto LA4_;
		eqdestroy___concepts_u1669((&(*dest_p0)));
		nimRawDispose(dest_p0, ((NI)8));
	}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchType__concepts_u96)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fo_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ao_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_1;
NIM_BOOL oldNimErrFin43_;
NIM_BOOL oldNimErrFin32_;
NIM_BOOL oldNimErrFin51_;
NIM_BOOL oldNimErrFin70_;
NIM_BOOL oldNimErrFin65_;
NIM_BOOL oldNimErrFin77_;
NIM_BOOL oldNimErrFin60_;
NIM_BOOL oldNimErrFin99_;
NIM_BOOL oldNimErrFin87_;
NIM_BOOL oldNimErrFin109_;
NIM_BOOL oldNimErrFin115_;
NIM_BOOL oldNimErrFin123_;
NIM_BOOL oldNimErrFin170_;
NIM_BOOL oldNimErrFin162_;
NIM_BOOL oldNimErrFin190_;
NIM_BOOL oldNimErrFin213_;
NIM_BOOL oldNimErrFin221_;
NIM_BOOL oldNimErrFin185_;
NIM_BOOL oldNimErrFin245_;
NIM_BOOL oldNimErrFin230_;
NIM_BOOL oldNimErrFin265_;
NIM_BOOL oldNimErrFin269_;
NIM_BOOL oldNimErrFin280_;
NIM_BOOL oldNimErrFin277_;
NIM_BOOL oldNimErrFin295_;
NIM_BOOL oldNimErrFin309_;
NIM_BOOL oldNimErrFin332_;
NIM_BOOL oldNimErrFin329_;
NIM_BOOL oldNimErrFin322_;
NIM_BOOL oldNimErrFin319_;
NIM_BOOL oldNimErrFin354_;
NIM_BOOL oldNimErrFin371_;
NIM_BOOL oldNimErrFin381_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	a_1 = NIM_NIL;
	f_1 = NIM_NIL;
	eqcopy___ast_u3381(&a_1, ao_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&f_1, fo_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = isSelf__semdata_u4610(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T4_) goto LA5_;
		{
			if (!((*m_p3).magic == ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)6) || (*m_p3).magic == ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)5))) goto LA9_;
			result = NIM_FALSE;
			eqdestroy___ast_u3378(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA9_: ;
		eqcopy___ast_u3381(&a_1, (*m_p3).potentialImplementation);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA5_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T15_;
		if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12) || (*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)57) || (*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA13_;
		colontmpD_ = NIM_NIL;
		T15_ = NIM_NIL;
		T15_ = existingBinding__concepts_u112((&(*m_p3)), ao_p2);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T15_); goto LA1_;}
		eqsink___ast_u3387(&a_1, T15_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			NIM_BOOL T18_;
			NIM_BOOL T19_;
			NIM_BOOL T20_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T26_;
			T18_ = (NIM_BOOL)0;
			T19_ = (NIM_BOOL)0;
			T20_ = (NIM_BOOL)0;
			T20_ = (a_1 == ao_p2);
			if (!(T20_)) goto LA21_;
			T20_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
LA21_: ;
			T19_ = T20_;
			if (!(T19_)) goto LA22_;
			T19_ = hasElementType__ast_u5660(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA22_: ;
			T18_ = T19_;
			if (!(T18_)) goto LA23_;
			colontmpD_ = elementType__ast_u5331(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T18_ = !(((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0)));
LA23_: ;
			if (!T18_) goto LA24_;
			T26_ = NIM_NIL;
			T26_ = elementType__ast_u5331(a_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T26_); goto LA1_;}
			eqsink___ast_u3387(&a_1, T26_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA24_: ;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA13_: ;
	{
		NIM_BOOL T29_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		T29_ = (NIM_BOOL)0;
		T29_ = isConcept__types_u3423(f_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T29_) goto LA30_;
		colontmpD__2 = NIM_NIL;
		{
			NIM_BOOL T35_;
			T35_ = (NIM_BOOL)0;
			T35_ = acceptsAllTypes__concepts_u195(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
			if (!T35_) goto LA36_;
			result = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA36_: ;
		{
			NIM_BOOL T40_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
			tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA T44_;
			colontmpD__2 = skipTypes__ast_u5379(a_1, TM__yT8oP4IKFRSvia7t9bb5q3Q_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
			T40_ = (NIM_BOOL)0;
			T40_ = isConcept__types_u3423(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
			if (!T40_) goto LA41_;
			colontmpD__3 = NIM_NIL;
			colontmpD__4 = NIM_NIL;
			colontmpD__3 = reduceToBase__types_u4300(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
			colontmpD__4 = reduceToBase__types_u4300(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
			T44_ = (tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA)0;
			T44_ = conceptsMatch__concepts_u1041(c_p0, colontmpD__3, colontmpD__4, m_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
			result = (((tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA)1) <= T44_);
			eqdestroy___ast_u3378(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA43_:;
			}
			{
				oldNimErrFin43_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
				*nimErr_ = oldNimErrFin43_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		}
		goto LA38_;
LA41_: ;
		{
			result = matchConceptToImpl__concepts_u247(c_p0, f_1, a_1, m_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA38_: ;
		{
			LA32_:;
		}
		{
			oldNimErrFin32_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin32_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA30_: ;
	result = NIM_FALSE;
	switch ((*f_1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
		colontmpD__5 = NIM_NIL;
		colontmpD__5 = skipModifier__ast_u5338(f_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
		result = matchType__concepts_u96(c_p0, colontmpD__5, a_1, m_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
		{
			LA51_:;
		}
		{
			oldNimErrFin51_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin51_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	{
		{
			NIM_BOOL T57_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ua_1;
			T57_ = (NIM_BOOL)0;
			T57_ = isSelf__semdata_u4610(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T57_) goto LA58_;
			ua_1 = NIM_NIL;
			ua_1 = skipTypes__ast_u5379(a_1, TM__yT8oP4IKFRSvia7t9bb5q3Q_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA60_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
				if (!((*m_p3).magic == ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)6) || (*m_p3).magic == ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)5))) goto LA63_;
				colontmpD__6 = NIM_NIL;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
					NIM_BOOL T71_;
					colontmpD__6 = reduceToBase__types_u4300((*m_p3).potentialImplementation);
					if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
					if (!((*colontmpD__6).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16) || (*colontmpD__6).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27) || (*colontmpD__6).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28) || (*colontmpD__6).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24) || (*colontmpD__6).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29) || (*colontmpD__6).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18))) goto LA68_;
					colontmpD__7 = NIM_NIL;
					colontmpD__7 = last__ast_u5278((*m_p3).potentialImplementation);
					if (NIM_UNLIKELY(*nimErr_)) goto LA70_;
					T71_ = (NIM_BOOL)0;
					T71_ = bindParam__concepts_u132(c_p0, m_p3, a_1, colontmpD__7);
					if (NIM_UNLIKELY(*nimErr_)) goto LA70_;
					result = NIM_TRUE;
					{
						LA70_:;
					}
					{
						oldNimErrFin70_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(colontmpD__7);
						if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
						*nimErr_ = oldNimErrFin70_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
				}
LA68_: ;
				{
					LA65_:;
				}
				{
					oldNimErrFin65_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__6);
					if (NIM_UNLIKELY(*nimErr_)) goto LA60_;
					*nimErr_ = oldNimErrFin65_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA60_;
			}
			goto LA61_;
LA63_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__8;
				colontmpD__8 = NIM_NIL;
				colontmpD__8 = skipTypes__ast_u5379(a_1, TM__yT8oP4IKFRSvia7t9bb5q3Q_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
				result = matchType__concepts_u96(c_p0, colontmpD__8, (*m_p3).potentialImplementation, m_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
				{
					LA77_:;
				}
				{
					oldNimErrFin77_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__8);
					if (NIM_UNLIKELY(*nimErr_)) goto LA60_;
					*nimErr_ = oldNimErrFin77_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA60_;
			}
LA61_: ;
			{
				LA60_:;
			}
			{
				oldNimErrFin60_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(ua_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin60_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA55_;
LA58_: ;
		{
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__9;
				if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA85_;
				colontmpD__9 = NIM_NIL;
				{
					NIM_BOOL T90_;
					NIM_BOOL T91_;
					T90_ = (NIM_BOOL)0;
					T91_ = (NIM_BOOL)0;
					T91_ = hasElementType__ast_u5660(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA87_;
					T90_ = !(T91_);
					if (T90_) goto LA92_;
					colontmpD__9 = elementType__ast_u5331(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA87_;
					T90_ = ((*colontmpD__9).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0));
LA92_: ;
					if (!T90_) goto LA93_;
					result = NIM_TRUE;
				}
				goto LA88_;
LA93_: ;
				{
					NIM_BOOL T96_;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__10;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__11;
					T96_ = (NIM_BOOL)0;
					T96_ = hasElementType__ast_u5660(f_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA87_;
					if (!T96_) goto LA97_;
					colontmpD__10 = NIM_NIL;
					colontmpD__11 = NIM_NIL;
					colontmpD__10 = elementType__ast_u5331(f_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
					colontmpD__11 = elementType__ast_u5331(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
					result = matchType__concepts_u96(c_p0, colontmpD__10, colontmpD__11, m_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
					{
						LA99_:;
					}
					{
						oldNimErrFin99_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(colontmpD__11);
						if (NIM_UNLIKELY(*nimErr_)) goto LA87_;
						eqdestroy___ast_u3378(colontmpD__10);
						if (NIM_UNLIKELY(*nimErr_)) goto LA87_;
						*nimErr_ = oldNimErrFin99_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA87_;
				}
				goto LA88_;
LA97_: ;
LA88_: ;
				{
					LA87_:;
				}
				{
					oldNimErrFin87_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__9);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin87_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA85_: ;
		}
LA55_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__12;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__13;
			if (!((*a_1).kind == (*f_1).kind)) goto LA107_;
			colontmpD__12 = NIM_NIL;
			colontmpD__13 = NIM_NIL;
			colontmpD__12 = elementType__ast_u5331(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA109_;
			colontmpD__13 = elementType__ast_u5331(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA109_;
			result = matchType__concepts_u96(c_p0, colontmpD__12, colontmpD__13, m_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA109_;
			{
				LA109_:;
			}
			{
				oldNimErrFin109_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__13);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__12);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin109_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA105_;
LA107_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__14;
			if (!((*m_p3).magic == ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)6))) goto LA113_;
			colontmpD__14 = NIM_NIL;
			colontmpD__14 = elementType__ast_u5331(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
			result = matchType__concepts_u96(c_p0, colontmpD__14, a_1, m_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
			{
				LA115_:;
			}
			{
				oldNimErrFin115_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__14);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin115_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA105_;
LA113_: ;
LA105_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__15;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46) || (*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47) || (*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45) || (*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4) || (*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55))) goto LA121_;
			colontmpD__15 = NIM_NIL;
			colontmpD__15 = skipTypes__ast_u5379(a_1, TM__yT8oP4IKFRSvia7t9bb5q3Q_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA123_;
			result = matchType__concepts_u96(c_p0, f_1, colontmpD__15, m_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA123_;
			{
				LA123_:;
			}
			{
				oldNimErrFin123_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__15);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin123_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA119_;
LA121_: ;
		{
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__16;
				if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11))) goto LA129_;
				colontmpD__16 = NIM_NIL;
				colontmpD__16 = base__ast_u5351(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				result = ((*colontmpD__16).sym == (*f_1).sym);
				eqdestroy___ast_u3378(colontmpD__16);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			goto LA127_;
LA129_: ;
			{
				tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ T132_;
				T132_ = 0;
				result = sameType__types_u1826(f_1, a_1, T132_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA127_: ;
			{
				NIM_BOOL T135_;
				NIM_BOOL T136_;
				T135_ = (NIM_BOOL)0;
				T136_ = (NIM_BOOL)0;
				T136_ = !(result);
				if (!(T136_)) goto LA137_;
				T136_ = ((*f_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
LA137_: ;
				T135_ = T136_;
				if (!(T135_)) goto LA138_;
				T135_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
LA138_: ;
				if (!T135_) goto LA139_;
				result = isObjectSubtype__concepts_u1078(f_1, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA139_: ;
		}
LA119_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)26):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__17;
		colontmpD__17 = NIM_NIL;
		colontmpD__17 = skipTypes__ast_u5379(a_1, TM__yT8oP4IKFRSvia7t9bb5q3Q_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		result = ((*colontmpD__17).kind == (*f_1).kind);
		eqdestroy___ast_u3378(colontmpD__17);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)1):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ak_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__18;
		NIM_BOOL T143_;
		NIM_BOOL T144_;
		NIM_BOOL T147_;
		NIM_BOOL T148_;
		ak_1 = NIM_NIL;
		colontmpD__18 = NIM_NIL;
		ak_1 = skipTypes__ast_u5379(a_1, TM__yT8oP4IKFRSvia7t9bb5q3Q_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T143_ = (NIM_BOOL)0;
		T144_ = (NIM_BOOL)0;
		T144_ = ((*ak_1).kind == (*f_1).kind);
		if (T144_) goto LA145_;
		T144_ = ((*ak_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15));
LA145_: ;
		T143_ = T144_;
		if (T143_) goto LA146_;
		T147_ = (NIM_BOOL)0;
		T148_ = (NIM_BOOL)0;
		T148_ = ((*ak_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
		if (!(T148_)) goto LA149_;
		T148_ = hasElementType__ast_u5660(ak_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA149_: ;
		T147_ = T148_;
		if (!(T147_)) goto LA150_;
		colontmpD__18 = elementType__ast_u5331(ak_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T147_ = ((*colontmpD__18).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15));
LA150_: ;
		T143_ = T147_;
LA146_: ;
		result = T143_;
		eqdestroy___ast_u3378(colontmpD__18);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(ak_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
	{
		{
			NIM_BOOL T154_;
			NIM_BOOL T155_;
			NI T157_;
			T154_ = (NIM_BOOL)0;
			T155_ = (NIM_BOOL)0;
			T155_ = ((*f_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16));
			if (!(T155_)) goto LA156_;
			T157_ = (NI)0;
			T157_ = kidsLen__ast_u5648(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T155_ = (T157_ == ((NI)3));
LA156_: ;
			T154_ = T155_;
			if (!(T154_)) goto LA158_;
			T154_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16));
LA158_: ;
			if (!T154_) goto LA159_;
			result = NIM_TRUE;
		}
		goto LA152_;
LA159_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ak_2;
			NI T163_;
			tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg T164_;
			tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg T165_;
			ak_2 = NIM_NIL;
			T163_ = (NI)0;
			nimZeroMem(T164_, sizeof(tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg));
			T164_[(NU)(((*f_1).kind))>>3] |=(1U<<((NU)(((*f_1).kind))&7U));
			for (T163_ = 0; T163_ < 9; T163_++) 
  T165_[T163_] = TM__yT8oP4IKFRSvia7t9bb5q3Q_2[T163_] & ~ T164_[T163_];
			ak_2 = skipTypes__ast_u5379(a_1, T165_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA162_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__19;
				if (!((*ak_2).kind == (*f_1).kind)) goto LA168_;
				colontmpD__19 = NIM_NIL;
				{
					colontmpD__19 = base__ast_u5351(f_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA170_;
					if (!((*colontmpD__19).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0))) goto LA173_;
					result = NIM_TRUE;
				}
				goto LA171_;
LA173_: ;
				{
					NI T176_;
					NI T177_;
					T176_ = (NI)0;
					T176_ = kidsLen__ast_u5648(f_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA170_;
					T177_ = (NI)0;
					T177_ = kidsLen__ast_u5648(ak_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA170_;
					if (!(T176_ == T177_)) goto LA178_;
					result = matchKids__concepts_u223(c_p0, f_1, ak_2, m_p3, ((NI)0));
					if (NIM_UNLIKELY(*nimErr_)) goto LA170_;
				}
				goto LA171_;
LA178_: ;
LA171_: ;
				{
					LA170_:;
				}
				{
					oldNimErrFin170_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__19);
					if (NIM_UNLIKELY(*nimErr_)) goto LA162_;
					*nimErr_ = oldNimErrFin170_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA162_;
			}
LA168_: ;
			{
				LA162_:;
			}
			{
				oldNimErrFin162_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(ak_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin162_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA152_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ea_1;
		ea_1 = NIM_NIL;
		result = NIM_FALSE;
		ea_1 = skipTypes__ast_u5379(a_1, TM__yT8oP4IKFRSvia7t9bb5q3Q_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA185_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__20;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__21;
			NI k1_1;
			NI T191_;
			NI k2_1;
			NI T192_;
			if (!((*ea_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11) || (*ea_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9))) goto LA188_;
			colontmpD__20 = NIM_NIL;
			colontmpD__21 = NIM_NIL;
			T191_ = (NI)0;
			T191_ = kidsLen__ast_u5648(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA190_;
			k1_1 = (NI)(T191_ - ((*f_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11)));
			T192_ = (NI)0;
			T192_ = kidsLen__ast_u5648(ea_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA190_;
			k2_1 = (NI)(T192_ - ((*ea_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11)));
			{
				NIM_BOOL T195_;
				tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ T196_;
				T195_ = (NIM_BOOL)0;
				colontmpD__20 = genericHead__ast_u5376(f_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA190_;
				colontmpD__21 = genericHead__ast_u5376(ea_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA190_;
				T196_ = 0;
				T195_ = sameType__types_u1826(colontmpD__20, colontmpD__21, T196_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA190_;
				if (!(T195_)) goto LA197_;
				T195_ = (k1_1 == k2_1);
LA197_: ;
				if (!T195_) goto LA198_;
				result = NIM_TRUE;
				{
					NI i_1;
					NI i_2;
					i_1 = (NI)0;
					i_2 = ((NI)1);
					{
						while (1) {
							if (!(i_2 < k2_1)) goto LA202;
							i_1 = i_2;
							{
								NIM_BOOL T205_;
								T205_ = (NIM_BOOL)0;
								T205_ = matchType__concepts_u96(c_p0, (*f_1).sons.p->data[i_1], (*ea_1).sons.p->data[i_1], m_p3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA190_;
								if (!!(T205_)) goto LA206_;
								result = NIM_FALSE;
								goto LA200;
							}
LA206_: ;
							i_2 += ((NI)1);
						} LA202: ;
					}
				} LA200: ;
			}
LA198_: ;
			{
				LA190_:;
			}
			{
				oldNimErrFin190_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__21);
				if (NIM_UNLIKELY(*nimErr_)) goto LA185_;
				eqdestroy___ast_u3378(colontmpD__20);
				if (NIM_UNLIKELY(*nimErr_)) goto LA185_;
				*nimErr_ = oldNimErrFin190_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA185_;
		}
		goto LA186_;
LA188_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* body_1;
			if (!((*f_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9))) goto LA211_;
			body_1 = NIM_NIL;
			body_1 = base__ast_u5351(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA213_;
			{
				NI i_3;
				NI colontmp_;
				NI i_4;
				i_3 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_u5502(f_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA213_;
				i_4 = ((NI)1);
				{
					while (1) {
						NIM_BOOL T217_;
						if (!(i_4 < colontmp_)) goto LA216;
						i_3 = i_4;
						T217_ = (NIM_BOOL)0;
						T217_ = bindParam__concepts_u132(c_p0, m_p3, (*body_1).sons.p->data[(NI)(i_3 - ((NI)1))], (*f_1).sons.p->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA213_;
						i_4 += ((NI)1);
					} LA216: ;
				}
			}
			result = matchType__concepts_u96(c_p0, body_1, a_1, m_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA213_;
			{
				LA213_:;
			}
			{
				oldNimErrFin213_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(body_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA185_;
				*nimErr_ = oldNimErrFin213_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA185_;
		}
		goto LA186_;
LA211_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__22;
			colontmpD__22 = NIM_NIL;
			colontmpD__22 = last__ast_u5278(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA221_;
			result = matchType__concepts_u96(c_p0, colontmpD__22, a_1, m_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA221_;
			{
				LA221_:;
			}
			{
				oldNimErrFin221_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__22);
				if (NIM_UNLIKELY(*nimErr_)) goto LA185_;
				*nimErr_ = oldNimErrFin221_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA185_;
		}
LA186_: ;
		{
			LA185_:;
		}
		{
			oldNimErrFin185_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(ea_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin185_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15):
	{
		NIM_BOOL T227_;
		T227_ = (NIM_BOOL)0;
		T227_ = isOrdinalType__types_u283(a_1, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (T227_) goto LA228_;
		T227_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
LA228_: ;
		result = T227_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* scomp_1;
		scomp_1 = NIM_NIL;
		scomp_1 = base__ast_u5351(f_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA230_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__23;
			if (!((*scomp_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA233_;
			colontmpD__23 = NIM_NIL;
			{
				NI T237_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T240_;
				colontmpD__23 = base__ast_u5351(f_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA230_;
				T237_ = (NI)0;
				T237_ = kidsLen__ast_u5648(colontmpD__23);
				if (NIM_UNLIKELY(*nimErr_)) goto LA230_;
				if (!(((NI)0) < T237_)) goto LA238_;
				T240_ = NIM_NIL;
				T240_ = base__ast_u5351(scomp_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T240_); goto LA230_;}
				eqsink___ast_u3387(&scomp_1, T240_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA230_;
			}
LA238_: ;
			eqdestroy___ast_u3378(colontmpD__23);
			if (NIM_UNLIKELY(*nimErr_)) goto LA230_;
		}
LA233_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__24;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60))) goto LA243_;
			colontmpD__24 = NIM_NIL;
			colontmpD__24 = base__ast_u5351(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
			result = matchType__concepts_u96(c_p0, scomp_1, colontmpD__24, m_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
			{
				LA245_:;
			}
			{
				oldNimErrFin245_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__24);
				if (NIM_UNLIKELY(*nimErr_)) goto LA230_;
				*nimErr_ = oldNimErrFin245_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA230_;
		}
		goto LA241_;
LA243_: ;
		{
			result = matchType__concepts_u96(c_p0, scomp_1, a_1, m_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA230_;
		}
LA241_: ;
		{
			LA230_:;
		}
		{
			oldNimErrFin230_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(scomp_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin230_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12):
	{
		{
			NIM_BOOL T254_;
			NIM_BOOL T257_;
			T254_ = (NIM_BOOL)0;
			T254_ = acceptsAllTypes__concepts_u195(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T254_) goto LA255_;
			T257_ = (NIM_BOOL)0;
			T257_ = bindParam__concepts_u132(c_p0, m_p3, f_1, a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			(void)(T257_);
			result = acceptsAllTypes__concepts_u195(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA252_;
LA255_: ;
		{
			result = bindParam__concepts_u132(c_p0, m_p3, f_1, a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA252_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)58):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__25;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__26;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)58))) goto LA263_;
			colontmpD__25 = NIM_NIL;
			colontmpD__26 = NIM_NIL;
			colontmpD__25 = elementType__ast_u5331(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA265_;
			colontmpD__26 = elementType__ast_u5331(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA265_;
			result = matchType__concepts_u96(c_p0, colontmpD__25, colontmpD__26, m_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA265_;
			{
				LA265_:;
			}
			{
				oldNimErrFin265_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__26);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__25);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin265_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA261_;
LA263_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__27;
			tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T270_;
			NIM_BOOL T271_;
			colontmpD__27 = NIM_NIL;
			nimZeroMem((void*)(&T270_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
			newTypeMapLayer__layeredtable_u272((&(*m_p3).bindings), (&T270_));
			if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
			eqsink___layeredtable_u242((&(*m_p3).bindings), (&T270_));
			if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
			colontmpD__27 = elementType__ast_u5331(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
			T271_ = (NIM_BOOL)0;
			T271_ = matchType__concepts_u96(c_p0, colontmpD__27, a_1, m_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
			result = !(T271_);
			setToPreviousLayer__layeredtable_u286((&(*m_p3).bindings));
			if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
			{
				LA269_:;
			}
			{
				oldNimErrFin269_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__27);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin269_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA261_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56):
	{
		tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T275_;
		nimZeroMem((void*)(&T275_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
		newTypeMapLayer__layeredtable_u272((&(*m_p3).bindings), (&T275_));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqsink___layeredtable_u242((&(*m_p3).bindings), (&T275_));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		result = NIM_TRUE;
		{
			tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* traverseTyOr_1;
			tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* T278_;
			traverseTyOr_1 = NIM_NIL;
			T278_ = NIM_NIL;
			T278_ = (tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw*) nimNewObj(sizeof(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw), NIM_ALIGNOF(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw));
			(*T278_).Sup.m_type = (&NTIv2__7eUV7OPVyjamwpNzv7cq9bw_);
			traverseTyOr_1 = T278_;
			while (1) {
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_1;
				tyProc__MPRzYOiRtpy059b8263P7bQ T281_;
				NIM_BOOL r_1;
				ff_1 = NIM_NIL;
				nimZeroMem((void*)(&T281_), sizeof(tyProc__MPRzYOiRtpy059b8263P7bQ));
				T281_.ClP_0 = traverseTyOr__concepts_u242; T281_.ClE_0 = traverseTyOr_1;
				ff_1 = T281_.ClP_0(f_1, T281_.ClE_0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA280_;
				{
					if (!(((NI*) traverseTyOr_1)[1] < 0)) goto LA284_;
					eqdestroy___ast_u3378(ff_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA277_;
					goto LA279;
				}
LA284_: ;
				r_1 = matchType__concepts_u96(c_p0, ff_1, a_1, m_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA280_;
				{
					if (!!(r_1)) goto LA288_;
					setToPreviousLayer__layeredtable_u286((&(*m_p3).bindings));
					if (NIM_UNLIKELY(*nimErr_)) goto LA280_;
					result = NIM_FALSE;
					eqdestroy___ast_u3378(ff_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA277_;
					eqdestroy___concepts_u1711(traverseTyOr_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					goto LA276;
				}
LA288_: ;
				{
					LA280_:;
				}
				{
					oldNimErrFin280_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(ff_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA277_;
					*nimErr_ = oldNimErrFin280_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA277_;
			} LA279: ;
			{
				LA277_:;
			}
			{
				oldNimErrFin277_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___concepts_u1711(traverseTyOr_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin277_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		} LA276: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ak_3;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__28;
		ak_3 = NIM_NIL;
		colontmpD__28 = NIM_NIL;
		eqcopy___ast_u3381(&ak_3, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA295_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T300_;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10))) goto LA298_;
			T300_ = NIM_NIL;
			T300_ = last__ast_u5278(a_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T300_); goto LA295_;}
			eqsink___ast_u3387(&ak_3, T300_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA295_;
		}
LA298_: ;
		colontmpD__28 = last__ast_u5278(f_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA295_;
		result = matchType__concepts_u96(c_p0, colontmpD__28, ak_3, m_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA295_;
		{
			LA295_:;
		}
		{
			oldNimErrFin295_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__28);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(ak_3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin295_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54):
	{
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54))) goto LA306_;
			result = matchKids__concepts_u223(c_p0, f_1, a_1, m_p3, ((NI)0));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA304_;
LA306_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__29;
			colontmpD__29 = NIM_NIL;
			colontmpD__29 = last__ast_u5278(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA309_;
			result = matchType__concepts_u96(c_p0, colontmpD__29, a_1, m_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA309_;
			{
				LA309_:;
			}
			{
				oldNimErrFin309_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__29);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin309_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA304_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__30;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__31;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__32;
		tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg target_1;
		colontmpD__30 = NIM_NIL;
		colontmpD__31 = NIM_NIL;
		colontmpD__32 = NIM_NIL;
		colontmpD__30 = genericHead__ast_u5376(f_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		target_1 = (*colontmpD__30).kind;
		colontmpD__31 = skipTypes__ast_u5379(a_1, TM__yT8oP4IKFRSvia7t9bb5q3Q_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		colontmpD__32 = reduceToBase__types_u4300(colontmpD__31);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		result = ((*colontmpD__32).kind == target_1);
		eqdestroy___ast_u3378(colontmpD__32);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD__31);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD__30);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)57):
	{
		{
			NI covered_1;
			NI T351_;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)57))) goto LA316_;
			covered_1 = ((NI)0);
			{
				tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* traverseTyOr_2;
				tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* T320_;
				traverseTyOr_2 = NIM_NIL;
				T320_ = NIM_NIL;
				T320_ = (tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw*) nimNewObj(sizeof(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw), NIM_ALIGNOF(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw));
				(*T320_).Sup.m_type = (&NTIv2__7eUV7OPVyjamwpNzv7cq9bw_);
				traverseTyOr_2 = T320_;
				while (1) {
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_2;
					tyProc__MPRzYOiRtpy059b8263P7bQ T323_;
					ff_2 = NIM_NIL;
					nimZeroMem((void*)(&T323_), sizeof(tyProc__MPRzYOiRtpy059b8263P7bQ));
					T323_.ClP_0 = traverseTyOr__concepts_u242; T323_.ClE_0 = traverseTyOr_2;
					ff_2 = T323_.ClP_0(f_1, T323_.ClE_0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA322_;
					{
						if (!(((NI*) traverseTyOr_2)[1] < 0)) goto LA326_;
						eqdestroy___ast_u3378(ff_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA319_;
						goto LA321;
					}
LA326_: ;
					{
						tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* traverseTyOr_3;
						tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw* T330_;
						traverseTyOr_3 = NIM_NIL;
						traverseTyOr_3 = 0;
						T330_ = NIM_NIL;
						T330_ = (tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw*) nimNewObj(sizeof(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw), NIM_ALIGNOF(tyObject_Env_conceptsdotnim_traverseTyOr___7eUV7OPVyjamwpNzv7cq9bw));
						(*T330_).Sup.m_type = (&NTIv2__7eUV7OPVyjamwpNzv7cq9bw_);
						traverseTyOr_3 = T330_;
						while (1) {
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_1;
							tyProc__MPRzYOiRtpy059b8263P7bQ T333_;
							tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T338_;
							NIM_BOOL r_2;
							aa_1 = NIM_NIL;
							nimZeroMem((void*)(&T333_), sizeof(tyProc__MPRzYOiRtpy059b8263P7bQ));
							T333_.ClP_0 = traverseTyOr__concepts_u242; T333_.ClE_0 = traverseTyOr_3;
							aa_1 = T333_.ClP_0(a_1, T333_.ClE_0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA332_;
							{
								if (!(((NI*) traverseTyOr_3)[1] < 0)) goto LA336_;
								eqdestroy___ast_u3378(aa_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA329_;
								goto LA331;
							}
LA336_: ;
							nimZeroMem((void*)(&T338_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
							newTypeMapLayer__layeredtable_u272((&(*m_p3).bindings), (&T338_));
							if (NIM_UNLIKELY(*nimErr_)) goto LA332_;
							eqsink___layeredtable_u242((&(*m_p3).bindings), (&T338_));
							if (NIM_UNLIKELY(*nimErr_)) goto LA332_;
							r_2 = matchType__concepts_u96(c_p0, ff_2, aa_1, m_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA332_;
							{
								if (!r_2) goto LA341_;
								covered_1 += ((NI)1);
								eqdestroy___ast_u3378(aa_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA329_;
								eqdestroy___concepts_u1711(traverseTyOr_3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA322_;
								goto LA328;
							}
LA341_: ;
							setToPreviousLayer__layeredtable_u286((&(*m_p3).bindings));
							if (NIM_UNLIKELY(*nimErr_)) goto LA332_;
							{
								LA332_:;
							}
							{
								oldNimErrFin332_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3378(aa_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA329_;
								*nimErr_ = oldNimErrFin332_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA329_;
						} LA331: ;
						{
							LA329_:;
						}
						{
							oldNimErrFin329_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___concepts_u1711(traverseTyOr_3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA322_;
							*nimErr_ = oldNimErrFin329_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA322_;
					} LA328: ;
					{
						LA322_:;
					}
					{
						oldNimErrFin322_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(ff_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA319_;
						*nimErr_ = oldNimErrFin322_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA319_;
				} LA321: ;
				{
					LA319_:;
				}
				{
					oldNimErrFin319_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___concepts_u1711(traverseTyOr_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin319_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			T351_ = (NI)0;
			T351_ = kidsLen__ast_u5648(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			result = (T351_ <= covered_1);
		}
		goto LA314_;
LA316_: ;
		{
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_3;
				ff_3 = NIM_NIL;
				{
					NI i_5;
					NI colontmp__2;
					NI T356_;
					NI i_6;
					i_5 = (NI)0;
					colontmp__2 = (NI)0;
					T356_ = (*f_1).sons.len;
					colontmp__2 = T356_;
					i_6 = ((NI)0);
					{
						while (1) {
							tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T359_;
							if (!(i_6 < colontmp__2)) goto LA358;
							i_5 = i_6;
							eqcopy___ast_u3381(&ff_3, (*f_1).sons.p->data[i_5]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA354_;
							nimZeroMem((void*)(&T359_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
							newTypeMapLayer__layeredtable_u272((&(*m_p3).bindings), (&T359_));
							if (NIM_UNLIKELY(*nimErr_)) goto LA354_;
							eqsink___layeredtable_u242((&(*m_p3).bindings), (&T359_));
							if (NIM_UNLIKELY(*nimErr_)) goto LA354_;
							result = matchType__concepts_u96(c_p0, ff_3, a_1, m_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA354_;
							{
								if (!result) goto LA362_;
								eqdestroy___ast_u3378(ff_3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								goto LA353;
							}
LA362_: ;
							setToPreviousLayer__layeredtable_u286((&(*m_p3).bindings));
							if (NIM_UNLIKELY(*nimErr_)) goto LA354_;
							i_6 += ((NI)1);
						} LA358: ;
					}
				}
				{
					LA354_:;
				}
				{
					oldNimErrFin354_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(ff_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin354_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			} LA353: ;
		}
LA314_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
	{
		result = NIM_FALSE;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__33;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__34;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19))) goto LA369_;
			colontmpD__33 = NIM_NIL;
			colontmpD__34 = NIM_NIL;
			colontmpD__33 = elementType__ast_u5331(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA371_;
			colontmpD__34 = elementType__ast_u5331(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA371_;
			result = matchType__concepts_u96(c_p0, colontmpD__33, colontmpD__34, m_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA371_;
			{
				LA371_:;
			}
			{
				oldNimErrFin371_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__34);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__33);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin371_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA369_: ;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	{
		NIM_BOOL T377_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* bf_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T382_;
		T377_ = (NIM_BOOL)0;
		T377_ = result;
		if (!(T377_)) goto LA378_;
		T377_ = ((*ao_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
LA378_: ;
		if (!T377_) goto LA379_;
		bf_1 = NIM_NIL;
		T382_ = NIM_NIL;
		{
			NIM_BOOL T385_;
			T385_ = (NIM_BOOL)0;
			T385_ = isSelf__semdata_u4610(f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA381_;
			if (!T385_) goto LA386_;
			eqcopy___ast_u3381(&bf_1, (*m_p3).potentialImplementation);
			if (NIM_UNLIKELY(*nimErr_)) goto LA381_;
		}
		goto LA383_;
LA386_: ;
		{
			bf_1 = f_1;
			eqwasMoved___ast_u3375(&f_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA381_;
		}
LA383_: ;
		{
			NIM_BOOL T391_;
			T391_ = (NIM_BOOL)0;
			T391_ = bindParam__concepts_u132(c_p0, m_p3, ao_p2, bf_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA381_;
			if (!T391_) goto LA392_;
		}
LA392_: ;
		{
			LA381_:;
		}
		{
			oldNimErrFin381_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(bf_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin381_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA379_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(f_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cmpConceptDefs__concepts_u1022)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* fn_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* an_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ft_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* at_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
NIM_BOOL oldNimErrFin21_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	ft_1 = NIM_NIL;
	at_1 = NIM_NIL;
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	{
		if (!!(((*fn_p1).kind == (*an_p2).kind))) goto LA4_;
		result = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(at_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(ft_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = eqeq___idents_u366((*(*(*fn_p1)._kind_6.sons.p->data[((NI)0)])._kind_4.sym).name, (*(*(*an_p2)._kind_6.sons.p->data[((NI)0)])._kind_4.sym).name);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!!(T8_)) goto LA9_;
		result = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(at_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(ft_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA9_: ;
	ft_1 = defSignatureType__concepts_u189(fn_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	at_1 = defSignatureType__concepts_u189(an_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NI T13_;
		NI T14_;
		T13_ = (NI)0;
		T13_ = len__ast_u5502(ft_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T14_ = (NI)0;
		T14_ = len__ast_u5502(at_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!!((T13_ == T14_))) goto LA15_;
		result = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(at_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(ft_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA15_: ;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_u3190((*ft_1).n);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		i_2 = ((NI)1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA19;
				i_1 = i_2;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aType_1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fType_1;
					tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T22_;
					aType_1 = NIM_NIL;
					fType_1 = NIM_NIL;
					nimZeroMem((void*)(&T22_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
					newTypeMapLayer__layeredtable_u272((&(*m_p3).bindings), (&T22_));
					if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
					eqsink___layeredtable_u242((&(*m_p3).bindings), (&T22_));
					if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
					eqcopy___ast_u3381(&aType_1, (*(*(*at_1).n)._kind_6.sons.p->data[i_1]).typField);
					if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
					eqcopy___ast_u3381(&fType_1, (*(*(*ft_1).n)._kind_6.sons.p->data[i_1]).typField);
					if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
					{
						NIM_BOOL T25_;
						T25_ = (NIM_BOOL)0;
						T25_ = isSelf__semdata_u4610(aType_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
						if (!(T25_)) goto LA26_;
						T25_ = isSelf__semdata_u4610(fType_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
LA26_: ;
						if (!T25_) goto LA27_;
						eqdestroy___ast_u3378(fType_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(aType_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						goto LA20;
					}
LA27_: ;
					{
						NIM_BOOL T31_;
						T31_ = (NIM_BOOL)0;
						T31_ = matchType__concepts_u96(c_p0, fType_1, aType_1, m_p3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
						if (!!(T31_)) goto LA32_;
						setToPreviousLayer__layeredtable_u286((&(*m_p3).bindings));
						if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
						result = NIM_FALSE;
						eqdestroy___ast_u3378(fType_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(aType_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(at_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(ft_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA32_: ;
					{
						LA21_:;
					}
					{
						oldNimErrFin21_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(fType_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(aType_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin21_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				} LA20: ;
				i_2 += ((NI)1);
			} LA19: ;
		}
	}
	result = NIM_TRUE;
	{
		NIM_BOOL T38_;
		colontmpD_ = returnType__ast_u5354(ft_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		colontmpD__2 = returnType__ast_u5354(at_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T38_ = (NIM_BOOL)0;
		T38_ = matchReturnType__concepts_u101(c_p0, colontmpD_, colontmpD__2, m_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!!(T38_)) goto LA39_;
		setToPreviousLayer__layeredtable_u286((&(*m_p3).bindings));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		result = NIM_FALSE;
	}
LA39_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(at_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(ft_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA, conceptsMatch__concepts_u1041)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fc_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ac_p2, tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* m_p3) {
	tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* fn_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* an_1;
	NIM_BOOL sameLen_1;
	NI T6_;
	NI T7_;
	NIM_BOOL match_1;
NIM_BOOL oldNimErrFin14_;
NIM_BOOL oldNimErrFin9_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA)0;
	fn_1 = NIM_NIL;
	an_1 = NIM_NIL;
	{
		if (!((*fc_p1).n == (*ac_p2).n)) goto LA4_;
		result = ((tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA)2);
		eqdestroy___ast_u3252(an_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(fn_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	fn_1 = conceptBody__concepts_u192(fc_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	an_1 = conceptBody__concepts_u192(ac_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T6_ = (NI)0;
	T6_ = len__ast_u5502(fc_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T7_ = (NI)0;
	T7_ = len__ast_u5502(ac_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	sameLen_1 = (T6_ == T7_);
	match_1 = NIM_FALSE;
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* fdef_1;
		fdef_1 = NIM_NIL;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_u3197(fn_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
			i_2 = ((NI)0);
			{
				while (1) {
					NIM_BOOL cmpResult_1;
					if (!(i_2 < colontmp_)) goto LA12;
					i_1 = i_2;
					eqcopy___ast_u3255(&fdef_1, (*fn_1)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					cmpResult_1 = NIM_FALSE;
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* ndef_1;
						NI ia_1;
						ndef_1 = NIM_NIL;
						ia_1 = (NI)0;
						ndef_1 = 0;
						{
							NI i_3;
							NI colontmp__2;
							NI i_4;
							i_3 = (NI)0;
							colontmp__2 = (NI)0;
							colontmp__2 = safeLen__ast_u3197(an_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
							i_4 = ((NI)0);
							{
								while (1) {
									if (!(i_4 < colontmp__2)) goto LA17;
									i_3 = i_4;
									ia_1 = i_3;
									eqcopy___ast_u3255(&ndef_1, (*an_1)._kind_6.sons.p->data[i_3]);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									match_1 = cmpConceptDefs__concepts_u1022(c_p0, fdef_1, ndef_1, m_p3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									{
										if (!match_1) goto LA20_;
										eqdestroy___ast_u3252(ndef_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
										goto LA13;
									}
LA20_: ;
									i_4 += ((NI)1);
								} LA17: ;
							}
						}
						{
							LA14_:;
						}
						{
							oldNimErrFin14_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(ndef_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
							*nimErr_ = oldNimErrFin14_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					} LA13: ;
					{
						if (!!(match_1)) goto LA26_;
						result = ((tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA)0);
						eqdestroy___ast_u3252(fdef_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3252(an_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3252(fn_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA26_: ;
					i_2 += ((NI)1);
				} LA12: ;
			}
		}
		{
			LA9_:;
		}
		{
			oldNimErrFin9_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(fdef_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin9_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	result = ((tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA)1);
	eqdestroy___ast_u3252(an_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3252(fn_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3252(an_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(fn_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
		cell_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T5_));
		{
			if (!((NI)((*cell_1).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc = minuspercent___system_u805((*cell_1).rc, ((NI)16));
		}
LA6_: ;
		{
			if (!result) goto LA13_;
			{
				if (!(((NI)0) < (*cell_1).rootIdx)) goto LA17_;
				unregisterCycle__system_u3122(cell_1);
			}
LA17_: ;
		}
LA13_: ;
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___concepts_u1578)(tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0).concpt);
		if (!T3_) goto LA4_;
		eqdestroy___ast_u3288((&(*(*dest_p0).concpt)));
		nimRawDispose((*dest_p0).concpt, ((NI)8));
	}
LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = nimDecRefIsLastDyn((*dest_p0).potentialImplementation);
		if (!T8_) goto LA9_;
		eqdestroy___ast_u3288((&(*(*dest_p0).potentialImplementation)));
		nimRawDispose((*dest_p0).potentialImplementation, ((NI)8));
	}
LA9_: ;
	eqdestroy___concepts_u408((*dest_p0).marker.data);
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = nimDecRefIsLastDyn((*dest_p0).bindings.nextLayer);
		if (!T13_) goto LA14_;
		eqdestroy___layeredtable_u233((&(*(*dest_p0).bindings.nextLayer)));
		nimRawDispose((*dest_p0).bindings.nextLayer, ((NI)8));
	}
LA14_: ;
	eqdestroy___layeredtable_u168((*dest_p0).bindings.topLayer.data);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, conceptMatch__concepts_u1475)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concpt_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* arg_p2, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* bindings_p3, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* invocation_p4, tySet_tyEnum_MatchFlags__te9cp1iI7j4FnZSmB5ytuQw flags_p5) {
	NIM_BOOL result;
	tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw m_1;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A colontmpD_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T2_;
NIM_BOOL oldNimErrFin8_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&m_1), sizeof(tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw));
	nimZeroMem((void*)(&m_1), sizeof(tyObject_MatchCon__mK26kCXfd9bPzY5MDsV9a7kw));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	eqdup___layeredtable_u239((&(*bindings_p3)), (&T2_));
	colontmpD_.topLayer = T2_.topLayer;
	colontmpD_.nextLayer = T2_.nextLayer;
	colontmpD_.previousLen = T2_.previousLen;
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	m_1.bindings.topLayer = colontmpD_.topLayer;
	m_1.bindings.nextLayer = colontmpD_.nextLayer;
	m_1.bindings.previousLen = colontmpD_.previousLen;
	colontmpD__2 = eqdup___ast_u3384(arg_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	m_1.potentialImplementation = colontmpD__2;
	colontmpD__3 = eqdup___ast_u3384(concpt_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	m_1.concpt = colontmpD__3;
	m_1.flags = flags_p5;
	m_1.marker = initHashSet__concepts_u1492(((NI)64));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T5_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
		tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA T9_;
		T5_ = (NIM_BOOL)0;
		T5_ = isConcept__types_u3423(arg_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T5_) goto LA6_;
		colontmpD__4 = NIM_NIL;
		colontmpD__5 = NIM_NIL;
		colontmpD__4 = reduceToBase__types_u4300(concpt_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		colontmpD__5 = reduceToBase__types_u4300(arg_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		T9_ = (tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA)0;
		T9_ = conceptsMatch__concepts_u1041(c_p0, colontmpD__4, colontmpD__5, (&m_1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		result = (((tyEnum_MatchKind__yzTmNs9bDYJaUKPGN9bMTzNA)1) <= T9_);
		{
			LA8_:;
		}
		{
			oldNimErrFin8_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin8_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA3_;
LA6_: ;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = acceptsAllTypes__concepts_u195(arg_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T13_) goto LA14_;
		result = NIM_FALSE;
	}
	goto LA3_;
LA14_: ;
	{
		if (!((m_1.flags &((NU8)1<<((NU)((((tyEnum_MatchFlags__te9cp1iI7j4FnZSmB5ytuQw)1)))&7U)))!=0)) goto LA17_;
		result = NIM_TRUE;
	}
	goto LA3_;
LA17_: ;
	{
		result = processConcept__concepts_u106(c_p0, concpt_p1, invocation_p4, bindings_p3, (&m_1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA3_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___concepts_u1578((&m_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, addDecl__lookups_u3785)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p2) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	addDeclAt__lookups_u3253(c_p0, (*c_p0).currentScope, sym_p1, info_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, declareSelf__concepts_u13)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* ow_1;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_1;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* colontmpD_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ T2_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T3_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	ow_1 = NIM_NIL;
	s_1 = NIM_NIL;
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	ow_1 = getCurrOwner__semdata_u425(c_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD_ = getIdent__idents_u206((*c_p0).cache, TM__yT8oP4IKFRSvia7t9bb5q3Q_10);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_ = 0;
	s_1 = newSym__ast_u4205(((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)7), colontmpD_, (*c_p0).Sup.idgen, ow_1, info_p1, T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T3_ = NIM_NIL;
	T3_ = newType__ast_u5900(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8), (*c_p0).Sup.idgen, ow_1, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T3_); goto LA1_;}
	eqsink___ast_u3387(&(*s_1).typ, T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	(*(*s_1).typ).flags = ((*(*s_1).typ).flags | 8389120);
	colontmpD__2 = newType__ast_u5900(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3), (*c_p0).Sup.idgen, ow_1, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	add__ast_u3881((*s_1).typ, colontmpD__2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	addDecl__lookups_u3785(c_p0, s_1, info_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___idents_u155(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u4574(s_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u4574(ow_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest_p0, source_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, copyMem__system_u1742)(void* dest_p0, void* source_p1, NI size_p2) {
	nimCopyMem(dest_p0, source_p1, size_p2);
}
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1) {
	{
		if (!(((NI)0) < src_p1.len)) goto LA3_;
		copyMem__system_u1742(((void*) ((&(*(*dest_p0).p).data[(*dest_p0).len]))), ((void*) ((&(*src_p1.p).data[((NI)0)]))), (src_p1.len));
		(*dest_p0).len += src_p1.len;
		(*(*dest_p0).p).data[(*dest_p0).len] = 0;
	}
LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, semConceptDecl__concepts_u23)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	switch ((*n_p1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)115):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)126):
	{
		result = shallowCopy__ast_u6876(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)0);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T5_;
					if (!(i_2 < colontmp_)) goto LA4;
					i_1 = i_2;
					T5_ = NIM_NIL;
					T5_ = semConceptDecl__concepts_u23(c_p0, (*n_p1)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T5_); goto BeforeRet_;}
					eqsink___ast_u3261(&(*result)._kind_6.sons.p->data[i_1], T5_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI)1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)79) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)84):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)159):
	{
		result = (*c_p0).semExpr(c_p0, n_p1, 256, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)136):
	{
		NI T12_;
		NI T13_;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T14_;
		result = shallowCopy__ast_u6876(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_3;
			NI colontmp__2;
			NI T9_;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T9_ = (NI)0;
			T9_ = len__ast_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp__2 = (NI)(T9_ - ((NI)1));
			i_4 = ((NI)0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA11;
					i_3 = i_4;
					eqcopy___ast_u3255(&(*result)._kind_6.sons.p->data[i_3], (*n_p1)._kind_6.sons.p->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_4 += ((NI)1);
				} LA11: ;
			}
		}
		T12_ = (NI)0;
		T12_ = len__ast_u3190(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T13_ = (NI)0;
		T13_ = len__ast_u3190(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T14_ = NIM_NIL;
		T14_ = semConceptDecl__concepts_u23(c_p0, (*n_p1)._kind_6.sons.p->data[(NI)(T13_ - ((NI)1))]);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T14_); goto BeforeRet_;}
		eqsink___ast_u3261(&(*result)._kind_6.sons.p->data[(NI)(T12_ - ((NI)1))], T14_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)125):
	{
		eqcopy___ast_u3255(&result, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		NimStringV2 colontmpD_;
		NimStringV2 colontmpD__2;
		NimStringV2 T18_;
		tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg T19_;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		T18_.len = 0; T18_.p = NIM_NIL;
		T19_ = 0;
		colontmpD_ = renderTree__renderer_u59(n_p1, T19_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		T18_ = rawNewString(colontmpD_.len + 48);
appendString((&T18_), TM__yT8oP4IKFRSvia7t9bb5q3Q_12);
appendString((&T18_), colontmpD_);
		colontmpD__2 = T18_;
		liMessage__msgs_u1227((*(*c_p0).graph).config, (*n_p1).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__2, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__yT8oP4IKFRSvia7t9bb5q3Q_13), NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		eqcopy___ast_u3255(&result, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		{
			LA17_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__2);
			eqdestroy___system_u2691(colontmpD_);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, semConceptDeclaration__concepts_u39)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* colontmpD_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	colontmpD_ = NIM_NIL;
	(*c_p0).inConceptDecl += ((NI)1);
	colontmpD_ = openScope__lookups_u65(c_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	declareSelf__concepts_u13(c_p0, (*n_p1).info);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = semConceptDecl__concepts_u23(c_p0, n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	rawCloseScope__lookups_u96(c_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	(*c_p0).inConceptDecl -= ((NI)1);
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___lookups_u74(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
