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

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
typedef struct tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw;
typedef struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ;
typedef struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA;
typedef struct tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug;
typedef struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg;
typedef struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg;
typedef struct tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww;
typedef struct tySequence__AE2UIxl7EbPzzBnmYsjIcw tySequence__AE2UIxl7EbPzzBnmYsjIcw;
typedef struct tySequence__AE2UIxl7EbPzzBnmYsjIcw_Content tySequence__AE2UIxl7EbPzzBnmYsjIcw_Content;
typedef struct tyObject_TProcCon__ftBtv4UEhPouLts4uXXNLQ tyObject_TProcCon__ftBtv4UEhPouLts4uXXNLQ;
typedef struct tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg;
typedef struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA tySequence__ZCZaCk14bTmSb6LMW9aWPVA;
typedef struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content;
typedef struct tySequence__tsHRsYLyvTCPLlGRExqi7Q tySequence__tsHRsYLyvTCPLlGRExqi7Q;
typedef struct tySequence__tsHRsYLyvTCPLlGRExqi7Q_Content tySequence__tsHRsYLyvTCPLlGRExqi7Q_Content;
typedef struct tySequence__lAikaRQvUF0uwNAz0U4FFA tySequence__lAikaRQvUF0uwNAz0U4FFA;
typedef struct tySequence__lAikaRQvUF0uwNAz0U4FFA_Content tySequence__lAikaRQvUF0uwNAz0U4FFA_Content;
typedef struct tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A;
typedef struct tyObject_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 NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
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 tySequence__9ahcSjIErJohSBBFLwuF56Q tySequence__9ahcSjIErJohSBBFLwuF56Q;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content tySequence__9ahcSjIErJohSBBFLwuF56Q_Content;
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__JArSTGkZV9bC6esVaXtV5AQ tyObject_Table__JArSTGkZV9bC6esVaXtV5AQ;
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__i84Wao44jI6syZk89agQa3A tyObject_Table__i84Wao44jI6syZk89agQa3A;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg_Content tySequence__fdmz6VkIf1ewwrssKYqRFg_Content;
typedef struct tyObject_Table__PP7WaQpDIVUGTt9a5wqrp2w tyObject_Table__PP7WaQpDIVUGTt9a5wqrp2w;
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_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg;
typedef struct tyObject_Table__EBxQTL6E9bw5fvLqaWTwfjg tyObject_Table__EBxQTL6E9bw5fvLqaWTwfjg;
typedef struct tySequence__fz0REU1l0nYmKHXgMLRrIg tySequence__fz0REU1l0nYmKHXgMLRrIg;
typedef struct tySequence__fz0REU1l0nYmKHXgMLRrIg_Content tySequence__fz0REU1l0nYmKHXgMLRrIg_Content;
typedef struct tyObject_Table__9a6FPRm2dlvMYWS2z9bot9azw tyObject_Table__9a6FPRm2dlvMYWS2z9bot9azw;
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__cHiRnaNfFQX0bO8NeChGKw tyObject_Table__cHiRnaNfFQX0bO8NeChGKw;
typedef struct tySequence__v39a1OZ0bpQc9aC2dbEjYlPA tySequence__v39a1OZ0bpQc9aC2dbEjYlPA;
typedef struct tySequence__v39a1OZ0bpQc9aC2dbEjYlPA_Content tySequence__v39a1OZ0bpQc9aC2dbEjYlPA_Content;
typedef struct tyObject_Table__y1vW9cSD6Mnwig2jOdU5sZg tyObject_Table__y1vW9cSD6Mnwig2jOdU5sZg;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ_Content tySequence__fIB1rTQ55aFonoft9a9bmljQ_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_Target__GzbDkV2u8Pgzlf9azvC43FA tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA;
typedef struct tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw;
typedef struct tySequence__E0kio2ZnplNTuln9bsnljSA tySequence__E0kio2ZnplNTuln9bsnljSA;
typedef struct tySequence__E0kio2ZnplNTuln9bsnljSA_Content tySequence__E0kio2ZnplNTuln9bsnljSA_Content;
typedef struct tySequence__hTEiKNj3evQAjIXUI21elA tySequence__hTEiKNj3evQAjIXUI21elA;
typedef struct tySequence__hTEiKNj3evQAjIXUI21elA_Content tySequence__hTEiKNj3evQAjIXUI21elA_Content;
typedef struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content tySequence__4eRCaZmrYLLw2k30GPTiMw_Content;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q tySequence__xOJ2kx2lq9bBfIm3IXnde3Q;
typedef struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content;
typedef struct tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA;
typedef struct tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ;
typedef struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA;
typedef struct tySequence__nSO1ltijM4vhc0UrrXKEqA tySequence__nSO1ltijM4vhc0UrrXKEqA;
typedef struct tySequence__nSO1ltijM4vhc0UrrXKEqA_Content tySequence__nSO1ltijM4vhc0UrrXKEqA_Content;
typedef struct Exception Exception;
typedef struct tySequence__S89cE01OvNjsN9c71FKsSrqQ tySequence__S89cE01OvNjsN9c71FKsSrqQ;
typedef struct tySequence__S89cE01OvNjsN9c71FKsSrqQ_Content tySequence__S89cE01OvNjsN9c71FKsSrqQ_Content;
typedef struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA;
typedef struct tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw;
typedef struct tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig;
typedef struct tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw;
typedef struct tyObject_SuggestInlayHintcolonObjectType___zpydc9br7HBXeBRDNSH9cTMw tyObject_SuggestInlayHintcolonObjectType___zpydc9br7HBXeBRDNSH9cTMw;
typedef struct tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA;
typedef struct tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ;
typedef struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg tySequence__d8ZV4IMgHt9biik9cS9a0hrmg;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content;
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 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_RodIter__6N3dhucH9ae3pEqcrhPOBMQ tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ;
typedef struct tyObject_PackedDecoder__mXpMPUjuhwIS5ssrGM9bHWA tyObject_PackedDecoder__mXpMPUjuhwIS5ssrGM9bHWA;
typedef struct tyObject_Iface__j1FkQxwEAKMJy1o9bap1xow tyObject_Iface__j1FkQxwEAKMJy1o9bap1xow;
typedef struct tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg;
typedef struct tySequence__s3NGK5xFNK6fPmXupxoolA tySequence__s3NGK5xFNK6fPmXupxoolA;
typedef struct tySequence__s3NGK5xFNK6fPmXupxoolA_Content tySequence__s3NGK5xFNK6fPmXupxoolA_Content;
typedef struct tyTuple__WIyQ4Cfp4shlBOyEpagHMw tyTuple__WIyQ4Cfp4shlBOyEpagHMw;
typedef struct tyTuple__FFspgHRWev9aDuj0fEpj9bUw tyTuple__FFspgHRWev9aDuj0fEpj9bUw;
typedef struct tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw;
typedef struct tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g;
typedef struct tyObject_Table__rIDniaYgWTEwlny3uhSy2w tyObject_Table__rIDniaYgWTEwlny3uhSy2w;
typedef struct tySequence__HKGx0ku9cD9aZMR2LhlVcUmA tySequence__HKGx0ku9cD9aZMR2LhlVcUmA;
typedef struct tySequence__HKGx0ku9cD9aZMR2LhlVcUmA_Content tySequence__HKGx0ku9cD9aZMR2LhlVcUmA_Content;
typedef struct tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content tySequence__qwqHTkRvwhrRyENtudHQ7g_Content;
typedef struct tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyTuple__7xZyzV9bi4zRvtJda9aONodA tyTuple__7xZyzV9bi4zRvtJda9aONodA;
typedef struct tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ;
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 tySequence__GVxMaHC0xtgqjBZ8ubUwnA tySequence__GVxMaHC0xtgqjBZ8ubUwnA;
typedef struct tySequence__GVxMaHC0xtgqjBZ8ubUwnA_Content tySequence__GVxMaHC0xtgqjBZ8ubUwnA_Content;
typedef struct tyTuple__7SDQCf3TbPJf09bOXiapRgg tyTuple__7SDQCf3TbPJf09bOXiapRgg;
typedef struct tyTuple__09aD69az7aYn14Gt61AHvLIA tyTuple__09aD69az7aYn14Gt61AHvLIA;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct tySequence__9bnh9aVmYtKU19btQYqjGktpw tySequence__9bnh9aVmYtKU19btQYqjGktpw;
typedef struct tySequence__9bnh9aVmYtKU19btQYqjGktpw_Content tySequence__9bnh9aVmYtKU19btQYqjGktpw_Content;
typedef struct tyObject_CandidateError__f049c8Bs49cqj6FTSrUbSmlw tyObject_CandidateError__f049c8Bs49cqj6FTSrUbSmlw;
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__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ;
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 tyObject_PackedEncoder__FGa18gE2dyYyuq9ckHprjTQ tyObject_PackedEncoder__FGa18gE2dyYyuq9ckHprjTQ;
typedef struct tyObject_Table__dOpm9cFTt2PU9bP8hN2TR8cA tyObject_Table__dOpm9cFTt2PU9bP8hN2TR8cA;
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 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__Imb3Ip1lli9a9ceyNOElKADA tyTuple__Imb3Ip1lli9a9ceyNOElKADA;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
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__ji9a7IXpM9cONa0mh0VGCVrQ tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ;
typedef struct tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg;
typedef struct tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA;
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__pX68bRYqY0ZF09cQ4s0LV9ag tyTuple__pX68bRYqY0ZF09cQ4s0LV9ag;
typedef struct tyTuple__AzwzwiNiQJfT9cPRYC53HhA tyTuple__AzwzwiNiQJfT9cPRYC53HhA;
typedef struct tyTuple__ZUrTP7BFWWFkSv3xO9crp9aQ tyTuple__ZUrTP7BFWWFkSv3xO9crp9aQ;
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 tyTuple__V6P73hvHy70PBBwharKjig tyTuple__V6P73hvHy70PBBwharKjig;
struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA {
	NU16 line;
	NI16 col;
	NI32 fileIndex;
};
struct TNimTypeV2 {
	void* destructor;
	NI size;
	NI16 align;
	NI16 depth;
	NU32* display;
	void* traceImpl;
	void* typeInfoV1;
	NI flags;
	void* vTable[SEQ_DECL_SIZE];
};
struct RootObj {
	TNimTypeV2* m_type;
};
struct tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ {
	RootObj Sup;
	tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen;
};
struct tySequence__AE2UIxl7EbPzzBnmYsjIcw {
  NI len; tySequence__AE2UIxl7EbPzzBnmYsjIcw_Content* p;
};
typedef tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* tyArray__wpKe6cP5WSIeg2SOAYqA6Q[38];
struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA {
  NI len; tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content* p;
};
struct tySequence__tsHRsYLyvTCPLlGRExqi7Q {
  NI len; tySequence__tsHRsYLyvTCPLlGRExqi7Q_Content* p;
};
struct tySequence__lAikaRQvUF0uwNAz0U4FFA {
  NI len; tySequence__lAikaRQvUF0uwNAz0U4FFA_Content* p;
};
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__Yik7hgYZHhPeLJ5RsXTPqg) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p2);
typedef NU32 tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg;
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__JIyBW5s9ba7hfYBnWxDVvgg) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p3);
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__iXlRd9cBAN0CQpA5dkyhRvw) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_p2);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7FLV9alRQFu6LOhr9bksExQQ) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, void* ClE_0);
void* ClE_0;
} tyProc__0qHBYUhlP28E2DV7mVNNAg;
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__1nD4dBuhjTAOzMZJo9bmgog) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
typedef NU32 tySet_tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__209aOewTLBT6nbWmyvOQFiw) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* nOrig_p2, tySet_tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q filter_p3, tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_p4, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p5);
typedef N_NIMCALL_PTR(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, tyProc__D9aXgBooMpgLrPTmha6q31w) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prev_p2);
typedef struct {
N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2, void* ClE_0);
void* ClE_0;
} tyProc__GbPSPD9bjvt0RIJnnVTczJA;
typedef struct {
N_NIMCALL_PTR(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* fn_p1, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, void* ClE_0);
void* ClE_0;
} tyProc__iDJMP540ifFac3zJ49bj2cA;
typedef struct {
N_NIMCALL_PTR(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* prc_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, void* ClE_0);
void* ClE_0;
} tyProc__gq9a76bauTeymgreaiTI9cmg;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** n_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p2, void* ClE_0);
void* ClE_0;
} tyProc__Gji0NjiFFDU49aJiF3QZF8A;
struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA {
  NI len; tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content* p;
};
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA {
	NI elems;
	NI counter;
	NI max;
	tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA* head;
	tySequence__ZeWVlH6DqG79b1pTDhrrUYA data;
	tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
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);
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
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;
};
struct tySequence__9ahcSjIErJohSBBFLwuF56Q {
  NI len; tySequence__9ahcSjIErJohSBBFLwuF56Q_Content* p;
};
typedef NU8 tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw;
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__wpKe6cP5WSIeg2SOAYqA6Q 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 hloLoopDetector;
	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 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__JArSTGkZV9bC6esVaXtV5AQ {
	tySequence__7lEisrXlQEzwtUKW5pzRCw data;
	NI counter;
};
typedef NU8 tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw;
typedef NU8 tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg;
typedef NU8 tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA;
typedef NU32 tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ;
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__i84Wao44jI6syZk89agQa3A {
	tySequence__fdmz6VkIf1ewwrssKYqRFg data;
	NI counter;
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg {
  NI len; tySequence__kxu4GK0onha2t9bo86mdVAg_Content* p;
};
struct tyObject_Table__PP7WaQpDIVUGTt9a5wqrp2w {
	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__EBxQTL6E9bw5fvLqaWTwfjg {
	tySequence__fz0REU1l0nYmKHXgMLRrIg data;
	NI counter;
};
struct tySequence__Ip9aV1IKO2gVdheNOM31DCQ {
  NI len; tySequence__Ip9aV1IKO2gVdheNOM31DCQ_Content* p;
};
struct tyObject_Table__9a6FPRm2dlvMYWS2z9bot9azw {
	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__v39a1OZ0bpQc9aC2dbEjYlPA {
  NI len; tySequence__v39a1OZ0bpQc9aC2dbEjYlPA_Content* p;
};
struct tyObject_Table__cHiRnaNfFQX0bO8NeChGKw {
	tySequence__v39a1OZ0bpQc9aC2dbEjYlPA data;
	NI counter;
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  NI len; tySequence__fIB1rTQ55aFonoft9a9bmljQ_Content* p;
};
struct tyObject_Table__y1vW9cSD6Mnwig2jOdU5sZg {
	tySequence__fIB1rTQ55aFonoft9a9bmljQ 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__JArSTGkZV9bC6esVaXtV5AQ emittedTypeInfo;
	tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ startupPackedConfig;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg packageSyms;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA deps;
	tyObject_Table__i84Wao44jI6syZk89agQa3A importDeps;
	NIM_BOOL suggestMode;
	NIM_BOOL invalidTransitiveClosure;
	NIM_BOOL interactive;
	NIM_BOOL withinSystem;
	tyObject_Table__PP7WaQpDIVUGTt9a5wqrp2w 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__EBxQTL6E9bw5fvLqaWTwfjg suggestSymbols;
	tyObject_Table__9a6FPRm2dlvMYWS2z9bot9azw 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__cHiRnaNfFQX0bO8NeChGKw canonTypes;
	tyObject_Table__y1vW9cSD6Mnwig2jOdU5sZg 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;
};
typedef NU8 tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw;
typedef NU8 tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw;
struct tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA {
	tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw targetCPU;
	tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw hostCPU;
	tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw targetOS;
	tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw hostOS;
	NI intSize;
	NI floatSize;
	NI ptrSize;
	NimStringV2 tnl;
};
typedef NU8 tySet_tyEnum_TErrorOutput__wGgqZXVnY1wkKEe8EL9cL9aw;
struct tySequence__E0kio2ZnplNTuln9bsnljSA {
  NI len; tySequence__E0kio2ZnplNTuln9bsnljSA_Content* p;
};
struct tySequence__hTEiKNj3evQAjIXUI21elA {
  NI len; tySequence__hTEiKNj3evQAjIXUI21elA_Content* p;
};
struct tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA trackPos;
	NIM_BOOL trackPosAttached;
	tySet_tyEnum_TErrorOutput__wGgqZXVnY1wkKEe8EL9cL9aw errorOutputs;
	tySequence__E0kio2ZnplNTuln9bsnljSA msgContext;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA lastError;
	tyObject_Table__JArSTGkZV9bC6esVaXtV5AQ filenameToIndexTbl;
	tySequence__hTEiKNj3evQAjIXUI21elA fileInfos;
	NI32 systemFileIdx;
};
typedef NU8 tyEnum_FilenameOption__o3jmnnVs6HdBg5KcNAzYiQ;
typedef NU8 tyEnum_Command__juUdcDlEGhwCRcct3jVHmQ;
typedef NU8 tyEnum_ExceptionSystem__dJ6sXW7k8NDYNNBUjVZmnw;
typedef NU8 tyEnum_SymbolFilesOption__2eyIIreuRXhYT9buPPZbBYA;
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  NI len; tySequence__4eRCaZmrYLLw2k30GPTiMw_Content* p;
};
struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw {
	tySequence__4eRCaZmrYLLw2k30GPTiMw data;
	NI counter;
};
typedef NU8 tySet_tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA;
typedef NU8 tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng;
typedef NU8 tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w[13];
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
typedef NU8 tySet_tyEnum_StdOrrKind__so1PI9cHP1cN622ePtqa0yw;
struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q {
  NI len; tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content* p;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* result_p0, void* ClE_0);
void* ClE_0;
} tyProc__QQyR5yGA47tr5TwLxcC4Gw;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringV2 output_p0, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__mHEDvws7FmOtnFhcQsM8UA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, NimStringV2 msg_p2, tyEnum_Severity__mHEDvws7FmOtnFhcQsM8UA severity_p3, void* ClE_0);
void* ClE_0;
} tyProc__DA9aR62IikoxFqfC5rIT9cuw;
struct tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg {
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw backend;
	tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA target;
	NI linesCompiled;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A globalOptions;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* macrosToExpand;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* arcToExpand;
	tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw m;
	tyEnum_FilenameOption__o3jmnnVs6HdBg5KcNAzYiQ filenameOption;
	NimStringV2 unitSep;
	NI evalTemplateCounter;
	NI evalMacroCounter;
	NI8 exitcode;
	tyEnum_Command__juUdcDlEGhwCRcct3jVHmQ cmd;
	NimStringV2 cmdInput;
	NIM_BOOL projectIsCmd;
	NIM_BOOL implicitCmd;
	tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg selectedGC;
	tyEnum_ExceptionSystem__dJ6sXW7k8NDYNNBUjVZmnw exc;
	NIM_BOOL hintProcessingDots;
	NI verbosity;
	NI numberOfProcessors;
	NF lastCmdTime;
	tyEnum_SymbolFilesOption__2eyIIreuRXhYT9buPPZbBYA symbolFiles;
	NI spellSuggestMax;
	tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw cppDefines;
	NimStringV2 headerFile;
	NimStringV2 nimbasePattern;
	tySet_tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ features;
	tySet_tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA legacyFeatures;
	NimStringV2 arguments;
	tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng ideCmd;
	tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA cCompiler;
	tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w modifiedyNotes;
	tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w cmdlineNotes;
	tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w foreignPackageNotes;
	tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w notes;
	tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w warningAsErrors;
	tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w mainPackageNotes;
	NI mainPackageId;
	NI errorCounter;
	NI hintCounter;
	NI warnCounter;
	NI errorMax;
	NI maxLoopIterationsVM;
	NI maxCallDepthVM;
	NIM_BOOL isVmTrace;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* configVars;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* symbols;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* packageCache;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ nimblePaths;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ searchPaths;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ lazyPaths;
	NimStringV2 outFile;
	NimStringV2 outDir;
	NimStringV2 jsonBuildFile;
	NimStringV2 prefixDir;
	NimStringV2 libpath;
	NimStringV2 nimcacheDir;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* dllOverrides;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* moduleOverrides;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* cfileSpecificOptions;
	NimStringV2 projectName;
	NimStringV2 projectPath;
	NimStringV2 projectFull;
	NIM_BOOL projectIsStdin;
	NimStringV2 stdinFile;
	tySet_tyEnum_StdOrrKind__so1PI9cHP1cN622ePtqa0yw lastMsgWasDot;
	NI32 projectMainIdx;
	NI32 projectMainIdx2;
	NimStringV2 command;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ commandArgs;
	NimStringV2 commandLine;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ extraCmds;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ implicitImports;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ implicitIncludes;
	NimStringV2 docSeeSrcUrl;
	NimStringV2 docRoot;
	NimStringV2 docCmd;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ configFiles;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cIncludes;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cLibs;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cLinkedLibs;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ externalToLink;
	NimStringV2 linkOptionsCmd;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ compileOptionsCmd;
	NimStringV2 linkOptions;
	NimStringV2 compileOptions;
	NimStringV2 cCompilerPath;
	tySequence__xOJ2kx2lq9bBfIm3IXnde3Q toCompile;
	tyProc__QQyR5yGA47tr5TwLxcC4Gw suggestionResultHook;
	NI suggestVersion;
	NI suggestMaxResults;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA lastLineInfo;
	tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
	tyProc__DA9aR62IikoxFqfC5rIT9cuw structuredErrorHook;
	NimStringV2 cppCustomNamespace;
	NimStringV2 nimMainPrefix;
	tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ* vmProfileData;
	NIM_BOOL expandProgress;
	NI expandLevels;
	NimStringV2 expandNodeResult;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA expandPosition;
	NimStringV2 currentConfigDir;
	NI clientProcessId;
};
typedef NU32 tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw;
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 tySequence__nSO1ltijM4vhc0UrrXKEqA {
  NI len; tySequence__nSO1ltijM4vhc0UrrXKEqA_Content* p;
};
struct tySequence__S89cE01OvNjsN9c71FKsSrqQ {
  NI len; tySequence__S89cE01OvNjsN9c71FKsSrqQ_Content* p;
};
struct Exception {
	RootObj Sup;
	Exception* parent;
	NCSTRING name;
	NimStringV2 message;
	tySequence__S89cE01OvNjsN9c71FKsSrqQ trace;
	Exception* up;
};
typedef NU8 tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g;
struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA {
	NI32 module;
	NI32 item;
};
typedef NU8 tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
typedef NU16 tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg;
typedef NU64 tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
typedef NU8 tyEnum_TLocKind__4f5UmCRM8alrCgj32FqIRQ;
typedef NU8 tyEnum_TStorageLoc__f19b6ZkRyh7BNPxlyjRbEGg;
typedef NU16 tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg;
struct tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw {
	tyEnum_TLocKind__4f5UmCRM8alrCgj32FqIRQ k;
	tyEnum_TStorageLoc__f19b6ZkRyh7BNPxlyjRbEGg storage;
	tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg flags;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* lode;
	NimStringV2 snippet;
};
struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA itemId;
	tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind;
union{
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* gcUnsafetyReason;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* transformedBody;
} _kind_1;
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* guard;
	NI bitsize;
	NI alignment;
} _kind_2;
};
	tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg magic;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* name;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* ownerField;
	tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg flags;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* ast;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	NI position;
	NI32 offset;
	NI32 disamb;
	tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw loc;
	tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig* annex;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* constraint;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* instantiatedFrom;
};
struct tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw {
	NI h;
};
struct tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww {
	NI depthLevel;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg symbols;
	tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* parent;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA allowPrivateAccess;
};
struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA {
	NI id;
	NimStringV2 s;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* next;
	NI h;
};
struct tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA {
	tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng section;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ qualifiedPath;
	NimStringV2* name;
	NimStringV2 filePath;
	NI line;
	NI column;
	NimStringV2 doc;
	NimStringV2 forth;
	NI quality;
	NIM_BOOL isGlobal;
	NIM_BOOL contextFits;
	tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g prefix;
	NU8 symkind;
	NI scope;
	NI localUsages;
	NI globalUsages;
	NI tokenLen;
	NI version;
	NU16 endLine;
	NI endCol;
	tyObject_SuggestInlayHintcolonObjectType___zpydc9br7HBXeBRDNSH9cTMw* inlayHintInfo;
};
typedef NU8 tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
typedef NU8 tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A;
typedef NU8 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw[32];
struct tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA {
	NI a;
	NI b;
};
typedef NU8 tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q;
struct tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ {
	RootObj Sup;
	NimStringV2 line0;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (NI col_p0, void* ClE_0);
void* ClE_0;
} tyProc__cOOsXj9cY0bKt2oqNqLbhZw;
typedef N_CLOSURE_PTR(NIM_BOOL, TM__EV5hHJmjIY9cla9b9be7fSVJQ_6) (NI col_p0);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__EV5hHJmjIY9cla9b9be7fSVJQ_7) (NI col_p0);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__EV5hHJmjIY9cla9b9be7fSVJQ_8) (NI col_p0);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__EV5hHJmjIY9cla9b9be7fSVJQ_9) (NI col_p0);
struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A {
	NI rc;
	NI rootIdx;
};
typedef NU8 tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg;
typedef NU8 tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ;
typedef NU64 tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A;
struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg {
  NI len; tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content* p;
};
struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA itemId;
	tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind;
	tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ callConv;
	tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A flags;
	tySequence__d8ZV4IMgHt9biik9cS9a0hrmg sons;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* ownerField;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym;
	NI64 size;
	NI16 align;
	NI16 paddingAtEnd;
	tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw loc;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typeInst;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA uniqueId;
};
typedef NU8 tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg[9];
typedef NU8 tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ;
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;
};
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 tyObject_PackedDecoder__mXpMPUjuhwIS5ssrGM9bHWA {
	NI lastModule;
	NU32 lastLit;
	NI32 lastFile;
	tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config;
	tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* cache;
};
struct tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ {
	tyObject_PackedDecoder__mXpMPUjuhwIS5ssrGM9bHWA decoder;
	tySequence__qBes3XzcQQ9cyia9bRwnmbJw values;
	NI i;
	NI module;
};
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__s3NGK5xFNK6fPmXupxoolA {
  NI len; tySequence__s3NGK5xFNK6fPmXupxoolA_Content* p;
};
struct tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg {
	tySequence__s3NGK5xFNK6fPmXupxoolA data;
	NI counter;
};
struct tyTuple__WIyQ4Cfp4shlBOyEpagHMw {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field0;
	NI Field1;
	NIM_BOOL Field2;
};
struct tyTuple__FFspgHRWev9aDuj0fEpj9bUw {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field0;
	NI Field1;
};
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;
};
};
typedef NU8 tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg;
struct tySequence__HKGx0ku9cD9aZMR2LhlVcUmA {
  NI len; tySequence__HKGx0ku9cD9aZMR2LhlVcUmA_Content* p;
};
struct tyObject_Table__rIDniaYgWTEwlny3uhSy2w {
	tySequence__HKGx0ku9cD9aZMR2LhlVcUmA data;
	NI counter;
};
struct tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A {
	tyObject_Table__rIDniaYgWTEwlny3uhSy2w topLayer;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* nextLayer;
	NI previousLen;
};
typedef NU8 tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA;
struct tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg {
	tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA kind;
	NI arg;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* formal;
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  NI len; tySequence__qwqHTkRvwhrRyENtudHQ7g_Content* p;
};
struct tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g {
	tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c;
	NI exactMatches;
	NI genericMatches;
	NI subtypeMatches;
	NI intConvMatches;
	NI convMatches;
	tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg state;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* callee;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* calleeSym;
	NI calleeScope;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* call;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A bindings;
	tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg magic;
	NIM_BOOL baseTypeMatch;
	NIM_BOOL matchedErrorType;
	NIM_BOOL genericConverter;
	NIM_BOOL coerceDistincts;
	NIM_BOOL typedescMatched;
	NIM_BOOL isNoCall;
	tySequence__d8ZV4IMgHt9biik9cS9a0hrmg inferredTypes;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ diagnostics;
	NI inheritancePenalty;
	tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg firstMismatch;
	NIM_BOOL diagnosticsEnabled;
	tySequence__qwqHTkRvwhrRyENtudHQ7g newlyTypedOperands;
};
typedef NU8 tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A;
typedef NU8 tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ;
typedef NU8 tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw;
struct tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* candidateType;
	tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg* prev;
	NI depth;
};
typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
struct tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg {
	tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
};
typedef NU8 tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw;
typedef NU8 tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA;
typedef NU8 tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
	NimStringV2 Field0;
	NI Field1;
	NI Field2;
};
typedef NU16 tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ;
typedef NU8 tySet_tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ;
struct tyTuple__7xZyzV9bi4zRvtJda9aONodA {
	tySet_tyEnum_ProcConvMismatch__DkbUburOsjy1xKRLyQallQ Field0;
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ Field1;
};
typedef NU8 tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ;
typedef NU8 tySet_tyEnum_MatchFlags__te9cp1iI7j4FnZSmB5ytuQw;
typedef NU8 tyEnum_MatchFlags__te9cp1iI7j4FnZSmB5ytuQw;
typedef NU8 tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA;
struct tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ {
	RootObj Sup;
	NimStringV2 errorPrefix0;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typeClass1;
	tyProc__k2HFjxisIgDALbEUFojxaQ oldWriteHook2;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ diagnostics3;
};
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;
};
struct tySequence__GVxMaHC0xtgqjBZ8ubUwnA {
  NI len; tySequence__GVxMaHC0xtgqjBZ8ubUwnA_Content* p;
};
struct tyTuple__7SDQCf3TbPJf09bOXiapRgg {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field0;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* Field1;
};
typedef N_CLOSURE_PTR(void, TM__EV5hHJmjIY9cla9b9be7fSVJQ_55) (NimStringV2 output_p0);
typedef N_CLOSURE_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, TM__EV5hHJmjIY9cla9b9be7fSVJQ_67) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2);
typedef N_CLOSURE_PTR(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, TM__EV5hHJmjIY9cla9b9be7fSVJQ_68) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* fn_p1, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3);
typedef tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* tyArray__Qs3hT0twmConQknx0ycf3Q[1];
typedef NU8 tyEnum_TAssignableResult__3ybZZK771F9azx9ccTLKswSA;
typedef NU8 tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ;
struct tyTuple__09aD69az7aYn14Gt61AHvLIA {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field0;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field1;
};
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
	NI Field0;
	NI Field1;
};
typedef NU8 tyEnum_TNodeKind__fgQOep3rrztw9aeZI9aS2Ltg;
typedef NU16 tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw;
typedef NimStringV2 tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
typedef NU8 tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w;
typedef NI tyArray__HU7qaqKu9czJLT84iCBJnsA[2];
typedef NU8 tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw;
typedef N_CLOSURE_PTR(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, TM__EV5hHJmjIY9cla9b9be7fSVJQ_110) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* prc_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3);
typedef NimStringV2 tyArray__Re75IspeoxXy2oCZHwcRrA[2];
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* x_p0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* y_p1, void* ClE_0);
void* ClE_0;
} tyProc__Bw3od9aVB1x0nc8QWI54cVQ;
typedef NU8 tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA;
typedef N_CLOSURE_PTR(NI, TM__EV5hHJmjIY9cla9b9be7fSVJQ_123) (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* x_p0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* y_p1, void* ClE_0);
typedef N_CLOSURE_PTR(void, TM__EV5hHJmjIY9cla9b9be7fSVJQ_124) (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* result_p0);
typedef NU8 tyEnum_SuggestInlayHintKind__jagzSIzxhae5PXBOg9atNeg;
struct tyObject_SuggestInlayHintcolonObjectType___zpydc9br7HBXeBRDNSH9cTMw {
	tyEnum_SuggestInlayHintKind__jagzSIzxhae5PXBOg9atNeg kind;
	NI line;
	NI column;
	NimStringV2 label;
	NIM_BOOL paddingLeft;
	NIM_BOOL paddingRight;
	NIM_BOOL allowInsert;
	NimStringV2 tooltip;
};
typedef NU16 tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg;
typedef NU8 tyEnum_TCheckPointResult__79bKWAKrLRHiUZ6lV3lObBQ;
struct tySequence__9bnh9aVmYtKU19btQYqjGktpw {
  NI len; tySequence__9bnh9aVmYtKU19btQYqjGktpw_Content* p;
};
struct tyObject_CandidateError__f049c8Bs49cqj6FTSrUbSmlw {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym;
	tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg firstMismatch;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ diagnostics;
	NIM_BOOL enabled;
};
typedef N_CLOSURE_PTR(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, TM__EV5hHJmjIY9cla9b9be7fSVJQ_149) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* fn_p1, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3);
struct tySequence__AE2UIxl7EbPzzBnmYsjIcw_Content { NI cap; tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw data[SEQ_DECL_SIZE]; };
struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content { NI cap; tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* data[SEQ_DECL_SIZE]; };
struct tySequence__tsHRsYLyvTCPLlGRExqi7Q_Content { NI cap; tyObject_TOptionEntry__KeABxBvAlGa1KroFfkcqAg* data[SEQ_DECL_SIZE]; };
struct tySequence__lAikaRQvUF0uwNAz0U4FFA_Content { NI cap; tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig* data[SEQ_DECL_SIZE]; };
struct tySequence__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 tySequence__9bffTLF0HkxjFCzZL8og4GA_Content { NI cap; tyTuple__09aD69az7aYn14Gt61AHvLIA data[SEQ_DECL_SIZE]; };
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 tyTuple__EbsafWGli8bW2GRJQ9apsjA {
	NI Field0;
	NI Field1;
	tySequence__qwqHTkRvwhrRyENtudHQ7g Field2;
};
struct tySequence__QqvaCqCpEE1QmQZbcZLi5A_Content { NI cap; tyTuple__EbsafWGli8bW2GRJQ9apsjA data[SEQ_DECL_SIZE]; };
struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content { NI cap; tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* data[SEQ_DECL_SIZE]; };
struct tySequence__TfHJycarvNts8E4mVG4Mfg_Content { NI cap; tyObject_Iface__j1FkQxwEAKMJy1o9bap1xow data[SEQ_DECL_SIZE]; };
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__dOpm9cFTt2PU9bP8hN2TR8cA {
	tySequence__9cnx3zXnWzeclW8Ko4oUgAQ data;
	NI counter;
};
struct tyObject_PackedEncoder__FGa18gE2dyYyuq9ckHprjTQ {
	NI32 thisModule;
	NI32 lastFile;
	NU32 lastLit;
	tyObject_Table__dOpm9cFTt2PU9bP8hN2TR8cA 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;
	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 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__qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple__Imb3Ip1lli9a9ceyNOElKADA {
	NI Field0;
	tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* Field2;
};
struct tySequence__v39a1OZ0bpQc9aC2dbEjYlPA_Content { NI cap; tyTuple__Imb3Ip1lli9a9ceyNOElKADA data[SEQ_DECL_SIZE]; };
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
	NI Field0;
	NI Field1;
	tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ_Content { NI cap; tyTuple__OJFzEczluV8Jmo9bRpBfkzw 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__ji9a7IXpM9cONa0mh0VGCVrQ {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field0;
	NimStringV2 Field1;
};
struct tySequence__E0kio2ZnplNTuln9bsnljSA_Content { NI cap; tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ data[SEQ_DECL_SIZE]; };
struct tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw {
	NimStringV2 fullPath;
	NimStringV2 projPath;
	NimStringV2 shortName;
	NimStringV2 quotedName;
	NimStringV2 quotedFullName;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ lines;
	NimStringV2 dirtyFile;
	NimStringV2 hash;
	NIM_BOOL dirty;
};
struct tySequence__hTEiKNj3evQAjIXUI21elA_Content { NI cap; tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw data[SEQ_DECL_SIZE]; };
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
	NI Field0;
	NimStringV2 Field1;
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content { NI cap; tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE]; };
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; };
typedef NU8 tySet_tyEnum_CfileFlag__qhMBL5cBz484papsb5WgFQ;
struct tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg {
	NimStringV2 nimname;
	NimStringV2 cname;
	NimStringV2 obj;
	tySet_tyEnum_CfileFlag__qhMBL5cBz484papsb5WgFQ flags;
	NimStringV2 customArgs;
};
struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content { NI cap; tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg data[SEQ_DECL_SIZE]; };
struct tySequence__nSO1ltijM4vhc0UrrXKEqA_Content { NI cap; tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* data[SEQ_DECL_SIZE]; };
struct tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA {
	NCSTRING procname;
	NI line;
	NCSTRING filename;
};
struct tySequence__S89cE01OvNjsN9c71FKsSrqQ_Content { NI cap; tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA data[SEQ_DECL_SIZE]; };
struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content { NI cap; tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* 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]; };
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__pX68bRYqY0ZF09cQ4s0LV9ag {
	NI Field0;
	tyTuple__FFspgHRWev9aDuj0fEpj9bUw Field1;
};
struct tySequence__s3NGK5xFNK6fPmXupxoolA_Content { NI cap; tyTuple__pX68bRYqY0ZF09cQ4s0LV9ag data[SEQ_DECL_SIZE]; };
struct tyTuple__AzwzwiNiQJfT9cPRYC53HhA {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* Field2;
};
struct tySequence__HKGx0ku9cD9aZMR2LhlVcUmA_Content { NI cap; tyTuple__AzwzwiNiQJfT9cPRYC53HhA data[SEQ_DECL_SIZE]; };
struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content { NI cap; NI data[SEQ_DECL_SIZE]; };
struct tySequence__GVxMaHC0xtgqjBZ8ubUwnA_Content { NI cap; tyTuple__7SDQCf3TbPJf09bOXiapRgg data[SEQ_DECL_SIZE]; };
struct tySequence__9bnh9aVmYtKU19btQYqjGktpw_Content { NI cap; tyObject_CandidateError__f049c8Bs49cqj6FTSrUbSmlw 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 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 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]; };
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exactEquals__msgs_u1103)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA a_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA b_p1);
N_LIB_PRIVATE N_NIMCALL(void, suggestExprNoCheck__sigmatch_u7200)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_u11748)(tySequence__nSO1ltijM4vhc0UrrXKEqA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
N_LIB_PRIVATE N_NIMCALL(void, sugExpr__sigmatch_u7170)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, safeSemExpr__sigmatch_u7164)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3237)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* dest_p0);
static N_INLINE(NIM_BOOL, isObjDisplayCheck)(TNimTypeV2* source_p0, NI16 targetDepth_p1, NU32 token_p2);
static N_INLINE(Exception*, nimBorrowCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3240)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
static N_INLINE(void, popCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___stdZassertions_u22)(Exception** dest_p0, Exception* src_p1, NIM_BOOL cyclic_p2);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
static N_INLINE(NI, len__ast_u3175)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, suggestFieldAccess__sigmatch_u6254)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* field_p2, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3366)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, initTabIter__astalgo_u3139)(tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw* ti_p0, tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg tab_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u4567)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** dest_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___ast_u4555)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** dest_p0);
static N_INLINE(NIM_BOOL, filterSym__sigmatch_u5915)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* prefix_p1, tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g* res_p2);
N_LIB_PRIVATE N_NIMCALL(tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g, prefixMatch__sigmatch_u5920)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g, prefixMatch__prefixmatches_u10)(NimStringV2 p_p0, NimStringV2 s_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__sigmatch_u6054)(tySequence__nSO1ltijM4vhc0UrrXKEqA* x_p0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* y_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA*, symToSuggest__sigmatch_u5357)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, NIM_BOOL isLocal_p2, tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng section_p3, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p4, NI quality_p5, tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g prefix_p6, NIM_BOOL inTypeContext_p7, NI scope_p8, NIM_BOOL useSuppliedInfo_p9, NU16 endLine_p10, NI endCol_p11, NIM_BOOL extractDocs_p12);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___system_u3818)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* dest_p0, tySequence__sM4lkSb7zS6F7OVMvW9cffQ src_p1);
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6233)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u4561)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** dest_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__stdZenumutils_u71)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x_p0, NimStringV2 y_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, eqdup___system_u2633)(NimStringV2 src_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u4558)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dest_p0);
static N_INLINE(NIM_BOOL, contains__pureZtimes_u3334)(tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA s_p0, NI value_p1);
static N_INLINE(tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA, dotdot___stdZstrbasics_u49)(NI a_p0, NI b_p1);
static N_INLINE(void, appendChar)(NimStringV2* dest_p0, NIM_CHAR c_p1);
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1);
static N_INLINE(void, copyMem__system_u1718)(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, rawNewString)(NI space_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___system_u2636)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, typeToString__types_u54)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u2627)(NimStringV2 dest_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, toFullPath__msgs_u624)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, NI32 fileIdx_p1);
static N_INLINE(NI, toLinenumber__msgs_u695)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p0);
static N_INLINE(NI, toColumn__msgs_u698)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p0);
N_LIB_PRIVATE N_NIMCALL(NI, getTokenLenFromSource__sigmatch_u5239)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, NimStringV2 ident_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p2, NIM_BOOL skipTrailingAsterisk_p3);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__sigmatch_u7675)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u7623)(tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, sourceLine__msgs_u1206)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA i_p1);
N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, isOpeningBacktick__sigmatch_u5247)(NI col_p0, void* ClE_0);
static N_INLINE(NI, skipUntil__pureZparseutils_u944)(NimStringV2 s_p0, NIM_CHAR until_p1, NI start_p2);
static N_INLINE(NI, skipUntil__pureZparseutils_u197)(NIM_CHAR* s_p0, NI s_p0Len_0, NIM_CHAR until_p1);
N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringV2 a_p0, NimStringV2 b_p1);
static N_INLINE(NimStringV2, X5BX5D___pureZstrutils_u1285)(NimStringV2 s_p0, tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA x_p1);
N_NIMCALL(NimStringV2, mnewString)(NI len_p0);
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimPrepareStrMutationImpl__system_u2378)(NimStringV2* s_p0);
static N_INLINE(NIM_CHAR, X5BX5D___system_u7822)(NimStringV2 s_p0, NI i_p1);
N_LIB_PRIVATE N_NIMCALL(NI, identLen__linter_u14)(NimStringV2 line_p0, NI start_p1);
N_LIB_PRIVATE N_NIMCALL(NI, scanForTrailingAsterisk__sigmatch_u5221)(NimStringV2 line_p0, NI start_p1);
static N_INLINE(NI, parseWhile__pureZparseutils_u972)(NimStringV2 s_p0, NimStringV2* token_p1, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw validChars_p2, NI start_p3);
static N_INLINE(NI, parseWhile__pureZparseutils_u293)(NIM_CHAR* s_p0, NI s_p0Len_0, NimStringV2* token_p1, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw validChars_p2);
N_LIB_PRIVATE N_NIMCALL(void, fastSubstr__pureZparseutils_u225)(NIM_CHAR* s_p0, NI s_p0Len_0, NimStringV2* token_p1, NI length_p2);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a_p0, NimStringV2 b_p1);
static N_INLINE(NIM_BOOL, equalMem__system_u1726)(void* a_p0, void* b_p1, NI size_p2);
static N_INLINE(int, nimCmpMem)(void* a_p0, void* b_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u7649)(tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ* dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p_p0);
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NOINLINE(void, rememberCycle__system_u3472)(NIM_BOOL isDestroyAction_p0, tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* s_p1, TNimTypeV2* desc_p2);
N_LIB_PRIVATE N_NIMCALL(void, nimDestroyAndDispose)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(NI, getQuality__sigmatch_u6023)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0);
static N_INLINE(NI, paramsLen__ast_u5595)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipTypes__ast_u5358)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kinds_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, firstParamType__ast_u5342)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u3372)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elemType__types_u250)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3363)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_u11892)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, nextIter__astalgo_u3123)(tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw* ti_p0, tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg tab_p1);
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_u3010)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* m_p1);
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_u2999)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, NI module_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, initRodIterAllSyms__icZic_u21656)(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ* it_p0, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config_p1, tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* cache_p2, tyObject_PackedModuleGraph__vzv9a6xTiz616FotDgUeo9bg* g_p3, NI32 module_p4, NIM_BOOL importHidden_p5);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, nextRodIter__icZic_u21992)(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ* it_p0, tyObject_PackedModuleGraph__vzv9a6xTiz616FotDgUeo9bg* g_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_u3290)(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u4835)(tySequence__ZCZaCk14bTmSb6LMW9aWPVA* dest_p0, tySequence__ZCZaCk14bTmSb6LMW9aWPVA src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u4832)(tySequence__ZCZaCk14bTmSb6LMW9aWPVA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, suggestEverything__sigmatch_u6237)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* f_p2, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p3);
N_LIB_PRIVATE N_NIMCALL(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg, initHashSet__lookups_u798)(NI initialSize_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___lookups_u74)(tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww** dest_p0, tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___lookups_u768)(tyTuple__WIyQ4Cfp4shlBOyEpagHMw* dest_p0, tyTuple__WIyQ4Cfp4shlBOyEpagHMw src_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__lookups_u984)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u71)(tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u759)(tyTuple__WIyQ4Cfp4shlBOyEpagHMw dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u947)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___ast_u3360)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, suggestSymList__sigmatch_u6077)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* list_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* f_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p4);
N_LIB_PRIVATE N_NIMCALL(void, suggestField__sigmatch_u6043)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* f_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p4);
static N_INLINE(NIM_BOOL, fieldVisible__sigmatch_u5955)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* f_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, getModule__astalgo_u156)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, toObjectFromRefPtrGeneric__ast_u7270)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, baseClass__ast_u5327)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, suggestObject__sigmatch_u6092)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* f_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p4);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, lastSon__ast_u5187)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**, X5BX5D___ast_u5190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** s_p0, NI s_p0Len_0, NI i_p1);
static N_INLINE(NI, safeLen__ast_u3182)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, suggestOperations__sigmatch_u6210)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* f_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p3, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p4);
static N_INLINE(NIM_BOOL, filterSymNoOpr__sigmatch_u5946)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* prefix_p1, tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g* res_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isKeyword__renderer_u103)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* i_p0);
static N_INLINE(NIM_BOOL, typeFits__sigmatch_u6175)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* firstArg_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, argtypeMatches__sigmatch_u5028)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, NIM_BOOL fromHlo_p3);
N_LIB_PRIVATE N_NIMCALL(void, newCandidate__sigmatch_u457)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* callee_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result);
N_LIB_PRIVATE N_NIMCALL(void, initCandidate__sigmatch_u242)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* callee_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result);
static N_INLINE(void, initCandidateAux__sigmatch_u107)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* callee_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw*, eqdup___semdata_u4389)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* src_p0, NIM_BOOL cyclic_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, eqdup___ast_u3369)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___layeredtable_u259)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* dest_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A src_p1);
N_LIB_PRIVATE N_NIMCALL(void, initLayeredTypeMap__layeredtable_u9)(tyObject_Table__rIDniaYgWTEwlny3uhSy2w pt_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_Table__rIDniaYgWTEwlny3uhSy2w, initTable__layeredtable_u22)(NI initialSize_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___layeredtable_u166)(tyObject_Table__rIDniaYgWTEwlny3uhSy2w dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, paramTypesMatch__sigmatch_u4316)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_p3, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argOrig_p4);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, paramTypesMatchAux__sigmatch_u3913)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argSemantized_p3, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argOrig_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___semdata_u4385)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw** dest_p0, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* src_p1, NIM_BOOL cyclic_p2);
N_LIB_PRIVATE N_NIMCALL(void, assignType__ast_u6117)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___semdata_u4382)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newNodeIT__ast_u4097)(tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, makeTypeFromExpr__semdata_u4775)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, newTypeS__semdata_u4713)(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind_p0, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u3246)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___ast_u3234)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, copyTree__ast_u6862)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, typeRel__sigmatch_u250)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aOrig_p2, tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw flags_p3);
static N_INLINE(void, put__sigmatch_u246)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* val_p2);
static N_INLINE(void, put__layeredtable_u1097)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* value_p2);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___layeredtable_u1137)(tyObject_Table__rIDniaYgWTEwlny3uhSy2w* t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* val_p2);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipIntLit__magicsys_u119)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* id_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, copyType__ast_u6217)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p2);
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6225)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* s_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, last__ast_u5257)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**, X5BX5D___ast_u5260)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** s_p0, NI s_p0Len_0, NI i_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, lookup__layeredtable_u1015)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, getOrDefault__layeredtable_u738)(tyObject_Table__rIDniaYgWTEwlny3uhSy2w t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, lookup__layeredtable_u667)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tryResolvingStaticExpr__sigmatch_u1816)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, NIM_BOOL allowUnresolved_p2, NIM_BOOL allowCalls_p3, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p4);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, replaceTypesInBody__semtypinst_u1568)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* p_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p3, NIM_BOOL allowMetaTypes_p4, NIM_BOOL fromStaticExpr_p5, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p6);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, base__ast_u5330)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_u3876)(tySequence__d8ZV4IMgHt9biik9cS9a0hrmg* x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_u3866)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* father_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, maybeSkipDistinct__sigmatch_u1799)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* callee_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldSkipDistinct__sigmatch_u1788)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* rules_p1, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* callIdent_p2);
static N_INLINE(NIM_BOOL, eqeq___idents_u366)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* a_p0, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* b_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA*, considerQuotedIdent__lookups_u31)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* origin_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___idents_u155)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* dest_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipModifier__ast_u5317)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elementType__ast_u5310)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(NIM_BOOL, sameEnumTypes__types_u2054)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NOINLINE(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, typeRangeRel__sigmatch_u1288)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__types_u279)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, NIM_BOOL allowEnumWithHoles_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int128_u412)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg b_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, firstOrd__types_u1181)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, lastOrd__types_u1297)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int128_u408)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg b_p1);
N_LIB_PRIVATE N_NIMCALL(NF, firstFloat__types_u1267)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NF, lastFloat__types_u1395)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConvertibleToRange__sigmatch_u856)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2);
static N_INLINE(NIM_BOOL, isIntLit__types_u179)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, handleRange__sigmatch_u758)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg min_p3, tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg max_p4);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg, normalizeKind__types_u1293)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg k_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, getInt__ast_u7017)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg, targetSizeSignedToKind__types_u1287)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg, targetSizeUnsignedToKind__types_u1290)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int128_u966)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, NI64 b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int128_u973)(NI64 a_p0, tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg b_p1);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, handleFloatRange__sigmatch_u909)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1);
static N_INLINE(NIM_BOOL, isFloatLit__types_u194)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(NIM_BOOL, isOutParam__ast_u7626)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, reduceToBase__types_u4283)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, indexType__ast_u5324)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCovariantPtr__sigmatch_u1962)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2);
static N_INLINE(NI, len__ast_u5481)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, inferStaticsInRange__sigmatch_u1929)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* inferred_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concrete_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int128_u980)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, NI64 b_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, lengthOrd__types_u1486)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, minus___int128_u1001)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, NI64 b_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, plus___int128_u1015)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, NI64 b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inferStaticParam__sigmatch_u1830)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* lhs_p1, NI64 rhs_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newIntNode__ast_u5179)(tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p0, NI64 intVal_p1);
N_LIB_PRIVATE N_NIMCALL(NI64, toInt64__int128_u53)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg arg_p0);
N_LIB_PRIVATE N_NIMCALL(void, failureToInferStaticParam__sigmatch_u1920)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, findUnresolvedStatic__ast_u7325)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u2630)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_u1223)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA msg_p2, NimStringV2 arg_p3, tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w eh_p4, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2_p5, NIM_BOOL isRaw_p6, NIM_BOOL ignoreError_p7);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, minus___int128_u641)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg b_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, concreteType__sigmatch_u733)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p2);
static N_INLINE(NIM_BOOL, hasElementType__ast_u5639)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, recordRel__sigmatch_u1127)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw flags_p3);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__types_u1809)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ flags_p2);
static N_INLINE(NIM_BOOL, sameTupleLengths__ast_u5487)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, minRel__sigmatch_u1119)(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ a_p0, tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectTypes__types_u2001)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NIMCALL(NI, isObjectSubtype__sigmatch_u978)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fGenericOrigin_p3);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericObjectOf__sigmatch_u957)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericRoot__types_u4268)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, genericParamPut__sigmatch_u935)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* last_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fGenericOrigin_p2);
static N_INLINE(NI, kidsLen__ast_u5627)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(NIM_BOOL, sameDistinctTypes__types_u2050)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
static N_INLINE(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, allowsNil__sigmatch_u1185)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, procTypeRel__sigmatch_u1237)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2);
N_LIB_PRIVATE N_NIMCALL(void, copyingEraseVoidParams__sigmatch_u377)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** t_p1);
static N_INLINE(void, setSonsLen__ast_u5992)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0, NI len_p1);
N_LIB_PRIVATE N_NIMCALL(void, setLen__ast_u3318)(tySequence__d8ZV4IMgHt9biik9cS9a0hrmg* s_p0, NI newlen_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, copyNode__ast_u6707)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3684)(tySequence__9ahcSjIErJohSBBFLwuF56Q* dest_p0, tySequence__9ahcSjIErJohSBBFLwuF56Q src_p1);
N_LIB_PRIVATE N_NIMCALL(void, setLen__ast_u3703)(tySequence__9ahcSjIErJohSBBFLwuF56Q* s_p0, NI newlen_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_u3200)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* father_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* son_p1);
static N_INLINE(NI, signatureLen__ast_u5589)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, procParamTypeRel__sigmatch_u1208)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMetaType__ast_u4591)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, generateTypeInstance__semtypinst_u1615)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* p_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p3);
static N_INLINE(NIM_BOOL, inconsistentVarTypes__sigmatch_u1192)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1);
N_LIB_PRIVATE N_NIMCALL(tyTuple__7xZyzV9bi4zRvtJda9aONodA, getProcConvMismatch__types_u3794)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ rel_p3);
N_LIB_PRIVATE N_NIMCALL(tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ, compatibleEffects__types_u3551)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__options_u958)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, NimStringV2 symbol_p1);
N_LIB_PRIVATE N_NIMCALL(NI, genericAliasDepth__types_u2136)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipGenericAlias__types_u2145)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConcept__types_u3406)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, enterConceptMatch__sigmatch_u2002)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw flags_p3);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, conceptMatch__concepts_u675)(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);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, prepareMetatypeForSigmatch__semtypinst_u1629)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* p_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p3);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_u1594)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, NimStringV2 errMsg_p2, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2_p3);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipToObject__sigmatch_u1022)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA* skipped_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericHead__ast_u5355)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, typeBodyImpl__ast_u5348)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericSubtype__sigmatch_u1065)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p2, NI* d_p3, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fGenericOrigin_p4);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyContainer__types_u3734)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, matchUserTypeClass__sigmatch_u1300)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__sigmatch_u8177)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u8082)(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, unregisterCycle__system_u3069)(tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3273)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimRawDispose)(void* p_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u3809)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___sigmatch_u8094)(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* dest_p0, void* env_p1);
static N_INLINE(void, nimTraceRefDyn)(void* q_p0, void* env_p1);
static N_INLINE(void, add__system_u2955)(tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg* s_p0, void** c_p1, TNimTypeV2* t_p2);
N_LIB_PRIVATE N_NIMCALL(void, resize__system_u2963)(tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg* s_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___renderer_u2143)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u1464)(tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u8129)(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww*, openScope__lookups_u65)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___idents_u158)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA** dest_p0, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, newSym__ast_u4189)(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_TType__8qAQZfpTDk89aeclTNn4d9cg*, exactReplica__ast_u6222)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, makeTypeDesc__semdata_u4966)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__sigmatch_u1383)(tySequence__GVxMaHC0xtgqjBZ8ubUwnA* x_p0, tyTuple__7SDQCf3TbPJf09bOXiapRgg y_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, eqdup___ast_u4564)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p0);
static N_INLINE(void, addDecl__lookups_u3772)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p1);
static N_INLINE(void, addDeclAt__lookups_u3764)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p2);
N_LIB_PRIVATE N_NIMCALL(void, addDeclAt__lookups_u3236)(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, eqsink___sigmatch_u1749)(tyProc__k2HFjxisIgDALbEUFojxaQ* dest_p0, tyProc__k2HFjxisIgDALbEUFojxaQ src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___sigmatch_u1741)(tyProc__k2HFjxisIgDALbEUFojxaQ* dest_p0, tyProc__k2HFjxisIgDALbEUFojxaQ src_p1, NIM_BOOL cyclic_p2);
N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___sigmatch_u1429)(NimStringV2 s_p0, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuReplaceStr)(NimStringV2 s_p0, NimStringV2 sub_p1, NimStringV2 by_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ*, eqdup___sigmatch_u8136)(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* src_p0, NIM_BOOL cyclic_p1);
static N_INLINE(void, nimIncRefCyclic)(void* p_p0, NIM_BOOL cyclic_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u1510)(tySequence__GVxMaHC0xtgqjBZ8ubUwnA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, closeScope__lookups_u95)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0);
static N_INLINE(NimStringV2, toFileLineCol__msgs_u701)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info_p0);
N_LIB_PRIVATE N_NIMCALL(void, prepareAdd)(NimStringV2* s_p0, NI addLen_p1);
static N_INLINE(void, addInt__stdZprivateZdigitsutils_u204)(NimStringV2* result_p0, NI x_p1);
N_LIB_PRIVATE N_NIMCALL(void, addInt__stdZprivateZdigitsutils_u187)(NimStringV2* result_p0, NI64 x_p1);
N_LIB_PRIVATE N_NIMCALL(void, transitionGenericParamToType__ast_u6814)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__trees_u63)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* b_p1, NIM_BOOL strictSymEquality_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsUnresolvedType__types_u3464)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, prepareTypesInBody__semtypinst_u1579)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* p_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p3);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___ast_u182)(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg e_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, makeStaticExpr__semdata_u4786)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, incMatches__sigmatch_u3877)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ r_p1, NI convMatch_p2);
N_LIB_PRIVATE N_NIMCALL(NI, currentLen__layeredtable_u286)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newSymNode__ast_u5150)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericType__types_u3445)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, getInstantiatedType__sigmatch_u3579)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p3);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, errorType__semdata_u4909)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, convertLiteral__sigmatch_u3621)(tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p0, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p2, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p3, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* newType_p4);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, getSymFromList__astalgo_u191)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* list_p0, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* ident_p1, NI start_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNil__types_u1834)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ flags_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int128_u959)(NI64 a_p0, tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int128_u933)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, NI64 b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, floatRangeCheck__types_u1415)(NF x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, implicitConv__sigmatch_u3593)(tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_p2, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p3, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p4);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newNodeI__ast_u4076)(tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, toVar__ast_u7239)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind_p1, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p2);
N_LIB_PRIVATE N_NIMCALL(NI, cmpInheritancePenalty__sigmatch_u584)(NI a_p0, NI b_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, returnType__ast_u5333)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___modulegraphs_u14747)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw** dest_p0, tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newProcNode__ast_u5409)(tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* body_p2, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* params_p3, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* name_p4, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* pattern_p5, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* genericParams_p6, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* pragmas_p7, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* exceptions_p8);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newTree__ast_u4154)(tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** children_p1, NI children_p1Len_0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_u14744)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, userConvMatch__sigmatch_u3752)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p3, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u160)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3454)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3255)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___layeredtable_u184)(tySequence__HKGx0ku9cD9aZMR2LhlVcUmA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___layeredtable_u250)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3296)(tySequence__d8ZV4IMgHt9biik9cS9a0hrmg dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZosproc_u450)(tySequence__qwqHTkRvwhrRyENtudHQ7g dest_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchNodeKinds__parampatterns_u479)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* p_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
static N_INLINE(NIM_BOOL, isLValue__sigmatch_u3733)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, NIM_BOOL isOutParam_p2);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__3ybZZK771F9azx9ccTLKswSA, isAssignable__parampatterns_u314)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, getRoot__trees_u373)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, markOwnerModuleAsUsed__sigmatch_u104)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1);
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__sigmatch_u6605)(tyObject_Table__nBRoNCTSfpfbfAeK9bNW1qw t_p0, NI key_p1, NI def_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__sigmatch_u6751)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ s_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1);
N_LIB_PRIVATE N_NIMCALL(void, del__sigmatch_u7043)(tySequence__9bffTLF0HkxjFCzZL8og4GA* x_p0, NI i_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newSymNode__ast_u5147)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p0);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newDeref__lowerings_u12)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, localConvMatch__sigmatch_u3828)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p3, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_p4);
N_LIB_PRIVATE N_NIMCALL(void, transitionSonsKind__ast_u6740)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyEnum_TNodeKind__fgQOep3rrztw9aeZI9aS2Ltg kind_p1);
N_LIB_PRIVATE N_NIMCALL(NI, cmpScopes__lookups_u2550)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1);
N_LIB_PRIVATE N_NIMCALL(void, shallowCopyCandidate__sigmatch_u461)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* dest_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* src_p1);
static N_INLINE(void, shallowCopy__layeredtable_u283)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_Table__rIDniaYgWTEwlny3uhSy2w, eqdup___layeredtable_u172)(tyObject_Table__rIDniaYgWTEwlny3uhSy2w src_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A*, eqdup___layeredtable_u238)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* src_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, newType__ast_u5879)(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, addSonSkipIntLit__magicsys_u134)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* father_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_p1, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* id_p2);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, staticAwareTypeRel__sigmatch_u4302)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** arg_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___sigmatch_u163)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* dest_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* src_p1);
static N_INLINE(void, nimIncRef)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___layeredtable_u187)(tySequence__HKGx0ku9cD9aZMR2LhlVcUmA* dest_p0, tySequence__HKGx0ku9cD9aZMR2LhlVcUmA src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3299)(tySequence__d8ZV4IMgHt9biik9cS9a0hrmg* dest_p0, tySequence__d8ZV4IMgHt9biik9cS9a0hrmg src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u3812)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* dest_p0, tySequence__sM4lkSb7zS6F7OVMvW9cffQ src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___pureZosproc_u453)(tySequence__qwqHTkRvwhrRyENtudHQ7g* dest_p0, tySequence__qwqHTkRvwhrRyENtudHQ7g src_p1);
N_LIB_PRIVATE N_NIMCALL(NI, cmpCandidates__sigmatch_u590)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* a_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* b_p1, NIM_BOOL isFormal_p2);
N_LIB_PRIVATE N_NIMCALL(NI, checkGeneric__sigmatch_u464)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* a_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* b_p1);
N_LIB_PRIVATE N_NIMCALL(NI, complexDisambiguation__sigmatch_u573)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NIMCALL(NI, sumGeneric__sigmatch_u494)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, conceptBody__concepts_u181)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, markUsed__sigmatch_u99)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p2, NIM_BOOL checkStyle_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___options_u2137)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg** dest_p0, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, warnAboutDeprecated__sigmatch_u6438)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, extractPragma__ast_u3993)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw, whichPragma__trees_u218)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, userError__sigmatch_u6475)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p2);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuFormatOpenArray)(NimStringV2 formatstr_p0, NimStringV2* a_p1, NI a_p1Len_0);
static N_INLINE(NimStringV2, toFileLineCol__msgs_u705)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, toMsgFilename__msgs_u688)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, NI32 fileIdx_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, belongsToProjectPackageMaybeNil__packages_u85)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, getModule__modulegraphs_u14800)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, NI32 fileIdx_p1);
N_LIB_PRIVATE N_NIMCALL(void, styleCheckUseImpl__linter_u194)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___options_u2134)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* dest_p0);
static N_INLINE(NIM_BOOL, contains__sigmatch_u5088)(NI* a_p0, NI a_p0Len_0, NI item_p1);
static N_INLINE(NI, find__sigmatch_u5093)(NI* a_p0, NI a_p0Len_0, NI item_p1);
N_LIB_PRIVATE N_NIMCALL(void, suggestCall__sigmatch_u6138)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* nOrig_p2, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p3);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nameFits__sigmatch_u6108)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, argsFit__sigmatch_u6127)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* candidate_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* nOrig_p3);
N_LIB_PRIVATE N_NIMCALL(void, newCandidate__sigmatch_u451)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* callee_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* binding_p2, NI calleeScope_p3, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result);
N_LIB_PRIVATE N_NIMCALL(void, initCandidate__sigmatch_u416)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* callee_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* binding_p2, NI calleeScope_p3, NIM_BOOL diagnosticsEnabled_p4, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result);
N_LIB_PRIVATE N_NIMCALL(void, matchGenericParams__sigmatch_u333)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* binding_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* callee_p2);
N_LIB_PRIVATE N_NIMCALL(void, matchGenericParam__sigmatch_u255)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2);
static N_INLINE(NIM_BOOL, genericParamHasConstraints__ast_u5633)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericConstraint__ast_u5657)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, partialMatch__sigmatch_u4885)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* nOrig_p2, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p3);
static N_INLINE(void, initIntSet__pureZcollectionsZintsets_u598)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* Result);
N_LIB_PRIVATE N_NIMCALL(void, initPackedSet__pureZcollectionsZintsets_u37)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* Result);
N_LIB_PRIVATE N_NIMCALL(void, matchesAux__sigmatch_u4544)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* nOrig_p2, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p3, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___sigmatch_u142)(tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg* dest_p0, tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg src_p1);
N_LIB_PRIVATE N_NIMCALL(NI, findFirstArgBlock__sigmatch_u4513)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, openShadowScope__lookups_u3833)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0);
N_LIB_PRIVATE N_NIMCALL(void, incl__pureZcollectionsZintsets_u366)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* s_p0, NI key_p1);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u242)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, setSon__sigmatch_u4425)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* father_p0, NI at_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* son_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, arrayConstr__sigmatch_u4491)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSon__ast_u6677)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* father_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_p1, NIM_BOOL propagateHasAsgn_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, makeRangeType__semdata_u4942)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, NI64 first_p1, NI64 last_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* intType_p4);
N_LIB_PRIVATE N_NIMCALL(void, incrIndexType__sigmatch_u4495)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, prepareNamedParam__sigmatch_u4479)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newIdentNode__ast_u5143)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* ident_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(void, mergeShadowScope__lookups_u3837)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, getNamedParamFromList__astalgo_u239)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* list_p0, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* ident_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__astyaml_u223)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* s_p0, NI key_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, prepareOperand__sigmatch_u4434)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p2, NIM_BOOL* newlyTyped_p3);
N_LIB_PRIVATE N_NIMCALL(void, considerGenSyms__semdata_u2718)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__varpartitions_u1540)(tySequence__qwqHTkRvwhrRyENtudHQ7g* x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, arrayConstr__sigmatch_u4487)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, prepareOperand__sigmatch_u4469)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p1, NIM_BOOL* newlyTyped_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, getSysType__magicsys_u54)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind_p2);
N_LIB_PRIVATE N_NIMCALL(void, closeShadowScope__lookups_u3835)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZcollectionsZintsets_u230)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, suggestVar__sigmatch_u6157)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p2);
N_LIB_PRIVATE N_NIMCALL(void, produceOutput__sigmatch_u5690)(tySequence__nSO1ltijM4vhc0UrrXKEqA* a_p0, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p1);
N_LIB_PRIVATE N_NIMCALL(void, sort__sigmatch_u5699)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA** a_p0, NI a_p0Len_0, tyProc__Bw3od9aVB1x0nc8QWI54cVQ cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2);
N_LIB_PRIVATE N_NIMCALL(NI, cmpSuggestions__sigmatch_u5196)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* a_p0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* b_p1);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_u1553)(NimStringV2 x_p0, NimStringV2 y_p1);
N_LIB_PRIVATE N_NIMCALL(void, setLen__modulegraphs_u11847)(tySequence__nSO1ltijM4vhc0UrrXKEqA* s_p0, NI newlen_p1);
N_LIB_PRIVATE N_NIMCALL(void, suggestWriteln__msgs_u459)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, NimStringV2 s_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___sigmatch_u5554)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* suggest_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___sigmatch_u5548)(tyObject_SuggestInlayHintcolonObjectType___zpydc9br7HBXeBRDNSH9cTMw* suggest_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___options_u343)(tyEnum_SuggestInlayHintKind__jagzSIzxhae5PXBOg9atNeg e_p0);
static N_INLINE(void, nimAddCharV1)(NimStringV2* s_p0, NIM_CHAR c_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___systemZdollars_u9)(NI xX60gensym0__p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nimBoolToStr)(NIM_BOOL x_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___options_u4310)(tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng c_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___ast_u309)(tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q e_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuJoinSep)(NimStringV2* a_p0, NI a_p0Len_0, NimStringV2 sep_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___prefixmatches_u7)(tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g e_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___systemZdollars_u44)(NU16 xX60gensym7__p0);
N_LIB_PRIVATE N_NIMCALL(void, suggestQuit__msgs_u483)(void);
N_LIB_PRIVATE N_NIMCALL(void, pushInfoContext__msgs_u569)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, NimStringV2 detail_p2);
N_LIB_PRIVATE N_NIMCALL(void, typeMismatch__types_u4017)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p3, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p4);
N_LIB_PRIVATE N_NIMCALL(void, popInfoContext__msgs_u593)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0);
N_LIB_PRIVATE N_NIMCALL(void, newSons__ast_u6094)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* father_p0, NI length_p1);
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, argTypeToString__sigmatch_u595)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
N_LIB_PRIVATE N_NIMCALL(void, alignedDealloc)(void* p_p0, NI align_p1);
N_LIB_PRIVATE N_NIMCALL(void, suggestExpr__sigmatch_u7316)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA, newLineInfo__msgs_u419)(NI32 fileInfoIdx_p0, NI line_p1, NI col_p2);
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__EV5hHJmjIY9cla9b9be7fSVJQ_2 = {
0x00, 0x00, 0x00, 0x00, 0x72, 0xed, 0x00, 0xf4,
0x01, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x58,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
static const struct {
  NI cap; NIM_CHAR data[0+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_3 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_4 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
N_LIB_PRIVATE TNimTypeV2 NTIv2__638OdlkJyJmH3yP0ii2UmQ_;
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_10 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__EV5hHJmjIY9cla9b9be7fSVJQ_11 = {
0x00, 0x00, 0x00, 0x00, 0x72, 0xef, 0x00, 0xf4,
0x01, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x78,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_12 = { 1 | NIM_STRLIT_FLAG, "=" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_13 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_12};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_14 = {
0x10, 0x08, 0x80, 0x00, 0x00, 0xc0, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_15 = {
0x10, 0x09, 0xe0, 0x00, 0x00, 0xe0, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_16 = {
0x10, 0x09, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_17 = {
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_18 = {
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_19 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_20 = {
0x00, 0x00, 0x80, 0x00, 0x00, 0xc0, 0x00, 0x10,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_21 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x4f,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_22 = {
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_23 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_24 = { 7 | NIM_STRLIT_FLAG, "unknown" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_25 = {7, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_24};
static const struct {
  NI cap; NIM_CHAR data[44+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_26 = { 44 | NIM_STRLIT_FLAG, "cannot infer the value of the static param \'" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_27 = {44, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_26};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_28 = { 1 | NIM_STRLIT_FLAG, "\'" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_29 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_28};
static const struct {
  NI cap; NIM_CHAR data[63+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_31 = { 63 | NIM_STRLIT_FLAG, "/home/runner/work/nightlies/nightlies/nim/compiler/sigmatch.nim" };
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_32 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_33 = {
0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_34 = {
0x00, 0x08, 0x10, 0x00, 0x00, 0x20, 0x00, 0x00,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[24+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_35 = { 24 | NIM_STRLIT_FLAG, "nimPreviewProcConversion" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_36 = {24, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_35};
static const struct {
  NI cap; NIM_CHAR data[27+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_37 = { 27 | NIM_STRLIT_FLAG, "nimPreviewCstringConversion" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_38 = {27, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_37};
static const struct {
  NI cap; NIM_CHAR data[24+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_39 = { 24 | NIM_STRLIT_FLAG, "wrong instantiated type!" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_40 = {24, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_39};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_42 = {24, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_39};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_44 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
0x00}
;
N_LIB_PRIVATE TNimTypeV2 NTIv2__BMJLEodSR6ezL3E3W72BoQ_;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_46 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[29+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_47 = { 29 | NIM_STRLIT_FLAG, " too nested for type matching" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_48 = {29, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_47};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_50 = { 1 | NIM_STRLIT_FLAG, ":" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_51 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_50};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_52 = { 6 | NIM_STRLIT_FLAG, "Error:" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_53 = {6, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_52};
static NIM_CONST tyProc__k2HFjxisIgDALbEUFojxaQ TM__EV5hHJmjIY9cla9b9be7fSVJQ_54 = {NIM_NIL,NIM_NIL};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_56 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_57 = { 1 | NIM_STRLIT_FLAG, "(" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_58 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_57};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_59 = { 2 | NIM_STRLIT_FLAG, ", " };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_60 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_59};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_61 = { 1 | NIM_STRLIT_FLAG, ")" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_62 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_61};
static const struct {
  NI cap; NIM_CHAR data[19+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_64 = { 19 | NIM_STRLIT_FLAG, " unknown type kind " };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_65 = {19, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_64};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_69 = {
0x10, 0xa8, 0x80, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[19+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_70 = { 19 | NIM_STRLIT_FLAG, "getInstantiatedType" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_71 = {19, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_70};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_73 = {
0x10, 0x28, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_74 = {
0x10, 0xa8, 0x90, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_75 = {
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[12+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_76 = { 12 | NIM_STRLIT_FLAG, "implicitConv" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_77 = {12, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_76};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_79 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const struct {
  NI cap; NIM_CHAR data[22+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_81 = { 22 | NIM_STRLIT_FLAG, "x.state is not csMatch" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_82 = {22, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_81};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_84 = { 6 | NIM_STRLIT_FLAG, "enum \'" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_85 = {6, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_84};
static const struct {
  NI cap; NIM_CHAR data[24+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_86 = { 24 | NIM_STRLIT_FLAG, "\' which contains field \'" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_87 = {24, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_86};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_88 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_28};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_89 = { 2 | NIM_STRLIT_FLAG, "; " };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_90 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_89};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_91 = { 14 | NIM_STRLIT_FLAG, " is deprecated" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_92 = {14, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_91};
static const struct {
  NI cap; NIM_CHAR data[62+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_94 = { 62 | NIM_STRLIT_FLAG, "/home/runner/work/nightlies/nightlies/nim/compiler/suggest.nim" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_95 = {14, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_91};
static const struct {
  NI cap; NIM_CHAR data[45+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_97 = { 45 | NIM_STRLIT_FLAG, "$1usage of \'$2\' is an {.error.} defined at $3" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_98 = {45, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_97};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_99 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_89};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_100 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_101 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_57};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_102 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_59};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_103 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_61};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_105 = {45, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_97};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_106 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_109 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[91+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_111 = { 91 | NIM_STRLIT_FLAG, "sigmatch.nim(2861, 9) `n[a][0].kind == nkEmpty and n[a][1].kind in {nkBracket, nkArgList}` " };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_112 = {91, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_111};
static const struct {
  NI cap; NIM_CHAR data[39+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_113 = { 39 | NIM_STRLIT_FLAG, "named parameter has to be an identifier" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_114 = {39, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_113};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_116 = {
0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_117 = { 7 | NIM_STRLIT_FLAG, "matches" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_118 = {7, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_117};
static const struct {
  NI cap; NIM_CHAR data[23+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_120 = { 23 | NIM_STRLIT_FLAG, "cannot convert $1 to $2" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_121 = {23, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_120};
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_125 = { 11 | NIM_STRLIT_FLAG, "skGlobalVar" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_126 = {11, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_125};
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_127 = { 11 | NIM_STRLIT_FLAG, "skGlobalLet" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_128 = {11, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_127};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_129 = { 1 | NIM_STRLIT_FLAG, "." };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_130 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_129};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_131 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_132 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_133 = { 2 | NIM_STRLIT_FLAG, ": " };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_134 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_133};
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_135 = { 3 | NIM_STRLIT_FLAG, " | " };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_136 = {3, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_135};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_137 = { 4 | NIM_STRLIT_FLAG, "void" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_138 = {4, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_137};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_139 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_59};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_140 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_141 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_133};
static const struct {
  NI cap; NIM_CHAR data[21+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_142 = { 21 | NIM_STRLIT_FLAG, "cannot instantiate: \'" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_143 = {21, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_142};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_144 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_28};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_146 = {21, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_142};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_147 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_28};
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_30 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)1081),
((NI)12)}
;
extern NIM_CONST tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA unknownLineInfo__lineinfos_u361;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_41 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)1773),
((NI)23)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_43 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)1803),
((NI)25)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_49 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)860),
((NI)16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_63 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)1949),
((NI)12)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_66 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2145),
((NI)4)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_72 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2172),
((NI)17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_78 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2193),
((NI)37)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_80 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2576),
((NI)13)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_83 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2718),
((NI)23)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_93 = {{62, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_94},
((NI)667),
((NI)15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_96 = {{62, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_94},
((NI)669),
((NI)9)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_104 = {{62, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_94},
((NI)680),
((NI)12)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_107 = {{62, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_94},
((NI)682),
((NI)6)}
;
static NIM_CONST tyArray__HU7qaqKu9czJLT84iCBJnsA TM__EV5hHJmjIY9cla9b9be7fSVJQ_108 = {((NI)0),
((NI)256)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_115 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2878),
((NI)18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_119 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2952),
((NI)23)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_122 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)3014),
((NI)22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_145 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)3114),
((NI)14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_148 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)3124),
((NI)14)}
;
extern Exception* currException__system_u4010;
extern NIM_BOOL nimInErrorMode__system_u4306;
static NIM_CONST NU32 TM__EV5hHJmjIY9cla9b9be7fSVJQ_5[2] = {3701606400, 2131654144};
N_LIB_PRIVATE TNimTypeV2 NTIv2__638OdlkJyJmH3yP0ii2UmQ_ = {.destructor = (void*)rttiDestroy__sigmatch_u7675, .size = sizeof(tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ), .align = (NI16) NIM_ALIGNOF(tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ), .depth = 1, .display = TM__EV5hHJmjIY9cla9b9be7fSVJQ_5, .traceImpl = (void*)NIM_NIL, .flags = 0};
static NIM_CONST NU32 TM__EV5hHJmjIY9cla9b9be7fSVJQ_45[2] = {3701606400, 3259699712};
N_LIB_PRIVATE TNimTypeV2 NTIv2__BMJLEodSR6ezL3E3W72BoQ_ = {.destructor = (void*)rttiDestroy__sigmatch_u8177, .size = sizeof(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ), .align = (NI16) NIM_ALIGNOF(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ), .depth = 1, .display = TM__EV5hHJmjIY9cla9b9be7fSVJQ_45, .traceImpl = (void*)eqtrace___sigmatch_u8094, .flags = 0};
static N_INLINE(NIM_BOOL, isObjDisplayCheck)(TNimTypeV2* source_p0, NI16 targetDepth_p1, NU32 token_p2) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = (targetDepth_p1 <= (*source_p0).depth);
	if (!(T1_)) goto LA2_;
	T1_ = ((*source_p0).display[targetDepth_p1] == token_p2);
LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
	Exception* result;
	result = currException__system_u4010;
	return result;
}
static N_INLINE(void, popCurrentException)(void) {
	eqcopy___stdZassertions_u22(&currException__system_u4010, (*currException__system_u4010).up, NIM_FALSE);
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4306);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, safeSemExpr__sigmatch_u7164)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg T2_;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T2_ = 0;
	T3_ = NIM_NIL;
	T3_ = (*c_p0).semExpr(c_p0, n_p1, T2_, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T3_); goto LA1_;}
	result = T3_;
	if (NIM_UNLIKELY(*nimErr_)) {
		LA1_:;
		if (isObjDisplayCheck(nimBorrowCurrentException()->Sup.m_type, 4, 4171512832)) {
			*nimErr_ = NIM_FALSE;
			eqcopy___ast_u3240(&result, (*(*c_p0).graph).emptyNode);
			if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
			popCurrentException();
			LA5_:;
		}
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, len__ast_u3175)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NI result;
	NI T1_;
	T1_ = (*n_p0)._kind_6.sons.len;
	result = T1_;
	return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g, prefixMatch__sigmatch_u5920)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g)0;
	switch ((*n_p1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2):
	{
		result = prefixMatch__prefixmatches_u10((*(*n_p1)._kind_5.ident).s, (*(*s_p0).name).s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		result = prefixMatch__prefixmatches_u10((*(*(*n_p1)._kind_4.sym).name).s, (*(*s_p0).name).s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)57):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)56):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)53):
	{
		{
			NI T6_;
			T6_ = (NI)0;
			T6_ = len__ast_u3175(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI)0) < T6_)) goto LA7_;
			result = prefixMatch__sigmatch_u5920(s_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA4_;
LA7_: ;
		{
			result = 0;
		}
LA4_: ;
	}
	break;
	default:
	{
		result = 0;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, filterSym__sigmatch_u5915)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* prefix_p1, tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g* res_p2) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		if (!!(((*s_p0).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)6)))) goto LA3_;
		{
			tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g T9_;
			if (!!((prefix_p1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA7_;
			T9_ = (tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g)0;
			T9_ = prefixMatch__sigmatch_u5920(s_p0, prefix_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*res_p2) = T9_;
			result = !(((*res_p2) == ((tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g)0)));
		}
		goto LA5_;
LA7_: ;
		{
			result = NIM_TRUE;
		}
LA5_: ;
	}
	goto LA1_;
LA3_: ;
	{
		result = NIM_FALSE;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6233)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u4561(&result, (*s_p0).ownerField);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__pureZtimes_u3334)(tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA s_p0, NI value_p1) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = (s_p0.a <= value_p1);
	if (!(T1_)) goto LA2_;
	T1_ = (value_p1 <= s_p0.b);
LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA, dotdot___stdZstrbasics_u49)(NI a_p0, NI b_p1) {
	tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA result;
	result.a = a_p0;
	result.b = b_p1;
	return result;
}
static N_INLINE(void, appendChar)(NimStringV2* dest_p0, NIM_CHAR c_p1) {
	(*(*dest_p0).p).data[(*dest_p0).len] = c_p1;
	(*dest_p0).len += ((NI)1);
	(*(*dest_p0).p).data[(*dest_p0).len] = 0;
}
static N_INLINE(void, 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_u1718)(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_u1718(((void*) ((&(*(*dest_p0).p).data[(*dest_p0).len]))), ((void*) ((&(*src_p1.p).data[((NI)0)]))), (src_p1.len));
		(*dest_p0).len += src_p1.len;
		(*(*dest_p0).p).data[(*dest_p0).len] = 0;
	}
LA3_: ;
}
static N_INLINE(NI, toLinenumber__msgs_u695)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p0) {
	NI result;
	result = ((NI) (info_p0.line));
	return result;
}
static N_INLINE(NI, toColumn__msgs_u698)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p0) {
	NI result;
	result = ((NI) (info_p0.col));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u7623)(tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ* dest_p0) {
	eqdestroy___system_u2627((*dest_p0).line0);
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__sigmatch_u7675)(void* dest_p0) {
	eqdestroy___sigmatch_u7623((&(*((tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ*) (dest_p0)))));
}
N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, isOpeningBacktick__sigmatch_u5247)(NI col_p0, void* ClE_0) {
	NIM_BOOL result;
	tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ* colonenvP__1;
	NIM_BOOL colontmpD_;
	NIM_BOOL colontmpD__2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	colonenvP__1 = (tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ*) ClE_0;
	colontmpD_ = (NIM_BOOL)0;
	colontmpD__2 = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL colontmpD__3;
		NIM_BOOL colontmpD__4;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI)0) <= col_p0);
		if (!(T3_)) goto LA4_;
		T3_ = (col_p0 < (*colonenvP__1).line0.len);
LA4_: ;
		if (!T3_) goto LA5_;
		colontmpD__3 = (NIM_BOOL)0;
		colontmpD__4 = (NIM_BOOL)0;
		{
			tyProc__cOOsXj9cY0bKt2oqNqLbhZw T11_;
			NIM_BOOL T12_;
			if (!((NU8)((*colonenvP__1).line0.p->data[col_p0]) == (NU8)(96))) goto LA9_;
			nimZeroMem((void*)(&T11_), sizeof(tyProc__cOOsXj9cY0bKt2oqNqLbhZw));
			T11_.ClP_0 = isOpeningBacktick__sigmatch_u5247; T11_.ClE_0 = colonenvP__1;
			T12_ = (NIM_BOOL)0;
			T12_ = T11_.ClE_0? T11_.ClP_0((NI)(col_p0 - ((NI)1)), T11_.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_6)(T11_.ClP_0))((NI)(col_p0 - ((NI)1)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmpD__3 = !(T12_);
			colontmpD_ = colontmpD__3;
		}
		goto LA7_;
LA9_: ;
		{
			tyProc__cOOsXj9cY0bKt2oqNqLbhZw T14_;
			nimZeroMem((void*)(&T14_), sizeof(tyProc__cOOsXj9cY0bKt2oqNqLbhZw));
			T14_.ClP_0 = isOpeningBacktick__sigmatch_u5247; T14_.ClE_0 = colonenvP__1;
			colontmpD__4 = T14_.ClE_0? T14_.ClP_0((NI)(col_p0 - ((NI)1)), T14_.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_7)(T14_.ClP_0))((NI)(col_p0 - ((NI)1)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmpD_ = colontmpD__4;
		}
LA7_: ;
		result = colontmpD_;
	}
	goto LA1_;
LA5_: ;
	{
		colontmpD__2 = NIM_FALSE;
		result = colontmpD__2;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, skipUntil__pureZparseutils_u197)(NIM_CHAR* s_p0, NI s_p0Len_0, NIM_CHAR until_p1) {
	NI result;
	result = ((NI)0);
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = (result < s_p0Len_0);
			if (!(T3_)) goto LA4_;
			T3_ = !(((NU8)(s_p0[result]) == (NU8)(until_p1)));
LA4_: ;
			if (!T3_) goto LA2;
			result += ((NI)1);
		} LA2: ;
	}
	return result;
}
static N_INLINE(NI, skipUntil__pureZparseutils_u944)(NimStringV2 s_p0, NIM_CHAR until_p1, NI start_p2) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	result = skipUntil__pureZparseutils_u197((((s_p0).p) ? ((NIM_CHAR*)s_p0.p->data+(start_p2)) : NIM_NIL), ((s_p0.len-1))-(start_p2)+1, until_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*s_p0).p == ((NimStrPayload*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = ((NI)((*(*s_p0).p).cap & ((NI)1073741824)) == ((NI)1073741824));
LA4_: ;
		if (!T3_) goto LA5_;
		nimPrepareStrMutationImpl__system_u2378(s_p0);
	}
LA5_: ;
}
static N_INLINE(NimStringV2, X5BX5D___pureZstrutils_u1285)(NimStringV2 s_p0, tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA x_p1) {
	NimStringV2 result;
	NI a_1;
	NI L_1;
	result.len = 0; result.p = NIM_NIL;
	a_1 = x_p1.a;
	L_1 = (NI)((NI)(x_p1.b - a_1) + ((NI)1));
	result = mnewString((L_1));
	{
		NI i_1;
		NI i_2;
		i_1 = (NI)0;
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < L_1)) goto LA3;
				i_1 = i_2;
				nimPrepareStrMutationV2((&result));
				result.p->data[i_1] = s_p0.p->data[(NI)(i_1 + a_1)];
				i_2 += ((NI)1);
			} LA3: ;
		}
	}
	return result;
}
static N_INLINE(NIM_CHAR, X5BX5D___system_u7822)(NimStringV2 s_p0, NI i_p1) {
	NIM_CHAR result;
	result = s_p0.p->data[(NI)(s_p0.len - i_p1)];
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, scanForTrailingAsterisk__sigmatch_u5221)(NimStringV2 line_p0, NI start_p1) {
	NI result;
	result = ((NI)0);
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = ((NI)(start_p1 + result) < line_p0.len);
			if (!(T3_)) goto LA4_;
			T3_ = (((NU8)(line_p0.p->data[(NI)(start_p1 + result)])) == ((NU8)(32)) || ((NU8)(line_p0.p->data[(NI)(start_p1 + result)])) == ((NU8)(9)));
LA4_: ;
			if (!T3_) goto LA2;
			result += ((NI)1);
		} LA2: ;
	}
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((NI)(start_p1 + result) < line_p0.len);
		if (!(T7_)) goto LA8_;
		T7_ = ((NU8)(line_p0.p->data[(NI)(start_p1 + result)]) == (NU8)(42));
LA8_: ;
		if (!T7_) goto LA9_;
		result += ((NI)1);
	}
	goto LA5_;
LA9_: ;
	{
		result = ((NI)0);
	}
LA5_: ;
	return result;
}
static N_INLINE(NI, parseWhile__pureZparseutils_u293)(NIM_CHAR* s_p0, NI s_p0Len_0, NimStringV2* token_p1, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw validChars_p2) {
	NI result;
	NI i_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	i_1 = ((NI)0);
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = (i_1 < s_p0Len_0);
			if (!(T3_)) goto LA4_;
			T3_ = ((validChars_p2[(NU)((((NU8)(s_p0[i_1]))))>>3] &(1U<<((NU)((((NU8)(s_p0[i_1]))))&7U)))!=0);
LA4_: ;
			if (!T3_) goto LA2;
			i_1 += ((NI)1);
		} LA2: ;
	}
	result = i_1;
	fastSubstr__pureZparseutils_u225(s_p0, s_p0Len_0, token_p1, result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, parseWhile__pureZparseutils_u972)(NimStringV2 s_p0, NimStringV2* token_p1, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw validChars_p2, NI start_p3) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	result = parseWhile__pureZparseutils_u293((((s_p0).p) ? ((NIM_CHAR*)s_p0.p->data+(start_p3)) : NIM_NIL), ((s_p0.len-1))-(start_p3)+1, token_p1, validChars_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a_p0, void* b_p1, NI size_p2) {
	int result;
	result = memcmp(a_p0, b_p1, ((size_t) (size_p2)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_u1726)(void* a_p0, void* b_p1, NI size_p2) {
	NIM_BOOL result;
	int T1_;
	T1_ = (int)0;
	T1_ = nimCmpMem(a_p0, b_p1, size_p2);
	result = (T1_ == ((NI32)0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a_p0, NimStringV2 b_p1) {
	NIM_BOOL result;
	NI alen_1;
	NI blen_1;
{	result = NIM_FALSE;
	alen_1 = a_p0.len;
	blen_1 = b_p1.len;
	{
		if (!(alen_1 == blen_1)) goto LA3_;
		{
			if (!(alen_1 == ((NI)0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
LA7_: ;
		result = equalMem__system_u1726(((void*) ((&a_p0.p->data[((NI)0)]))), ((void*) ((&b_p1.p->data[((NI)0)]))), (alen_1));
		goto BeforeRet_;
	}
LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU32)(((NU) (x_p0))) - (NU32)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p_p0) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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)8));
		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 -= ((NI)16);
		}
LA6_: ;
		rememberCycle__system_u3472(result, cell_1, (*((TNimTypeV2**) (p_p0))));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u7649)(tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicDyn(dest_p0);
		if (!T3_) goto LA4_;
		nimDestroyAndDispose(dest_p0);
	}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, getTokenLenFromSource__sigmatch_u5239)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, NimStringV2 ident_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p2, NIM_BOOL skipTrailingAsterisk_p3) {
	NI result;
	tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ* colonenv__1;
	tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ* T1_;
	NimStringV2 T2_;
	NI column_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	colonenv__1 = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = (tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ*) nimNewObj(sizeof(tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ), NIM_ALIGNOF(tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ));
	(*T1_).Sup.m_type = (&NTIv2__638OdlkJyJmH3yP0ii2UmQ_);
	colonenv__1 = T1_;
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = sourceLine__msgs_u1206(conf_p0, info_p2);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___system_u2627(T2_); goto BeforeRet_;}
	eqsink___system_u2636((&(*colonenv__1).line0), T2_);
	column_1 = toColumn__msgs_u698(info_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!((*colonenv__1).line0.len < column_1)) goto LA5_;
		result = ((NI)0);
	}
	goto LA3_;
LA5_: ;
	{
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		tyProc__cOOsXj9cY0bKt2oqNqLbhZw T12_;
		NimStringV2 colontmpD_;
		T8_ = (NIM_BOOL)0;
		T9_ = (NIM_BOOL)0;
		T9_ = (((NI)0) < column_1);
		if (!(T9_)) goto LA10_;
		T9_ = ((NU8)((*colonenv__1).line0.p->data[(NI)(column_1 - ((NI)1))]) == (NU8)(96));
LA10_: ;
		T8_ = T9_;
		if (!(T8_)) goto LA11_;
		nimZeroMem((void*)(&T12_), sizeof(tyProc__cOOsXj9cY0bKt2oqNqLbhZw));
		T12_.ClP_0 = isOpeningBacktick__sigmatch_u5247; T12_.ClE_0 = colonenv__1;
		T8_ = T12_.ClE_0? T12_.ClP_0((NI)(column_1 - ((NI)1)), T12_.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_8)(T12_.ClP_0))((NI)(column_1 - ((NI)1)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA11_: ;
		if (!T8_) goto LA13_;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		result = skipUntil__pureZparseutils_u944((*colonenv__1).line0, 96, column_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA T17_;
			NI T18_;
			T17_ = dotdot___stdZstrbasics_u49(column_1, (NI)((NI)(column_1 + result) - ((NI)1)));
			colontmpD_ = X5BX5D___pureZstrutils_u1285((*colonenv__1).line0, T17_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T18_ = (NI)0;
			T18_ = nsuCmpIgnoreStyle(colontmpD_, ident_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!((T18_ == ((NI)0)))) goto LA19_;
			result = ((NI)0);
		}
LA19_: ;
		eqdestroy___system_u2627(colontmpD_);
	}
	goto LA3_;
LA13_: ;
	{
		NIM_BOOL T22_;
		NIM_BOOL T23_;
		tyProc__cOOsXj9cY0bKt2oqNqLbhZw T26_;
		NimStringV2 colontmpD__2;
		NI T29_;
		T22_ = (NIM_BOOL)0;
		T23_ = (NIM_BOOL)0;
		T23_ = (((NI)0) <= column_1);
		if (!(T23_)) goto LA24_;
		T23_ = ((NU8)((*colonenv__1).line0.p->data[column_1]) == (NU8)(96));
LA24_: ;
		T22_ = T23_;
		if (!(T22_)) goto LA25_;
		nimZeroMem((void*)(&T26_), sizeof(tyProc__cOOsXj9cY0bKt2oqNqLbhZw));
		T26_.ClP_0 = isOpeningBacktick__sigmatch_u5247; T26_.ClE_0 = colonenv__1;
		T22_ = T26_.ClE_0? T26_.ClP_0(column_1, T26_.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_9)(T26_.ClP_0))(column_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA25_: ;
		if (!T22_) goto LA27_;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		T29_ = (NI)0;
		T29_ = skipUntil__pureZparseutils_u944((*colonenv__1).line0, 96, (NI)(column_1 + ((NI)1)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = (NI)(T29_ + ((NI)2));
		{
			tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA T32_;
			NI T33_;
			T32_ = dotdot___stdZstrbasics_u49((NI)(column_1 + ((NI)1)), (NI)((NI)(column_1 + result) - ((NI)2)));
			colontmpD__2 = X5BX5D___pureZstrutils_u1285((*colonenv__1).line0, T32_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T33_ = (NI)0;
			T33_ = nsuCmpIgnoreStyle(colontmpD__2, ident_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!((T33_ == ((NI)0)))) goto LA34_;
			result = ((NI)0);
		}
LA34_: ;
		eqdestroy___system_u2627(colontmpD__2);
	}
	goto LA3_;
LA27_: ;
	{
		NIM_BOOL T37_;
		NIM_CHAR T39_;
		NimStringV2 colontmpD__3;
		NimStringV2 colontmpD__4;
		T37_ = (NIM_BOOL)0;
		T37_ = (((NU8)(ident_p1.p->data[((NI)0)])) >= ((NU8)(97)) && ((NU8)(ident_p1.p->data[((NI)0)])) <= ((NU8)(122)) || ((NU8)(ident_p1.p->data[((NI)0)])) >= ((NU8)(65)) && ((NU8)(ident_p1.p->data[((NI)0)])) <= ((NU8)(90)) || ((NU8)(ident_p1.p->data[((NI)0)])) >= ((NU8)(48)) && ((NU8)(ident_p1.p->data[((NI)0)])) <= ((NU8)(57)) || ((NU8)(ident_p1.p->data[((NI)0)])) >= ((NU8)(128)) && ((NU8)(ident_p1.p->data[((NI)0)])) <= ((NU8)(255)) || ((NU8)(ident_p1.p->data[((NI)0)])) == ((NU8)(95)));
		if (!(T37_)) goto LA38_;
		T39_ = (NIM_CHAR)0;
		T39_ = X5BX5D___system_u7822(ident_p1, ((NI)1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T37_ = !(((NU8)(T39_) == (NU8)(61)));
LA38_: ;
		if (!T37_) goto LA40_;
		colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
		colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
		result = identLen__linter_u14((*colonenv__1).line0, column_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA T44_;
			tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA T45_;
			NI T46_;
			T44_ = dotdot___stdZstrbasics_u49(column_1, (NI)((NI)(column_1 + result) - ((NI)1)));
			colontmpD__3 = X5BX5D___pureZstrutils_u1285((*colonenv__1).line0, T44_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T45_ = dotdot___stdZstrbasics_u49(((NI)0), (((NI)(result - ((NI)1)) <= (NI)(ident_p1.len - ((NI)1))) ? (NI)(result - ((NI)1)) : (NI)(ident_p1.len - ((NI)1))));
			colontmpD__4 = X5BX5D___pureZstrutils_u1285(ident_p1, T45_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T46_ = (NI)0;
			T46_ = nsuCmpIgnoreStyle(colontmpD__3, colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!((T46_ == ((NI)0)))) goto LA47_;
			result = ((NI)0);
		}
LA47_: ;
		{
			NIM_BOOL T51_;
			NI T55_;
			T51_ = (NIM_BOOL)0;
			T51_ = skipTrailingAsterisk_p3;
			if (!(T51_)) goto LA52_;
			T51_ = (((NI)0) < result);
LA52_: ;
			if (!T51_) goto LA53_;
			T55_ = (NI)0;
			T55_ = scanForTrailingAsterisk__sigmatch_u5221((*colonenv__1).line0, (NI)(column_1 + result));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result += T55_;
		}
LA53_: ;
		eqdestroy___system_u2627(colontmpD__4);
		eqdestroy___system_u2627(colontmpD__3);
	}
	goto LA3_;
LA40_: ;
	{
		NimStringV2 sourceIdent_1;
		NimStringV2 colontmpD__5;
		sourceIdent_1.len = 0; sourceIdent_1.p = NIM_NIL;
		colontmpD__5.len = 0; colontmpD__5.p = NIM_NIL;
		sourceIdent_1 = TM__EV5hHJmjIY9cla9b9be7fSVJQ_10;
		result = parseWhile__pureZparseutils_u972((*colonenv__1).line0, (&sourceIdent_1), TM__EV5hHJmjIY9cla9b9be7fSVJQ_11, column_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T59_;
			NIM_CHAR T60_;
			T59_ = (NIM_BOOL)0;
			T60_ = (NIM_CHAR)0;
			T60_ = X5BX5D___system_u7822(ident_p1, ((NI)1));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T59_ = ((NU8)(T60_) == (NU8)(61));
			if (!(T59_)) goto LA61_;
			T59_ = (((NU8)(ident_p1.p->data[((NI)0)])) >= ((NU8)(97)) && ((NU8)(ident_p1.p->data[((NI)0)])) <= ((NU8)(122)) || ((NU8)(ident_p1.p->data[((NI)0)])) >= ((NU8)(65)) && ((NU8)(ident_p1.p->data[((NI)0)])) <= ((NU8)(90)) || ((NU8)(ident_p1.p->data[((NI)0)])) >= ((NU8)(48)) && ((NU8)(ident_p1.p->data[((NI)0)])) <= ((NU8)(57)) || ((NU8)(ident_p1.p->data[((NI)0)])) >= ((NU8)(128)) && ((NU8)(ident_p1.p->data[((NI)0)])) <= ((NU8)(255)) || ((NU8)(ident_p1.p->data[((NI)0)])) == ((NU8)(95)));
LA61_: ;
			if (!T59_) goto LA62_;
			{
				if (!!(eqStrings(sourceIdent_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_13))) goto LA66_;
				result = ((NI)0);
			}
LA66_: ;
		}
		goto LA57_;
LA62_: ;
		{
			NIM_BOOL T69_;
			tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA T71_;
			T69_ = (NIM_BOOL)0;
			T69_ = (ident_p1.len < sourceIdent_1.len);
			if (!(T69_)) goto LA70_;
			T71_ = dotdot___stdZstrbasics_u49(((NI)0), (ident_p1.len-1));
			colontmpD__5 = X5BX5D___pureZstrutils_u1285(sourceIdent_1, T71_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T69_ = eqStrings(colontmpD__5, ident_p1);
LA70_: ;
			if (!T69_) goto LA72_;
			result = ident_p1.len;
		}
		goto LA57_;
LA72_: ;
		{
			if (!!(eqStrings(sourceIdent_1, ident_p1))) goto LA75_;
			result = ((NI)0);
		}
		goto LA57_;
LA75_: ;
LA57_: ;
		eqdestroy___system_u2627(colontmpD__5);
		eqdestroy___system_u2627(sourceIdent_1);
	}
LA3_: ;
	eqdestroy___sigmatch_u7649(colonenv__1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA*, symToSuggest__sigmatch_u5357)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, NIM_BOOL isLocal_p2, tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng section_p3, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p4, NI quality_p5, tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g prefix_p6, NIM_BOOL inTypeContext_p7, NI scope_p8, NIM_BOOL useSuppliedInfo_p9, NU16 endLine_p10, NI endCol_p11, NIM_BOOL extractDocs_p12) {
	tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* result;
	tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = NIM_NIL;
	T1_ = (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA*) nimNewObj(sizeof(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA), NIM_ALIGNOF(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA));
	(*T1_).quality = ((NI)0);
	result = T1_;
	(*result).section = section_p3;
	(*result).quality = quality_p5;
	(*result).isGlobal = (((*s_p1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)3)))&63U)))!=0);
	(*result).prefix = prefix_p6;
	(*result).contextFits = (inTypeContext_p7 == ((*s_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)7) || (*s_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)4)));
	(*result).scope = scope_p8;
	(*result).name = (&(*(*s_p1).name).s);
	(*result).symkind = ((NU8) ((*s_p1).kind));
	{
		tySequence__sM4lkSb7zS6F7OVMvW9cffQ T6_;
		if (!!((((*(*g_p0).config).globalOptions &((NU64)1<<((NU)((((tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A)33)))&63U)))!=0))) goto LA4_;
		T6_.len = 0; T6_.p = NIM_NIL;
		T6_.len = 0; T6_.p = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content*) newSeqPayload(0, sizeof(NimStringV2), NIM_ALIGNOF(NimStringV2));
		eqsink___system_u3818((&(*result).qualifiedPath), T6_);
		{
			NIM_BOOL T9_;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* ow_1;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
			T9_ = (NIM_BOOL)0;
			T9_ = !(isLocal_p2);
			if (!(T9_)) goto LA10_;
			T9_ = !(((*s_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)6)));
LA10_: ;
			if (!T9_) goto LA11_;
			ow_1 = NIM_NIL;
			colontmpD_ = NIM_NIL;
			ow_1 = owner__ast_u6233(s_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T15_;
				NIM_BOOL T16_;
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* ow2_1;
				NimStringV2 colontmpD__2;
				T15_ = (NIM_BOOL)0;
				T16_ = (NIM_BOOL)0;
				T16_ = !((ow_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
				if (!(T16_)) goto LA17_;
				T16_ = !(((*ow_1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)6)));
LA17_: ;
				T15_ = T16_;
				if (!(T15_)) goto LA18_;
				colontmpD_ = owner__ast_u6233(ow_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T15_ = !((colontmpD_ == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA18_: ;
				if (!T15_) goto LA19_;
				ow2_1 = NIM_NIL;
				colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
				ow2_1 = owner__ast_u6233(ow_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				colontmpD__2 = eqdup___system_u2633((*(*ow2_1).name).s);
				add__stdZenumutils_u71((&(*result).qualifiedPath), colontmpD__2);
				eqdestroy___ast_u4558(ow2_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
LA19_: ;
			{
				NimStringV2 colontmpD__3;
				if (!!((ow_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA23_;
				colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
				colontmpD__3 = eqdup___system_u2633((*(*ow_1).name).s);
				add__stdZenumutils_u71((&(*result).qualifiedPath), colontmpD__3);
			}
LA23_: ;
			eqdestroy___ast_u4558(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u4558(ow_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA11_: ;
		{
			NIM_BOOL T27_;
			tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA T29_;
			NimStringV2 T32_;
			T27_ = (NIM_BOOL)0;
			T27_ = ((TM__EV5hHJmjIY9cla9b9be7fSVJQ_2[(NU)((((NU8)((*(*s_p1).name).s.p->data[((NI)0)]))))>>3] &(1U<<((NU)((((NU8)((*(*s_p1).name).s.p->data[((NI)0)]))))&7U)))!=0);
			if (T27_) goto LA28_;
			T29_ = dotdot___stdZstrbasics_u49(((NI)1), ((NI)66));
			T27_ = contains__pureZtimes_u3334(T29_, (*(*s_p1).name).id);
LA28_: ;
			if (!T27_) goto LA30_;
			T32_.len = 0; T32_.p = NIM_NIL;
			T32_ = rawNewString((*(*s_p1).name).s.len + 2);
appendChar((&T32_), 96);
appendString((&T32_), (*(*s_p1).name).s);
appendChar((&T32_), 96);
			add__stdZenumutils_u71((&(*result).qualifiedPath), T32_);
		}
		goto LA25_;
LA30_: ;
		{
			NimStringV2 colontmpD__4;
			colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
			colontmpD__4 = eqdup___system_u2633((*(*s_p1).name).s);
			add__stdZenumutils_u71((&(*result).qualifiedPath), colontmpD__4);
		}
LA25_: ;
		{
			if (!!(((*s_p1).typ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA36_;
			{
				NimStringV2 T42_;
				if (!(section_p3 == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)20))) goto LA40_;
				T42_.len = 0; T42_.p = NIM_NIL;
				T42_ = typeToString__types_u54((*s_p1).typ, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)8));
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___system_u2627(T42_); goto BeforeRet_;}
				eqsink___system_u2636((&(*result).forth), T42_);
			}
			goto LA38_;
LA40_: ;
			{
				NimStringV2 T44_;
				T44_.len = 0; T44_.p = NIM_NIL;
				T44_ = typeToString__types_u54((*s_p1).typ, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)9));
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___system_u2627(T44_); goto BeforeRet_;}
				eqsink___system_u2636((&(*result).forth), T44_);
			}
LA38_: ;
		}
		goto LA34_;
LA36_: ;
		{
			eqsink___system_u2636((&(*result).forth), TM__EV5hHJmjIY9cla9b9be7fSVJQ_4);
		}
LA34_: ;
	}
LA4_: ;
	{
		NIM_BOOL T48_;
		NIM_BOOL T49_;
		NI T51_;
		NimStringV2 T55_;
		T48_ = (NIM_BOOL)0;
		T49_ = (NIM_BOOL)0;
		T49_ = ((*s_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)6));
		if (!(T49_)) goto LA50_;
		T51_ = (NI)0;
		T51_ = len__ast_u3175((*s_p1).ast);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T49_ = !((T51_ == ((NI)0)));
LA50_: ;
		T48_ = T49_;
		if (!(T48_)) goto LA52_;
		T48_ = !((section_p3 == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)9)));
LA52_: ;
		if (!T48_) goto LA53_;
		T55_.len = 0; T55_.p = NIM_NIL;
		T55_ = toFullPath__msgs_u624((*g_p0).config, (*(*(*s_p1).ast)._kind_6.sons.p->data[((NI)0)]).info.fileIndex);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___system_u2627(T55_); goto BeforeRet_;}
		eqsink___system_u2636((&(*result).filePath), T55_);
		(*result).line = ((NI)1);
		(*result).column = ((NI)0);
		(*result).tokenLen = ((NI)0);
	}
	goto LA46_;
LA53_: ;
	{
		tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA colontmpD__5;
		tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA colontmpD__6;
		NI colontmpD__7;
		NI colontmpD__8;
		tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA infox_1;
		NimStringV2 T64_;
		NI T65_;
		NI T66_;
		nimZeroMem((void*)(&colontmpD__5), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
		nimZeroMem((void*)(&colontmpD__6), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
		colontmpD__7 = (NI)0;
		colontmpD__8 = (NI)0;
		{
			NIM_BOOL T59_;
			T59_ = (NIM_BOOL)0;
			T59_ = useSuppliedInfo_p9;
			if (T59_) goto LA60_;
			T59_ = (section_p3 == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)4) || section_p3 == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)9) || section_p3 == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)10) || section_p3 == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)18));
LA60_: ;
			if (!T59_) goto LA61_;
			colontmpD__5 = info_p4;
			infox_1 = colontmpD__5;
		}
		goto LA57_;
LA61_: ;
		{
			colontmpD__6 = (*s_p1).info;
			infox_1 = colontmpD__6;
		}
LA57_: ;
		T64_.len = 0; T64_.p = NIM_NIL;
		T64_ = toFullPath__msgs_u624((*g_p0).config, infox_1.fileIndex);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___system_u2627(T64_); goto BeforeRet_;}
		eqsink___system_u2636((&(*result).filePath), T64_);
		T65_ = (NI)0;
		T65_ = toLinenumber__msgs_u695(infox_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).line = T65_;
		T66_ = (NI)0;
		T66_ = toColumn__msgs_u698(infox_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result).column = T66_;
		{
			if (!!((section_p3 == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)9) || section_p3 == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)20)))) goto LA69_;
			colontmpD__7 = (*(*s_p1).name).s.len;
			(*result).tokenLen = colontmpD__7;
		}
		goto LA67_;
LA69_: ;
		{
			colontmpD__8 = getTokenLenFromSource__sigmatch_u5239((*g_p0).config, (*(*s_p1).name).s, infox_1, (section_p3 == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)20)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).tokenLen = colontmpD__8;
		}
LA67_: ;
	}
LA46_: ;
	(*result).version = (*(*g_p0).config).suggestVersion;
	(*result).endLine = endLine_p10;
	(*result).endCol = endCol_p11;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, paramsLen__ast_u5595)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NI result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = (NI)(T1_ - ((NI)1));
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, firstParamType__ast_u5342)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3366(&result, (*n_p0).sons.p->data[((NI)1)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getQuality__sigmatch_u6023)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((NI)100);
	{
		NIM_BOOL T3_;
		NI T5_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* exp_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*s_p0).typ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = paramsLen__ast_u5595((*s_p0).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (((NI)0) < T5_);
LA4_: ;
		if (!T3_) goto LA6_;
		exp_1 = NIM_NIL;
		colontmpD_ = NIM_NIL;
		colontmpD_ = firstParamType__ast_u5342((*s_p0).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		exp_1 = skipTypes__ast_u5358(colontmpD_, TM__EV5hHJmjIY9cla9b9be7fSVJQ_14);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T12_;
			if (!((*exp_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48))) goto LA10_;
			T12_ = NIM_NIL;
			T12_ = elemType__types_u250(exp_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T12_); goto BeforeRet_;}
			eqsink___ast_u3372(&exp_1, T12_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA10_: ;
		{
			if (!((*exp_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6) || (*exp_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7) || (*exp_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12) || (*exp_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59))) goto LA15_;
			result = ((NI)50);
		}
LA15_: ;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(exp_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA6_: ;
	{
		if (!(((*s_p0).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)22)))&63U)))!=0)) goto LA19_;
		result = ((NI)(result - ((NI)5)));
	}
LA19_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_u2999)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, NI module_p1) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	T1_ = (NIM_BOOL)0;
	T2_ = (*g_p0).packed_0.pm.len;
	T1_ = (module_p1 < T2_);
	if (!(T1_)) goto LA3_;
	T1_ = ((*g_p0).packed_0.pm.p->data[module_p1].status == ((tyEnum_ModuleStatus__uT4B39a2dNaG9a9aunVdyhQtQ)3));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_u3010)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* m_p1) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	result = isCachedModule__modulegraphs_u2999(g_p0, (*m_p1).position);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestEverything__sigmatch_u6237)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* f_p2, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p3) {
NIM_BOOL oldNimErrFin14_;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL oldNimErrFin47_;
NIM_BOOL oldNimErrFin71_;
NIM_BOOL oldNimErrFin41_;
NIM_BOOL oldNimErrFin4_;
NIM_BOOL oldNimErrFin2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_1;
		tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg seen_1;
		NI scopeN_1;
		NIM_BOOL isLocal_1;
		it_1 = NIM_NIL;
		nimZeroMem((void*)(&seen_1), sizeof(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg));
		scopeN_1 = (NI)0;
		isLocal_1 = (NIM_BOOL)0;
		seen_1 = initHashSet__lookups_u798(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		{
			tyTuple__WIyQ4Cfp4shlBOyEpagHMw res_1;
			NIM_BOOL isLocal_2;
			NI scopeN_2;
			nimZeroMem((void*)(&res_1), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
			isLocal_2 = NIM_TRUE;
			scopeN_2 = ((NI)0);
			{
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_1;
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* current_1;
				scope_1 = NIM_NIL;
				current_1 = NIM_NIL;
				eqcopy___lookups_u74(&current_1, (*c_p0).currentScope);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				{
					while (1) {
						if (!!((current_1 == ((tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww*) NIM_NIL)))) goto LA8;
						eqcopy___lookups_u74(&scope_1, current_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						{
							if (!(scope_1 == (*c_p0).topLevelScope)) goto LA11_;
							isLocal_2 = NIM_FALSE;
						}
LA11_: ;
						scopeN_2 -= ((NI)1);
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* item_1;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_1;
							tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw it_2;
							item_1 = NIM_NIL;
							s_1 = NIM_NIL;
							item_1 = 0;
							nimZeroMem((void*)(&it_2), sizeof(tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw));
							s_1 = initTabIter__astalgo_u3139((&it_2), (*scope_1).symbols);
							if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
							{
								while (1) {
									tyTuple__WIyQ4Cfp4shlBOyEpagHMw T17_;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_1;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T31_;
									if (!!((s_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA16;
									eqsink___ast_u4567(&item_1, s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									eqwasMoved___ast_u4555(&s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									nimZeroMem((void*)(&T17_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
									blitTmp_1 = item_1;
									eqwasMoved___ast_u4555(&item_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									T17_.Field0 = blitTmp_1;
									T17_.Field1 = scopeN_2;
									T17_.Field2 = isLocal_2;
									eqsink___lookups_u768((&res_1), T17_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									{
										tyTuple__FFspgHRWev9aDuj0fEpj9bUw T20_;
										NIM_BOOL T21_;
										tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_1;
										T20_.Field0 = (*res_1.Field0).info;
										T20_.Field1 = (*(*res_1.Field0).name).id;
										T21_ = (NIM_BOOL)0;
										T21_ = containsOrIncl__lookups_u984((&seen_1), T20_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
										if (!!(T21_)) goto LA22_;
										eqsink___ast_u4567(&it_1, res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
										eqwasMoved___ast_u4555(&res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
										scopeN_1 = res_1.Field1;
										isLocal_1 = res_1.Field2;
										pm_1 = 0;
										{
											NIM_BOOL T26_;
											NI T29_;
											tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T30_;
											T26_ = (NIM_BOOL)0;
											T26_ = filterSym__sigmatch_u5915(it_1, f_p2, (&pm_1));
											if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
											if (!T26_) goto LA27_;
											T29_ = (NI)0;
											T29_ = getQuality__sigmatch_u6023(it_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
											T30_ = NIM_NIL;
											T30_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_1, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), (*n_p1).info, T29_, pm_1, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
											if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T30_); goto LA14_;}
											add__sigmatch_u6054((&(*outputs_p3)), T30_);
										}
LA27_: ;
									}
LA22_: ;
									T31_ = NIM_NIL;
									T31_ = nextIter__astalgo_u3123((&it_2), (*scope_1).symbols);
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T31_); goto LA14_;}
									eqsink___ast_u4567(&s_1, T31_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
								} LA16: ;
							}
							{
								LA14_:;
							}
							{
								oldNimErrFin14_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4558(s_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								eqdestroy___ast_u4558(item_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								*nimErr_ = oldNimErrFin14_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						}
						eqcopy___lookups_u74(&current_1, (*current_1).parent);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					} LA8: ;
				}
				{
					LA6_:;
				}
				{
					oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___lookups_u71(current_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					eqdestroy___lookups_u71(scope_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					*nimErr_ = oldNimErrFin6_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
			}
			scopeN_2 -= ((NI)1);
			isLocal_2 = NIM_FALSE;
			{
				tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw* im_1;
				NI i_1;
				NI L_1;
				NI T37_;
				im_1 = (tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw*)0;
				i_1 = ((NI)0);
				T37_ = (*c_p0).imports.len;
				L_1 = T37_;
				{
					while (1) {
						if (!(i_1 < L_1)) goto LA39;
						im_1 = (&(*c_p0).imports.p->data[i_1]);
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_2;
							NIM_BOOL importHidden_1;
							s_2 = NIM_NIL;
							s_2 = 0;
							importHidden_1 = (((*(*im_1).m).options &((NU32)1<<((NU)((((tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ)27)))&31U)))!=0);
							{
								NIM_BOOL T44_;
								tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ rodIt_1;
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* r_1;
								tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* T48_;
								tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* T49_;
								T44_ = (NIM_BOOL)0;
								T44_ = isCachedModule__modulegraphs_u3010((*c_p0).graph, (*im_1).m);
								if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
								if (!T44_) goto LA45_;
								nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
								r_1 = NIM_NIL;
								nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
								T48_ = NIM_NIL;
								T48_ = (*(*c_p0).graph).config;
								T49_ = NIM_NIL;
								T49_ = (*(*c_p0).graph).cache;
								r_1 = initRodIterAllSyms__icZic_u21656((&rodIt_1), T48_, T49_, (&(*(*c_p0).graph).packed_0), ((NI32) ((*(*im_1).m).position)), importHidden_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
								{
									while (1) {
										tyTuple__WIyQ4Cfp4shlBOyEpagHMw T52_;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_2;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T66_;
										if (!!((r_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA51;
										eqsink___ast_u4567(&s_2, r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
										eqwasMoved___ast_u4555(&r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
										nimZeroMem((void*)(&T52_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
										blitTmp_2 = s_2;
										eqwasMoved___ast_u4555(&s_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
										T52_.Field0 = blitTmp_2;
										T52_.Field1 = scopeN_2;
										T52_.Field2 = isLocal_2;
										eqsink___lookups_u768((&res_1), T52_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
										{
											tyTuple__FFspgHRWev9aDuj0fEpj9bUw T55_;
											NIM_BOOL T56_;
											tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_2;
											T55_.Field0 = (*res_1.Field0).info;
											T55_.Field1 = (*(*res_1.Field0).name).id;
											T56_ = (NIM_BOOL)0;
											T56_ = containsOrIncl__lookups_u984((&seen_1), T55_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
											if (!!(T56_)) goto LA57_;
											eqsink___ast_u4567(&it_1, res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
											eqwasMoved___ast_u4555(&res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
											scopeN_1 = res_1.Field1;
											isLocal_1 = res_1.Field2;
											pm_2 = 0;
											{
												NIM_BOOL T61_;
												NI T64_;
												tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T65_;
												T61_ = (NIM_BOOL)0;
												T61_ = filterSym__sigmatch_u5915(it_1, f_p2, (&pm_2));
												if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
												if (!T61_) goto LA62_;
												T64_ = (NI)0;
												T64_ = getQuality__sigmatch_u6023(it_1);
												if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
												T65_ = NIM_NIL;
												T65_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_1, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), (*n_p1).info, T64_, pm_2, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
												if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T65_); goto LA47_;}
												add__sigmatch_u6054((&(*outputs_p3)), T65_);
											}
LA62_: ;
										}
LA57_: ;
										T66_ = NIM_NIL;
										T66_ = nextRodIter__icZic_u21992((&rodIt_1), (&(*(*c_p0).graph).packed_0));
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T66_); goto LA47_;}
										eqsink___ast_u4567(&r_1, T66_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
									} LA51: ;
								}
								{
									LA47_:;
								}
								{
									oldNimErrFin47_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4558(r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
									eqdestroy___modulegraphs_u3290((&rodIt_1));
									if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
									*nimErr_ = oldNimErrFin47_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
							}
							goto LA42_;
LA45_: ;
							{
								{
									tySequence__ZCZaCk14bTmSb6LMW9aWPVA colontmp_;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** s_3;
									tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg* retX60gensym20__1;
									NI i_2;
									NI L_2;
									NI T76_;
									colontmp_.len = 0; colontmp_.p = NIM_NIL;
									s_3 = (tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg**)0;
									colontmp_.len = 0; colontmp_.p = NIM_NIL;
									retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*(*im_1).m).position].interf);
									{
										if (!importHidden_1) goto LA74_;
										retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*(*im_1).m).position].interfHidden);
									}
LA74_: ;
									eqcopy___ast_u4835((&colontmp_), (*retX60gensym20__1).data);
									if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
									i_2 = ((NI)0);
									T76_ = colontmp_.len;
									L_2 = T76_;
									{
										while (1) {
											if (!(i_2 < L_2)) goto LA78;
											s_3 = &colontmp_.p->data[i_2];
											{
												tyTuple__WIyQ4Cfp4shlBOyEpagHMw T83_;
												tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_3;
												if (!!(((*s_3) == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA81_;
												eqcopy___ast_u4561(&s_2, (*s_3));
												if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
												nimZeroMem((void*)(&T83_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
												blitTmp_3 = s_2;
												eqwasMoved___ast_u4555(&s_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
												T83_.Field0 = blitTmp_3;
												T83_.Field1 = scopeN_2;
												T83_.Field2 = isLocal_2;
												eqsink___lookups_u768((&res_1), T83_);
												if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
												{
													tyTuple__FFspgHRWev9aDuj0fEpj9bUw T86_;
													NIM_BOOL T87_;
													tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_3;
													T86_.Field0 = (*res_1.Field0).info;
													T86_.Field1 = (*(*res_1.Field0).name).id;
													T87_ = (NIM_BOOL)0;
													T87_ = containsOrIncl__lookups_u984((&seen_1), T86_);
													if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
													if (!!(T87_)) goto LA88_;
													eqsink___ast_u4567(&it_1, res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
													eqwasMoved___ast_u4555(&res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
													scopeN_1 = res_1.Field1;
													isLocal_1 = res_1.Field2;
													pm_3 = 0;
													{
														NIM_BOOL T92_;
														NI T95_;
														tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T96_;
														T92_ = (NIM_BOOL)0;
														T92_ = filterSym__sigmatch_u5915(it_1, f_p2, (&pm_3));
														if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
														if (!T92_) goto LA93_;
														T95_ = (NI)0;
														T95_ = getQuality__sigmatch_u6023(it_1);
														if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
														T96_ = NIM_NIL;
														T96_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_1, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), (*n_p1).info, T95_, pm_3, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
														if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T96_); goto LA71_;}
														add__sigmatch_u6054((&(*outputs_p3)), T96_);
													}
LA93_: ;
												}
LA88_: ;
											}
LA81_: ;
											i_2 += ((NI)1);
										} LA78: ;
									}
									{
										LA71_:;
									}
									{
										oldNimErrFin71_ = *nimErr_; *nimErr_ = NIM_FALSE;
										eqdestroy___ast_u4832(colontmp_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
										*nimErr_ = oldNimErrFin71_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
								}
							}
LA42_: ;
							{
								LA41_:;
							}
							{
								oldNimErrFin41_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4558(s_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
								*nimErr_ = oldNimErrFin41_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
						}
						i_1 += ((NI)1);
					} LA39: ;
				}
			}
			{
				LA4_:;
			}
			{
				oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___lookups_u759(res_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				*nimErr_ = oldNimErrFin4_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		}
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___lookups_u947(seen_1);
			eqdestroy___ast_u4558(it_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin2_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, fieldVisible__sigmatch_u5955)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* f_p1) {
	NIM_BOOL result;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym1085__1;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym1087__1;
	NI fmoduleId_1;
	NIM_BOOL T2_;
NIM_BOOL oldNimErrFin12_;
NIM_BOOL oldNimErrFin32_;
NIM_BOOL oldNimErrFin25_;
NIM_BOOL oldNimErrFin23_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	xX60gensym1085__1 = NIM_NIL;
	xX60gensym1087__1 = NIM_NIL;
	xX60gensym1085__1 = getModule__astalgo_u156(f_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	fmoduleId_1 = (NI)((NI)((NU32)(((NI) ((*xX60gensym1085__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym1085__1).itemId.item)));
	T2_ = (NIM_BOOL)0;
	T2_ = (((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)1)))&63U)))!=0);
	if (T2_) goto LA3_;
	xX60gensym1087__1 = (*c_p0).module;
	T2_ = (fmoduleId_1 == (NI)((NI)((NU32)(((NI) ((*xX60gensym1087__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym1087__1).itemId.item))));
LA3_: ;
	result = T2_;
	{
		if (!!(result)) goto LA6_;
		{
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** module_1;
			NI i_1;
			NI L_1;
			NI T9_;
			module_1 = (tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg**)0;
			i_1 = ((NI)0);
			T9_ = (*c_p0).friendModules.len;
			L_1 = T9_;
			{
				while (1) {
					tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym1088__1;
					if (!(i_1 < L_1)) goto LA11;
					xX60gensym1088__1 = NIM_NIL;
					module_1 = &(*c_p0).friendModules.p->data[i_1];
					{
						eqcopy___ast_u4561(&xX60gensym1088__1, (*module_1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
						if (!(fmoduleId_1 == (NI)((NI)((NU32)(((NI) ((*xX60gensym1088__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym1088__1).itemId.item))))) goto LA15_;
						result = NIM_TRUE;
						eqdestroy___ast_u4558(xX60gensym1088__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u4558(xX60gensym1085__1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA15_: ;
					i_1 += ((NI)1);
					{
						LA12_:;
					}
					{
						oldNimErrFin12_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u4558(xX60gensym1088__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin12_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				} LA11: ;
			}
		}
		{
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* symObj_1;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
			if (!((*f_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)19))) goto LA21_;
			symObj_1 = NIM_NIL;
			colontmpD_ = NIM_NIL;
			colontmpD__2 = NIM_NIL;
			colontmpD_ = owner__ast_u6233(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
			colontmpD__2 = toObjectFromRefPtrGeneric__ast_u7270((*colontmpD_).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
			eqcopy___ast_u4561(&symObj_1, (*colontmpD__2).sym);
			if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
			{
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_1;
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* current_1;
				scope_1 = NIM_NIL;
				current_1 = NIM_NIL;
				eqcopy___lookups_u74(&current_1, (*c_p0).currentScope);
				if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
				{
					while (1) {
						if (!!((current_1 == ((tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww*) NIM_NIL)))) goto LA27;
						eqcopy___lookups_u74(&scope_1, current_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** sym_1;
							NI i_2;
							NI L_2;
							NI T29_;
							sym_1 = (tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg**)0;
							i_2 = ((NI)0);
							T29_ = (*scope_1).allowPrivateAccess.len;
							L_2 = T29_;
							{
								while (1) {
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym1092__1;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym1093__1;
									if (!(i_2 < L_2)) goto LA31;
									xX60gensym1092__1 = NIM_NIL;
									xX60gensym1093__1 = NIM_NIL;
									sym_1 = &(*scope_1).allowPrivateAccess.p->data[i_2];
									{
										eqcopy___ast_u4561(&xX60gensym1092__1, symObj_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
										eqcopy___ast_u4561(&xX60gensym1093__1, (*sym_1));
										if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
										if (!((NI)((NI)((NU32)(((NI) ((*xX60gensym1092__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym1092__1).itemId.item))) == (NI)((NI)((NU32)(((NI) ((*xX60gensym1093__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym1093__1).itemId.item))))) goto LA35_;
										result = NIM_TRUE;
										eqdestroy___ast_u4558(xX60gensym1093__1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
										eqdestroy___ast_u4558(xX60gensym1092__1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
										eqdestroy___lookups_u71(current_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
										eqdestroy___lookups_u71(scope_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
										eqdestroy___ast_u3363(colontmpD__2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
										eqdestroy___ast_u4558(colontmpD_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
										eqdestroy___ast_u4558(symObj_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
										eqdestroy___ast_u4558(xX60gensym1085__1);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										goto BeforeRet_;
									}
LA35_: ;
									i_2 += ((NI)1);
									{
										LA32_:;
									}
									{
										oldNimErrFin32_ = *nimErr_; *nimErr_ = NIM_FALSE;
										eqdestroy___ast_u4558(xX60gensym1093__1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
										eqdestroy___ast_u4558(xX60gensym1092__1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
										*nimErr_ = oldNimErrFin32_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
								} LA31: ;
							}
						}
						eqcopy___lookups_u74(&current_1, (*current_1).parent);
						if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
					} LA27: ;
				}
				{
					LA25_:;
				}
				{
					oldNimErrFin25_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___lookups_u71(current_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
					eqdestroy___lookups_u71(scope_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
					*nimErr_ = oldNimErrFin25_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
			}
			{
				LA23_:;
			}
			{
				oldNimErrFin23_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4558(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4558(symObj_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin23_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA21_: ;
	}
LA6_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u4558(xX60gensym1085__1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestField__sigmatch_u6043)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* f_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p4) {
	tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pm_1 = 0;
	{
		NIM_BOOL T3_;
		NI T7_;
		tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = filterSym__sigmatch_u5915(s_p1, f_p2, (&pm_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_)) goto LA4_;
		T3_ = fieldVisible__sigmatch_u5955(c_p0, s_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NI)0;
		T7_ = getQuality__sigmatch_u6023(s_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T8_ = NIM_NIL;
		T8_ = symToSuggest__sigmatch_u5357((*c_p0).graph, s_p1, NIM_TRUE, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), info_p3, T7_, pm_1, (((NI)0) < (*c_p0).inTypeContext), ((NI)0), NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T8_); goto BeforeRet_;}
		add__sigmatch_u6054((&(*outputs_p4)), T8_);
	}
LA5_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestSymList__sigmatch_u6077)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* list_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* f_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_u3175(list_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i_1 = i_2;
				{
					if (!((*(*list_p1)._kind_6.sons.p->data[i_1]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3))) goto LA6_;
					suggestField__sigmatch_u6043(c_p0, (*(*list_p1)._kind_6.sons.p->data[i_1])._kind_4.sym, f_p2, info_p3, outputs_p4);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA6_: ;
				i_2 += ((NI)1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, baseClass__ast_u5327)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3366(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**, X5BX5D___ast_u5190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** s_p0, NI s_p0Len_0, NI i_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** result;
	result = &s_p0[(NI)(s_p0Len_0 - i_p1)];
	return result;
}
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, lastSon__ast_u5187)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**)0;
	T1_ = X5BX5D___ast_u5190((((*n_p0)._kind_6.sons).p) ? ((*n_p0)._kind_6.sons.p->data) : NIM_NIL, (*n_p0)._kind_6.sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3240(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestObject__sigmatch_u6092)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* f_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p4) {
NIM_BOOL oldNimErrFin14_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	switch ((*n_p1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)138):
	{
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_u3175(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i_1 = i_2;
					suggestObject__sigmatch_u6092(c_p0, (*n_p1)._kind_6.sons.p->data[i_1], f_p2, info_p3, outputs_p4);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI)1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)139):
	{
		{
			NI T8_;
			T8_ = (NI)0;
			T8_ = len__ast_u3175(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI)0) < T8_)) goto LA9_;
			suggestObject__sigmatch_u6092(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)], f_p2, info_p3, outputs_p4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_u3175(n_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_4 = ((NI)1);
				{
					while (1) {
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
						if (!(i_4 < colontmp__2)) goto LA13;
						colontmpD_ = NIM_NIL;
						i_3 = i_4;
						colontmpD_ = lastSon__ast_u5187((*n_p1)._kind_6.sons.p->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
						suggestObject__sigmatch_u6092(c_p0, colontmpD_, f_p2, info_p3, outputs_p4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
						i_4 += ((NI)1);
						{
							LA14_:;
						}
						{
							oldNimErrFin14_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3237(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							*nimErr_ = oldNimErrFin14_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					} LA13: ;
				}
			}
		}
LA9_: ;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		suggestField__sigmatch_u6043(c_p0, (*n_p1)._kind_4.sym, f_p2, info_p3, outputs_p4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}
static N_INLINE(NI, safeLen__ast_u3182)(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_u3175(n_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, filterSymNoOpr__sigmatch_u5946)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* prefix_p1, tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g* res_p2) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T5_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = filterSym__sigmatch_u5915(s_p0, prefix_p1, res_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (!(T2_)) goto LA3_;
	T2_ = (((NU8)((*(*s_p0).name).s.p->data[((NI)0)])) >= ((NU8)(97)) && ((NU8)((*(*s_p0).name).s.p->data[((NI)0)])) <= ((NU8)(122)) || ((NU8)((*(*s_p0).name).s.p->data[((NI)0)])) >= ((NU8)(65)) && ((NU8)((*(*s_p0).name).s.p->data[((NI)0)])) <= ((NU8)(90)) || ((NU8)((*(*s_p0).name).s.p->data[((NI)0)])) >= ((NU8)(48)) && ((NU8)((*(*s_p0).name).s.p->data[((NI)0)])) <= ((NU8)(57)) || ((NU8)((*(*s_p0).name).s.p->data[((NI)0)])) >= ((NU8)(128)) && ((NU8)((*(*s_p0).name).s.p->data[((NI)0)])) <= ((NU8)(255)));
LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T5_ = (NIM_BOOL)0;
	T5_ = isKeyword__renderer_u103((*s_p0).name);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = !(T5_);
LA4_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, initCandidateAux__sigmatch_u107)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* callee_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result) {
	tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* colontmpD_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	nimZeroMem((void*)Result, sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
	colontmpD_ = eqdup___semdata_u4389(ctx_p0, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).c = colontmpD_;
	(*Result).exactMatches = ((NI)0);
	(*Result).subtypeMatches = ((NI)0);
	(*Result).convMatches = ((NI)0);
	(*Result).intConvMatches = ((NI)0);
	(*Result).genericMatches = ((NI)0);
	(*Result).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)0);
	nimZeroMem((void*)(&(*Result).firstMismatch), sizeof(tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg));
	colontmpD__2 = eqdup___ast_u3369(callee_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).callee = colontmpD__2;
	(*Result).call = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
	(*Result).baseTypeMatch = NIM_FALSE;
	(*Result).genericConverter = NIM_FALSE;
	(*Result).inheritancePenalty = ((NI)-1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initCandidate__sigmatch_u242)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* callee_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result) {
	tyObject_Table__rIDniaYgWTEwlny3uhSy2w T1_;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
	initCandidateAux__sigmatch_u107(ctx_p0, callee_p1, Result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqsink___ast_u4567(&(*Result).calleeSym, ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = initTable__layeredtable_u22(((NI)32));
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___layeredtable_u166(T1_); goto BeforeRet_;}
	nimZeroMem((void*)(&T2_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	initLayeredTypeMap__layeredtable_u9(T1_, (&T2_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqsink___layeredtable_u259((&(*Result).bindings), T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, newCandidate__sigmatch_u457)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* callee_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
	initCandidate__sigmatch_u242(ctx_p0, callee_p1, Result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, put__layeredtable_u1097)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* value_p2) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_ = NIM_NIL;
	colontmpD_ = eqdup___ast_u3369(value_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	X5BX5Deq___layeredtable_u1137((&(*typeMap_p0).topLayer), key_p1, colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6225)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* s_p0) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u4561(&result, (*s_p0).ownerField);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipIntLit__magicsys_u119)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* id_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*t_p0).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) || (*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36));
LA4_: ;
		if (!T3_) goto LA5_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = owner__ast_u6225(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = copyType__ast_u6217(t_p0, id_p1, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqsink___ast_u3246(&(*result).n, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u4558(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA5_: ;
	{
		eqcopy___ast_u3366(&result, t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, put__sigmatch_u246)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* val_p2) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_ = NIM_NIL;
	colontmpD_ = skipIntLit__magicsys_u119(val_p2, (*(*c_p0).c).Sup.idgen);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	put__layeredtable_u1097((&(*c_p0).bindings), (*key_p1).itemId, colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3363(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**, X5BX5D___ast_u5260)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** s_p0, NI s_p0Len_0, NI i_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** result;
	result = &s_p0[(NI)(s_p0Len_0 - i_p1)];
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, last__ast_u5257)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5260((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3366(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, lookup__layeredtable_u1015)(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_u738(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_u667(typeMap_p0.nextLayer, key_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T7_); goto BeforeRet_;}
		eqsink___ast_u3372(&result, T7_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tryResolvingStaticExpr__sigmatch_u1816)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, NIM_BOOL allowUnresolved_p2, NIM_BOOL allowCalls_p3, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p4) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* instantiated_1;
	tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg T8_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	instantiated_1 = NIM_NIL;
	instantiated_1 = replaceTypesInBody__semtypinst_u1568((*c_p0).c, (*c_p0).bindings, n_p1, ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL), allowUnresolved_p2, NIM_FALSE, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = !(allowCalls_p3);
		if (!(T4_)) goto LA5_;
		T4_ = ((*instantiated_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)27) || (*instantiated_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)29) || (*instantiated_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)30) || (*instantiated_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)31) || (*instantiated_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)26) || (*instantiated_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)28) || (*instantiated_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32));
LA5_: ;
		if (!T4_) goto LA6_;
		result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
		eqdestroy___ast_u3237(instantiated_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA6_: ;
	T8_ = 0;
	result = (*(*c_p0).c).semExpr((*c_p0).c, instantiated_1, T8_, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3237(instantiated_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, base__ast_u5330)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3366(&result, (*t_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}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(NIM_BOOL, shouldSkipDistinct__sigmatch_u1788)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* rules_p1, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* callIdent_p2) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin10_;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL oldNimErrFin26_;
NIM_BOOL oldNimErrFin22_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		if (!((*rules_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)130))) goto LA3_;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* r_1;
			r_1 = NIM_NIL;
			{
				NI i_1;
				NI colontmp_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_u3182(rules_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				i_2 = ((NI)0);
				{
					while (1) {
						tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* colontmpD_;
						if (!(i_2 < colontmp_)) goto LA9;
						colontmpD_ = NIM_NIL;
						i_1 = i_2;
						eqcopy___ast_u3240(&r_1, (*rules_p1)._kind_6.sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
						{
							NIM_BOOL T13_;
							colontmpD_ = considerQuotedIdent__lookups_u31((*m_p0).c, r_1, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
							if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
							T13_ = (NIM_BOOL)0;
							T13_ = eqeq___idents_u366(colontmpD_, callIdent_p2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
							if (!T13_) goto LA14_;
							result = NIM_TRUE;
							eqdestroy___idents_u155(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
							eqdestroy___ast_u3237(r_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA14_: ;
						i_2 += ((NI)1);
						{
							LA10_:;
						}
						{
							oldNimErrFin10_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___idents_u155(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
							*nimErr_ = oldNimErrFin10_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					} LA9: ;
				}
			}
			{
				LA6_:;
			}
			{
				oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3237(r_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin6_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	goto LA1_;
LA3_: ;
	{
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* r_2;
			r_2 = NIM_NIL;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = safeLen__ast_u3182(rules_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
				i_4 = ((NI)0);
				{
					while (1) {
						tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* colontmpD__2;
						if (!(i_4 < colontmp__2)) goto LA25;
						colontmpD__2 = NIM_NIL;
						i_3 = i_4;
						eqcopy___ast_u3240(&r_2, (*rules_p1)._kind_6.sons.p->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
						{
							NIM_BOOL T29_;
							colontmpD__2 = considerQuotedIdent__lookups_u31((*m_p0).c, r_2, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
							if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							T29_ = (NIM_BOOL)0;
							T29_ = eqeq___idents_u366(colontmpD__2, callIdent_p2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							if (!T29_) goto LA30_;
							result = NIM_FALSE;
							eqdestroy___idents_u155(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
							eqdestroy___ast_u3237(r_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA30_: ;
						i_4 += ((NI)1);
						{
							LA26_:;
						}
						{
							oldNimErrFin26_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___idents_u155(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
							*nimErr_ = oldNimErrFin26_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
					} LA25: ;
				}
			}
			{
				LA22_:;
			}
			{
				oldNimErrFin22_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3237(r_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin22_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		result = NIM_TRUE;
		goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, maybeSkipDistinct__sigmatch_u1799)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* callee_p2) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = !((t_p1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T5_)) goto LA6_;
		T5_ = ((*t_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13));
LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA7_;
		T4_ = !(((*t_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA7_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA8_;
		T3_ = shouldSkipDistinct__sigmatch_u1788(m_p0, (*t_p1).n, (*callee_p2).name);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA8_: ;
		if (!T3_) goto LA9_;
		result = base__ast_u5330(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA9_: ;
	{
		eqcopy___ast_u3366(&result, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipModifier__ast_u5317)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5260((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3366(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elementType__ast_u5310)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5260((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3366(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, sameEnumTypes__types_u2054)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* xX60gensym247__1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* xX60gensym248__1;
	xX60gensym247__1 = NIM_NIL;
	xX60gensym248__1 = NIM_NIL;
	xX60gensym247__1 = a_p0;
	xX60gensym248__1 = b_p1;
	result = ((NI)((NI)((NU32)(((NI) ((*xX60gensym247__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym247__1).itemId.item))) == (NI)((NI)((NU32)(((NI) ((*xX60gensym248__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym248__1).itemId.item))));
	return result;
}
N_LIB_PRIVATE N_NOINLINE(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, typeRangeRel__sigmatch_u1288)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD_;
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	colontmpD__2 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	{
		NIM_BOOL T3_;
		tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__3;
		tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__4;
		tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__5;
		tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__6;
		T3_ = (NIM_BOOL)0;
		T3_ = isOrdinalType__types_u279(f_p0, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		colontmpD__3 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
		colontmpD__4 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
		colontmpD__5 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
		colontmpD__6 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
		{
			NIM_BOOL T9_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T10_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T11_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T13_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T14_;
			T9_ = (NIM_BOOL)0;
			T10_ = firstOrd__types_u1181(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T11_ = firstOrd__types_u1181(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T9_ = eqeq___int128_u412(T10_, T11_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			if (!(T9_)) goto LA12_;
			T13_ = lastOrd__types_u1297(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T14_ = lastOrd__types_u1297(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T9_ = eqeq___int128_u412(T13_, T14_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
LA12_: ;
			if (!T9_) goto LA15_;
			colontmpD__3 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			colontmpD_ = colontmpD__3;
		}
		goto LA7_;
LA15_: ;
		{
			NIM_BOOL T18_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T19_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T20_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T22_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T23_;
			T18_ = (NIM_BOOL)0;
			T19_ = firstOrd__types_u1181(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T20_ = firstOrd__types_u1181(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T18_ = lteq___int128_u408(T19_, T20_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			if (!(T18_)) goto LA21_;
			T22_ = lastOrd__types_u1297(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T23_ = lastOrd__types_u1297(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T18_ = lteq___int128_u408(T22_, T23_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
LA21_: ;
			if (!T18_) goto LA24_;
			colontmpD__4 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			colontmpD_ = colontmpD__4;
		}
		goto LA7_;
LA24_: ;
		{
			NIM_BOOL T27_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T28_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T29_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T31_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T32_;
			T27_ = (NIM_BOOL)0;
			T28_ = firstOrd__types_u1181(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T29_ = lastOrd__types_u1297(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T27_ = lteq___int128_u408(T28_, T29_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			if (!(T27_)) goto LA30_;
			T31_ = firstOrd__types_u1181(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T32_ = lastOrd__types_u1297(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T27_ = lteq___int128_u408(T31_, T32_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
LA30_: ;
			if (!T27_) goto LA33_;
			colontmpD__5 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			colontmpD_ = colontmpD__5;
		}
		goto LA7_;
LA33_: ;
		{
			colontmpD__6 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			colontmpD_ = colontmpD__6;
		}
LA7_: ;
		result = colontmpD_;
		{
			LA6_:;
		}
		{
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA4_: ;
	{
		tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__7;
		tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__8;
		tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__9;
		tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__10;
		colontmpD__7 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
		colontmpD__8 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
		colontmpD__9 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
		colontmpD__10 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
		{
			NIM_BOOL T42_;
			NF T43_;
			NF T44_;
			NF T46_;
			NF T47_;
			T42_ = (NIM_BOOL)0;
			T43_ = (NF)0;
			T43_ = firstFloat__types_u1267(a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T44_ = (NF)0;
			T44_ = firstFloat__types_u1267(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T42_ = (T43_ == T44_);
			if (!(T42_)) goto LA45_;
			T46_ = (NF)0;
			T46_ = lastFloat__types_u1395(a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T47_ = (NF)0;
			T47_ = lastFloat__types_u1395(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T42_ = (T46_ == T47_);
LA45_: ;
			if (!T42_) goto LA48_;
			colontmpD__7 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			colontmpD__2 = colontmpD__7;
		}
		goto LA40_;
LA48_: ;
		{
			NIM_BOOL T51_;
			NF T52_;
			NF T53_;
			NF T55_;
			NF T56_;
			T51_ = (NIM_BOOL)0;
			T52_ = (NF)0;
			T52_ = firstFloat__types_u1267(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T53_ = (NF)0;
			T53_ = firstFloat__types_u1267(a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T51_ = (T52_ <= T53_);
			if (!(T51_)) goto LA54_;
			T55_ = (NF)0;
			T55_ = lastFloat__types_u1395(a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T56_ = (NF)0;
			T56_ = lastFloat__types_u1395(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T51_ = (T55_ <= T56_);
LA54_: ;
			if (!T51_) goto LA57_;
			colontmpD__8 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			colontmpD__2 = colontmpD__8;
		}
		goto LA40_;
LA57_: ;
		{
			NIM_BOOL T60_;
			NF T61_;
			NF T62_;
			NF T64_;
			NF T65_;
			T60_ = (NIM_BOOL)0;
			T61_ = (NF)0;
			T61_ = firstFloat__types_u1267(a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T62_ = (NF)0;
			T62_ = lastFloat__types_u1395(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T60_ = (T61_ <= T62_);
			if (!(T60_)) goto LA63_;
			T64_ = (NF)0;
			T64_ = firstFloat__types_u1267(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T65_ = (NF)0;
			T65_ = lastFloat__types_u1395(a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T60_ = (T64_ <= T65_);
LA63_: ;
			if (!T60_) goto LA66_;
			colontmpD__9 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			colontmpD__2 = colontmpD__9;
		}
		goto LA40_;
LA66_: ;
		{
			colontmpD__10 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			colontmpD__2 = colontmpD__10;
		}
LA40_: ;
		result = colontmpD__2;
		{
			LA39_:;
		}
		{
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isIntLit__types_u179)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31));
	if (!(T2_)) goto LA3_;
	T2_ = !(((*t_p0).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((*(*t_p0).n).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6));
LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConvertibleToRange__sigmatch_u856)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*f_p1).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) && (*f_p1).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35) || (*f_p1).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40) && (*f_p1).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44));
		if (!(T3_)) goto LA4_;
		T3_ = ((*a_p2).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) && (*a_p2).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35) || (*a_p2).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40) && (*a_p2).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44));
LA4_: ;
		if (!T3_) goto LA5_;
		switch ((*f_p1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32):
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isIntLit__types_u179(a_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T8_) goto LA9_;
			T8_ = ((*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32));
LA9_: ;
			result = T8_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)33):
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = isIntLit__types_u179(a_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T11_) goto LA12_;
			T11_ = ((*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32) || (*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)33));
LA12_: ;
			result = T11_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)34):
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = isIntLit__types_u179(a_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T14_) goto LA15_;
			T14_ = ((*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32) || (*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)33) || (*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)34));
LA15_: ;
			result = T14_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31):
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40):
		{
			result = NIM_TRUE;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35):
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = isIntLit__types_u179(a_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T18_) goto LA19_;
			T18_ = ((*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32) || (*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)33) || (*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)34) || (*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) || (*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35));
LA19_: ;
			result = T18_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41):
		{
			NIM_BOOL T21_;
			T21_ = (NIM_BOOL)0;
			T21_ = isIntLit__types_u179(a_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T21_) goto LA22_;
			T21_ = ((*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41));
LA22_: ;
			result = T21_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)42):
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = isIntLit__types_u179(a_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T24_) goto LA25_;
			T24_ = ((*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41) || (*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)42));
LA25_: ;
			result = T24_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)43):
		{
			NIM_BOOL T27_;
			T27_ = (NIM_BOOL)0;
			T27_ = isIntLit__types_u179(a_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T27_) goto LA28_;
			T27_ = ((*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41) || (*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)42) || (*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)43));
LA28_: ;
			result = T27_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44):
		{
			NIM_BOOL T30_;
			T30_ = (NIM_BOOL)0;
			T30_ = isIntLit__types_u179(a_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T30_) goto LA31_;
			T30_ = ((*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41) || (*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)42) || (*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)43) || (*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44));
LA31_: ;
			result = T30_;
		}
		break;
		default:
		{
			result = NIM_FALSE;
		}
		break;
		}
	}
	goto LA1_;
LA5_: ;
	{
		NIM_BOOL T36_;
		if (!((*f_p1).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36) && (*f_p1).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)39))) goto LA34_;
		T36_ = (NIM_BOOL)0;
		T36_ = isIntLit__types_u179(a_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (T36_) goto LA37_;
		T36_ = ((*a_p2).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36) && (*a_p2).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)39));
LA37_: ;
		result = T36_;
	}
	goto LA1_;
LA34_: ;
	{
		result = NIM_FALSE;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, handleRange__sigmatch_u758)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg min_p3, tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg max_p4) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	{
		if (!((*a_p2).kind == (*f_p1).kind)) goto LA3_;
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
	}
	goto LA1_;
LA3_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ab_1;
		tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg k_1;
		tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg nf_1;
		tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg na_1;
		ab_1 = NIM_NIL;
		ab_1 = skipTypes__ast_u5358(a_p2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		k_1 = (*ab_1).kind;
		nf_1 = normalizeKind__types_u1293((*(*c_p0).graph).config, (*f_p1).kind);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		na_1 = normalizeKind__types_u1293((*(*c_p0).graph).config, k_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		{
			if (!(k_1 == (*f_p1).kind)) goto LA9_;
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = isIntLit__types_u179(ab_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				if (!T13_) goto LA14_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)9);
			}
			goto LA11_;
LA14_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)4);
			}
LA11_: ;
		}
		goto LA7_;
LA9_: ;
		{
			NIM_BOOL T18_;
			NIM_BOOL T19_;
			NIM_BOOL T20_;
			NIM_BOOL T21_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T25_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T26_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T28_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T29_;
			T18_ = (NIM_BOOL)0;
			T19_ = (NIM_BOOL)0;
			T20_ = (NIM_BOOL)0;
			T21_ = (NIM_BOOL)0;
			T21_ = ((*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31));
			if (!(T21_)) goto LA22_;
			T21_ = ((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20) || (*f_p1).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) && (*f_p1).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35) || (*f_p1).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40) && (*f_p1).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44));
LA22_: ;
			T20_ = T21_;
			if (!(T20_)) goto LA23_;
			T20_ = isIntLit__types_u179(ab_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
LA23_: ;
			T19_ = T20_;
			if (!(T19_)) goto LA24_;
			T25_ = firstOrd__types_u1181(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T26_ = getInt__ast_u7017((*ab_1).n);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T19_ = lteq___int128_u408(T25_, T26_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
LA24_: ;
			T18_ = T19_;
			if (!(T18_)) goto LA27_;
			T28_ = getInt__ast_u7017((*ab_1).n);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T29_ = lastOrd__types_u1297(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T18_ = lteq___int128_u408(T28_, T29_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
LA27_: ;
			if (!T18_) goto LA30_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)9);
		}
		goto LA7_;
LA30_: ;
		{
			NIM_BOOL T33_;
			tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg T35_;
			T33_ = (NIM_BOOL)0;
			T33_ = ((*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31));
			if (!(T33_)) goto LA34_;
			T35_ = (tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0;
			T35_ = targetSizeSignedToKind__types_u1287((*(*c_p0).graph).config);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T33_ = (nf_1 == T35_);
LA34_: ;
			if (!T33_) goto LA36_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2);
		}
		goto LA7_;
LA36_: ;
		{
			NIM_BOOL T39_;
			tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg T41_;
			T39_ = (NIM_BOOL)0;
			T39_ = ((*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40));
			if (!(T39_)) goto LA40_;
			T41_ = (tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0;
			T41_ = targetSizeUnsignedToKind__types_u1290((*(*c_p0).graph).config);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T39_ = (nf_1 == T41_);
LA40_: ;
			if (!T39_) goto LA42_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2);
		}
		goto LA7_;
LA42_: ;
		{
			NIM_BOOL T45_;
			tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg T47_;
			T45_ = (NIM_BOOL)0;
			T45_ = ((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31));
			if (!(T45_)) goto LA46_;
			T47_ = (tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0;
			T47_ = targetSizeSignedToKind__types_u1287((*(*c_p0).graph).config);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T45_ = (na_1 >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32) && na_1 <= (tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)(T47_ - ((NI)1)));
LA46_: ;
			if (!T45_) goto LA48_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2);
		}
		goto LA7_;
LA48_: ;
		{
			NIM_BOOL T51_;
			tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg T53_;
			T51_ = (NIM_BOOL)0;
			T51_ = ((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40));
			if (!(T51_)) goto LA52_;
			T53_ = (tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0;
			T53_ = targetSizeUnsignedToKind__types_u1290((*(*c_p0).graph).config);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T51_ = (na_1 >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41) && na_1 <= (tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)(T53_ - ((NI)1)));
LA52_: ;
			if (!T51_) goto LA54_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2);
		}
		goto LA7_;
LA54_: ;
		{
			NIM_BOOL T57_;
			T57_ = (NIM_BOOL)0;
			T57_ = (min_p3 <= k_1);
			if (!(T57_)) goto LA58_;
			T57_ = (k_1 <= max_p4);
LA58_: ;
			if (!T57_) goto LA59_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
		}
		goto LA7_;
LA59_: ;
		{
			NIM_BOOL T62_;
			NIM_BOOL T63_;
			NIM_BOOL T64_;
			NIM_BOOL T66_;
			NIM_BOOL T67_;
			NIM_BOOL T70_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T73_;
			tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T75_;
			T62_ = (NIM_BOOL)0;
			T63_ = (NIM_BOOL)0;
			T64_ = (NIM_BOOL)0;
			T64_ = ((*a_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20));
			if (!(T64_)) goto LA65_;
			T66_ = (NIM_BOOL)0;
			T67_ = (NIM_BOOL)0;
			T67_ = ((*f_p1).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) && (*f_p1).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35));
			if (!(T67_)) goto LA68_;
			T67_ = ((*(*a_p2).sons.p->data[((NI)0)]).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) && (*(*a_p2).sons.p->data[((NI)0)]).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35));
LA68_: ;
			T66_ = T67_;
			if (T66_) goto LA69_;
			T70_ = (NIM_BOOL)0;
			T70_ = ((*f_p1).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41) && (*f_p1).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)43));
			if (!(T70_)) goto LA71_;
			T70_ = ((*(*a_p2).sons.p->data[((NI)0)]).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41) && (*(*a_p2).sons.p->data[((NI)0)]).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)43));
LA71_: ;
			T66_ = T70_;
LA69_: ;
			T64_ = T66_;
LA65_: ;
			T63_ = T64_;
			if (!(T63_)) goto LA72_;
			T73_ = firstOrd__types_u1181(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T63_ = lteq___int128_u966(T73_, (*(*(*a_p2).n)._kind_6.sons.p->data[((NI)0)])._kind_1.intVal);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
LA72_: ;
			T62_ = T63_;
			if (!(T62_)) goto LA74_;
			T75_ = lastOrd__types_u1297(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T62_ = lteq___int128_u973((*(*(*a_p2).n)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal, T75_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
LA74_: ;
			if (!T62_) goto LA76_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
		}
		goto LA7_;
LA76_: ;
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		}
LA7_: ;
		{
			LA6_:;
		}
		{
			oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(ab_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin6_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isFloatLit__types_u194)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*t_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36));
	if (!(T2_)) goto LA3_;
	T2_ = !(((*t_p0).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((*(*t_p0).n).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)16));
LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, handleFloatRange__sigmatch_u909)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	{
		if (!((*a_p1).kind == (*f_p0).kind)) goto LA3_;
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
	}
	goto LA1_;
LA3_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ab_1;
		tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg k_1;
		ab_1 = NIM_NIL;
		ab_1 = skipTypes__ast_u5358(a_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		k_1 = (*ab_1).kind;
		{
			if (!(k_1 == (*f_p0).kind)) goto LA8_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)4);
		}
		goto LA6_;
LA8_: ;
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = isFloatLit__types_u194(ab_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T11_) goto LA12_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)9);
		}
		goto LA6_;
LA12_: ;
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = isIntLit__types_u179(ab_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T15_) goto LA16_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
		}
		goto LA6_;
LA16_: ;
		{
			NIM_BOOL T19_;
			T19_ = (NIM_BOOL)0;
			T19_ = (((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36) <= k_1);
			if (!(T19_)) goto LA20_;
			T19_ = (k_1 <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)39));
LA20_: ;
			if (!T19_) goto LA21_;
			{
				if (!((*f_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)37))) goto LA25_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA23_;
LA25_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2);
			}
LA23_: ;
		}
		goto LA6_;
LA21_: ;
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		}
LA6_: ;
		eqdestroy___ast_u3363(ab_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isOutParam__ast_u7626)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	result = (((*t_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)45)))&63U)))!=0);
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, indexType__ast_u5324)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3366(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, len__ast_u5481)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	NI result;
	NI T1_;
	T1_ = (*n_p0).sons.len;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCovariantPtr__sigmatch_u1962)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin2_;
NIM_BOOL oldNimErrFin9_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	switch ((*f_p1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		NIM_BOOL T3_;
		tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T5_;
		colontmpD_ = NIM_NIL;
		colontmpD__2 = NIM_NIL;
		colontmpD__3 = NIM_NIL;
		T3_ = (NIM_BOOL)0;
		colontmpD_ = base__ast_u5330(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		T3_ = !(((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21) || (*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47) || (*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45)));
		if (!(T3_)) goto LA4_;
		colontmpD__2 = base__ast_u5330(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		colontmpD__3 = base__ast_u5330(a_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		T5_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
		T5_ = typeRel__sigmatch_u250(c_p0, colontmpD__2, colontmpD__3, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		T3_ = (T5_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3));
LA4_: ;
		result = T3_;
		eqdestroy___ast_u3363(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin2_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* body_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
		NIM_BOOL T10_;
		NIM_BOOL T11_;
		NIM_BOOL T12_;
		NI T14_;
		NIM_BOOL T17_;
		tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T19_;
		body_1 = NIM_NIL;
		colontmpD__4 = NIM_NIL;
		body_1 = base__ast_u5330(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T11_ = (NIM_BOOL)0;
		T12_ = (NIM_BOOL)0;
		colontmpD__4 = base__ast_u5330(a_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		T12_ = (body_1 == colontmpD__4);
		if (!(T12_)) goto LA13_;
		T14_ = (NI)0;
		T14_ = len__ast_u5481(a_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		T12_ = (T14_ == ((NI)3));
LA13_: ;
		T11_ = T12_;
		if (!(T11_)) goto LA15_;
		T11_ = !((((*(*body_1).sons.p->data[((NI)0)]).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)36)))&63U)))!=0));
LA15_: ;
		T10_ = T11_;
		if (!(T10_)) goto LA16_;
		T17_ = (NIM_BOOL)0;
		T17_ = !(((*(*f_p1).sons.p->data[((NI)1)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21) || (*(*f_p1).sons.p->data[((NI)1)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*(*f_p1).sons.p->data[((NI)1)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*(*f_p1).sons.p->data[((NI)1)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47) || (*(*f_p1).sons.p->data[((NI)1)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45)));
		if (!(T17_)) goto LA18_;
		T19_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
		T19_ = typeRel__sigmatch_u250(c_p0, (*f_p1).sons.p->data[((NI)1)], (*a_p2).sons.p->data[((NI)1)], 2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		T17_ = (T19_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3));
LA18_: ;
		T10_ = T17_;
LA16_: ;
		result = T10_;
		eqdestroy___ast_u3363(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(body_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA9_:;
		}
		{
			oldNimErrFin9_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(body_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin9_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inferStaticParam__sigmatch_u1830)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* lhs_p1, NI64 rhs_p2) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL oldNimErrFin79_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	colontmpD_ = NIM_NIL;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*lhs_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)27) || (*lhs_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)29) || (*lhs_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)30) || (*lhs_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)31) || (*lhs_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)26) || (*lhs_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)28) || (*lhs_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32));
		if (!(T4_)) goto LA5_;
		T4_ = ((*(*lhs_p1)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
LA5_: ;
		if (!T4_) goto LA6_;
		switch ((*(*(*lhs_p1)._kind_6.sons.p->data[((NI)0)])._kind_4.sym).magic) {
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)46):
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)65):
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)29):
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)51):
		{
			{
				if (!((*(*lhs_p1)._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA11_;
				result = inferStaticParam__sigmatch_u1830(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)2)], (NI64)(rhs_p2 - (*(*lhs_p1)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA9_;
LA11_: ;
			{
				if (!((*(*lhs_p1)._kind_6.sons.p->data[((NI)2)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA14_;
				result = inferStaticParam__sigmatch_u1830(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)1)], (NI64)(rhs_p2 - (*(*lhs_p1)._kind_6.sons.p->data[((NI)2)])._kind_1.intVal));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA9_;
LA14_: ;
LA9_: ;
		}
		break;
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)30):
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)47):
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)66):
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)52):
		{
			{
				if (!((*(*lhs_p1)._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA19_;
				result = inferStaticParam__sigmatch_u1830(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)2)], (NI64)((*(*lhs_p1)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal - rhs_p2));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA17_;
LA19_: ;
			{
				if (!((*(*lhs_p1)._kind_6.sons.p->data[((NI)2)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA22_;
				result = inferStaticParam__sigmatch_u1830(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)1)], (NI64)(rhs_p2 + (*(*lhs_p1)._kind_6.sons.p->data[((NI)2)])._kind_1.intVal));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA17_;
LA22_: ;
LA17_: ;
		}
		break;
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)48):
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)67):
		{
			{
				if (!((*(*lhs_p1)._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA27_;
				{
					if (!((NI64)(rhs_p2 % (*(*lhs_p1)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal) == IL64(0))) goto LA31_;
					result = inferStaticParam__sigmatch_u1830(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)2)], (NI64)(rhs_p2 / (*(*lhs_p1)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal));
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA31_: ;
			}
			goto LA25_;
LA27_: ;
			{
				if (!((*(*lhs_p1)._kind_6.sons.p->data[((NI)2)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA34_;
				{
					if (!((NI64)(rhs_p2 % (*(*lhs_p1)._kind_6.sons.p->data[((NI)2)])._kind_1.intVal) == IL64(0))) goto LA38_;
					result = inferStaticParam__sigmatch_u1830(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)1)], (NI64)(rhs_p2 / (*(*lhs_p1)._kind_6.sons.p->data[((NI)2)])._kind_1.intVal));
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA38_: ;
			}
			goto LA25_;
LA34_: ;
LA25_: ;
		}
		break;
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)49):
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)68):
		{
			{
				if (!((*(*lhs_p1)._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA43_;
				{
					if (!((NI64)((*(*lhs_p1)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal % rhs_p2) == IL64(0))) goto LA47_;
					result = inferStaticParam__sigmatch_u1830(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)2)], (NI64)((*(*lhs_p1)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal / rhs_p2));
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA47_: ;
			}
			goto LA41_;
LA43_: ;
			{
				if (!((*(*lhs_p1)._kind_6.sons.p->data[((NI)2)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA50_;
				result = inferStaticParam__sigmatch_u1830(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)1)], (NI64)((*(*lhs_p1)._kind_6.sons.p->data[((NI)2)])._kind_1.intVal * rhs_p2));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA41_;
LA50_: ;
LA41_: ;
		}
		break;
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)58):
		{
			{
				if (!((*(*lhs_p1)._kind_6.sons.p->data[((NI)2)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA55_;
				result = inferStaticParam__sigmatch_u1830(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)1)], (NI64)((NI64)(rhs_p2) >> (NU64)((*(*lhs_p1)._kind_6.sons.p->data[((NI)2)])._kind_1.intVal)));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA55_: ;
		}
		break;
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)57):
		{
			{
				if (!((*(*lhs_p1)._kind_6.sons.p->data[((NI)2)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA60_;
				result = inferStaticParam__sigmatch_u1830(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)1)], (NI64)((NU64)(rhs_p2) << (NU64)((*(*lhs_p1)._kind_6.sons.p->data[((NI)2)])._kind_1.intVal)));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA60_: ;
		}
		break;
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)59):
		{
			{
				if (!((*(*lhs_p1)._kind_6.sons.p->data[((NI)2)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA65_;
				result = inferStaticParam__sigmatch_u1830(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)1)], (NI64)((NI64)(rhs_p2) >> (NU64)((*(*lhs_p1)._kind_6.sons.p->data[((NI)2)])._kind_1.intVal)));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA65_: ;
		}
		break;
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)93):
		{
			result = inferStaticParam__sigmatch_u1830(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)1)], -(rhs_p2));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)97):
		{
			result = inferStaticParam__sigmatch_u1830(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)1)], rhs_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	goto LA2_;
LA6_: ;
	{
		NIM_BOOL T71_;
		NIM_BOOL T72_;
		NIM_BOOL T75_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* inferred_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T80_;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T81_;
		T71_ = (NIM_BOOL)0;
		T72_ = (NIM_BOOL)0;
		T72_ = ((*lhs_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
		if (!(T72_)) goto LA73_;
		T72_ = ((*(*lhs_p1).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60));
LA73_: ;
		T71_ = T72_;
		if (!(T71_)) goto LA74_;
		T75_ = (NIM_BOOL)0;
		T75_ = ((*(*lhs_p1).typField).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
		if (T75_) goto LA76_;
		colontmpD_ = lookup__layeredtable_u1015((*c_p0).bindings, (*(*lhs_p1).typField).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T75_ = (colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA76_: ;
		T71_ = T75_;
LA74_: ;
		if (!T71_) goto LA77_;
		inferred_1 = NIM_NIL;
		T80_ = NIM_NIL;
		T80_ = elementType__ast_u5310((*lhs_p1).typField);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T80_); goto LA79_;}
		inferred_1 = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60), (*c_p0).c, T80_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
		T81_ = NIM_NIL;
		T81_ = newIntNode__ast_u5179(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6), rhs_p2);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T81_); goto LA79_;}
		eqsink___ast_u3246(&(*inferred_1).n, T81_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
		put__sigmatch_u246(c_p0, (*lhs_p1).typField, inferred_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
		{
			if (!!(((*(*c_p0).c).matchedConcept == ((tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg*) NIM_NIL)))) goto LA84_;
			eqcopy___ast_u3240(&(*(*lhs_p1).typField).n, (*inferred_1).n);
			if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
		}
LA84_: ;
		result = NIM_TRUE;
		eqdestroy___ast_u3363(inferred_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA79_:;
		}
		{
			oldNimErrFin79_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(inferred_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin79_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA2_;
LA77_: ;
LA2_: ;
	result = NIM_FALSE;
	eqdestroy___ast_u3363(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, failureToInferStaticParam__sigmatch_u1920)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* staticParam_1;
	NimStringV2 name_1;
	NimStringV2 colontmpD_;
	NimStringV2 T2_;
	NimStringV2 T8_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	staticParam_1 = NIM_NIL;
	name_1.len = 0; name_1.p = NIM_NIL;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	staticParam_1 = findUnresolvedStatic__ast_u7325(n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_.len = 0; T2_.p = NIM_NIL;
	{
		if (!!((staticParam_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA5_;
		eqcopy___system_u2630((&name_1), (*(*(*staticParam_1)._kind_4.sym).name).s);
	}
	goto LA3_;
LA5_: ;
	{
		name_1 = TM__EV5hHJmjIY9cla9b9be7fSVJQ_25;
	}
LA3_: ;
	T8_.len = 0; T8_.p = NIM_NIL;
	T8_ = rawNewString(name_1.len + 45);
appendString((&T8_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_27);
appendString((&T8_), name_1);
appendString((&T8_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_29);
	colontmpD_ = T8_;
	liMessage__msgs_u1223(conf_p0, (*n_p1).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD_, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_30, NIM_FALSE, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___system_u2627(colontmpD_);
		eqdestroy___system_u2627(name_1);
		eqdestroy___ast_u3237(staticParam_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, inferStaticsInRange__sigmatch_u1929)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* inferred_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concrete_p2) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* lowerBound_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* upperBound_1;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL oldNimErrFin32_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	lowerBound_1 = NIM_NIL;
	upperBound_1 = NIM_NIL;
	lowerBound_1 = tryResolvingStaticExpr__sigmatch_u1816(c_p0, (*(*inferred_p1).n)._kind_6.sons.p->data[((NI)0)], NIM_TRUE, NIM_FALSE, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	upperBound_1 = tryResolvingStaticExpr__sigmatch_u1816(c_p0, (*(*inferred_p1).n)._kind_6.sons.p->data[((NI)1)], NIM_TRUE, NIM_FALSE, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* expX60gensym304__1;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg rhsX60gensym304__1;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T18_;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T19_;
		if (!((*lowerBound_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA4_;
		expX60gensym304__1 = NIM_NIL;
		{
			if (!((*upperBound_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA9_;
			{
				tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T13_;
				NIM_BOOL T14_;
				T13_ = lengthOrd__types_u1486((*(*(*c_p0).c).graph).config, concrete_p2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				T14_ = (NIM_BOOL)0;
				T14_ = eqeq___int128_u980(T13_, (NI64)((NI64)((*upperBound_1)._kind_1.intVal - (*lowerBound_1)._kind_1.intVal) + IL64(1)));
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				if (!T14_) goto LA15_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				eqdestroy___ast_u3237(expX60gensym304__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3237(upperBound_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3237(lowerBound_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA11_;
LA15_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3237(expX60gensym304__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3237(upperBound_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3237(lowerBound_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA11_: ;
		}
LA9_: ;
		expX60gensym304__1 = upperBound_1;
		eqwasMoved___ast_u3234(&upperBound_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		T18_ = lengthOrd__types_u1486((*(*(*c_p0).c).graph).config, concrete_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		T19_ = plus___int128_u1015(T18_, (*lowerBound_1)._kind_1.intVal);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		rhsX60gensym304__1 = minus___int128_u1001(T19_, IL64(1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		{
			NI64 T22_;
			NIM_BOOL T23_;
			T22_ = (NI64)0;
			T22_ = toInt64__int128_u53(rhsX60gensym304__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T23_ = (NIM_BOOL)0;
			T23_ = inferStaticParam__sigmatch_u1830(c_p0, expX60gensym304__1, T22_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			if (!T23_) goto LA24_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			eqdestroy___ast_u3237(expX60gensym304__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3237(upperBound_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(lowerBound_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA20_;
LA24_: ;
		{
			failureToInferStaticParam__sigmatch_u1920((*(*(*c_p0).c).graph).config, expX60gensym304__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		}
LA20_: ;
		{
			LA6_:;
		}
		{
			oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3237(expX60gensym304__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin6_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA2_;
LA4_: ;
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* expX60gensym307__1;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg rhsX60gensym307__1;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T33_;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T34_;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T35_;
		if (!((*upperBound_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA30_;
		expX60gensym307__1 = NIM_NIL;
		expX60gensym307__1 = lowerBound_1;
		eqwasMoved___ast_u3234(&lowerBound_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		T33_ = getInt__ast_u7017(upperBound_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		T34_ = plus___int128_u1015(T33_, IL64(1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		T35_ = lengthOrd__types_u1486((*(*(*c_p0).c).graph).config, concrete_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		rhsX60gensym307__1 = minus___int128_u641(T34_, T35_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		{
			NI64 T38_;
			NIM_BOOL T39_;
			T38_ = (NI64)0;
			T38_ = toInt64__int128_u53(rhsX60gensym307__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
			T39_ = (NIM_BOOL)0;
			T39_ = inferStaticParam__sigmatch_u1830(c_p0, expX60gensym307__1, T38_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
			if (!T39_) goto LA40_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			eqdestroy___ast_u3237(expX60gensym307__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3237(upperBound_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(lowerBound_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA36_;
LA40_: ;
		{
			failureToInferStaticParam__sigmatch_u1920((*(*(*c_p0).c).graph).config, expX60gensym307__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		}
LA36_: ;
		{
			LA32_:;
		}
		{
			oldNimErrFin32_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3237(expX60gensym307__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin32_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA2_;
LA30_: ;
LA2_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3237(upperBound_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3237(lowerBound_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, hasElementType__ast_u5639)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = (((NI)0) < T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, concreteType__sigmatch_u733)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p2) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	switch ((*t_p1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	{
		{
			if (!(*c_p0).isNoCall) goto LA4_;
			eqcopy___ast_u3366(&result, t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA2_;
LA4_: ;
		{
			result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
		}
LA2_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		colontmpD_ = NIM_NIL;
		{
			colontmpD_ = elementType__ast_u5310(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3))) goto LA10_;
			result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
		}
		goto LA8_;
LA10_: ;
		{
			eqcopy___ast_u3366(&result, t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA8_: ;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62):
	{
		eqcopy___ast_u3366(&result, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!(*c_p0).isNoCall) goto LA16_;
			goto BeforeRet_;
		}
LA16_: ;
		{
			while (1) {
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T20_;
				T20_ = NIM_NIL;
				T20_ = lookup__layeredtable_u1015((*c_p0).bindings, (*t_p1).itemId);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T20_); goto BeforeRet_;}
				eqsink___ast_u3372(&result, T20_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!(result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA23_;
					goto LA18;
				}
LA23_: ;
				{
					if (!!(((*result).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12)))) goto LA27_;
					goto LA18;
				}
LA27_: ;
			}
		} LA18: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
	{
		result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		colontmpD__2 = NIM_NIL;
		colontmpD__3 = NIM_NIL;
		{
			NIM_BOOL T33_;
			NIM_BOOL T34_;
			T33_ = (NIM_BOOL)0;
			T34_ = (NIM_BOOL)0;
			T34_ = !((f_p2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
			if (!(T34_)) goto LA35_;
			T34_ = hasElementType__ast_u5639(f_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA35_: ;
			T33_ = T34_;
			if (!(T33_)) goto LA36_;
			colontmpD__2 = elementType__ast_u5310(f_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmpD__3 = skipTypes__ast_u5358(colontmpD__2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_32);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T33_ = ((*colontmpD__3).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25));
LA36_: ;
			if (!T33_) goto LA37_;
			result = skipModifier__ast_u5317(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA31_;
LA37_: ;
		{
			eqcopy___ast_u3366(&result, t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA31_: ;
		eqdestroy___ast_u3363(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		eqcopy___ast_u3366(&result, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, sameTupleLengths__ast_u5487)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	NIM_BOOL result;
	NI T1_;
	NI T2_;
	T1_ = (*a_p0).sons.len;
	T2_ = (*b_p1).sons.len;
	result = (T1_ == T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, minRel__sigmatch_u1119)(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ a_p0, tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ b_p1) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
	{
		if (!(a_p0 <= b_p1)) goto LA3_;
		result = a_p0;
	}
	goto LA1_;
LA3_: ;
	{
		result = b_p1;
	}
LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, recordRel__sigmatch_u1127)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw flags_p3) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
NIM_BOOL oldNimErrFin17_;
NIM_BOOL oldNimErrFin53_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
	{
		tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ T3_;
		NIM_BOOL T4_;
		T3_ = 0;
		T4_ = (NIM_BOOL)0;
		T4_ = sameType__types_u1809(f_p1, a_p2, T3_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T4_) goto LA5_;
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
	}
	goto LA1_;
LA5_: ;
	{
		NIM_BOOL T8_;
		NI colontmpD_;
		NI colontmpD__2;
		NI firstField_1;
		T8_ = (NIM_BOOL)0;
		T8_ = sameTupleLengths__ast_u5487(a_p2, f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T8_) goto LA9_;
		colontmpD_ = (NI)0;
		colontmpD__2 = (NI)0;
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
		{
			if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18))) goto LA13_;
			colontmpD_ = ((NI)0);
			firstField_1 = colontmpD_;
		}
		goto LA11_;
LA13_: ;
		{
			colontmpD__2 = ((NI)1);
			firstField_1 = colontmpD__2;
		}
LA11_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_1;
			NI __1;
			ff_1 = NIM_NIL;
			aa_1 = NIM_NIL;
			__1 = (NI)0;
			{
				NI i_1;
				NI colontmp_;
				NI T19_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				T19_ = (*f_p1).sons.len;
				colontmp_ = T19_;
				i_2 = ((NI)0);
				{
					while (1) {
						tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ m_1;
						if (!(i_2 < colontmp_)) goto LA21;
						i_1 = i_2;
						__1 = i_1;
						eqcopy___ast_u3366(&ff_1, (*f_p1).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						eqcopy___ast_u3366(&aa_1, (*a_p2).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						m_1 = typeRel__sigmatch_u250(c_p0, ff_1, aa_1, flags_p3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						{
							if (!(m_1 < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3))) goto LA24_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
							eqdestroy___ast_u3363(aa_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(ff_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA24_: ;
						{
							NIM_BOOL T28_;
							NIM_BOOL T29_;
							T28_ = (NIM_BOOL)0;
							T29_ = (NIM_BOOL)0;
							T29_ = (m_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3));
							if (!(T29_)) goto LA30_;
							T29_ = !(((*aa_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5)));
LA30_: ;
							T28_ = T29_;
							if (!(T28_)) goto LA31_;
							T28_ = (((NI)-1) < (*c_p0).inheritancePenalty);
LA31_: ;
							if (!T28_) goto LA32_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
							eqdestroy___ast_u3363(aa_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(ff_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA32_: ;
						result = minRel__sigmatch_u1119(result, m_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						i_2 += ((NI)1);
					} LA21: ;
				}
			}
			{
				LA17_:;
			}
			{
				oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(aa_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(ff_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin17_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		{
			NIM_BOOL T38_;
			T38_ = (NIM_BOOL)0;
			T38_ = !(((*f_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
			if (!(T38_)) goto LA39_;
			T38_ = !(((*a_p2).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA39_: ;
			if (!T38_) goto LA40_;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_u3175((*f_p1).n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_4 = ((NI)0);
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA44;
						i_3 = i_4;
						{
							if (!!(((*(*(*f_p1).n)._kind_6.sons.p->data[i_3]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3)))) goto LA47_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
							goto BeforeRet_;
						}
						goto LA45_;
LA47_: ;
						{
							if (!!(((*(*(*a_p2).n)._kind_6.sons.p->data[i_3]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3)))) goto LA50_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
							goto BeforeRet_;
						}
						goto LA45_;
LA50_: ;
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* x_1;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* y_1;
							x_1 = NIM_NIL;
							y_1 = NIM_NIL;
							eqcopy___ast_u4561(&x_1, (*(*(*f_p1).n)._kind_6.sons.p->data[i_3])._kind_4.sym);
							if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
							eqcopy___ast_u4561(&y_1, (*(*(*a_p2).n)._kind_6.sons.p->data[i_3])._kind_4.sym);
							if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
							{
								NIM_BOOL T56_;
								tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T58_;
								T56_ = (NIM_BOOL)0;
								T56_ = ((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
								if (!(T56_)) goto LA57_;
								T58_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
								T58_ = typeRel__sigmatch_u250(c_p0, (*x_1).typ, (*y_1).typ, flags_p3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
								T56_ = (T58_ < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3));
LA57_: ;
								if (!T56_) goto LA59_;
								result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
								eqdestroy___ast_u4558(y_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u4558(x_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA59_: ;
							{
								if (!!(((*(*x_1).name).id == (*(*y_1).name).id))) goto LA63_;
								result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
								eqdestroy___ast_u4558(y_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u4558(x_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA63_: ;
							{
								LA53_:;
							}
							{
								oldNimErrFin53_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4558(y_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u4558(x_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								*nimErr_ = oldNimErrFin53_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
LA45_: ;
						i_4 += ((NI)1);
					} LA44: ;
				}
			}
		}
LA40_: ;
	}
	goto LA1_;
LA9_: ;
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericObjectOf__sigmatch_u957)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aRoot_1;
	NIM_BOOL T8_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	aRoot_1 = NIM_NIL;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*f_p0).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
		if (!(T4_)) goto LA5_;
		T4_ = ((*(*(*f_p0).sym).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10));
LA5_: ;
		if (!!(T4_)) goto LA6_;
		result = NIM_FALSE;
		eqdestroy___ast_u3363(aRoot_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA6_: ;
	aRoot_1 = genericRoot__types_u4268(a_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T8_ = (NIM_BOOL)0;
	T8_ = !((aRoot_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
	if (!(T8_)) goto LA9_;
	T8_ = ((*f_p0).sym == (*aRoot_1).sym);
LA9_: ;
	result = T8_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(aRoot_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, kidsLen__ast_u5627)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NI result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genericParamPut__sigmatch_u935)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* last_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fGenericOrigin_p2) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !((fGenericOrigin_p2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T4_)) goto LA5_;
		T4_ = ((*last_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11));
LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T7_ = (NI)0;
		T7_ = kidsLen__ast_u5627(last_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T8_ = (NI)0;
		T8_ = kidsLen__ast_u5627(fGenericOrigin_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = ((NI)(T7_ - ((NI)1)) == T8_);
LA6_: ;
		if (!T3_) goto LA9_;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = kidsLen__ast_u5627(fGenericOrigin_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)1);
			{
				while (1) {
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_1;
					if (!(i_2 < colontmp_)) goto LA13;
					x_1 = NIM_NIL;
					i_1 = i_2;
					x_1 = lookup__layeredtable_u1015((*c_p0).bindings, (*(*fGenericOrigin_p2).sons.p->data[i_1]).itemId);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!(x_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA16_;
						put__sigmatch_u246(c_p0, (*fGenericOrigin_p2).sons.p->data[i_1], (*last_p1).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
LA16_: ;
					i_2 += ((NI)1);
					eqdestroy___ast_u3363(x_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA13: ;
			}
		}
	}
LA9_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, isObjectSubtype__sigmatch_u978)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fGenericOrigin_p3) {
	NI result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* last_1;
	NI depth_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	t_1 = NIM_NIL;
	last_1 = NIM_NIL;
	eqcopy___ast_u3366(&t_1, a_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	depth_1 = ((NI)0);
	eqcopy___ast_u3366(&last_1, a_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			NIM_BOOL T4_;
			NIM_BOOL T6_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T12_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T17_;
			T4_ = (NIM_BOOL)0;
			T4_ = !((t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
			if (!(T4_)) goto LA5_;
			T6_ = (NIM_BOOL)0;
			T6_ = sameObjectTypes__types_u2001(f_p2, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (T6_) goto LA7_;
			T6_ = isGenericObjectOf__sigmatch_u957(f_p2, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA7_: ;
			T4_ = !(T6_);
LA5_: ;
			if (!T4_) goto LA3;
			{
				if (!!(((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17)))) goto LA10_;
				result = ((NI)-1);
				eqdestroy___ast_u3363(last_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA10_: ;
			T12_ = NIM_NIL;
			T12_ = baseClass__ast_u5327(t_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T12_); goto LA1_;}
			eqsink___ast_u3372(&t_1, T12_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				if (!(t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA15_;
				goto LA2;
			}
LA15_: ;
			eqcopy___ast_u3366(&last_1, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T17_ = NIM_NIL;
			T17_ = skipTypes__ast_u5358(t_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T17_); goto LA1_;}
			eqsink___ast_u3372(&t_1, T17_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			depth_1 += ((NI)1);
		} LA3: ;
	} LA2: ;
	{
		if (!!((t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA20_;
		genericParamPut__sigmatch_u935(c_p0, last_1, fGenericOrigin_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		result = depth_1;
	}
	goto LA18_;
LA20_: ;
	{
		result = ((NI)-1);
	}
LA18_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(last_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, sameDistinctTypes__types_u2050)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	result = sameObjectTypes__types_u2001(a_p0, b_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, allowsNil__sigmatch_u1185)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD_;
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__2;
	colontmpD_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	colontmpD__2 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	{
		if (!!((((*f_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0))) goto LA3_;
		colontmpD_ = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
		result = colontmpD_;
	}
	goto LA1_;
LA3_: ;
	{
		colontmpD__2 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		result = colontmpD__2;
	}
LA1_: ;
	return result;
}
static N_INLINE(void, setSonsLen__ast_u5992)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0, NI len_p1) {
	setLen__ast_u3318((&(*dest_p0).sons), (len_p1));
}
N_LIB_PRIVATE N_NIMCALL(void, copyingEraseVoidParams__sigmatch_u377)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** t_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* original_1;
	NIM_BOOL copied_1;
NIM_BOOL oldNimErrFin22_;
NIM_BOOL oldNimErrFin5_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	original_1 = NIM_NIL;
	eqcopy___ast_u3366(&original_1, (*t_p1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	copied_1 = NIM_FALSE;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_u5481(original_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		i_2 = ((NI)1);
		{
			while (1) {
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_1;
				NIM_BOOL isVoidParam_1;
				if (!(i_2 < colontmp_)) goto LA4;
				f_1 = NIM_NIL;
				i_1 = i_2;
				eqcopy___ast_u3366(&f_1, (*original_1).sons.p->data[i_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				isVoidParam_1 = ((*f_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63));
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prev_1;
					if (!!(isVoidParam_1)) goto LA8_;
					prev_1 = NIM_NIL;
					prev_1 = lookup__layeredtable_u1015((*m_p0).bindings, (*f_1).itemId);
					if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
					{
						if (!!((prev_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA12_;
						eqsink___ast_u3372(&f_1, prev_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
						eqwasMoved___ast_u3360(&prev_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
					}
LA12_: ;
					isVoidParam_1 = ((*f_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63));
					eqdestroy___ast_u3363(prev_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				}
LA8_: ;
				{
					if (!isVoidParam_1) goto LA16_;
					{
						tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T23_;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T24_;
						if (!!(copied_1)) goto LA20_;
						colontmpD_ = NIM_NIL;
						colontmpD_ = owner__ast_u6225((*t_p1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						T23_ = NIM_NIL;
						T23_ = copyType__ast_u6217(original_1, (*(*m_p0).c).Sup.idgen, colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T23_); goto LA22_;}
						eqsink___ast_u3372(&(*t_p1), T23_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						setSonsLen__ast_u5992((*t_p1), i_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						T24_ = NIM_NIL;
						T24_ = copyNode__ast_u6707((*original_1).n);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T24_); goto LA22_;}
						eqsink___ast_u3246(&(*(*t_p1)).n, T24_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						eqcopy___ast_u3684((&(*(*(*t_p1)).n)._kind_6.sons), (*(*original_1).n)._kind_6.sons);
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						setLen__ast_u3703((&(*(*(*t_p1)).n)._kind_6.sons), (i_1));
						copied_1 = NIM_TRUE;
						{
							LA22_:;
						}
						{
							oldNimErrFin22_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u4558(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
							*nimErr_ = oldNimErrFin22_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
					}
LA20_: ;
				}
				goto LA14_;
LA16_: ;
				{
					if (!copied_1) goto LA28_;
					add__ast_u3866((*t_p1), f_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
					add__ast_u3200((*(*t_p1)).n, (*(*original_1).n)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				}
				goto LA14_;
LA28_: ;
LA14_: ;
				i_2 += ((NI)1);
				{
					LA5_:;
				}
				{
					oldNimErrFin5_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(f_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin5_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			} LA4: ;
		}
	}
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(original_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NI, signatureLen__ast_u5589)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NI result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, inconsistentVarTypes__sigmatch_u1192)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T4_;
	NIM_BOOL T7_;
	NIM_BOOL T8_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !(((*f_p0).kind == (*a_p1).kind));
	if (!(T2_)) goto LA3_;
	T4_ = (NIM_BOOL)0;
	T4_ = ((*f_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*f_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47) || (*f_p0).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46));
	if (T4_) goto LA5_;
	T4_ = ((*a_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*a_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47) || (*a_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46));
LA5_: ;
	T2_ = T4_;
LA3_: ;
	T1_ = T2_;
	if (T1_) goto LA6_;
	T7_ = (NIM_BOOL)0;
	T7_ = isOutParam__ast_u7626(f_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T8_ = (NIM_BOOL)0;
	T8_ = isOutParam__ast_u7626(a_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = !((T7_ == T8_));
LA6_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, procParamTypeRel__sigmatch_u1208)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_2;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_2;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	f_2 = NIM_NIL;
	a_2 = NIM_NIL;
	eqcopy___ast_u3366(&f_2, f_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3366(&a_2, a_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T4_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aResolved_1;
		T4_ = (NIM_BOOL)0;
		T4_ = isMetaType__ast_u4591(a_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T4_) goto LA5_;
		aResolved_1 = NIM_NIL;
		aResolved_1 = lookup__layeredtable_u1015((*c_p0).bindings, (*a_2).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			if (!!((aResolved_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA9_;
			eqsink___ast_u3372(&a_2, aResolved_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3360(&aResolved_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA9_: ;
		eqdestroy___ast_u3363(aResolved_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA5_: ;
	{
		NIM_BOOL T13_;
		tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ reverseRel_1;
		tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T33_;
		T13_ = (NIM_BOOL)0;
		T13_ = isMetaType__ast_u4591(a_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T13_) goto LA14_;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = isMetaType__ast_u4591(f_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T18_) goto LA19_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T25_;
				if (!!(((*c_p0).call == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA23_;
				T25_ = NIM_NIL;
				T25_ = generateTypeInstance__semtypinst_u1615((*c_p0).c, (*c_p0).bindings, (*(*c_p0).call).info, f_2);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T25_); goto LA1_;}
				eqsink___ast_u3372(&f_2, T25_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			goto LA21_;
LA23_: ;
			{
				eqsink___ast_u3372(&f_2, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA21_: ;
			{
				NIM_BOOL T29_;
				T29_ = (NIM_BOOL)0;
				T29_ = (f_2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (T29_) goto LA30_;
				T29_ = isMetaType__ast_u4591(f_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA30_: ;
				if (!T29_) goto LA31_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)5);
				eqdestroy___ast_u3363(a_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(f_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA31_: ;
		}
LA19_: ;
		T33_ = 0;
		reverseRel_1 = typeRel__sigmatch_u250(c_p0, a_2, f_2, T33_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) <= reverseRel_1)) goto LA36_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)6);
		}
		goto LA34_;
LA36_: ;
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		}
LA34_: ;
	}
	goto LA11_;
LA14_: ;
	{
		tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T40_;
		T40_ = 0;
		result = typeRel__sigmatch_u250(c_p0, f_2, a_2, T40_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA11_: ;
	{
		NIM_BOOL T43_;
		T43_ = (NIM_BOOL)0;
		T43_ = (result <= ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)4));
		if (T43_) goto LA44_;
		T43_ = inconsistentVarTypes__sigmatch_u1192(f_2, a_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA44_: ;
		if (!T43_) goto LA45_;
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
	}
LA45_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(a_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(f_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, procTypeRel__sigmatch_u1237)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
NIM_BOOL oldNimErrFin2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	switch ((*a_p2).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_2;
		tyTuple__7xZyzV9bi4zRvtJda9aONodA T38_;
		f_2 = NIM_NIL;
		eqcopy___ast_u3366(&f_2, f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		copyingEraseVoidParams__sigmatch_u377((&(*c_p0)), &f_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		{
			NI T5_;
			NI T6_;
			T5_ = (NI)0;
			T5_ = signatureLen__ast_u5589(f_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
			T6_ = (NI)0;
			T6_ = signatureLen__ast_u5589(a_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
			if (!!((T5_ == T6_))) goto LA7_;
			eqdestroy___ast_u3363(f_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA7_: ;
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
		{
			if (!!((((*f_2).flags & 32768) == ((*a_p2).flags & 32768)))) goto LA11_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			eqdestroy___ast_u3363(f_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA11_: ;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_u5481(f_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
			i_2 = ((NI)1);
			{
				while (1) {
					tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T16_;
					if (!(i_2 < colontmp_)) goto LA15;
					i_1 = i_2;
					T16_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
					T16_ = procParamTypeRel__sigmatch_u1208(c_p0, (*f_2).sons.p->data[i_1], (*a_p2).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
					result = minRel__sigmatch_u1119(result, T16_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
					{
						if (!(result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA19_;
						eqdestroy___ast_u3363(f_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA19_: ;
					i_2 += ((NI)1);
				} LA15: ;
			}
		}
		{
			if (!!(((*f_2).sons.p->data[((NI)0)] == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA23_;
			{
				tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T29_;
				if (!!(((*a_p2).sons.p->data[((NI)0)] == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA27_;
				T29_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
				T29_ = procParamTypeRel__sigmatch_u1208(c_p0, (*f_2).sons.p->data[((NI)0)], (*a_p2).sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				result = minRel__sigmatch_u1119(result, T29_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				{
					if (!(result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA32_;
					eqdestroy___ast_u3363(f_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA32_: ;
			}
			goto LA25_;
LA27_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3363(f_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA25_: ;
		}
		goto LA21_;
LA23_: ;
		{
			if (!!(((*a_p2).sons.p->data[((NI)0)] == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA36_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			eqdestroy___ast_u3363(f_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA21_;
LA36_: ;
LA21_: ;
		T38_ = getProcConvMismatch__types_u3794((*(*(*c_p0).c).graph).config, f_2, a_p2, result);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		result = T38_.Field1;
		{
			tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ T41_;
			T41_ = (tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)0;
			T41_ = compatibleEffects__types_u3551(f_2, a_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
			if (!!((T41_ == ((tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ)0)))) goto LA42_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			eqdestroy___ast_u3363(f_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA42_: ;
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(f_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin2_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
	{
		result = allowsNil__sigmatch_u1185(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, enterConceptMatch__sigmatch_u2002)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw flags_p3) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* container_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concpt_1;
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD_;
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__2;
	tySet_tyEnum_MatchFlags__te9cp1iI7j4FnZSmB5ytuQw conceptFlags_1;
	NIM_BOOL mres_1;
	tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* T15_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	container_1 = NIM_NIL;
	concpt_1 = NIM_NIL;
	colontmpD_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	colontmpD__2 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	conceptFlags_1 = 0;
	container_1 = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
	eqcopy___ast_u3366(&concpt_1, f_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T6_;
		if (!!(((*concpt_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62)))) goto LA4_;
		eqsink___ast_u3372(&container_1, concpt_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqwasMoved___ast_u3360(&concpt_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T6_ = NIM_NIL;
		T6_ = reduceToBase__types_u4283(container_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T6_); goto LA1_;}
		eqsink___ast_u3372(&concpt_1, T6_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA4_: ;
	{
		if (!((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0)) goto LA9_;
		conceptFlags_1 |= ((NU8)1)<<(((((tyEnum_MatchFlags__te9cp1iI7j4FnZSmB5ytuQw)0))) & 7);
	}
LA9_: ;
	{
		if (!((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)4)))&7U)))!=0)) goto LA13_;
		conceptFlags_1 |= ((NU8)1)<<(((((tyEnum_MatchFlags__te9cp1iI7j4FnZSmB5ytuQw)1))) & 7);
	}
LA13_: ;
	T15_ = NIM_NIL;
	T15_ = (*c_p0).c;
	mres_1 = conceptMatch__concepts_u675(T15_, concpt_1, a_p2, (&(*c_p0).bindings), container_1, conceptFlags_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!mres_1) goto LA18_;
		colontmpD_ = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
		result = colontmpD_;
	}
	goto LA16_;
LA18_: ;
	{
		colontmpD__2 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		result = colontmpD__2;
	}
LA16_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(concpt_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(container_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericHead__ast_u5355)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3366(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, typeBodyImpl__ast_u5348)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5260((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3366(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipToObject__sigmatch_u1022)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA* skipped_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* r_1;
	NI ptrs_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	r_1 = NIM_NIL;
	eqcopy___ast_u3366(&r_1, t_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	ptrs_1 = ((NI)0);
	{
		while (1) {
			if (!!((r_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA3;
			switch ((*r_1).kind) {
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T5_;
				T5_ = NIM_NIL;
				T5_ = genericHead__ast_u5355(r_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T5_); goto LA1_;}
				eqsink___ast_u3372(&r_1, T5_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T7_;
				ptrs_1 += ((NI)1);
				(*skipped_p1) = ((tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA)1);
				T7_ = NIM_NIL;
				T7_ = elementType__ast_u5310(r_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T7_); goto LA1_;}
				eqsink___ast_u3372(&r_1, T7_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T9_;
				ptrs_1 += ((NI)1);
				(*skipped_p1) = ((tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA)2);
				T9_ = NIM_NIL;
				T9_ = elementType__ast_u5310(r_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T9_); goto LA1_;}
				eqsink___ast_u3372(&r_1, T9_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T11_;
				T11_ = NIM_NIL;
				T11_ = elementType__ast_u5310(r_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T11_); goto LA1_;}
				eqsink___ast_u3372(&r_1, T11_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T13_;
				T13_ = NIM_NIL;
				T13_ = typeBodyImpl__ast_u5348(r_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T13_); goto LA1_;}
				eqsink___ast_u3372(&r_1, T13_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			break;
			default:
			{
				goto LA2;
			}
			break;
			}
		} LA3: ;
	} LA2: ;
	{
		NIM_BOOL T17_;
		T17_ = (NIM_BOOL)0;
		T17_ = ((*r_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
		if (!(T17_)) goto LA18_;
		T17_ = (ptrs_1 <= ((NI)1));
LA18_: ;
		if (!T17_) goto LA19_;
		result = r_1;
		eqwasMoved___ast_u3360(&r_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA15_;
LA19_: ;
	{
		result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
	}
LA15_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(r_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, isGenericSubtype__sigmatch_u1065)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p2, NI* d_p3, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fGenericOrigin_p4) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* r_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* last_1;
	tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA askip_1;
	tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA fskip_1;
	NI depth_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	t_1 = NIM_NIL;
	r_1 = NIM_NIL;
	last_1 = NIM_NIL;
	askip_1 = ((tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA)0);
	fskip_1 = ((tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA)0);
	t_1 = skipToObject__sigmatch_u1022(a_p1, (&askip_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	r_1 = skipToObject__sigmatch_u1022(f_p2, (&fskip_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!(r_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA4_;
		result = NIM_FALSE;
		eqdestroy___ast_u3363(last_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(r_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	depth_1 = ((NI)0);
	eqcopy___ast_u3366(&last_1, a_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			NIM_BOOL T8_;
			NIM_BOOL T9_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T12_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T17_;
			T8_ = (NIM_BOOL)0;
			T9_ = (NIM_BOOL)0;
			T9_ = !((t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
			if (!(T9_)) goto LA10_;
			T9_ = !(((*r_1).sym == (*t_1).sym));
LA10_: ;
			T8_ = T9_;
			if (!(T8_)) goto LA11_;
			T8_ = (askip_1 == fskip_1);
LA11_: ;
			if (!T8_) goto LA7;
			T12_ = NIM_NIL;
			T12_ = baseClass__ast_u5327(t_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T12_); goto LA1_;}
			eqsink___ast_u3372(&t_1, T12_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				if (!(t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA15_;
				goto LA6;
			}
LA15_: ;
			eqcopy___ast_u3366(&last_1, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T17_ = NIM_NIL;
			T17_ = skipToObject__sigmatch_u1022(t_1, (&askip_1));
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T17_); goto LA1_;}
			eqsink___ast_u3372(&t_1, T17_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			depth_1 += ((NI)1);
		} LA7: ;
	} LA6: ;
	{
		NIM_BOOL T20_;
		T20_ = (NIM_BOOL)0;
		T20_ = !((t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T20_)) goto LA21_;
		T20_ = (askip_1 == fskip_1);
LA21_: ;
		if (!T20_) goto LA22_;
		genericParamPut__sigmatch_u935(c_p0, last_1, fGenericOrigin_p4);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		(*d_p3) = depth_1;
		result = NIM_TRUE;
	}
	goto LA18_;
LA22_: ;
	{
		result = NIM_FALSE;
	}
LA18_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(last_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(r_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(t_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)8));
		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 -= ((NI)16);
		}
LA6_: ;
		{
			if (!result) goto LA13_;
			{
				if (!(((NI)0) < (*cell_1).rootIdx)) goto LA17_;
				unregisterCycle__system_u3069(cell_1);
			}
LA17_: ;
		}
LA13_: ;
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u8082)(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* dest_p0) {
	eqdestroy___system_u2627((*dest_p0).errorPrefix0);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0).typeClass1);
		if (!T3_) goto LA4_;
		eqdestroy___ast_u3273((&(*(*dest_p0).typeClass1)));
		nimRawDispose((*dest_p0).typeClass1, ((NI)8));
	}
LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = nimDecRefIsLastCyclicDyn((*dest_p0).oldWriteHook2.ClE_0);
		if (!T8_) goto LA9_;
		nimDestroyAndDispose((*dest_p0).oldWriteHook2.ClE_0);
	}
LA9_: ;
	eqdestroy___system_u3809((*dest_p0).diagnostics3);
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__sigmatch_u8177)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	eqdestroy___sigmatch_u8082((&(*((tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ*) (dest_p0)))));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, add__system_u2955)(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_u2963(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 += ((NI)1);
}
static N_INLINE(void, nimTraceRefDyn)(void* q_p0, void* env_p1) {
	void** p_1;
	p_1 = ((void**) (q_p0));
	{
		tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w* j_1;
		if (!!(((*p_1) == NIM_NIL))) goto LA3_;
		j_1 = ((tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w*) (env_p1));
		add__system_u2955((&(*j_1).traceStack), p_1, (*((TNimTypeV2**) ((*p_1)))));
	}
LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___sigmatch_u8094)(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* dest_p0, void* env_p1) {
	nimTraceRefDyn((&(*dest_p0).oldWriteHook2.ClE_0), env_p1);
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u8129)(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicDyn(dest_p0);
		if (!T3_) goto LA4_;
		nimDestroyAndDispose(dest_p0);
	}
LA4_: ;
}
static N_INLINE(void, addDeclAt__lookups_u3764)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p2) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	addDeclAt__lookups_u3236(c_p0, scope_p1, sym_p2, (*sym_p2).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, addDecl__lookups_u3772)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	addDeclAt__lookups_u3764(c_p0, (*c_p0).currentScope, sym_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___sigmatch_u1429)(NimStringV2 s_p0, void* ClE_0) {
	tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* colonenvP__1;
	NimStringV2 msg_1;
	NimStringV2 blitTmp_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colonenvP__1 = (tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ*) ClE_0;
	msg_1.len = 0; msg_1.p = NIM_NIL;
	{
		NimStringV2 T5_;
		if (!((*colonenvP__1).errorPrefix0.len == ((NI)0))) goto LA3_;
		T5_.len = 0; T5_.p = NIM_NIL;
		T5_ = rawNewString((*(*(*(*colonenvP__1).typeClass1).sym).name).s.len + 1);
appendString((&T5_), (*(*(*(*colonenvP__1).typeClass1).sym).name).s);
appendString((&T5_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_51);
		eqsink___system_u2636((&(*colonenvP__1).errorPrefix0), T5_);
	}
LA3_: ;
	msg_1 = nsuReplaceStr(s_p0, TM__EV5hHJmjIY9cla9b9be7fSVJQ_53, (*colonenvP__1).errorPrefix0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((*colonenvP__1).oldWriteHook2.ClP_0 == TM__EV5hHJmjIY9cla9b9be7fSVJQ_54.ClP_0 && (*colonenvP__1).oldWriteHook2.ClE_0 == TM__EV5hHJmjIY9cla9b9be7fSVJQ_54.ClE_0))) goto LA8_;
		(*colonenvP__1).oldWriteHook2.ClE_0? (*colonenvP__1).oldWriteHook2.ClP_0(msg_1, (*colonenvP__1).oldWriteHook2.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_55)((*colonenvP__1).oldWriteHook2.ClP_0))(msg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA8_: ;
	blitTmp_1 = msg_1;
	add__stdZenumutils_u71((&(*colonenvP__1).diagnostics3), blitTmp_1);
	}BeforeRet_: ;
}
static N_INLINE(void, nimIncRefCyclic)(void* p_p0, NIM_BOOL cyclic_p1) {
	tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* h_1;
	NI T1_;
	T1_ = (NI)0;
	T1_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)8));
	h_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T1_));
	(*h_1).rc += ((NI)16);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ*, eqdup___sigmatch_u8136)(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* src_p0, NIM_BOOL cyclic_p1) {
	tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* result;
	tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* colontmp_;
	result = NIM_NIL;
	colontmp_ = result;
	result = src_p0;
	{
		if (!src_p0) goto LA3_;
		nimIncRefCyclic(src_p0, cyclic_p1);
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, matchUserTypeClass__sigmatch_u1300)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* colonenv__1;
	tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* body_1;
	tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg matchedConceptContext_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevCandidateType_1;
	tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* colontmpD_;
	tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* T2_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T3_;
	tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg* prevMatchedConcept_1;
	tySequence__GVxMaHC0xtgqjBZ8ubUwnA typeParams_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* checkedBody_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__4;
NIM_BOOL oldNimErrFin36_;
NIM_BOOL oldNimErrFin26_;
	tyProc__k2HFjxisIgDALbEUFojxaQ T73_;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ T74_;
	tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_1;
	NIM_BOOL collectDiagnostics_1;
	NIM_BOOL T75_;
NIM_BOOL oldNimErrFin17_;
NIM_BOOL oldNimErrFin16_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	colonenv__1 = NIM_NIL;
	c_1 = NIM_NIL;
	body_1 = NIM_NIL;
	nimZeroMem((void*)(&matchedConceptContext_1), sizeof(tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg));
	prevCandidateType_1 = NIM_NIL;
	colontmpD_ = NIM_NIL;
	T2_ = NIM_NIL;
	T2_ = (tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ*) nimNewObj(sizeof(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ), NIM_ALIGNOF(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ));
	(*T2_).Sup.m_type = (&NTIv2__BMJLEodSR6ezL3E3W72BoQ_);
	colonenv__1 = T2_;
	eqcopy___semdata_u4385(&c_1, (*m_p0).c, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T3_ = NIM_NIL;
	T3_ = skipTypes__ast_u5358(ff_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_46);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T3_); goto LA1_;}
	eqsink___ast_u3372(&(*colonenv__1).typeClass1, T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3240(&body_1, (*(*(*colonenv__1).typeClass1).n)._kind_6.sons.p->data[((NI)3)]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	nimZeroMem((void*)(&matchedConceptContext_1), sizeof(tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg));
	prevMatchedConcept_1 = (*c_1).matchedConcept;
	eqcopy___ast_u3366(&prevCandidateType_1, (*(*(*colonenv__1).typeClass1).sons.p->data[((NI)0)]).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!!((prevMatchedConcept_1 == ((tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg*) NIM_NIL)))) goto LA6_;
		matchedConceptContext_1.prev = prevMatchedConcept_1;
		matchedConceptContext_1.depth = (NI)((*prevMatchedConcept_1).depth + ((NI)1));
		{
			NimStringV2 colontmpD__2;
			NimStringV2 colontmpD__3;
			NimStringV2 T13_;
			if (!(((NI)4) < (*prevMatchedConcept_1).depth)) goto LA10_;
			colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
			colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
			T13_.len = 0; T13_.p = NIM_NIL;
			colontmpD__2 = dollar___renderer_u2143(body_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
			T13_ = rawNewString(colontmpD__2.len + 29);
appendString((&T13_), colontmpD__2);
appendString((&T13_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_48);
			colontmpD__3 = T13_;
			liMessage__msgs_u1223((*(*(*m_p0).c).graph).config, (*body_1).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__3, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_49, NIM_FALSE, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
			result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
			eqdestroy___system_u2627(colontmpD__3);
			eqdestroy___system_u2627(colontmpD__2);
			eqdestroy___lookups_u71(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(prevCandidateType_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___sigmatch_u1464(matchedConceptContext_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(body_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___semdata_u4382(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___sigmatch_u8129(colonenv__1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA12_:;
			}
			{
				eqdestroy___system_u2627(colontmpD__3);
				eqdestroy___system_u2627(colontmpD__2);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA10_: ;
	}
LA6_: ;
	colontmpD_ = openScope__lookups_u65(c_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3366(&matchedConceptContext_1.candidateType, a_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3366(&(*(*(*colonenv__1).typeClass1).sons.p->data[((NI)0)]).sons.p->data[((NI)0)], a_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	(*c_1).matchedConcept = (&matchedConceptContext_1);
	typeParams_1.len = 0; typeParams_1.p = NIM_NIL;
	checkedBody_1 = NIM_NIL;
	colontmpD__4 = NIM_NIL;
	typeParams_1.len = 0; typeParams_1.p = (tySequence__GVxMaHC0xtgqjBZ8ubUwnA_Content*) newSeqPayload(0, sizeof(tyTuple__7SDQCf3TbPJf09bOXiapRgg), NIM_ALIGNOF(tyTuple__7SDQCf3TbPJf09bOXiapRgg));
	{
		if (!((*ff_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53))) goto LA20_;
		{
			NI i_1;
			NI colontmp_;
			NI T23_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			T23_ = (NI)0;
			T23_ = len__ast_u5481(ff_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			colontmp_ = (NI)(T23_ - ((NI)1));
			i_2 = ((NI)1);
			{
				while (1) {
					tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* typeParamName_1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_1;
					tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* param_1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* alreadyBound_1;
					if (!(i_2 < colontmp_)) goto LA25;
					typeParamName_1 = NIM_NIL;
					colontmpD__5 = NIM_NIL;
					typ_1 = NIM_NIL;
					param_1 = NIM_NIL;
					alreadyBound_1 = NIM_NIL;
					i_1 = i_2;
					colontmpD__5 = base__ast_u5330(ff_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
					eqcopy___idents_u158(&typeParamName_1, (*(*(*colontmpD__5).sons.p->data[(NI)(i_1 - ((NI)1))]).sym).name);
					if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
					eqcopy___ast_u3366(&typ_1, (*ff_p1).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
					param_1 = ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL);
					alreadyBound_1 = lookup__layeredtable_u1015((*m_p0).bindings, (*typ_1).itemId);
					if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
					{
						if (!!((alreadyBound_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA29_;
						eqsink___ast_u3372(&typ_1, alreadyBound_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
						eqwasMoved___ast_u3360(&alreadyBound_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
					}
LA29_: ;
					{
						tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__6;
						tyTuple__7SDQCf3TbPJf09bOXiapRgg T70_;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* blitTmp_1;
						colontmpD__6 = NIM_NIL;
						{
							tyTuple__7SDQCf3TbPJf09bOXiapRgg* prev_1;
							NI i_3;
							NI L_1;
							NI T33_;
							prev_1 = (tyTuple__7SDQCf3TbPJf09bOXiapRgg*)0;
							i_3 = ((NI)0);
							T33_ = typeParams_1.len;
							L_1 = T33_;
							{
								while (1) {
									tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* xX60gensym233__1;
									tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* xX60gensym234__1;
									if (!(i_3 < L_1)) goto LA35;
									xX60gensym233__1 = NIM_NIL;
									xX60gensym234__1 = NIM_NIL;
									prev_1 = (&typeParams_1.p->data[i_3]);
									{
										tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ T41_;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T42_;
										eqcopy___ast_u3366(&xX60gensym233__1, (*prev_1).Field1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA36_;
										eqcopy___ast_u3366(&xX60gensym234__1, typ_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA36_;
										if (!((NI)((NI)((NU32)(((NI) ((*xX60gensym233__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym233__1).itemId.item))) == (NI)((NI)((NU32)(((NI) ((*xX60gensym234__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym234__1).itemId.item))))) goto LA39_;
										T41_ = 0;
										T42_ = NIM_NIL;
										T42_ = newSym__ast_u4189((*(*prev_1).Field0).kind, typeParamName_1, (*c_1).Sup.idgen, (*(*colonenv__1).typeClass1).sym, (*(*(*colonenv__1).typeClass1).sym).info, T41_);
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T42_); goto LA36_;}
										eqsink___ast_u4567(&param_1, T42_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA36_;
										eqcopy___ast_u3366(&(*param_1).typ, (*(*prev_1).Field0).typ);
										if (NIM_UNLIKELY(*nimErr_)) goto LA36_;
										eqdestroy___ast_u3363(xX60gensym234__1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
										eqdestroy___ast_u3363(xX60gensym233__1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
										goto LA31;
									}
LA39_: ;
									i_3 += ((NI)1);
									{
										LA36_:;
									}
									{
										oldNimErrFin36_ = *nimErr_; *nimErr_ = NIM_FALSE;
										eqdestroy___ast_u3363(xX60gensym234__1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
										eqdestroy___ast_u3363(xX60gensym233__1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
										*nimErr_ = oldNimErrFin36_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
								} LA35: ;
							}
						}
						switch ((*typ_1).kind) {
						case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
						{
							tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ T46_;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T47_;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T48_;
							T46_ = 0;
							T47_ = NIM_NIL;
							T47_ = newSym__ast_u4189(((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)10), typeParamName_1, (*c_1).Sup.idgen, (*(*colonenv__1).typeClass1).sym, (*(*(*colonenv__1).typeClass1).sym).info, T46_);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T47_); goto LA26_;}
							eqsink___ast_u4567(&param_1, T47_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							T48_ = NIM_NIL;
							T48_ = exactReplica__ast_u6222(typ_1);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T48_); goto LA26_;}
							eqsink___ast_u3372(&(*param_1).typ, T48_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							{
								if (!((*typ_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA51_;
								(*(*param_1).typ).flags |= ((NU64)1)<<(((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)27))) & 63);
							}
							goto LA49_;
LA51_: ;
							{
								eqcopy___ast_u3240(&(*param_1).ast, (*typ_1).n);
								if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							}
LA49_: ;
						}
						break;
						case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61):
						{
							tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ T55_;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T56_;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T57_;
							T55_ = 0;
							T56_ = NIM_NIL;
							T56_ = newSym__ast_u4189(((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8), typeParamName_1, (*c_1).Sup.idgen, (*(*colonenv__1).typeClass1).sym, (*(*(*colonenv__1).typeClass1).sym).info, T55_);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T56_); goto LA26_;}
							eqsink___ast_u4567(&param_1, T56_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							T57_ = NIM_NIL;
							T57_ = exactReplica__ast_u6222(typ_1);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T57_); goto LA26_;}
							eqsink___ast_u3372(&(*param_1).typ, T57_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
						}
						break;
						default:
						{
							tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ T59_;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T60_;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T61_;
							T59_ = 0;
							T60_ = NIM_NIL;
							T60_ = newSym__ast_u4189(((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)7), typeParamName_1, (*c_1).Sup.idgen, (*(*colonenv__1).typeClass1).sym, (*(*(*colonenv__1).typeClass1).sym).info, T59_);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T60_); goto LA26_;}
							eqsink___ast_u4567(&param_1, T60_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							T61_ = NIM_NIL;
							{
								NIM_BOOL T64_;
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T67_;
								T64_ = (NIM_BOOL)0;
								T64_ = isMetaType__ast_u4591(typ_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
								if (!T64_) goto LA65_;
								colontmpD__7 = NIM_NIL;
								colontmpD__7 = eqdup___ast_u3369(typ_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
								T67_ = NIM_NIL;
								T67_ = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55), c_1, colontmpD__7);
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T67_); goto LA26_;}
								eqsink___ast_u3372(&(*param_1).typ, T67_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							}
							goto LA62_;
LA65_: ;
							{
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T69_;
								T69_ = NIM_NIL;
								T69_ = makeTypeDesc__semdata_u4966(c_1, typ_1);
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T69_); goto LA26_;}
								eqsink___ast_u3372(&(*param_1).typ, T69_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							}
LA62_: ;
						}
						break;
						}
						nimZeroMem((void*)(&T70_), sizeof(tyTuple__7SDQCf3TbPJf09bOXiapRgg));
						colontmpD__6 = eqdup___ast_u4564(param_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
						T70_.Field0 = colontmpD__6;
						blitTmp_1 = typ_1;
						eqwasMoved___ast_u3360(&typ_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
						T70_.Field1 = blitTmp_1;
						add__sigmatch_u1383((&typeParams_1), T70_);
					} LA31: ;
					addDecl__lookups_u3772(c_1, param_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
					i_2 += ((NI)1);
					{
						LA26_:;
					}
					{
						oldNimErrFin26_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(alreadyBound_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						eqdestroy___ast_u4558(param_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						eqdestroy___ast_u3363(typ_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						eqdestroy___ast_u3363(colontmpD__5);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						eqdestroy___idents_u155(typeParamName_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						*nimErr_ = oldNimErrFin26_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
				} LA25: ;
			}
		}
	}
LA20_: ;
	nimZeroMem((void*)(&T73_), sizeof(tyProc__k2HFjxisIgDALbEUFojxaQ));
	eqsink___sigmatch_u1749((&(*colonenv__1).oldWriteHook2), T73_);
	T74_.len = 0; T74_.p = NIM_NIL;
	T74_.len = 0; T74_.p = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content*) newSeqPayload(0, sizeof(NimStringV2), NIM_ALIGNOF(NimStringV2));
	eqsink___system_u3818((&(*colonenv__1).diagnostics3), T74_);
	flags_1 = 0;
	T75_ = (NIM_BOOL)0;
	T75_ = (*m_p0).diagnosticsEnabled;
	if (T75_) goto LA76_;
	T75_ = (((*(*(*colonenv__1).typeClass1).sym).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)23)))&63U)))!=0);
LA76_: ;
	collectDiagnostics_1 = T75_;
	{
		tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* colontmpD__8;
		tySequence__sM4lkSb7zS6F7OVMvW9cffQ T81_;
		tyProc__k2HFjxisIgDALbEUFojxaQ T82_;
		if (!collectDiagnostics_1) goto LA79_;
		colontmpD__8 = NIM_NIL;
		eqcopy___sigmatch_u1741((&(*colonenv__1).oldWriteHook2), (*(*(*(*m_p0).c).graph).config).writelnHook, NIM_TRUE);
		T81_.len = 0; T81_.p = NIM_NIL;
		T81_.len = 0; T81_.p = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content*) newSeqPayload(0, sizeof(NimStringV2), NIM_ALIGNOF(NimStringV2));
		eqsink___system_u3818((&(*colonenv__1).diagnostics3), T81_);
		flags_1 = 1024;
		colontmpD__8 = eqdup___sigmatch_u8136(colonenv__1, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		nimZeroMem((void*)(&T82_), sizeof(tyProc__k2HFjxisIgDALbEUFojxaQ));
		T82_.ClP_0 = colonanonymous___sigmatch_u1429; T82_.ClE_0 = colontmpD__8;
		eqsink___sigmatch_u1749((&(*(*(*(*m_p0).c).graph).config).writelnHook), T82_);
	}
LA79_: ;
	colontmpD__4 = copyTree__ast_u6862(body_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
	checkedBody_1 = (*c_1).semTryExpr(c_1, colontmpD__4, flags_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
	{
		if (!collectDiagnostics_1) goto LA85_;
		eqcopy___sigmatch_u1741((&(*(*(*(*m_p0).c).graph).config).writelnHook), (*colonenv__1).oldWriteHook2, NIM_TRUE);
		{
			NimStringV2* msg_1;
			NI i_4;
			NI L_2;
			NI T88_;
			msg_1 = (NimStringV2*)0;
			i_4 = ((NI)0);
			T88_ = (*colonenv__1).diagnostics3.len;
			L_2 = T88_;
			{
				while (1) {
					NimStringV2 colontmpD__9;
					if (!(i_4 < L_2)) goto LA90;
					colontmpD__9.len = 0; colontmpD__9.p = NIM_NIL;
					msg_1 = (&(*colonenv__1).diagnostics3.p->data[i_4]);
					colontmpD__9 = eqdup___system_u2633((*msg_1));
					add__stdZenumutils_u71((&(*m_p0).diagnostics), colontmpD__9);
					(*m_p0).diagnosticsEnabled = NIM_TRUE;
					i_4 += ((NI)1);
				} LA90: ;
			}
		}
	}
LA85_: ;
	{
		if (!(checkedBody_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA93_;
		result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
		eqdestroy___ast_u3237(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
		eqdestroy___ast_u3237(checkedBody_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
		eqdestroy___sigmatch_u1510(typeParams_1);
		(*c_1).matchedConcept = prevMatchedConcept_1;
		eqsink___ast_u3372(&(*(*(*colonenv__1).typeClass1).sons.p->data[((NI)0)]).sons.p->data[((NI)0)], prevCandidateType_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqwasMoved___ast_u3360(&prevCandidateType_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		closeScope__lookups_u95(c_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___lookups_u71(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(prevCandidateType_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u1464(matchedConceptContext_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3237(body_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___semdata_u4382(c_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u8129(colonenv__1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA93_: ;
	{
		tyTuple__7SDQCf3TbPJf09bOXiapRgg* p_1;
		NI i_5;
		NI L_3;
		NI T96_;
		p_1 = (tyTuple__7SDQCf3TbPJf09bOXiapRgg*)0;
		i_5 = ((NI)0);
		T96_ = typeParams_1.len;
		L_3 = T96_;
		{
			while (1) {
				if (!(i_5 < L_3)) goto LA98;
				p_1 = (&typeParams_1.p->data[i_5]);
				put__sigmatch_u246(m_p0, (*p_1).Field1, (*(*p_1).Field0).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
				i_5 += ((NI)1);
			} LA98: ;
		}
	}
	{
		if (!((*ff_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53))) goto LA101_;
		result = generateTypeInstance__semtypinst_u1615(c_1, (*m_p0).bindings, (*(*(*colonenv__1).typeClass1).sym).info, ff_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
	}
	goto LA99_;
LA101_: ;
	{
		result = exactReplica__ast_u6222(ff_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
	}
LA99_: ;
	eqsink___ast_u3246(&(*result).n, checkedBody_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
	eqwasMoved___ast_u3234(&checkedBody_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
	{
		LA17_:;
	}
	{
		oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3237(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
		eqdestroy___ast_u3237(checkedBody_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
		eqdestroy___sigmatch_u1510(typeParams_1);
		*nimErr_ = oldNimErrFin17_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
	{
		LA16_:;
	}
	{
		oldNimErrFin16_ = *nimErr_; *nimErr_ = NIM_FALSE;
		(*c_1).matchedConcept = prevMatchedConcept_1;
		eqsink___ast_u3372(&(*(*(*colonenv__1).typeClass1).sons.p->data[((NI)0)]).sons.p->data[((NI)0)], prevCandidateType_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqwasMoved___ast_u3360(&prevCandidateType_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		closeScope__lookups_u95(c_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		*nimErr_ = oldNimErrFin16_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___lookups_u71(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(prevCandidateType_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u1464(matchedConceptContext_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3237(body_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___semdata_u4382(c_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u8129(colonenv__1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, addInt__stdZprivateZdigitsutils_u204)(NimStringV2* result_p0, NI x_p1) {
	addInt__stdZprivateZdigitsutils_u187(result_p0, ((NI64) (x_p1)));
}
static N_INLINE(NimStringV2, toFileLineCol__msgs_u701)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info_p0) {
	NimStringV2 result;
	result = TM__EV5hHJmjIY9cla9b9be7fSVJQ_56;
	prepareAdd((&result), info_p0.Field0.len + 0);
appendString((&result), info_p0.Field0);
	{
		if (!(((NI)0) < info_p0.Field1)) goto LA3_;
		prepareAdd((&result), 1);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_58);
		addInt__stdZprivateZdigitsutils_u204((&result), info_p0.Field1);
		{
			if (!(((NI)0) < (NI)(info_p0.Field2 + ((NI)1)))) goto LA7_;
			prepareAdd((&result), 2);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_60);
			addInt__stdZprivateZdigitsutils_u204((&result), (NI)(info_p0.Field2 + ((NI)1)));
		}
LA7_: ;
		prepareAdd((&result), 1);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_62);
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, typeRel__sigmatch_u250)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aOrig_p2, tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw flags_p3) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aOrig_2;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
	NIM_BOOL useTypeLoweringRuleInTypeClass_1;
	NIM_BOOL T10_;
	NIM_BOOL T11_;
	NIM_BOOL T12_;
	NIM_BOOL T13_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T18_;
NIM_BOOL oldNimErrFin48_;
NIM_BOOL oldNimErrFin41_;
NIM_BOOL oldNimErrFin28_;
NIM_BOOL oldNimErrFin68_;
NIM_BOOL oldNimErrFin77_;
NIM_BOOL oldNimErrFin84_;
NIM_BOOL oldNimErrFin99_;
NIM_BOOL oldNimErrFin116_;
NIM_BOOL oldNimErrFin139_;
NIM_BOOL oldNimErrFin217_;
NIM_BOOL oldNimErrFin209_;
NIM_BOOL oldNimErrFin200_;
NIM_BOOL oldNimErrFin272_;
NIM_BOOL oldNimErrFin276_;
NIM_BOOL oldNimErrFin297_;
NIM_BOOL oldNimErrFin301_;
NIM_BOOL oldNimErrFin333_;
NIM_BOOL oldNimErrFin328_;
NIM_BOOL oldNimErrFin371_;
NIM_BOOL oldNimErrFin323_;
NIM_BOOL oldNimErrFin413_;
NIM_BOOL oldNimErrFin421_;
NIM_BOOL oldNimErrFin429_;
NIM_BOOL oldNimErrFin452_;
NIM_BOOL oldNimErrFin479_;
NIM_BOOL oldNimErrFin509_;
NIM_BOOL oldNimErrFin501_;
NIM_BOOL oldNimErrFin538_;
NIM_BOOL oldNimErrFin576_;
NIM_BOOL oldNimErrFin619_;
NIM_BOOL oldNimErrFin625_;
NIM_BOOL oldNimErrFin655_;
NIM_BOOL oldNimErrFin715_;
NIM_BOOL oldNimErrFin781_;
NIM_BOOL oldNimErrFin810_;
NIM_BOOL oldNimErrFin823_;
NIM_BOOL oldNimErrFin895_;
NIM_BOOL oldNimErrFin878_;
NIM_BOOL oldNimErrFin938_;
NIM_BOOL oldNimErrFin963_;
NIM_BOOL oldNimErrFin933_;
NIM_BOOL oldNimErrFin868_;
NIM_BOOL oldNimErrFin984_;
NIM_BOOL oldNimErrFin829_;
NIM_BOOL oldNimErrFin1001_;
NIM_BOOL oldNimErrFin996_;
NIM_BOOL oldNimErrFin1052_;
NIM_BOOL oldNimErrFin1063_;
NIM_BOOL oldNimErrFin1131_;
NIM_BOOL oldNimErrFin1122_;
NIM_BOOL oldNimErrFin1112_;
NIM_BOOL oldNimErrFin1024_;
NIM_BOOL oldNimErrFin1190_;
NIM_BOOL oldNimErrFin1184_;
NIM_BOOL oldNimErrFin1223_;
NIM_BOOL oldNimErrFin1217_;
NIM_BOOL oldNimErrFin1264_;
NIM_BOOL oldNimErrFin1259_;
NIM_BOOL oldNimErrFin1285_;
NIM_BOOL oldNimErrFin1280_;
NIM_BOOL oldNimErrFin1303_;
NIM_BOOL oldNimErrFin1298_;
NIM_BOOL oldNimErrFin1344_;
NIM_BOOL oldNimErrFin1353_;
NIM_BOOL oldNimErrFin1348_;
NIM_BOOL oldNimErrFin1396_;
NIM_BOOL oldNimErrFin1410_;
NIM_BOOL oldNimErrFin1385_;
NIM_BOOL oldNimErrFin1380_;
NIM_BOOL oldNimErrFin1449_;
NIM_BOOL oldNimErrFin1481_;
NIM_BOOL oldNimErrFin1503_;
NIM_BOOL oldNimErrFin1522_;
NIM_BOOL oldNimErrFin1423_;
NIM_BOOL oldNimErrFin1586_;
NIM_BOOL oldNimErrFin1579_;
NIM_BOOL oldNimErrFin1615_;
NIM_BOOL oldNimErrFin1624_;
NIM_BOOL oldNimErrFin1609_;
NIM_BOOL oldNimErrFin1567_;
NIM_BOOL oldNimErrFin1646_;
NIM_BOOL oldNimErrFin1641_;
NIM_BOOL oldNimErrFin1664_;
NIM_BOOL oldNimErrFin1558_;
NIM_BOOL oldNimErrFin1696_;
NIM_BOOL oldNimErrFin1683_;
NIM_BOOL oldNimErrFin1732_;
NIM_BOOL oldNimErrFin1711_;
NIM_BOOL oldNimErrFin1746_;
NIM_BOOL oldNimErrFin1752_;
NIM_BOOL oldNimErrFin1706_;
NIM_BOOL oldNimErrFin1779_;
NIM_BOOL oldNimErrFin1783_;
NIM_BOOL oldNimErrFin1765_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	aOrig_2 = NIM_NIL;
	a_1 = NIM_NIL;
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
	{
		if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6))) goto LA4_;
		{
			if (!!((aOrig_p2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA8_;
			put__sigmatch_u246(c_p0, f_p1, aOrig_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA8_: ;
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
		eqdestroy___ast_u3363(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(aOrig_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	T10_ = (NIM_BOOL)0;
	T11_ = (NIM_BOOL)0;
	T12_ = (NIM_BOOL)0;
	T13_ = (NIM_BOOL)0;
	T13_ = !(((*(*c_p0).c).matchedConcept == ((tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg*) NIM_NIL)));
	if (!(T13_)) goto LA14_;
	T13_ = !((*c_p0).isNoCall);
LA14_: ;
	T12_ = T13_;
	if (!(T12_)) goto LA15_;
	T12_ = !(((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8)));
LA15_: ;
	T11_ = T12_;
	if (!(T11_)) goto LA16_;
	T11_ = !((((*aOrig_p2).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)29)))&63U)))!=0));
LA16_: ;
	T10_ = T11_;
	if (!(T10_)) goto LA17_;
	T10_ = !((((*aOrig_p2).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)28)))&63U)))!=0));
LA17_: ;
	useTypeLoweringRuleInTypeClass_1 = T10_;
	T18_ = NIM_NIL;
	{
		if (!useTypeLoweringRuleInTypeClass_1) goto LA21_;
		aOrig_2 = skipTypes__ast_u5358(aOrig_p2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_18);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA19_;
LA21_: ;
	{
		eqcopy___ast_u3366(&aOrig_2, aOrig_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA19_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prev_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T29_;
		if (!((*aOrig_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55))) goto LA26_;
		prev_1 = NIM_NIL;
		T29_ = NIM_NIL;
		{
			NI T32_;
			T32_ = (*aOrig_2).sons.len;
			if (!(((NI)1) < T32_)) goto LA33_;
			prev_1 = last__ast_u5257(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
		}
		goto LA30_;
LA33_: ;
		{
			prev_1 = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
		}
LA30_: ;
		{
			if (!!((prev_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA38_;
			result = typeRel__sigmatch_u250(c_p0, f_p1, prev_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			eqdestroy___ast_u3363(prev_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA36_;
LA38_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* candidate_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fType_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
			candidate_1 = NIM_NIL;
			fType_1 = NIM_NIL;
			colontmpD__3 = NIM_NIL;
			eqcopy___ast_u3366(&candidate_1, f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			fType_1 = skipTypes__ast_u5358(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_19);
			if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			switch ((*fType_1).kind) {
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prev_2;
				prev_2 = NIM_NIL;
				prev_2 = lookup__layeredtable_u1015((*c_p0).bindings, (*fType_1).itemId);
				if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
				{
					if (!!((prev_2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA45_;
					eqsink___ast_u3372(&candidate_1, prev_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
					eqwasMoved___ast_u3360(&prev_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
				}
LA45_: ;
				eqdestroy___ast_u3363(prev_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* computedType_1;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__4;
				computedType_1 = NIM_NIL;
				colontmpD__4 = NIM_NIL;
				colontmpD__4 = tryResolvingStaticExpr__sigmatch_u1816(c_p0, (*f_p1).n, NIM_FALSE, NIM_FALSE, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
				eqcopy___ast_u3366(&computedType_1, (*colontmpD__4).typField);
				if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
				switch ((*computedType_1).kind) {
				case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T50_;
					T50_ = NIM_NIL;
					T50_ = base__ast_u5330(computedType_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T50_); goto LA48_;}
					eqsink___ast_u3372(&candidate_1, T50_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
				}
				break;
				case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
				{
					eqsink___ast_u3372(&candidate_1, computedType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
					eqwasMoved___ast_u3360(&computedType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
				}
				break;
				default:
				{
				}
				break;
				}
				{
					LA48_:;
				}
				{
					oldNimErrFin48_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3237(colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
					eqdestroy___ast_u3363(computedType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
					*nimErr_ = oldNimErrFin48_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			}
			break;
			default:
			{
			}
			break;
			}
			colontmpD__3 = base__ast_u5330(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__3, candidate_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
				if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA58_;
				colontmpD__5 = NIM_NIL;
				colontmpD__5 = eqdup___ast_u3369(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
				add__ast_u3876((&(*c_p0).inferredTypes), colontmpD__5);
				add__ast_u3866(aOrig_2, candidate_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			}
LA58_: ;
			eqdestroy___ast_u3363(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			eqdestroy___ast_u3363(fType_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			eqdestroy___ast_u3363(candidate_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			eqdestroy___ast_u3363(prev_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA41_:;
			}
			{
				oldNimErrFin41_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
				eqdestroy___ast_u3363(fType_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
				eqdestroy___ast_u3363(candidate_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
				*nimErr_ = oldNimErrFin41_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
		}
LA36_: ;
		{
			LA28_:;
		}
		{
			oldNimErrFin28_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(prev_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin28_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA26_: ;
	colontmpD_ = skipTypes__ast_u5358(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_20);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	a_1 = maybeSkipDistinct__sigmatch_u1799((&(*c_p0)), colontmpD_, (*c_p0).calleeSym);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
		if (!((*aOrig_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4) || (*aOrig_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46))) goto LA66_;
		colontmpD__6 = NIM_NIL;
		colontmpD__6 = skipModifier__ast_u5317(aOrig_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA68_;
		result = typeRel__sigmatch_u250(c_p0, f_p1, colontmpD__6, flags_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA68_;
		eqdestroy___ast_u3363(colontmpD__6);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3363(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(aOrig_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA68_:;
		}
		{
			oldNimErrFin68_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__6);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin68_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA66_: ;
	{
		NIM_BOOL T73_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
		T73_ = (NIM_BOOL)0;
		T73_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11));
		if (!(T73_)) goto LA74_;
		colontmpD__2 = skipTypes__ast_u5358(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_20);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T73_ = !(((*colontmpD__2).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9) && (*colontmpD__2).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12) || (*colontmpD__2).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51) && (*colontmpD__2).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54) || (*colontmpD__2).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56) && (*colontmpD__2).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59) || (*colontmpD__2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62)));
LA74_: ;
		if (!T73_) goto LA75_;
		colontmpD__7 = NIM_NIL;
		colontmpD__7 = skipModifier__ast_u5317(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
		result = typeRel__sigmatch_u250(c_p0, f_p1, colontmpD__7, flags_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
		eqdestroy___ast_u3363(colontmpD__7);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3363(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(aOrig_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA77_:;
		}
		{
			oldNimErrFin77_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__7);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin77_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA75_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__8;
		if (!(((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)10)))&63U)))!=0)) goto LA82_;
		colontmpD__8 = NIM_NIL;
		colontmpD__8 = skipModifier__ast_u5317(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
		result = typeRel__sigmatch_u250(c_p0, f_p1, colontmpD__8, flags_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
		eqdestroy___ast_u3363(colontmpD__8);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3363(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(aOrig_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA84_:;
		}
		{
			oldNimErrFin84_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__8);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin84_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA82_: ;
	{
		NIM_BOOL T89_;
		NIM_BOOL T90_;
		NIM_BOOL T93_;
		T89_ = (NIM_BOOL)0;
		T90_ = (NIM_BOOL)0;
		T90_ = (((NI)0) < (*(*c_p0).c).inGenericContext);
		if (!(T90_)) goto LA91_;
		T90_ = !((*c_p0).isNoCall);
LA91_: ;
		T89_ = T90_;
		if (!(T89_)) goto LA92_;
		T93_ = (NIM_BOOL)0;
		T93_ = (((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0);
		if (T93_) goto LA94_;
		T93_ = ((TM__EV5hHJmjIY9cla9b9be7fSVJQ_21[(NU)(((*a_1).kind))>>3] &(1U<<((NU)(((*a_1).kind))&7U)))!=0);
LA94_: ;
		T89_ = T93_;
LA92_: ;
		if (!T89_) goto LA95_;
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		eqdestroy___ast_u3363(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(aOrig_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA95_: ;
	switch ((*a_1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)57):
	{
		(*c_p0).typedescMatched = NIM_TRUE;
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* branch_1;
			branch_1 = NIM_NIL;
			{
				NI i_1;
				NI colontmp_;
				NI T101_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				T101_ = (*a_1).sons.len;
				colontmp_ = T101_;
				i_2 = ((NI)0);
				{
					while (1) {
						tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ x_1;
						if (!(i_2 < colontmp_)) goto LA103;
						i_1 = i_2;
						eqcopy___ast_u3366(&branch_1, (*a_1).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
						x_1 = typeRel__sigmatch_u250(c_p0, f_p1, branch_1, (flags_p3 | 1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
						{
							if (!(x_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA106_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
							eqdestroy___ast_u3363(branch_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3363(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(aOrig_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA106_: ;
						{
							if (!(x_1 < result)) goto LA110_;
							result = x_1;
						}
LA110_: ;
						i_2 += ((NI)1);
					} LA103: ;
				}
			}
			{
				LA99_:;
			}
			{
				oldNimErrFin99_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(branch_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin99_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		eqdestroy___ast_u3363(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(aOrig_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56):
	{
		(*c_p0).typedescMatched = NIM_TRUE;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* branch_2;
			branch_2 = NIM_NIL;
			{
				NI i_3;
				NI colontmp__2;
				NI T118_;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				T118_ = (*a_1).sons.len;
				colontmp__2 = T118_;
				i_4 = ((NI)0);
				{
					while (1) {
						tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ x_2;
						if (!(i_4 < colontmp__2)) goto LA120;
						i_3 = i_4;
						eqcopy___ast_u3366(&branch_2, (*a_1).sons.p->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA116_;
						x_2 = typeRel__sigmatch_u250(c_p0, f_p1, branch_2, (flags_p3 | 1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA116_;
						{
							tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__9;
							tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__10;
							if (!!((x_2 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA123_;
							colontmpD__9 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
							colontmpD__10 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
							{
								if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) <= x_2)) goto LA127_;
								colontmpD__9 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
								result = colontmpD__9;
							}
							goto LA125_;
LA127_: ;
							{
								colontmpD__10 = x_2;
								result = colontmpD__10;
							}
LA125_: ;
							eqdestroy___ast_u3363(branch_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3363(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(aOrig_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA123_: ;
						i_4 += ((NI)1);
					} LA120: ;
				}
			}
			{
				LA116_:;
			}
			{
				oldNimErrFin116_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(branch_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin116_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		eqdestroy___ast_u3363(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(aOrig_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)64):
	{
		{
			if (!!(((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)64)))) goto LA135_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA135_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)58):
	{
		switch ((*f_p1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)58):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__11;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__12;
			colontmpD__11 = NIM_NIL;
			colontmpD__12 = NIM_NIL;
			colontmpD__11 = elementType__ast_u5310(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
			colontmpD__12 = elementType__ast_u5310(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__11, colontmpD__12, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
			eqdestroy___ast_u3363(colontmpD__12);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__11);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA139_:;
			}
			{
				oldNimErrFin139_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__12);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__11);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin139_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		default:
		{
			tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__13;
			tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__14;
			colontmpD__13 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
			colontmpD__14 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
			{
				if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59))) goto LA145_;
				colontmpD__13 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				result = colontmpD__13;
			}
			goto LA143_;
LA145_: ;
			{
				colontmpD__14 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				result = colontmpD__14;
			}
LA143_: ;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59):
	{
		{
			if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59))) goto LA151_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA149_;
LA151_: ;
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA149_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53):
	{
		{
			NIM_BOOL T157_;
			tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ x_3;
			T157_ = (NIM_BOOL)0;
			T157_ = !(((*(*c_p0).c).matchedConcept == ((tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg*) NIM_NIL)));
			if (!(T157_)) goto LA158_;
			T157_ = ((*(*(*c_p0).c).matchedConcept).depth <= ((NI)4));
LA158_: ;
			if (!T157_) goto LA159_;
			(*(*(*c_p0).c).matchedConcept).depth += ((NI)1);
			x_3 = typeRel__sigmatch_u250(c_p0, a_1, f_p1, (flags_p3 | 1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) <= x_3)) goto LA163_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA163_: ;
		}
LA159_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61):
	{
		{
			if (!(((NI)0) < (*(*c_p0).c).inGenericContext)) goto LA168_;
			{
				if (!!((*c_p0).isNoCall)) goto LA172_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA170_;
LA172_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA170_: ;
		}
LA168_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	switch ((*f_p1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__15;
		colontmpD__15 = NIM_NIL;
		{
			NIM_BOOL T179_;
			T179_ = (NIM_BOOL)0;
			T179_ = ((*a_1).kind == (*f_p1).kind);
			if (!(T179_)) goto LA180_;
			T179_ = sameEnumTypes__types_u2054(f_p1, a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA180_: ;
			if (!T179_) goto LA181_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
		}
		goto LA177_;
LA181_: ;
		{
			NIM_BOOL T184_;
			colontmpD__15 = skipTypes__ast_u5358(a_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T184_ = (NIM_BOOL)0;
			T184_ = sameEnumTypes__types_u2054(f_p1, colontmpD__15);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T184_) goto LA185_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
		}
		goto LA177_;
LA185_: ;
LA177_: ;
		eqdestroy___ast_u3363(colontmpD__15);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)1):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__16;
		colontmpD__16 = NIM_NIL;
		{
			if (!((*a_1).kind == (*f_p1).kind)) goto LA190_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
		}
		goto LA188_;
LA190_: ;
		{
			colontmpD__16 = skipTypes__ast_u5358(a_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!((*colontmpD__16).kind == (*f_p1).kind)) goto LA193_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
		}
		goto LA188_;
LA193_: ;
LA188_: ;
		eqdestroy___ast_u3363(colontmpD__16);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__17;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__18;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__19;
			if (!((*a_1).kind == (*f_p1).kind)) goto LA198_;
			colontmpD__17 = NIM_NIL;
			colontmpD__18 = NIM_NIL;
			colontmpD__19 = NIM_NIL;
			{
				colontmpD__17 = base__ast_u5330(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA200_;
				if (!((*colontmpD__17).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0))) goto LA203_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				eqdestroy___ast_u3363(colontmpD__19);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__18);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__17);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA203_: ;
			colontmpD__18 = base__ast_u5330(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA200_;
			colontmpD__19 = base__ast_u5330(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA200_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__18, colontmpD__19, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA200_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_1;
				if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0) || result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8)))) goto LA207_;
				expectedType_1 = NIM_NIL;
				expectedType_1 = base__ast_u5330(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA209_;
				{
					NI i_5;
					NI res_1;
					i_5 = (NI)0;
					res_1 = ((NI)0);
					{
						while (1) {
							if (!(res_1 <= ((NI)1))) goto LA212;
							i_5 = ((NI) (res_1));
							{
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* r_1;
								if (!((*(*(*f_p1).n)._kind_6.sons.p->data[i_5]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)62))) goto LA215_;
								r_1 = NIM_NIL;
								r_1 = tryResolvingStaticExpr__sigmatch_u1816(c_p0, (*(*f_p1).n)._kind_6.sons.p->data[i_5], NIM_FALSE, NIM_FALSE, expectedType_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA217_;
								{
									if (!!((r_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA220_;
									eqsink___ast_u3246(&(*(*f_p1).n)._kind_6.sons.p->data[i_5], r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA217_;
									eqwasMoved___ast_u3234(&r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA217_;
								}
LA220_: ;
								{
									LA217_:;
								}
								{
									oldNimErrFin217_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3237(r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA209_;
									*nimErr_ = oldNimErrFin217_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA209_;
							}
LA215_: ;
							res_1 += ((NI)1);
						} LA212: ;
					}
				}
				result = typeRangeRel__sigmatch_u1288(f_p1, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA209_;
				{
					LA209_:;
				}
				{
					oldNimErrFin209_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(expectedType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA200_;
					*nimErr_ = oldNimErrFin209_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA200_;
			}
LA207_: ;
			{
				LA200_:;
			}
			{
				oldNimErrFin200_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__19);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__18);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__17);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin200_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA196_;
LA198_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_2;
			f_2 = NIM_NIL;
			f_2 = skipTypes__ast_u5358(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				NIM_BOOL T231_;
				NIM_BOOL T233_;
				T231_ = (NIM_BOOL)0;
				T231_ = ((*f_2).kind == (*a_1).kind);
				if (!(T231_)) goto LA232_;
				T233_ = (NIM_BOOL)0;
				T233_ = !(((*f_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14)));
				if (T233_) goto LA234_;
				T233_ = sameEnumTypes__types_u2054(f_2, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA234_: ;
				T231_ = T233_;
LA232_: ;
				if (!T231_) goto LA235_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2);
			}
			goto LA229_;
LA235_: ;
			{
				NIM_BOOL T238_;
				T238_ = (NIM_BOOL)0;
				T238_ = isConvertibleToRange__sigmatch_u856((*c_p0).c, f_2, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T238_) goto LA239_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA229_;
LA239_: ;
LA229_: ;
			eqdestroy___ast_u3363(f_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA196_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31):
	{
		tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg T242_;
		T242_ = (tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0;
		T242_ = targetSizeSignedToKind__types_u1287((*(*(*c_p0).c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		result = handleRange__sigmatch_u758((*c_p0).c, f_p1, a_1, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32), T242_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32):
	{
		result = handleRange__sigmatch_u758((*c_p0).c, f_p1, a_1, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32), ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)33):
	{
		result = handleRange__sigmatch_u758((*c_p0).c, f_p1, a_1, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32), ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)33));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)34):
	{
		result = handleRange__sigmatch_u758((*c_p0).c, f_p1, a_1, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32), ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)34));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35):
	{
		result = handleRange__sigmatch_u758((*c_p0).c, f_p1, a_1, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31), ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40):
	{
		tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg T248_;
		T248_ = (tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0;
		T248_ = targetSizeUnsignedToKind__types_u1290((*(*(*c_p0).c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		result = handleRange__sigmatch_u758((*c_p0).c, f_p1, a_1, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41), T248_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41):
	{
		result = handleRange__sigmatch_u758((*c_p0).c, f_p1, a_1, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41), ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)42):
	{
		result = handleRange__sigmatch_u758((*c_p0).c, f_p1, a_1, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41), ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)42));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)43):
	{
		result = handleRange__sigmatch_u758((*c_p0).c, f_p1, a_1, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41), ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)43));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44):
	{
		result = handleRange__sigmatch_u758((*c_p0).c, f_p1, a_1, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40), ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36):
	{
		result = handleFloatRange__sigmatch_u909(f_p1, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)37):
	{
		result = handleFloatRange__sigmatch_u909(f_p1, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)38):
	{
		result = handleFloatRange__sigmatch_u909(f_p1, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)39):
	{
		result = handleFloatRange__sigmatch_u909(f_p1, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	{
		tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw colontmpD__20;
		tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw colontmpD__21;
		tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw flags_2;
		nimZeroMem((void*)(&colontmpD__20), sizeof(tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw));
		nimZeroMem((void*)(&colontmpD__21), sizeof(tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw));
		{
			NIM_BOOL T260_;
			T260_ = (NIM_BOOL)0;
			T260_ = isOutParam__ast_u7626(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T260_) goto LA261_;
			colontmpD__20 = (flags_p3 | 8);
			flags_2 = colontmpD__20;
		}
		goto LA258_;
LA261_: ;
		{
			colontmpD__21 = flags_p3;
			flags_2 = colontmpD__21;
		}
LA258_: ;
		{
			NIM_BOOL T266_;
			NIM_BOOL T268_;
			NIM_BOOL T269_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__22;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__23;
			T266_ = (NIM_BOOL)0;
			T266_ = ((*aOrig_2).kind == (*f_p1).kind);
			if (!(T266_)) goto LA267_;
			T268_ = (NIM_BOOL)0;
			T268_ = isOutParam__ast_u7626(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T269_ = (NIM_BOOL)0;
			T269_ = isOutParam__ast_u7626(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T266_ = (T268_ == T269_);
LA267_: ;
			if (!T266_) goto LA270_;
			colontmpD__22 = NIM_NIL;
			colontmpD__23 = NIM_NIL;
			colontmpD__22 = base__ast_u5330(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA272_;
			colontmpD__23 = base__ast_u5330(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA272_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__22, colontmpD__23, flags_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA272_;
			{
				LA272_:;
			}
			{
				oldNimErrFin272_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__23);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__22);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin272_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA264_;
LA270_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__24;
			colontmpD__24 = NIM_NIL;
			colontmpD__24 = base__ast_u5330(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA276_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__24, aOrig_2, (flags_2 | 2));
			if (NIM_UNLIKELY(*nimErr_)) goto LA276_;
			{
				LA276_:;
			}
			{
				oldNimErrFin276_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__24);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin276_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA264_: ;
		switch (result) {
		case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2):
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		}
		break;
		case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)4):
		{
		}
		break;
		case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__25;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__26;
			colontmpD__25 = NIM_NIL;
			colontmpD__26 = NIM_NIL;
			{
				colontmpD__25 = last__ast_u5257(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				colontmpD__26 = skipTypes__ast_u5358(colontmpD__25, TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!!(((*colontmpD__26).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27)))) goto LA284_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA284_: ;
			eqdestroy___ast_u3363(colontmpD__26);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__25);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__27;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__28;
			colontmpD__27 = NIM_NIL;
			colontmpD__28 = NIM_NIL;
			{
				colontmpD__27 = last__ast_u5257(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				colontmpD__28 = skipTypes__ast_u5358(colontmpD__27, TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!((*colontmpD__28).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*colontmpD__28).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21) || (*colontmpD__28).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*colontmpD__28).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47) || (*colontmpD__28).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45))) goto LA289_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA289_: ;
			eqdestroy___ast_u3363(colontmpD__28);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__27);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__29;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__30;
			if (!((*aOrig_2).kind == (*f_p1).kind)) goto LA295_;
			colontmpD__29 = NIM_NIL;
			colontmpD__30 = NIM_NIL;
			colontmpD__29 = base__ast_u5330(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA297_;
			colontmpD__30 = base__ast_u5330(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA297_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__29, colontmpD__30, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA297_;
			{
				LA297_:;
			}
			{
				oldNimErrFin297_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__30);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__29);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin297_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA293_;
LA295_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__31;
			colontmpD__31 = NIM_NIL;
			colontmpD__31 = base__ast_u5330(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA301_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__31, aOrig_2, (flags_p3 | 2));
			if (NIM_UNLIKELY(*nimErr_)) goto LA301_;
			{
				LA301_:;
			}
			{
				oldNimErrFin301_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__31);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin301_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA293_: ;
		switch (result) {
		case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2):
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		}
		break;
		case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)4):
		{
		}
		break;
		case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__32;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__33;
			colontmpD__32 = NIM_NIL;
			colontmpD__33 = NIM_NIL;
			{
				colontmpD__32 = last__ast_u5257(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				colontmpD__33 = skipTypes__ast_u5358(colontmpD__32, TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!!(((*colontmpD__33).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27)))) goto LA309_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA309_: ;
			eqdestroy___ast_u3363(colontmpD__33);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__32);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__34;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__35;
			colontmpD__34 = NIM_NIL;
			colontmpD__35 = NIM_NIL;
			{
				colontmpD__34 = last__ast_u5257(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				colontmpD__35 = skipTypes__ast_u5358(colontmpD__34, TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!((*colontmpD__35).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*colontmpD__35).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21) || (*colontmpD__35).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*colontmpD__35).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47) || (*colontmpD__35).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45))) goto LA314_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA314_: ;
			eqdestroy___ast_u3363(colontmpD__35);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__34);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T318_;
		T318_ = NIM_NIL;
		T318_ = reduceToBase__types_u4283(a_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T318_); goto LA1_;}
		eqsink___ast_u3372(&a_1, T318_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fRange_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aRange_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__36;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__37;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16))) goto LA321_;
			fRange_1 = NIM_NIL;
			aRange_1 = NIM_NIL;
			ff_1 = NIM_NIL;
			aa_1 = NIM_NIL;
			colontmpD__36 = NIM_NIL;
			colontmpD__37 = NIM_NIL;
			fRange_1 = indexType__ast_u5324(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
			aRange_1 = indexType__ast_u5324(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prev_3;
				if (!((*fRange_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12) || (*fRange_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59))) goto LA326_;
				prev_3 = NIM_NIL;
				prev_3 = lookup__layeredtable_u1015((*c_p0).bindings, (*fRange_1).itemId);
				if (NIM_UNLIKELY(*nimErr_)) goto LA328_;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__38;
					if (!(prev_3 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA331_;
					colontmpD__38 = NIM_NIL;
					{
						tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T336_;
						tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T337_;
						T336_ = 0;
						T337_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
						T337_ = typeRel__sigmatch_u250(c_p0, fRange_1, aRange_1, T336_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA333_;
						if (!(T337_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA338_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
						eqdestroy___ast_u3363(colontmpD__38);
						if (NIM_UNLIKELY(*nimErr_)) goto LA328_;
						eqdestroy___ast_u3363(prev_3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
						eqdestroy___ast_u3363(colontmpD__37);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(colontmpD__36);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(aa_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(ff_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(aRange_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(fRange_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(aOrig_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA338_: ;
					colontmpD__38 = indexType__ast_u5324(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA333_;
					put__sigmatch_u246(c_p0, fRange_1, colontmpD__38);
					if (NIM_UNLIKELY(*nimErr_)) goto LA333_;
					eqcopy___ast_u3366(&fRange_1, a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA333_;
					{
						LA333_:;
					}
					{
						oldNimErrFin333_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__38);
						if (NIM_UNLIKELY(*nimErr_)) goto LA328_;
						*nimErr_ = oldNimErrFin333_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA328_;
				}
				goto LA329_;
LA331_: ;
				{
					eqsink___ast_u3372(&fRange_1, prev_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA328_;
					eqwasMoved___ast_u3360(&prev_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA328_;
				}
LA329_: ;
				{
					LA328_:;
				}
				{
					oldNimErrFin328_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(prev_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
					*nimErr_ = oldNimErrFin328_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
			}
LA326_: ;
			ff_1 = skipTypes__ast_u5358((*f_p1).sons.p->data[((NI)1)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_18);
			if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
			eqcopy___ast_u3366(&aa_1, (*a_1).sons.p->data[((NI)1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
			{
				NIM_BOOL T347_;
				T347_ = (NIM_BOOL)0;
				colontmpD__36 = indexType__ast_u5324(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
				T347_ = !(((*colontmpD__36).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12)));
				if (!(T347_)) goto LA348_;
				T347_ = ((*aa_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3));
LA348_: ;
				if (!T347_) goto LA349_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
			goto LA345_;
LA349_: ;
			{
				result = typeRel__sigmatch_u250(c_p0, ff_1, aa_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
			}
LA345_: ;
			{
				if (!(result < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA354_;
				{
					NIM_BOOL T358_;
					NIM_BOOL T359_;
					NIM_BOOL T360_;
					T358_ = (NIM_BOOL)0;
					T359_ = (NIM_BOOL)0;
					T360_ = (NIM_BOOL)0;
					T360_ = NIM_FALSE;
					if (!(T360_)) goto LA361_;
					T360_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)1)))&7U)))!=0));
LA361_: ;
					T359_ = T360_;
					if (!(T359_)) goto LA362_;
					T359_ = ((*ff_1).kind == (*aa_1).kind);
LA362_: ;
					T358_ = T359_;
					if (!(T358_)) goto LA363_;
					T358_ = isCovariantPtr__sigmatch_u1962(c_p0, ff_1, aa_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
LA363_: ;
					if (!T358_) goto LA364_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
				}
				goto LA356_;
LA364_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
					eqdestroy___ast_u3363(colontmpD__37);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD__36);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(aa_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(ff_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(aRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(fRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA356_: ;
			}
LA354_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__39;
				if (!(((*fRange_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0)) goto LA369_;
				colontmpD__39 = NIM_NIL;
				{
					NIM_BOOL T374_;
					NIM_BOOL T375_;
					NIM_BOOL T378_;
					T374_ = (NIM_BOOL)0;
					T375_ = (NIM_BOOL)0;
					T375_ = ((*aRange_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
					if (!(T375_)) goto LA376_;
					colontmpD__39 = reduceToBase__types_u4283(aRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA371_;
					T375_ = (colontmpD__39 == aRange_1);
LA376_: ;
					T374_ = T375_;
					if (T374_) goto LA377_;
					T378_ = (NIM_BOOL)0;
					T378_ = ((*aRange_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20));
					if (!(T378_)) goto LA379_;
					T378_ = (((*aRange_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0);
LA379_: ;
					T374_ = T378_;
LA377_: ;
					if (!T374_) goto LA380_;
					eqdestroy___ast_u3363(colontmpD__39);
					if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
					eqdestroy___ast_u3363(colontmpD__37);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD__36);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(aa_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(ff_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(aRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(fRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA380_: ;
				result = inferStaticsInRange__sigmatch_u1929(c_p0, fRange_1, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA371_;
				eqdestroy___ast_u3363(colontmpD__39);
				if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
				eqdestroy___ast_u3363(colontmpD__37);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__36);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(aa_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(ff_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(aRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(fRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
				{
					LA371_:;
				}
				{
					oldNimErrFin371_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__39);
					if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
					*nimErr_ = oldNimErrFin371_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
			}
			goto LA367_;
LA369_: ;
			{
				NIM_BOOL T385_;
				T385_ = (NIM_BOOL)0;
				T385_ = !(((*(*c_p0).c).matchedConcept == ((tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg*) NIM_NIL)));
				if (!(T385_)) goto LA386_;
				T385_ = (((*aRange_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0);
LA386_: ;
				if (!T385_) goto LA387_;
				result = inferStaticsInRange__sigmatch_u1929(c_p0, aRange_1, f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
				eqdestroy___ast_u3363(colontmpD__37);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__36);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(aa_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(ff_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(aRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(fRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA367_;
LA387_: ;
			{
				NIM_BOOL T390_;
				T390_ = (NIM_BOOL)0;
				T390_ = (result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8));
				if (!(T390_)) goto LA391_;
				colontmpD__37 = concreteType__sigmatch_u733((&(*c_p0)), aa_1, ff_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
				T390_ = (colontmpD__37 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA391_: ;
				if (!T390_) goto LA392_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3363(colontmpD__37);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__36);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(aa_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(ff_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(aRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(fRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA367_;
LA392_: ;
			{
				{
					tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T397_;
					tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T398_;
					NIM_BOOL T399_;
					T397_ = lengthOrd__types_u1486((*(*(*c_p0).c).graph).config, fRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
					T398_ = lengthOrd__types_u1486((*(*(*c_p0).c).graph).config, aRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
					T399_ = (NIM_BOOL)0;
					T399_ = eqeq___int128_u412(T397_, T398_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA323_;
					if (!!(T399_)) goto LA400_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA400_: ;
			}
LA367_: ;
			{
				LA323_:;
			}
			{
				oldNimErrFin323_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__37);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__36);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(aa_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(ff_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(aRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(fRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin323_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA321_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48):
	{
		{
			if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48))) goto LA407_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__40;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__41;
				if (!(((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)0)))&63U)))!=0)) goto LA411_;
				colontmpD__40 = NIM_NIL;
				colontmpD__41 = NIM_NIL;
				colontmpD__40 = base__ast_u5330(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA413_;
				colontmpD__41 = elementType__ast_u5310(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA413_;
				result = typeRel__sigmatch_u250(c_p0, colontmpD__40, colontmpD__41, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA413_;
				eqdestroy___ast_u3363(colontmpD__41);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__40);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
				{
					LA413_:;
				}
				{
					oldNimErrFin413_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__41);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD__40);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin413_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA411_: ;
			{
				if (!((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7))) goto LA418_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA418_: ;
		}
LA407_: ;
		switch ((*a_1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__42;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__43;
			colontmpD__42 = NIM_NIL;
			colontmpD__43 = NIM_NIL;
			colontmpD__42 = base__ast_u5330(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA421_;
			colontmpD__43 = base__ast_u5330(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA421_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__42, colontmpD__43, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA421_;
			{
				if (!(result < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA424_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA424_: ;
			{
				LA421_:;
			}
			{
				oldNimErrFin421_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__43);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__42);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin421_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__44;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ffX60gensym388__1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aaX60gensym388__1;
			tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ baseRelX60gensym388__1;
			colontmpD__44 = NIM_NIL;
			ffX60gensym388__1 = NIM_NIL;
			aaX60gensym388__1 = NIM_NIL;
			{
				NIM_BOOL T432_;
				T432_ = (NIM_BOOL)0;
				T432_ = !(((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12)));
				if (!(T432_)) goto LA433_;
				colontmpD__44 = elementType__ast_u5310(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA429_;
				T432_ = ((*colontmpD__44).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3));
LA433_: ;
				if (!T432_) goto LA434_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
				eqdestroy___ast_u3363(aaX60gensym388__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(ffX60gensym388__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__44);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA434_: ;
			ffX60gensym388__1 = base__ast_u5330(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA429_;
			aaX60gensym388__1 = elementType__ast_u5310(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA429_;
			baseRelX60gensym388__1 = typeRel__sigmatch_u250(c_p0, ffX60gensym388__1, aaX60gensym388__1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA429_;
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) <= baseRelX60gensym388__1)) goto LA438_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA436_;
LA438_: ;
			{
				NIM_BOOL T441_;
				NIM_BOOL T442_;
				NIM_BOOL T443_;
				T441_ = (NIM_BOOL)0;
				T442_ = (NIM_BOOL)0;
				T443_ = (NIM_BOOL)0;
				T443_ = NIM_FALSE;
				if (!(T443_)) goto LA444_;
				T443_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)1)))&7U)))!=0));
LA444_: ;
				T442_ = T443_;
				if (!(T442_)) goto LA445_;
				T442_ = ((*ffX60gensym388__1).kind == (*aaX60gensym388__1).kind);
LA445_: ;
				T441_ = T442_;
				if (!(T441_)) goto LA446_;
				T441_ = isCovariantPtr__sigmatch_u1962(c_p0, ffX60gensym388__1, aaX60gensym388__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA429_;
LA446_: ;
				if (!T441_) goto LA447_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA436_;
LA447_: ;
LA436_: ;
			{
				LA429_:;
			}
			{
				oldNimErrFin429_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(aaX60gensym388__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(ffX60gensym388__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__44);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin429_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__45;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ffX60gensym393__1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aaX60gensym393__1;
			tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ baseRelX60gensym393__1;
			colontmpD__45 = NIM_NIL;
			ffX60gensym393__1 = NIM_NIL;
			aaX60gensym393__1 = NIM_NIL;
			{
				NIM_BOOL T455_;
				T455_ = (NIM_BOOL)0;
				T455_ = !(((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12)));
				if (!(T455_)) goto LA456_;
				colontmpD__45 = elementType__ast_u5310(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA452_;
				T455_ = ((*colontmpD__45).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3));
LA456_: ;
				if (!T455_) goto LA457_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
				eqdestroy___ast_u3363(aaX60gensym393__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(ffX60gensym393__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__45);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA457_: ;
			ffX60gensym393__1 = base__ast_u5330(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA452_;
			aaX60gensym393__1 = elementType__ast_u5310(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA452_;
			baseRelX60gensym393__1 = typeRel__sigmatch_u250(c_p0, ffX60gensym393__1, aaX60gensym393__1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA452_;
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) <= baseRelX60gensym393__1)) goto LA461_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA459_;
LA461_: ;
			{
				NIM_BOOL T464_;
				NIM_BOOL T465_;
				NIM_BOOL T466_;
				T464_ = (NIM_BOOL)0;
				T465_ = (NIM_BOOL)0;
				T466_ = (NIM_BOOL)0;
				T466_ = NIM_FALSE;
				if (!(T466_)) goto LA467_;
				T466_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)1)))&7U)))!=0));
LA467_: ;
				T465_ = T466_;
				if (!(T465_)) goto LA468_;
				T465_ = ((*ffX60gensym393__1).kind == (*aaX60gensym393__1).kind);
LA468_: ;
				T464_ = T465_;
				if (!(T464_)) goto LA469_;
				T464_ = isCovariantPtr__sigmatch_u1962(c_p0, ffX60gensym393__1, aaX60gensym393__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA452_;
LA469_: ;
				if (!T464_) goto LA470_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA459_;
LA470_: ;
LA459_: ;
			{
				LA452_:;
			}
			{
				oldNimErrFin452_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(aaX60gensym393__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(ffX60gensym393__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__45);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin452_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28):
		{
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__46;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__47;
				if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27))) goto LA477_;
				colontmpD__46 = NIM_NIL;
				colontmpD__47 = NIM_NIL;
				{
					if (!((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2))) goto LA482_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
				}
				goto LA480_;
LA482_: ;
				{
					NIM_BOOL T485_;
					NIM_BOOL T486_;
					NI T488_;
					tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T490_;
					T485_ = (NIM_BOOL)0;
					T486_ = (NIM_BOOL)0;
					T486_ = ((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
					if (!(T486_)) goto LA487_;
					T488_ = (NI)0;
					T488_ = len__ast_u5481(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA479_;
					T486_ = (((NI)0) < T488_);
LA487_: ;
					T485_ = T486_;
					if (!(T485_)) goto LA489_;
					colontmpD__46 = base__ast_u5330(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA479_;
					colontmpD__47 = base__ast_u5330(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA479_;
					T490_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
					T490_ = typeRel__sigmatch_u250(c_p0, colontmpD__46, colontmpD__47, flags_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA479_;
					T485_ = (((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) <= T490_);
LA489_: ;
					if (!T485_) goto LA491_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
				}
				goto LA480_;
LA491_: ;
LA480_: ;
				{
					LA479_:;
				}
				{
					oldNimErrFin479_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__47);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD__46);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin479_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA477_: ;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__48;
			if (!((*a_1).kind == (*f_p1).kind)) goto LA499_;
			colontmpD__48 = NIM_NIL;
			{
				NIM_BOOL T504_;
				T504_ = (NIM_BOOL)0;
				T504_ = !(((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12)));
				if (!(T504_)) goto LA505_;
				colontmpD__48 = elementType__ast_u5310(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA501_;
				T504_ = ((*colontmpD__48).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3));
LA505_: ;
				if (!T504_) goto LA506_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
			}
			goto LA502_;
LA506_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_2;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_2;
				ff_2 = NIM_NIL;
				aa_2 = NIM_NIL;
				eqcopy___ast_u3366(&ff_2, (*f_p1).sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA509_;
				aa_2 = elementType__ast_u5310(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA509_;
				result = typeRel__sigmatch_u250(c_p0, ff_2, aa_2, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA509_;
				{
					if (!(result < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA512_;
					{
						NIM_BOOL T516_;
						NIM_BOOL T517_;
						NIM_BOOL T518_;
						T516_ = (NIM_BOOL)0;
						T517_ = (NIM_BOOL)0;
						T518_ = (NIM_BOOL)0;
						T518_ = NIM_FALSE;
						if (!(T518_)) goto LA519_;
						T518_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)1)))&7U)))!=0));
LA519_: ;
						T517_ = T518_;
						if (!(T517_)) goto LA520_;
						T517_ = ((*ff_2).kind == (*aa_2).kind);
LA520_: ;
						T516_ = T517_;
						if (!(T516_)) goto LA521_;
						T516_ = isCovariantPtr__sigmatch_u1962(c_p0, ff_2, aa_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA509_;
LA521_: ;
						if (!T516_) goto LA522_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
					}
					goto LA514_;
LA522_: ;
					{
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
					}
LA514_: ;
				}
LA512_: ;
				{
					LA509_:;
				}
				{
					oldNimErrFin509_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(aa_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA501_;
					eqdestroy___ast_u3363(ff_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA501_;
					*nimErr_ = oldNimErrFin509_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA501_;
			}
LA502_: ;
			{
				LA501_:;
			}
			{
				oldNimErrFin501_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__48);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin501_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA497_;
LA499_: ;
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5))) goto LA530_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		}
		goto LA497_;
LA530_: ;
LA497_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15):
	{
		{
			NIM_BOOL T535_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_4;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T539_;
			T535_ = (NIM_BOOL)0;
			T535_ = isOrdinalType__types_u279(a_1, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T535_) goto LA536_;
			x_4 = NIM_NIL;
			T539_ = NIM_NIL;
			{
				if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15))) goto LA542_;
				x_4 = elementType__ast_u5310(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA538_;
			}
			goto LA540_;
LA542_: ;
			{
				x_4 = a_1;
				eqwasMoved___ast_u3360(&a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA538_;
			}
LA540_: ;
			{
				if (!((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0))) goto LA547_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
			goto LA545_;
LA547_: ;
			{
				result = typeRel__sigmatch_u250(c_p0, (*f_p1).sons.p->data[((NI)0)], x_4, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA538_;
				{
					if (!(result < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA552_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA552_: ;
			}
LA545_: ;
			{
				LA538_:;
			}
			{
				oldNimErrFin538_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(x_4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin538_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA533_;
LA536_: ;
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA557_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
		}
		goto LA533_;
LA557_: ;
LA533_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)30):
	{
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T565_;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45))) goto LA563_;
			T565_ = NIM_NIL;
			T565_ = skipTypes__ast_u5358(a_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_33);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T565_); goto LA1_;}
			eqsink___ast_u3372(&a_1, T565_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA563_: ;
		{
			if (!((*a_1).kind == (*f_p1).kind)) goto LA568_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
		}
LA568_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
	{
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18))) goto LA573_;
			result = recordRel__sigmatch_u1127(c_p0, f_p1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA573_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* effectiveArgType_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T577_;
		effectiveArgType_1 = NIM_NIL;
		T577_ = NIM_NIL;
		{
			if (!useTypeLoweringRuleInTypeClass_1) goto LA580_;
			effectiveArgType_1 = a_1;
			eqwasMoved___ast_u3360(&a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA576_;
		}
		goto LA578_;
LA580_: ;
		{
			effectiveArgType_1 = reduceToBase__types_u4283(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA576_;
		}
LA578_: ;
		{
			if (!((*effectiveArgType_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17))) goto LA585_;
			{
				NIM_BOOL T589_;
				T589_ = (NIM_BOOL)0;
				T589_ = sameObjectTypes__types_u2001(f_p1, effectiveArgType_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA576_;
				if (!T589_) goto LA590_;
				{
					if (!!((((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)2)))&63U)))!=0))) goto LA594_;
					(*c_p0).inheritancePenalty += ((*c_p0).inheritancePenalty < ((NI)0));
				}
LA594_: ;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			}
			goto LA587_;
LA590_: ;
			{
				NI depth_1;
				if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)3)))&7U)))!=0))) goto LA597_;
				depth_1 = isObjectSubtype__sigmatch_u978(c_p0, effectiveArgType_1, f_p1, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto LA576_;
				{
					if (!(((NI)0) < depth_1)) goto LA601_;
					(*c_p0).inheritancePenalty += (NI)(depth_1 + ((*c_p0).inheritancePenalty < ((NI)0)));
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
				}
LA601_: ;
			}
			goto LA587_;
LA597_: ;
LA587_: ;
		}
LA585_: ;
		{
			LA576_:;
		}
		{
			oldNimErrFin576_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(effectiveArgType_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin576_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T606_;
		T606_ = NIM_NIL;
		T606_ = skipTypes__ast_u5358(a_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_34);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T606_); goto LA1_;}
		eqsink___ast_u3372(&a_1, T606_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13))) goto LA609_;
			{
				NIM_BOOL T613_;
				T613_ = (NIM_BOOL)0;
				T613_ = sameDistinctTypes__types_u2050(f_p1, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T613_) goto LA614_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			}
			goto LA611_;
LA614_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__49;
				if (!(*c_p0).coerceDistincts) goto LA617_;
				colontmpD__49 = NIM_NIL;
				colontmpD__49 = base__ast_u5330(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA619_;
				result = typeRel__sigmatch_u250(c_p0, colontmpD__49, a_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA619_;
				{
					LA619_:;
				}
				{
					oldNimErrFin619_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__49);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin619_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			goto LA611_;
LA617_: ;
LA611_: ;
		}
		goto LA607_;
LA609_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__50;
			if (!(*c_p0).coerceDistincts) goto LA623_;
			colontmpD__50 = NIM_NIL;
			colontmpD__50 = base__ast_u5330(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA625_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__50, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA625_;
			{
				LA625_:;
			}
			{
				oldNimErrFin625_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__50);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin625_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA607_;
LA623_: ;
LA607_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
	{
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19))) goto LA631_;
			{
				NIM_BOOL T635_;
				T635_ = (NIM_BOOL)0;
				T635_ = !(((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12)));
				if (!(T635_)) goto LA636_;
				T635_ = ((*(*a_1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3));
LA636_: ;
				if (!T635_) goto LA637_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
			}
			goto LA633_;
LA637_: ;
			{
				result = typeRel__sigmatch_u250(c_p0, (*f_p1).sons.p->data[((NI)0)], (*a_1).sons.p->data[((NI)0)], flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				{
					if (!(result < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA642_;
					{
						if (!!((((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)43)))&63U)))!=0))) goto LA646_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
					}
					goto LA644_;
LA646_: ;
					{
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
					}
LA644_: ;
				}
LA642_: ;
			}
LA633_: ;
		}
LA631_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T650_;
		T650_ = NIM_NIL;
		T650_ = reduceToBase__types_u4283(a_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T650_); goto LA1_;}
		eqsink___ast_u3372(&a_1, T650_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__51;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__52;
			if (!((*a_1).kind == (*f_p1).kind)) goto LA653_;
			colontmpD__51 = NIM_NIL;
			colontmpD__52 = NIM_NIL;
			{
				NI T658_;
				NI T659_;
				T658_ = (NI)0;
				T658_ = len__ast_u5481(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
				T659_ = (NI)0;
				T659_ = len__ast_u5481(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
				if (!(T658_ < T659_)) goto LA660_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3363(colontmpD__52);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__51);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA660_: ;
			{
				NI i_6;
				NI colontmp__3;
				NI T663_;
				NI i_7;
				i_6 = (NI)0;
				colontmp__3 = (NI)0;
				T663_ = (NI)0;
				T663_ = len__ast_u5481(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
				colontmp__3 = (NI)(T663_ - ((NI)1));
				i_7 = ((NI)0);
				{
					while (1) {
						if (!(i_7 < colontmp__3)) goto LA665;
						i_6 = i_7;
						{
							tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T668_;
							T668_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
							T668_ = typeRel__sigmatch_u250(c_p0, (*f_p1).sons.p->data[i_6], (*a_1).sons.p->data[i_6], flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
							if (!(T668_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA669_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
							eqdestroy___ast_u3363(colontmpD__52);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3363(colontmpD__51);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3363(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(aOrig_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA669_: ;
						i_7 += ((NI)1);
					} LA665: ;
				}
			}
			colontmpD__51 = elementType__ast_u5310(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
			colontmpD__52 = elementType__ast_u5310(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__51, colontmpD__52, (flags_p3 | 2));
			if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
			switch (result) {
			case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2):
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
			break;
			case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)4):
			{
			}
			break;
			case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__53;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__54;
				colontmpD__53 = NIM_NIL;
				colontmpD__54 = NIM_NIL;
				{
					colontmpD__53 = last__ast_u5257(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
					colontmpD__54 = skipTypes__ast_u5358(colontmpD__53, TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
					if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
					if (!!(((*colontmpD__54).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27)))) goto LA676_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA676_: ;
				eqdestroy___ast_u3363(colontmpD__54);
				if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
				eqdestroy___ast_u3363(colontmpD__53);
				if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
			}
			break;
			case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__55;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__56;
				colontmpD__55 = NIM_NIL;
				colontmpD__56 = NIM_NIL;
				{
					colontmpD__55 = last__ast_u5257(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
					colontmpD__56 = skipTypes__ast_u5358(colontmpD__55, TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
					if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
					if (!((*colontmpD__56).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*colontmpD__56).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21) || (*colontmpD__56).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*colontmpD__56).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47) || (*colontmpD__56).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45))) goto LA681_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA681_: ;
				eqdestroy___ast_u3363(colontmpD__56);
				if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
				eqdestroy___ast_u3363(colontmpD__55);
				if (NIM_UNLIKELY(*nimErr_)) goto LA655_;
			}
			break;
			default:
			{
			}
			break;
			}
			{
				if (!(result <= ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2))) goto LA686_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
			goto LA684_;
LA686_: ;
			{
				NIM_BOOL T689_;
				T689_ = (NIM_BOOL)0;
				T689_ = (((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0);
				if (!(T689_)) goto LA690_;
				T689_ = !((((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0));
LA690_: ;
				if (!T689_) goto LA691_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA684_;
LA691_: ;
LA684_: ;
			{
				LA655_:;
			}
			{
				oldNimErrFin655_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__52);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__51);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin655_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA651_;
LA653_: ;
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5))) goto LA696_;
			result = allowsNil__sigmatch_u1185(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA651_;
LA696_: ;
		{
		}
LA651_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T704_;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45))) goto LA702_;
			T704_ = NIM_NIL;
			T704_ = skipTypes__ast_u5358(a_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_33);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T704_); goto LA1_;}
			eqsink___ast_u3372(&a_1, T704_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA702_: ;
		result = procTypeRel__sigmatch_u1237(c_p0, f_p1, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			NIM_BOOL T707_;
			NIM_BOOL T708_;
			T707_ = (NIM_BOOL)0;
			T708_ = (NIM_BOOL)0;
			T708_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
			if (!(T708_)) goto LA709_;
			T708_ = (((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0);
LA709_: ;
			T707_ = T708_;
			if (!(T707_)) goto LA710_;
			T707_ = !((((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0));
LA710_: ;
			if (!T707_) goto LA711_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
		}
LA711_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
	{
		switch ((*a_1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__57;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__58;
			colontmpD__57 = NIM_NIL;
			colontmpD__58 = NIM_NIL;
			colontmpD__57 = skipModifier__ast_u5317(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA715_;
			colontmpD__58 = skipModifier__ast_u5317(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA715_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__57, colontmpD__58, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA715_;
			{
				LA715_:;
			}
			{
				oldNimErrFin715_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__58);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__57);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin715_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
		{
			result = allowsNil__sigmatch_u1185(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)26):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T725_;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45))) goto LA723_;
			T725_ = NIM_NIL;
			T725_ = skipTypes__ast_u5358(a_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_33);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T725_); goto LA1_;}
			eqsink___ast_u3372(&a_1, T725_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA723_: ;
		switch ((*a_1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)26):
		{
			{
				NIM_BOOL T729_;
				T729_ = (NIM_BOOL)0;
				T729_ = (((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0);
				if (!(T729_)) goto LA730_;
				T729_ = !((((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0));
LA730_: ;
				if (!T729_) goto LA731_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA727_;
LA731_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			}
LA727_: ;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
		{
			result = allowsNil__sigmatch_u1185(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
		{
			{
				NIM_BOOL T738_;
				T738_ = (NIM_BOOL)0;
				T738_ = isDefined__options_u958((*(*(*c_p0).c).graph).config, TM__EV5hHJmjIY9cla9b9be7fSVJQ_36);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T738_) goto LA739_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
			goto LA736_;
LA739_: ;
			{
				{
					if (!!(((*a_1).callConv == ((tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ)9)))) goto LA744_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
				}
LA744_: ;
			}
LA736_: ;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
		{
			{
				NI T749_;
				T749_ = (NI)0;
				T749_ = len__ast_u5481(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!(T749_ == ((NI)1))) goto LA750_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
LA750_: ;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29):
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28):
	{
		switch ((*a_1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28):
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29):
	{
		switch ((*a_1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29):
		{
			{
				NIM_BOOL T762_;
				T762_ = (NIM_BOOL)0;
				T762_ = (((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0);
				if (!(T762_)) goto LA763_;
				T762_ = !((((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0));
LA763_: ;
				if (!T762_) goto LA764_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA760_;
LA764_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			}
LA760_: ;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
		{
			result = allowsNil__sigmatch_u1185(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28):
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
		{
			{
				NIM_BOOL T772_;
				T772_ = (NIM_BOOL)0;
				T772_ = isDefined__options_u958((*(*(*c_p0).c).graph).config, TM__EV5hHJmjIY9cla9b9be7fSVJQ_38);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T772_) goto LA773_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
			goto LA770_;
LA773_: ;
			{
				{
					NI T778_;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* pointsTo_1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__59;
					T778_ = (NI)0;
					T778_ = len__ast_u5481(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if (!(T778_ == ((NI)1))) goto LA779_;
					pointsTo_1 = NIM_NIL;
					colontmpD__59 = NIM_NIL;
					pointsTo_1 = skipTypes__ast_u5358((*a_1).sons.p->data[((NI)0)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
					if (NIM_UNLIKELY(*nimErr_)) goto LA781_;
					{
						if (!((*pointsTo_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2))) goto LA784_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
					}
					goto LA782_;
LA784_: ;
					{
						NIM_BOOL T787_;
						T787_ = (NIM_BOOL)0;
						T787_ = ((*pointsTo_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49));
						if (!(T787_)) goto LA788_;
						T787_ = ((*(*pointsTo_1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2));
LA788_: ;
						if (!T787_) goto LA789_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
					}
					goto LA782_;
LA789_: ;
					{
						NIM_BOOL T792_;
						NIM_BOOL T793_;
						NIM_BOOL T794_;
						tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T796_;
						T792_ = (NIM_BOOL)0;
						T793_ = (NIM_BOOL)0;
						T794_ = (NIM_BOOL)0;
						T794_ = ((*pointsTo_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16));
						if (!(T794_)) goto LA795_;
						T796_ = firstOrd__types_u1181(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), (*pointsTo_1).sons.p->data[((NI)0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA781_;
						T794_ = eqeq___int128_u980(T796_, IL64(0));
						if (NIM_UNLIKELY(*nimErr_)) goto LA781_;
LA795_: ;
						T793_ = T794_;
						if (!(T793_)) goto LA797_;
						colontmpD__59 = skipTypes__ast_u5358((*pointsTo_1).sons.p->data[((NI)0)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
						if (NIM_UNLIKELY(*nimErr_)) goto LA781_;
						T793_ = ((*colontmpD__59).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) && (*colontmpD__59).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35));
LA797_: ;
						T792_ = T793_;
						if (!(T792_)) goto LA798_;
						T792_ = ((*(*pointsTo_1).sons.p->data[((NI)1)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2));
LA798_: ;
						if (!T792_) goto LA799_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
					}
					goto LA782_;
LA799_: ;
LA782_: ;
					{
						LA781_:;
					}
					{
						oldNimErrFin781_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__59);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(pointsTo_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin781_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA779_: ;
			}
LA770_: ;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63):
	{
		{
			if (!((*a_1).kind == (*f_p1).kind)) goto LA807_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
		}
LA807_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__60;
		colontmpD__60 = NIM_NIL;
		colontmpD__60 = skipModifier__ast_u5317(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA810_;
		result = typeRel__sigmatch_u250(c_p0, colontmpD__60, a_1, flags_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA810_;
		{
			LA810_:;
		}
		{
			oldNimErrFin810_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__60);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin810_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)64):
	{
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)64))) goto LA816_;
			{
				NI T820_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__61;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__62;
				T820_ = (NI)0;
				T820_ = len__ast_u5481(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!(T820_ == ((NI)1))) goto LA821_;
				colontmpD__61 = NIM_NIL;
				colontmpD__62 = NIM_NIL;
				colontmpD__61 = skipModifier__ast_u5317(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA823_;
				colontmpD__62 = skipModifier__ast_u5317(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA823_;
				result = typeRel__sigmatch_u250(c_p0, colontmpD__61, colontmpD__62, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA823_;
				{
					LA823_:;
				}
				{
					oldNimErrFin823_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__62);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD__61);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin823_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			goto LA818_;
LA821_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
LA818_: ;
		}
		goto LA814_;
LA816_: ;
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		}
LA814_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prev_4;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* origF_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_3;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__63;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__64;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* roota_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* rootf_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T830_;
		NI deptha_1;
		NI depthf_1;
		NIM_BOOL skipBoth_1;
		NIM_BOOL T836_;
		NIM_BOOL T838_;
		NIM_BOOL T839_;
		NI T840_;
		NI T842_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T844_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T852_;
		prev_4 = NIM_NIL;
		origF_1 = NIM_NIL;
		f_3 = NIM_NIL;
		colontmpD__63 = NIM_NIL;
		colontmpD__64 = NIM_NIL;
		roota_1 = NIM_NIL;
		rootf_1 = NIM_NIL;
		prev_4 = lookup__layeredtable_u1015((*c_p0).bindings, (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		eqcopy___ast_u3366(&origF_1, f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		T830_ = NIM_NIL;
		{
			if (!(prev_4 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA833_;
			eqcopy___ast_u3366(&f_3, f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		}
		goto LA831_;
LA833_: ;
		{
			eqcopy___ast_u3366(&f_3, prev_4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		}
LA831_: ;
		deptha_1 = genericAliasDepth__types_u2136(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		depthf_1 = genericAliasDepth__types_u2136(f_3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		T836_ = (NIM_BOOL)0;
		T836_ = (deptha_1 == depthf_1);
		if (!(T836_)) goto LA837_;
		T838_ = (NIM_BOOL)0;
		T839_ = (NIM_BOOL)0;
		T840_ = (NI)0;
		T840_ = len__ast_u5481(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		T839_ = (((NI)0) < T840_);
		if (!(T839_)) goto LA841_;
		T842_ = (NI)0;
		T842_ = len__ast_u5481(f_3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		T839_ = (((NI)0) < T842_);
LA841_: ;
		T838_ = T839_;
		if (!(T838_)) goto LA843_;
		colontmpD__63 = base__ast_u5330(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		colontmpD__64 = base__ast_u5330(f_3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		T838_ = !((colontmpD__63 == colontmpD__64));
LA843_: ;
		T836_ = T838_;
LA837_: ;
		skipBoth_1 = T836_;
		T844_ = NIM_NIL;
		{
			NIM_BOOL T847_;
			T847_ = (NIM_BOOL)0;
			T847_ = skipBoth_1;
			if (T847_) goto LA848_;
			T847_ = (depthf_1 < deptha_1);
LA848_: ;
			if (!T847_) goto LA849_;
			roota_1 = skipGenericAlias__types_u2145(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		}
		goto LA845_;
LA849_: ;
		{
			eqcopy___ast_u3366(&roota_1, a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		}
LA845_: ;
		T852_ = NIM_NIL;
		{
			NIM_BOOL T855_;
			T855_ = (NIM_BOOL)0;
			T855_ = skipBoth_1;
			if (T855_) goto LA856_;
			T855_ = (deptha_1 < depthf_1);
LA856_: ;
			if (!T855_) goto LA857_;
			rootf_1 = skipGenericAlias__types_u2145(f_3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		}
		goto LA853_;
LA857_: ;
		{
			eqcopy___ast_u3366(&rootf_1, f_3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		}
LA853_: ;
		{
			NIM_BOOL T862_;
			T862_ = (NIM_BOOL)0;
			T862_ = isConcept__types_u3406(f_3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
			if (!T862_) goto LA863_;
			result = enterConceptMatch__sigmatch_u2002(c_p0, rootf_1, roota_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		}
		goto LA860_;
LA863_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__65;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__66;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11))) goto LA866_;
			colontmpD__65 = NIM_NIL;
			colontmpD__66 = NIM_NIL;
			{
				tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw nextFlags_1;
				NIM_BOOL hasCovariance_1;
				colontmpD__65 = base__ast_u5330(roota_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
				colontmpD__66 = base__ast_u5330(rootf_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
				if (!(colontmpD__65 == colontmpD__66)) goto LA871_;
				nextFlags_1 = (flags_p3 | 2);
				hasCovariance_1 = NIM_FALSE;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
				{
					NI i_8;
					NI colontmp__4;
					NI T874_;
					NI i_9;
					i_8 = (NI)0;
					colontmp__4 = (NI)0;
					T874_ = (NI)0;
					T874_ = len__ast_u5481(rootf_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
					colontmp__4 = (NI)(T874_ - ((NI)1));
					i_9 = ((NI)1);
					{
						while (1) {
							if (!(i_9 < colontmp__4)) goto LA876;
							i_8 = i_9;
							{
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_3;
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_3;
								tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ res_2;
								ff_3 = NIM_NIL;
								aa_3 = NIM_NIL;
								eqcopy___ast_u3366(&ff_3, (*rootf_1).sons.p->data[i_8]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA878_;
								eqcopy___ast_u3366(&aa_3, (*roota_1).sons.p->data[i_8]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA878_;
								res_2 = typeRel__sigmatch_u250(c_p0, ff_3, aa_3, nextFlags_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA878_;
								{
									NIM_BOOL T881_;
									T881_ = (NIM_BOOL)0;
									T881_ = !((res_2 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
									if (!(T881_)) goto LA882_;
									T881_ = !((res_2 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10)));
LA882_: ;
									if (!T881_) goto LA883_;
									result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
								}
LA883_: ;
								{
									if (!!((res_2 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10) || res_2 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8)))) goto LA887_;
									{
										NIM_BOOL T891_;
										tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__67;
										NIM_BOOL colontmpD__68;
										NIM_BOOL colontmpD__69;
										tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A paramFlags_1;
										T891_ = (NIM_BOOL)0;
										T891_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)1)))&7U)))!=0));
										if (!(T891_)) goto LA892_;
										T891_ = ((*ff_3).kind == (*aa_3).kind);
LA892_: ;
										if (!T891_) goto LA893_;
										colontmpD__67 = NIM_NIL;
										colontmpD__68 = (NIM_BOOL)0;
										colontmpD__69 = (NIM_BOOL)0;
										colontmpD__67 = base__ast_u5330(rootf_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA895_;
										paramFlags_1 = (*(*colontmpD__67).sons.p->data[(NI)(i_8 - ((NI)1))]).flags;
										{
											NIM_BOOL colontmpD__70;
											NIM_BOOL colontmpD__71;
											if (!((paramFlags_1 &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)35)))&63U)))!=0)) goto LA898_;
											colontmpD__70 = (NIM_BOOL)0;
											colontmpD__71 = (NIM_BOOL)0;
											{
												if (!((paramFlags_1 &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)36)))&63U)))!=0)) goto LA903_;
												colontmpD__70 = isCovariantPtr__sigmatch_u1962(c_p0, ff_3, aa_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA905_;
												colontmpD__68 = colontmpD__70;
												{
													LA905_:;
												}
												{
												}
												if (NIM_UNLIKELY(*nimErr_)) goto LA900_;
											}
											goto LA901_;
LA903_: ;
											{
												NIM_BOOL T909_;
												T909_ = (NIM_BOOL)0;
												T909_ = !(((*ff_3).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*ff_3).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21)));
												if (!(T909_)) goto LA910_;
												T909_ = (res_2 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3));
LA910_: ;
												colontmpD__71 = T909_;
												colontmpD__68 = colontmpD__71;
											}
LA901_: ;
											hasCovariance_1 = colontmpD__68;
											{
												LA900_:;
											}
											{
											}
											if (NIM_UNLIKELY(*nimErr_)) goto LA895_;
										}
										goto LA896_;
LA898_: ;
										{
											NIM_BOOL T915_;
											tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T917_;
											T915_ = (NIM_BOOL)0;
											T915_ = ((paramFlags_1 &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)37)))&63U)))!=0);
											if (!(T915_)) goto LA916_;
											T917_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
											T917_ = typeRel__sigmatch_u250(c_p0, aa_3, ff_3, flags_p3);
											if (NIM_UNLIKELY(*nimErr_)) goto LA914_;
											T915_ = (T917_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3));
LA916_: ;
											colontmpD__69 = T915_;
											hasCovariance_1 = colontmpD__69;
											{
												LA914_:;
											}
											{
											}
											if (NIM_UNLIKELY(*nimErr_)) goto LA895_;
										}
LA896_: ;
										{
											if (!hasCovariance_1) goto LA922_;
											eqdestroy___ast_u3363(colontmpD__67);
											if (NIM_UNLIKELY(*nimErr_)) goto LA878_;
											eqdestroy___ast_u3363(aa_3);
											if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
											eqdestroy___ast_u3363(ff_3);
											if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
											goto LA877;
										}
LA922_: ;
										{
											LA895_:;
										}
										{
											oldNimErrFin895_ = *nimErr_; *nimErr_ = NIM_FALSE;
											eqdestroy___ast_u3363(colontmpD__67);
											if (NIM_UNLIKELY(*nimErr_)) goto LA878_;
											*nimErr_ = oldNimErrFin895_;
										}
										if (NIM_UNLIKELY(*nimErr_)) goto LA878_;
									}
LA893_: ;
									result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
									eqdestroy___ast_u3363(aa_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
									eqdestroy___ast_u3363(ff_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
									eqdestroy___ast_u3363(colontmpD__66);
									if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
									eqdestroy___ast_u3363(colontmpD__65);
									if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
									eqdestroy___ast_u3363(rootf_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3363(roota_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3363(colontmpD__64);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3363(colontmpD__63);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3363(f_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3363(origF_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3363(prev_4);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3363(colontmpD__2);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3363(colontmpD_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3363(a_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3363(aOrig_2);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto BeforeRet_;
								}
LA887_: ;
								{
									LA878_:;
								}
								{
									oldNimErrFin878_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3363(aa_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
									eqdestroy___ast_u3363(ff_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
									*nimErr_ = oldNimErrFin878_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
							} LA877: ;
							i_9 += ((NI)1);
						} LA876: ;
					}
				}
				{
					if (!(prev_4 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA930_;
					put__sigmatch_u246(c_p0, f_3, a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
				}
LA930_: ;
			}
			goto LA869_;
LA871_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__72;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aAsObject_1;
				tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg fKind_1;
				colontmpD__72 = NIM_NIL;
				aAsObject_1 = NIM_NIL;
				colontmpD__72 = last__ast_u5257(rootf_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA933_;
				fKind_1 = (*colontmpD__72).kind;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__73;
					if (!(fKind_1 == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56) || fKind_1 == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)57))) goto LA936_;
					colontmpD__73 = NIM_NIL;
					colontmpD__73 = last__ast_u5257(f_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA938_;
					result = typeRel__sigmatch_u250(c_p0, colontmpD__73, a_1, flags_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA938_;
					{
						if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA941_;
						put__sigmatch_u246(c_p0, f_3, a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA938_;
					}
LA941_: ;
					eqdestroy___ast_u3363(colontmpD__73);
					if (NIM_UNLIKELY(*nimErr_)) goto LA933_;
					eqdestroy___ast_u3363(aAsObject_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
					eqdestroy___ast_u3363(colontmpD__72);
					if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
					eqdestroy___ast_u3363(colontmpD__66);
					if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
					eqdestroy___ast_u3363(colontmpD__65);
					if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
					eqdestroy___ast_u3363(rootf_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(roota_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD__64);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD__63);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(f_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(origF_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(prev_4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
					{
						LA938_:;
					}
					{
						oldNimErrFin938_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__73);
						if (NIM_UNLIKELY(*nimErr_)) goto LA933_;
						*nimErr_ = oldNimErrFin938_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA933_;
				}
LA936_: ;
				aAsObject_1 = last__ast_u5257(roota_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA933_;
				{
					if (!(fKind_1 == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || fKind_1 == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21))) goto LA947_;
					{
						if (!((*aAsObject_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17))) goto LA951_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
						eqdestroy___ast_u3363(aAsObject_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
						eqdestroy___ast_u3363(colontmpD__72);
						if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
						eqdestroy___ast_u3363(colontmpD__66);
						if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
						eqdestroy___ast_u3363(colontmpD__65);
						if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
						eqdestroy___ast_u3363(rootf_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(roota_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(colontmpD__64);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(colontmpD__63);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(f_3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(origF_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(prev_4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(aOrig_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
					goto LA949_;
LA951_: ;
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T956_;
						if (!((*aAsObject_1).kind == fKind_1)) goto LA954_;
						T956_ = NIM_NIL;
						T956_ = base__ast_u5330(aAsObject_1);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T956_); goto LA933_;}
						eqsink___ast_u3372(&aAsObject_1, T956_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA933_;
					}
					goto LA949_;
LA954_: ;
LA949_: ;
				}
LA947_: ;
				{
					NIM_BOOL T959_;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* baseType_1;
					T959_ = (NIM_BOOL)0;
					T959_ = ((*aAsObject_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
					if (!(T959_)) goto LA960_;
					T959_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)3)))&7U)))!=0));
LA960_: ;
					if (!T959_) goto LA961_;
					baseType_1 = NIM_NIL;
					baseType_1 = base__ast_u5330(aAsObject_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA963_;
					{
						tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__74;
						tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__75;
						tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ ret_1;
						if (!!((baseType_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA966_;
						colontmpD__74 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
						colontmpD__75 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
						{
							if (!!((((*aAsObject_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)2)))&63U)))!=0))) goto LA970_;
							(*c_p0).inheritancePenalty += (NI)(((NI)1) + ((NI) (((*c_p0).inheritancePenalty < ((NI)0)))));
						}
LA970_: ;
						ret_1 = typeRel__sigmatch_u250(c_p0, f_3, baseType_1, flags_p3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA963_;
						{
							if (!(ret_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10) || ret_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA974_;
							colontmpD__74 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
							result = colontmpD__74;
						}
						goto LA972_;
LA974_: ;
						{
							colontmpD__75 = ret_1;
							result = colontmpD__75;
						}
LA972_: ;
						eqdestroy___ast_u3363(baseType_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA933_;
						eqdestroy___ast_u3363(aAsObject_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
						eqdestroy___ast_u3363(colontmpD__72);
						if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
						eqdestroy___ast_u3363(colontmpD__66);
						if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
						eqdestroy___ast_u3363(colontmpD__65);
						if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
						eqdestroy___ast_u3363(rootf_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(roota_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(colontmpD__64);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(colontmpD__63);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(f_3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(origF_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(prev_4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(aOrig_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA966_: ;
					{
						LA963_:;
					}
					{
						oldNimErrFin963_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(baseType_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA933_;
						*nimErr_ = oldNimErrFin963_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA933_;
				}
LA961_: ;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				{
					LA933_:;
				}
				{
					oldNimErrFin933_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(aAsObject_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
					eqdestroy___ast_u3363(colontmpD__72);
					if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
					*nimErr_ = oldNimErrFin933_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA868_;
			}
LA869_: ;
			{
				LA868_:;
			}
			{
				oldNimErrFin868_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__66);
				if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
				eqdestroy___ast_u3363(colontmpD__65);
				if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
				*nimErr_ = oldNimErrFin868_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		}
		goto LA860_;
LA866_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__76;
			colontmpD__76 = NIM_NIL;
			colontmpD__76 = last__ast_u5257(origF_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA984_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__76, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA984_;
			{
				NIM_BOOL T987_;
				T987_ = (NIM_BOOL)0;
				T987_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
				if (!(T987_)) goto LA988_;
				T987_ = !(((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5)));
LA988_: ;
				if (!T987_) goto LA989_;
				put__sigmatch_u246(c_p0, f_3, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA984_;
			}
LA989_: ;
			{
				LA984_:;
			}
			{
				oldNimErrFin984_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__76);
				if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
				*nimErr_ = oldNimErrFin984_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA829_;
		}
LA860_: ;
		{
			LA829_:;
		}
		{
			oldNimErrFin829_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(rootf_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(roota_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__64);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__63);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(f_3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(origF_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(prev_4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin829_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym470__1;
		prevX60gensym470__1 = NIM_NIL;
		prevX60gensym470__1 = lookup__layeredtable_u1015((*c_p0).bindings, (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA996_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__77;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_4;
			if (!(prevX60gensym470__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA999_;
			colontmpD__77 = NIM_NIL;
			ff_4 = NIM_NIL;
			{
				NIM_BOOL T1004_;
				NIM_BOOL T1006_;
				T1004_ = (NIM_BOOL)0;
				T1004_ = (a_1 == f_p1);
				if (T1004_) goto LA1005_;
				T1006_ = (NIM_BOOL)0;
				T1006_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11));
				if (!(T1006_)) goto LA1007_;
				colontmpD__77 = skipGenericAlias__types_u2145(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1001_;
				T1006_ = ((*colontmpD__77).sons.p->data[((NI)0)] == f_p1);
LA1007_: ;
				T1004_ = T1006_;
LA1005_: ;
				if (!T1004_) goto LA1008_;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* boundX60gensym473__1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__78;
					if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1012_;
					boundX60gensym473__1 = NIM_NIL;
					colontmpD__78 = NIM_NIL;
					colontmpD__78 = skipTypes__ast_u5358(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1001_;
					boundX60gensym473__1 = skipIntLit__magicsys_u119(colontmpD__78, (*(*c_p0).c).Sup.idgen);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1001_;
					put__sigmatch_u246(c_p0, f_p1, boundX60gensym473__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1001_;
					eqdestroy___ast_u3363(colontmpD__78);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1001_;
					eqdestroy___ast_u3363(boundX60gensym473__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1001_;
				}
LA1012_: ;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				eqdestroy___ast_u3363(ff_4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA996_;
				eqdestroy___ast_u3363(colontmpD__77);
				if (NIM_UNLIKELY(*nimErr_)) goto LA996_;
				eqdestroy___ast_u3363(prevX60gensym470__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA1008_: ;
			ff_4 = last__ast_u5257(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1001_;
			{
				if (!!((ff_4 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA1016_;
				result = typeRel__sigmatch_u250(c_p0, ff_4, a_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1001_;
			}
LA1016_: ;
			{
				LA1001_:;
			}
			{
				oldNimErrFin1001_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(ff_4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA996_;
				eqdestroy___ast_u3363(colontmpD__77);
				if (NIM_UNLIKELY(*nimErr_)) goto LA996_;
				*nimErr_ = oldNimErrFin1001_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA996_;
		}
		goto LA997_;
LA999_: ;
		{
			result = typeRel__sigmatch_u250(c_p0, prevX60gensym470__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA996_;
			eqdestroy___ast_u3363(prevX60gensym470__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA997_: ;
		{
			LA996_:;
		}
		{
			oldNimErrFin996_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(prevX60gensym470__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin996_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_5;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concpt_1;
		NIM_BOOL preventHack_1;
		x_5 = NIM_NIL;
		concpt_1 = NIM_NIL;
		x_5 = skipGenericAlias__types_u2145(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
		{
			NIM_BOOL T1027_;
			NI T1029_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T1032_;
			T1027_ = (NIM_BOOL)0;
			T1027_ = ((*x_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
			if (!(T1027_)) goto LA1028_;
			T1029_ = (NI)0;
			T1029_ = len__ast_u5481(x_5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
			T1027_ = (((NI)0) < T1029_);
LA1028_: ;
			if (!T1027_) goto LA1030_;
			T1032_ = NIM_NIL;
			T1032_ = last__ast_u5257(x_5);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T1032_); goto LA1024_;}
			eqsink___ast_u3372(&x_5, T1032_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
		}
LA1030_: ;
		concpt_1 = reduceToBase__types_u4283(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
		preventHack_1 = ((*concpt_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62));
		{
			NIM_BOOL T1035_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T1039_;
			T1035_ = (NIM_BOOL)0;
			T1035_ = ((*x_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45));
			if (!(T1035_)) goto LA1036_;
			T1035_ = !(((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45)));
LA1036_: ;
			if (!T1035_) goto LA1037_;
			preventHack_1 = NIM_TRUE;
			T1039_ = NIM_NIL;
			T1039_ = last__ast_u5257(x_5);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T1039_); goto LA1024_;}
			eqsink___ast_u3372(&x_5, T1039_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
		}
LA1037_: ;
		{
			NIM_BOOL T1042_;
			NIM_BOOL T1043_;
			NIM_BOOL T1044_;
			NIM_BOOL T1045_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* inst_1;
			T1042_ = (NIM_BOOL)0;
			T1043_ = (NIM_BOOL)0;
			T1044_ = (NIM_BOOL)0;
			T1045_ = (NIM_BOOL)0;
			T1045_ = ((*x_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11) || (*x_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16));
			if (!(T1045_)) goto LA1046_;
			T1045_ = !(((*c_p0).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA1046_: ;
			T1044_ = T1045_;
			if (!(T1044_)) goto LA1047_;
			T1044_ = ((*(*c_p0).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) || (*(*c_p0).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)13));
LA1047_: ;
			T1043_ = T1044_;
			if (!(T1043_)) goto LA1048_;
			T1043_ = !(((*c_p0).call == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA1048_: ;
			T1042_ = T1043_;
			if (!(T1042_)) goto LA1049_;
			T1042_ = !(preventHack_1);
LA1049_: ;
			if (!T1042_) goto LA1050_;
			inst_1 = NIM_NIL;
			inst_1 = prepareMetatypeForSigmatch__semtypinst_u1629((*c_p0).c, (*c_p0).bindings, (*(*c_p0).call).info, f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1052_;
			result = typeRel__sigmatch_u250(c_p0, inst_1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1052_;
			eqdestroy___ast_u3363(inst_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
			eqdestroy___ast_u3363(concpt_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(x_5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA1052_:;
			}
			{
				oldNimErrFin1052_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(inst_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
				*nimErr_ = oldNimErrFin1052_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
		}
LA1050_: ;
		{
			if (!((*x_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9))) goto LA1057_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* impl_1;
				if (!((*f_p1).sons.p->data[((NI)0)] == (*x_5).sons.p->data[((NI)0)])) goto LA1061_;
				impl_1 = NIM_NIL;
				{
					NI i_10;
					NI colontmp__5;
					NI i_11;
					i_10 = (NI)0;
					colontmp__5 = (NI)0;
					colontmp__5 = len__ast_u5481(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1063_;
					i_11 = ((NI)1);
					{
						while (1) {
							tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ tr_1;
							if (!(i_11 < colontmp__5)) goto LA1066;
							i_10 = i_11;
							{
								NI T1069_;
								T1069_ = (NI)0;
								T1069_ = len__ast_u5481(x_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1063_;
								if (!(T1069_ <= i_10)) goto LA1070_;
								eqdestroy___ast_u3363(impl_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
								eqdestroy___ast_u3363(concpt_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3363(x_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3363(colontmpD__2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(aOrig_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA1070_: ;
							tr_1 = typeRel__sigmatch_u250(c_p0, (*f_p1).sons.p->data[i_10], (*x_5).sons.p->data[i_10], flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1063_;
							{
								if (!(tr_1 <= ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3))) goto LA1074_;
								eqdestroy___ast_u3363(impl_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
								eqdestroy___ast_u3363(concpt_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3363(x_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3363(colontmpD__2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(aOrig_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA1074_: ;
							i_11 += ((NI)1);
						} LA1066: ;
					}
				}
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				impl_1 = last__ast_u5257((*f_p1).sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1063_;
				{
					NIM_BOOL T1078_;
					T1078_ = (NIM_BOOL)0;
					T1078_ = ((*impl_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
					if (!(T1078_)) goto LA1079_;
					T1078_ = !((((*impl_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)2)))&63U)))!=0));
LA1079_: ;
					if (!T1078_) goto LA1080_;
					(*c_p0).inheritancePenalty += (NI)(((NI)0) + ((NI) (((*c_p0).inheritancePenalty < ((NI)0)))));
				}
LA1080_: ;
				{
					LA1063_:;
				}
				{
					oldNimErrFin1063_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(impl_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
					*nimErr_ = oldNimErrFin1063_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
			}
LA1061_: ;
		}
		goto LA1055_;
LA1057_: ;
		{
			NIM_BOOL T1085_;
			NIM_BOOL T1086_;
			NI T1089_;
			NI T1090_;
			T1085_ = (NIM_BOOL)0;
			T1086_ = (NIM_BOOL)0;
			T1086_ = ((*x_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11));
			if (!(T1086_)) goto LA1087_;
			T1086_ = ((*f_p1).sons.p->data[((NI)0)] == (*x_5).sons.p->data[((NI)0)]);
LA1087_: ;
			T1085_ = T1086_;
			if (!(T1085_)) goto LA1088_;
			T1089_ = (NI)0;
			T1089_ = len__ast_u5481(x_5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
			T1090_ = (NI)0;
			T1090_ = len__ast_u5481(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
			T1085_ = ((NI)(T1089_ - ((NI)1)) == T1090_);
LA1088_: ;
			if (!T1085_) goto LA1091_;
			{
				NI i_12;
				NI colontmp__6;
				NI i_13;
				i_12 = (NI)0;
				colontmp__6 = (NI)0;
				colontmp__6 = len__ast_u5481(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
				i_13 = ((NI)1);
				{
					while (1) {
						if (!(i_13 < colontmp__6)) goto LA1095;
						i_12 = i_13;
						{
							if (!((*(*x_5).sons.p->data[i_12]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA1098_;
							internalErrorImpl__msgs_u1594((*(*(*c_p0).c).graph).config, unknownLineInfo__lineinfos_u361, TM__EV5hHJmjIY9cla9b9be7fSVJQ_40, TM__EV5hHJmjIY9cla9b9be7fSVJQ_41);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
						}
						goto LA1096_;
LA1098_: ;
						{
							tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T1101_;
							T1101_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
							T1101_ = typeRel__sigmatch_u250(c_p0, (*f_p1).sons.p->data[i_12], (*x_5).sons.p->data[i_12], flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
							if (!(T1101_ <= ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3))) goto LA1102_;
							{
								if (!!(((*(*f_p1).sons.p->data[i_12]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8)))) goto LA1106_;
								eqdestroy___ast_u3363(concpt_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3363(x_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3363(colontmpD__2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(aOrig_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA1106_: ;
						}
						goto LA1096_;
LA1102_: ;
LA1096_: ;
						i_13 += ((NI)1);
					} LA1095: ;
				}
			}
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
		}
		goto LA1055_;
LA1091_: ;
		{
			if (!((*concpt_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62))) goto LA1109_;
			result = enterConceptMatch__sigmatch_u2002(c_p0, f_p1, x_5, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
		}
		goto LA1055_;
LA1109_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* genericBody_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aobj_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fobj_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__79;
			tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA askip_1;
			tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA fskip_1;
			NI depth_2;
			genericBody_1 = NIM_NIL;
			aobj_1 = NIM_NIL;
			fobj_1 = NIM_NIL;
			colontmpD__79 = NIM_NIL;
			eqcopy___ast_u3366(&genericBody_1, (*f_p1).sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
			askip_1 = ((tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA)0);
			fskip_1 = ((tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA)0);
			aobj_1 = skipToObject__sigmatch_u1022(x_5, (&askip_1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
			colontmpD__79 = last__ast_u5257(genericBody_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
			fobj_1 = skipToObject__sigmatch_u1022(colontmpD__79, (&fskip_1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
			result = typeRel__sigmatch_u250(c_p0, genericBody_1, x_5, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
			{
				NIM_BOOL T1115_;
				T1115_ = (NIM_BOOL)0;
				T1115_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
				if (!(T1115_)) goto LA1116_;
				T1115_ = !(((*concpt_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62)));
LA1116_: ;
				if (!T1115_) goto LA1117_;
				{
					NI i_14;
					NI colontmp__7;
					NI i_15;
					i_14 = (NI)0;
					colontmp__7 = (NI)0;
					colontmp__7 = len__ast_u5481(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
					i_15 = ((NI)1);
					{
						while (1) {
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_6;
							if (!(i_15 < colontmp__7)) goto LA1121;
							x_6 = NIM_NIL;
							i_14 = i_15;
							x_6 = lookup__layeredtable_u1015((*c_p0).bindings, (*(*genericBody_1).sons.p->data[(NI)(i_14 - ((NI)1))]).itemId);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1122_;
							{
								if (!(x_6 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1125_;
							}
							goto LA1123_;
LA1125_: ;
							{
								if (!((*x_6).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9) || (*x_6).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA1128_;
								internalErrorImpl__msgs_u1594((*(*(*c_p0).c).graph).config, unknownLineInfo__lineinfos_u361, TM__EV5hHJmjIY9cla9b9be7fSVJQ_42, TM__EV5hHJmjIY9cla9b9be7fSVJQ_43);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1122_;
							}
							goto LA1123_;
LA1128_: ;
							{
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* key_1;
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* old_1;
								key_1 = NIM_NIL;
								old_1 = NIM_NIL;
								eqcopy___ast_u3366(&key_1, (*f_p1).sons.p->data[i_14]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1131_;
								old_1 = lookup__layeredtable_u1015((*c_p0).bindings, (*key_1).itemId);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1131_;
								{
									if (!(old_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1134_;
									put__sigmatch_u246(c_p0, key_1, x_6);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1131_;
								}
								goto LA1132_;
LA1134_: ;
								{
									tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T1137_;
									T1137_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
									T1137_ = typeRel__sigmatch_u250(c_p0, old_1, x_6, (flags_p3 | 1));
									if (NIM_UNLIKELY(*nimErr_)) goto LA1131_;
									if (!(T1137_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA1138_;
									result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
									eqdestroy___ast_u3363(old_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1122_;
									eqdestroy___ast_u3363(key_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1122_;
									eqdestroy___ast_u3363(x_6);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
									eqdestroy___ast_u3363(colontmpD__79);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
									eqdestroy___ast_u3363(fobj_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
									eqdestroy___ast_u3363(aobj_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
									eqdestroy___ast_u3363(genericBody_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
									eqdestroy___ast_u3363(concpt_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3363(x_5);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3363(colontmpD__2);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3363(colontmpD_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3363(a_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3363(aOrig_2);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto BeforeRet_;
								}
								goto LA1132_;
LA1138_: ;
LA1132_: ;
								{
									LA1131_:;
								}
								{
									oldNimErrFin1131_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3363(old_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1122_;
									eqdestroy___ast_u3363(key_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1122_;
									*nimErr_ = oldNimErrFin1131_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA1122_;
							}
LA1123_: ;
							i_15 += ((NI)1);
							{
								LA1122_:;
							}
							{
								oldNimErrFin1122_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3363(x_6);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
								*nimErr_ = oldNimErrFin1122_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
						} LA1121: ;
					}
				}
			}
LA1117_: ;
			depth_2 = ((NI)-1);
			{
				NIM_BOOL T1146_;
				NIM_BOOL T1147_;
				T1146_ = (NIM_BOOL)0;
				T1147_ = (NIM_BOOL)0;
				T1147_ = !((fobj_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
				if (!(T1147_)) goto LA1148_;
				T1147_ = !((aobj_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
LA1148_: ;
				T1146_ = T1147_;
				if (!(T1146_)) goto LA1149_;
				T1146_ = (askip_1 == fskip_1);
LA1149_: ;
				if (!T1146_) goto LA1150_;
				depth_2 = isObjectSubtype__sigmatch_u978(c_p0, aobj_1, fobj_1, f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
			}
LA1150_: ;
			{
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym513__1;
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym514__1;
				NIM_BOOL genericSubtype_1;
				if (!(result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA1154_;
				xX60gensym513__1 = NIM_NIL;
				xX60gensym514__1 = NIM_NIL;
				genericSubtype_1 = isGenericSubtype__sigmatch_u1065(c_p0, x_5, f_p1, (&depth_2), f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
				{
					NIM_BOOL T1158_;
					NIM_BOOL T1159_;
					T1158_ = (NIM_BOOL)0;
					T1159_ = (NIM_BOOL)0;
					T1159_ = genericSubtype_1;
					if (!(T1159_)) goto LA1160_;
					eqcopy___ast_u4561(&xX60gensym513__1, (*aobj_1).sym);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
					eqcopy___ast_u4561(&xX60gensym514__1, (*fobj_1).sym);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
					T1159_ = !(((NI)((NI)((NU32)(((NI) ((*xX60gensym513__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym513__1).itemId.item))) == (NI)((NI)((NU32)(((NI) ((*xX60gensym514__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym514__1).itemId.item)))));
LA1160_: ;
					T1158_ = !(T1159_);
					if (!(T1158_)) goto LA1161_;
					T1158_ = !(((*aOrig_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10)));
LA1161_: ;
					if (!T1158_) goto LA1162_;
					depth_2 = ((NI)-1);
				}
LA1162_: ;
				eqdestroy___ast_u4558(xX60gensym514__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
				eqdestroy___ast_u4558(xX60gensym513__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1112_;
			}
LA1154_: ;
			{
				tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__80;
				tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__81;
				if (!(((NI)0) <= depth_2)) goto LA1166_;
				colontmpD__80 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
				colontmpD__81 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
				{
					NIM_BOOL T1170_;
					T1170_ = (NIM_BOOL)0;
					T1170_ = ((*aobj_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
					if (!(T1170_)) goto LA1171_;
					T1170_ = !((((*aobj_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)2)))&63U)))!=0));
LA1171_: ;
					if (!T1170_) goto LA1172_;
					(*c_p0).inheritancePenalty += (NI)(depth_2 + ((NI) (((*c_p0).inheritancePenalty < ((NI)0)))));
				}
LA1172_: ;
				{
					if (!(depth_2 == ((NI)0))) goto LA1176_;
					colontmpD__80 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
					result = colontmpD__80;
				}
				goto LA1174_;
LA1176_: ;
				{
					colontmpD__81 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
					result = colontmpD__81;
				}
LA1174_: ;
			}
LA1166_: ;
			{
				LA1112_:;
			}
			{
				oldNimErrFin1112_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__79);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
				eqdestroy___ast_u3363(fobj_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
				eqdestroy___ast_u3363(aobj_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
				eqdestroy___ast_u3363(genericBody_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
				*nimErr_ = oldNimErrFin1112_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1024_;
		}
LA1055_: ;
		{
			LA1024_:;
		}
		{
			oldNimErrFin1024_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(concpt_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(x_5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1024_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym518__1;
		prevX60gensym518__1 = NIM_NIL;
		prevX60gensym518__1 = lookup__layeredtable_u1015((*c_p0).bindings, (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1184_;
		{
			if (!(prevX60gensym518__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1187_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* branch_3;
				branch_3 = NIM_NIL;
				{
					NI i_16;
					NI colontmp__8;
					NI T1192_;
					NI i_17;
					i_16 = (NI)0;
					colontmp__8 = (NI)0;
					T1192_ = (*f_p1).sons.len;
					colontmp__8 = T1192_;
					i_17 = ((NI)0);
					{
						while (1) {
							tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ x_7;
							if (!(i_17 < colontmp__8)) goto LA1194;
							i_16 = i_17;
							eqcopy___ast_u3366(&branch_3, (*f_p1).sons.p->data[i_16]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1190_;
							x_7 = typeRel__sigmatch_u250(c_p0, branch_3, aOrig_2, flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1190_;
							{
								if (!(x_7 < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3))) goto LA1197_;
								result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
								eqdestroy___ast_u3363(branch_3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1184_;
								eqdestroy___ast_u3363(prevX60gensym518__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3363(colontmpD__2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(aOrig_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA1197_: ;
							{
								if (!(x_7 < result)) goto LA1201_;
								result = x_7;
							}
LA1201_: ;
							i_17 += ((NI)1);
						} LA1194: ;
					}
				}
				{
					LA1190_:;
				}
				{
					oldNimErrFin1190_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(branch_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1184_;
					*nimErr_ = oldNimErrFin1190_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1184_;
			}
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) < result)) goto LA1207_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
LA1207_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* boundX60gensym521__1;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__82;
				if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1211_;
				boundX60gensym521__1 = NIM_NIL;
				colontmpD__82 = NIM_NIL;
				colontmpD__82 = skipTypes__ast_u5358(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1184_;
				boundX60gensym521__1 = skipIntLit__magicsys_u119(colontmpD__82, (*(*c_p0).c).Sup.idgen);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1184_;
				put__sigmatch_u246(c_p0, f_p1, boundX60gensym521__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1184_;
				eqdestroy___ast_u3363(colontmpD__82);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1184_;
				eqdestroy___ast_u3363(boundX60gensym521__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1184_;
			}
LA1211_: ;
			eqdestroy___ast_u3363(prevX60gensym518__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA1185_;
LA1187_: ;
		{
			result = typeRel__sigmatch_u250(c_p0, prevX60gensym518__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1184_;
			eqdestroy___ast_u3363(prevX60gensym518__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1185_: ;
		{
			LA1184_:;
		}
		{
			oldNimErrFin1184_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(prevX60gensym518__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1184_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)57):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym524__1;
		prevX60gensym524__1 = NIM_NIL;
		prevX60gensym524__1 = lookup__layeredtable_u1015((*c_p0).bindings, (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1217_;
		{
			NI oldInheritancePenalty_1;
			NI minInheritance_1;
			if (!(prevX60gensym524__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1220_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			oldInheritancePenalty_1 = (*c_p0).inheritancePenalty;
			minInheritance_1 = ((NI)1073741823);
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* branch_4;
				branch_4 = NIM_NIL;
				{
					NI i_18;
					NI colontmp__9;
					NI T1225_;
					NI i_19;
					i_18 = (NI)0;
					colontmp__9 = (NI)0;
					T1225_ = (*f_p1).sons.len;
					colontmp__9 = T1225_;
					i_19 = ((NI)0);
					{
						while (1) {
							tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ x_8;
							if (!(i_19 < colontmp__9)) goto LA1227;
							i_18 = i_19;
							eqcopy___ast_u3366(&branch_4, (*f_p1).sons.p->data[i_18]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1223_;
							(*c_p0).inheritancePenalty = ((NI)-1);
							x_8 = typeRel__sigmatch_u250(c_p0, branch_4, aOrig_2, flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1223_;
							{
								if (!(result <= x_8)) goto LA1230_;
								{
									if (!(((NI)-1) < (*c_p0).inheritancePenalty)) goto LA1234_;
									minInheritance_1 = ((minInheritance_1 <= (*c_p0).inheritancePenalty) ? minInheritance_1 : (*c_p0).inheritancePenalty);
								}
LA1234_: ;
								result = x_8;
							}
LA1230_: ;
							i_19 += ((NI)1);
						} LA1227: ;
					}
				}
				{
					LA1223_:;
				}
				{
					oldNimErrFin1223_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(branch_4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1217_;
					*nimErr_ = oldNimErrFin1223_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1217_;
			}
			(*c_p0).inheritancePenalty = oldInheritancePenalty_1;
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2) <= result)) goto LA1240_;
				{
					if (!(minInheritance_1 < ((NI)1073741823))) goto LA1244_;
					(*c_p0).inheritancePenalty += (NI)(minInheritance_1 + ((*c_p0).inheritancePenalty < ((NI)0)));
				}
LA1244_: ;
				{
					if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) < result)) goto LA1248_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
LA1248_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* boundX60gensym530__1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__83;
					if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1252_;
					boundX60gensym530__1 = NIM_NIL;
					colontmpD__83 = NIM_NIL;
					colontmpD__83 = skipTypes__ast_u5358(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1217_;
					boundX60gensym530__1 = skipIntLit__magicsys_u119(colontmpD__83, (*(*c_p0).c).Sup.idgen);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1217_;
					put__sigmatch_u246(c_p0, f_p1, boundX60gensym530__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1217_;
					eqdestroy___ast_u3363(colontmpD__83);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1217_;
					eqdestroy___ast_u3363(boundX60gensym530__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1217_;
				}
LA1252_: ;
				eqdestroy___ast_u3363(prevX60gensym524__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA1238_;
LA1240_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA1238_: ;
		}
		goto LA1218_;
LA1220_: ;
		{
			result = typeRel__sigmatch_u250(c_p0, prevX60gensym524__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1217_;
			eqdestroy___ast_u3363(prevX60gensym524__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1218_: ;
		{
			LA1217_:;
		}
		{
			oldNimErrFin1217_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(prevX60gensym524__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1217_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)58):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym533__1;
		prevX60gensym533__1 = NIM_NIL;
		prevX60gensym533__1 = lookup__layeredtable_u1015((*c_p0).bindings, (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1259_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__84;
			if (!(prevX60gensym533__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1262_;
			colontmpD__84 = NIM_NIL;
			{
				tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T1267_;
				colontmpD__84 = elementType__ast_u5310(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1264_;
				T1267_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
				T1267_ = typeRel__sigmatch_u250(c_p0, colontmpD__84, aOrig_2, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1264_;
				if (!!((T1267_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA1268_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3363(colontmpD__84);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1259_;
				eqdestroy___ast_u3363(prevX60gensym533__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA1268_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* boundX60gensym536__1;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__85;
				if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1272_;
				boundX60gensym536__1 = NIM_NIL;
				colontmpD__85 = NIM_NIL;
				colontmpD__85 = skipTypes__ast_u5358(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1264_;
				boundX60gensym536__1 = skipIntLit__magicsys_u119(colontmpD__85, (*(*c_p0).c).Sup.idgen);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1264_;
				put__sigmatch_u246(c_p0, f_p1, boundX60gensym536__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1264_;
				eqdestroy___ast_u3363(colontmpD__85);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1264_;
				eqdestroy___ast_u3363(boundX60gensym536__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1264_;
			}
LA1272_: ;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			eqdestroy___ast_u3363(colontmpD__84);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1259_;
			eqdestroy___ast_u3363(prevX60gensym533__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA1264_:;
			}
			{
				oldNimErrFin1264_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__84);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1259_;
				*nimErr_ = oldNimErrFin1264_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1259_;
		}
		goto LA1260_;
LA1262_: ;
		{
			result = typeRel__sigmatch_u250(c_p0, prevX60gensym533__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1259_;
			eqdestroy___ast_u3363(prevX60gensym533__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1260_: ;
		{
			LA1259_:;
		}
		{
			oldNimErrFin1259_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(prevX60gensym533__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1259_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym539__1;
		prevX60gensym539__1 = NIM_NIL;
		prevX60gensym539__1 = lookup__layeredtable_u1015((*c_p0).bindings, (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1280_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concrete_1;
			if (!(prevX60gensym539__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1283_;
			concrete_1 = NIM_NIL;
			concrete_1 = concreteType__sigmatch_u733((&(*c_p0)), a_1, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1285_;
			{
				NIM_BOOL T1288_;
				T1288_ = (NIM_BOOL)0;
				T1288_ = !((concrete_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
				if (!(T1288_)) goto LA1289_;
				T1288_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0));
LA1289_: ;
				if (!T1288_) goto LA1290_;
				put__sigmatch_u246(c_p0, f_p1, concrete_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1285_;
			}
LA1290_: ;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			eqdestroy___ast_u3363(concrete_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1280_;
			eqdestroy___ast_u3363(prevX60gensym539__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA1285_:;
			}
			{
				oldNimErrFin1285_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(concrete_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1280_;
				*nimErr_ = oldNimErrFin1285_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1280_;
		}
		goto LA1281_;
LA1283_: ;
		{
			result = typeRel__sigmatch_u250(c_p0, prevX60gensym539__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1280_;
			eqdestroy___ast_u3363(prevX60gensym539__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1281_: ;
		{
			LA1280_:;
		}
		{
			oldNimErrFin1280_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(prevX60gensym539__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1280_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym544__1;
		prevX60gensym544__1 = NIM_NIL;
		prevX60gensym544__1 = lookup__layeredtable_u1015((*c_p0).bindings, (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* target_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* effectiveArgType_2;
			tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg targetKind_1;
			NIM_BOOL typeClassArg_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T1304_;
			if (!(prevX60gensym544__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1301_;
			target_1 = NIM_NIL;
			effectiveArgType_2 = NIM_NIL;
			target_1 = genericHead__ast_u5355(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1303_;
			targetKind_1 = (*target_1).kind;
			effectiveArgType_2 = reduceToBase__types_u4283(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1303_;
			typeClassArg_1 = ((*effectiveArgType_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51));
			T1304_ = NIM_NIL;
			T1304_ = skipTypes__ast_u5358(effectiveArgType_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_44);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T1304_); goto LA1303_;}
			eqsink___ast_u3372(&effectiveArgType_2, T1304_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1303_;
			{
				if (!(targetKind_1 == (*effectiveArgType_2).kind)) goto LA1307_;
				{
					NIM_BOOL T1311_;
					T1311_ = (NIM_BOOL)0;
					T1311_ = !(typeClassArg_1);
					if (!(T1311_)) goto LA1312_;
					T1311_ = isEmptyContainer__types_u3734(effectiveArgType_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1303_;
LA1312_: ;
					if (!T1311_) goto LA1313_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
					eqdestroy___ast_u3363(effectiveArgType_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
					eqdestroy___ast_u3363(target_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
					eqdestroy___ast_u3363(prevX60gensym544__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA1313_: ;
				{
					if (!(targetKind_1 == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25))) goto LA1317_;
					{
						if (!!((((*target_1).flags & 32768) == ((*effectiveArgType_2).flags & 32768)))) goto LA1321_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
						eqdestroy___ast_u3363(effectiveArgType_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
						eqdestroy___ast_u3363(target_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
						eqdestroy___ast_u3363(prevX60gensym544__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(aOrig_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA1321_: ;
					{
						NIM_BOOL T1325_;
						T1325_ = (NIM_BOOL)0;
						T1325_ = (((*target_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)42)))&63U)))!=0);
						if (!(T1325_)) goto LA1326_;
						T1325_ = !(((*target_1).callConv == (*effectiveArgType_2).callConv));
LA1326_: ;
						if (!T1325_) goto LA1327_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
						eqdestroy___ast_u3363(effectiveArgType_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
						eqdestroy___ast_u3363(target_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
						eqdestroy___ast_u3363(prevX60gensym544__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(aOrig_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA1327_: ;
				}
LA1317_: ;
				{
					if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1331_;
					put__sigmatch_u246(c_p0, f_p1, a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1303_;
				}
LA1331_: ;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				eqdestroy___ast_u3363(effectiveArgType_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
				eqdestroy___ast_u3363(target_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
				eqdestroy___ast_u3363(prevX60gensym544__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA1305_;
LA1307_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3363(effectiveArgType_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
				eqdestroy___ast_u3363(target_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
				eqdestroy___ast_u3363(prevX60gensym544__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA1305_: ;
			{
				LA1303_:;
			}
			{
				oldNimErrFin1303_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(effectiveArgType_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
				eqdestroy___ast_u3363(target_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
				*nimErr_ = oldNimErrFin1303_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
		}
		goto LA1299_;
LA1301_: ;
		{
			result = typeRel__sigmatch_u250(c_p0, prevX60gensym544__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1298_;
			eqdestroy___ast_u3363(prevX60gensym544__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1299_: ;
		{
			LA1298_:;
		}
		{
			oldNimErrFin1298_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(prevX60gensym544__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1298_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__86;
			if (!(((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)10)))&63U)))!=0)) goto LA1342_;
			colontmpD__86 = NIM_NIL;
			colontmpD__86 = last__ast_u5257(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1344_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__86, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1344_;
			{
				LA1344_:;
			}
			{
				oldNimErrFin1344_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__86);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin1344_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA1340_;
LA1342_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym553__1;
			prevX60gensym553__1 = NIM_NIL;
			prevX60gensym553__1 = lookup__layeredtable_u1015((*c_p0).bindings, (*f_p1).itemId);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1348_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* matched_1;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__87;
				if (!(prevX60gensym553__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1351_;
				matched_1 = NIM_NIL;
				colontmpD__87 = NIM_NIL;
				{
					if (!(aOrig_2 == f_p1)) goto LA1356_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
					eqdestroy___ast_u3363(colontmpD__87);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1348_;
					eqdestroy___ast_u3363(matched_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1348_;
					eqdestroy___ast_u3363(prevX60gensym553__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA1356_: ;
				matched_1 = matchUserTypeClass__sigmatch_u1300(c_p0, f_p1, aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1353_;
				{
					if (!!((matched_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA1360_;
					add__ast_u3866(matched_1, a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1353_;
					(*matched_1).flags |= ((NU64)1)<<(((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)10))) & 63);
					{
						if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1364_;
						put__sigmatch_u246(c_p0, f_p1, matched_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1353_;
					}
LA1364_: ;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
				goto LA1358_;
LA1360_: ;
				{
					NIM_BOOL T1367_;
					NI T1368_;
					T1367_ = (NIM_BOOL)0;
					T1368_ = (NI)0;
					T1368_ = len__ast_u5481(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1353_;
					T1367_ = (((NI)0) < T1368_);
					if (!(T1367_)) goto LA1369_;
					colontmpD__87 = last__ast_u5257(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1353_;
					T1367_ = (colontmpD__87 == f_p1);
LA1369_: ;
					if (!T1367_) goto LA1370_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
				goto LA1358_;
LA1370_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA1358_: ;
				{
					LA1353_:;
				}
				{
					oldNimErrFin1353_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__87);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1348_;
					eqdestroy___ast_u3363(matched_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1348_;
					*nimErr_ = oldNimErrFin1353_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1348_;
			}
			goto LA1349_;
LA1351_: ;
			{
				result = typeRel__sigmatch_u250(c_p0, prevX60gensym553__1, a_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1348_;
				eqdestroy___ast_u3363(prevX60gensym553__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA1349_: ;
			{
				LA1348_:;
			}
			{
				oldNimErrFin1348_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(prevX60gensym553__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin1348_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA1340_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62):
	{
		result = enterConceptMatch__sigmatch_u2002(c_p0, f_p1, a_1, flags_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym560__1;
		prevX60gensym560__1 = NIM_NIL;
		prevX60gensym560__1 = lookup__layeredtable_u1015((*c_p0).bindings, (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* roota_2;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* rootf_2;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__88;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__89;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__90;
			if (!(prevX60gensym560__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1383_;
			roota_2 = NIM_NIL;
			rootf_2 = NIM_NIL;
			colontmpD__88 = NIM_NIL;
			colontmpD__89 = NIM_NIL;
			colontmpD__90 = NIM_NIL;
			roota_2 = skipGenericAlias__types_u2145(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
			colontmpD__88 = last__ast_u5257(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
			rootf_2 = skipGenericAlias__types_u2145(colontmpD__88);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
			{
				NIM_BOOL T1388_;
				T1388_ = (NIM_BOOL)0;
				T1388_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11));
				if (!(T1388_)) goto LA1389_;
				colontmpD__89 = base__ast_u5330(roota_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
				colontmpD__90 = base__ast_u5330(rootf_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
				T1388_ = (colontmpD__89 == colontmpD__90);
LA1389_: ;
				if (!T1388_) goto LA1390_;
				{
					NI i_20;
					NI colontmp__10;
					NI T1393_;
					NI i_21;
					i_20 = (NI)0;
					colontmp__10 = (NI)0;
					T1393_ = (NI)0;
					T1393_ = len__ast_u5481(rootf_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
					colontmp__10 = (NI)(T1393_ - ((NI)1));
					i_21 = ((NI)1);
					{
						while (1) {
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_5;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_4;
							if (!(i_21 < colontmp__10)) goto LA1395;
							ff_5 = NIM_NIL;
							aa_4 = NIM_NIL;
							i_20 = i_21;
							eqcopy___ast_u3366(&ff_5, (*rootf_2).sons.p->data[i_20]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1396_;
							eqcopy___ast_u3366(&aa_4, (*roota_2).sons.p->data[i_20]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1396_;
							result = typeRel__sigmatch_u250(c_p0, ff_5, aa_4, flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1396_;
							{
								if (!(result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA1399_;
								eqdestroy___ast_u3363(aa_4);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
								eqdestroy___ast_u3363(ff_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
								eqdestroy___ast_u3363(colontmpD__90);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
								eqdestroy___ast_u3363(colontmpD__89);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
								eqdestroy___ast_u3363(colontmpD__88);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
								eqdestroy___ast_u3363(rootf_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
								eqdestroy___ast_u3363(roota_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
								eqdestroy___ast_u3363(prevX60gensym560__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3363(colontmpD__2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(aOrig_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA1399_: ;
							{
								NIM_BOOL T1403_;
								T1403_ = (NIM_BOOL)0;
								T1403_ = ((*ff_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20));
								if (!(T1403_)) goto LA1404_;
								T1403_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10)));
LA1404_: ;
								if (!T1403_) goto LA1405_;
								result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
								eqdestroy___ast_u3363(aa_4);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
								eqdestroy___ast_u3363(ff_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
								eqdestroy___ast_u3363(colontmpD__90);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
								eqdestroy___ast_u3363(colontmpD__89);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
								eqdestroy___ast_u3363(colontmpD__88);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
								eqdestroy___ast_u3363(rootf_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
								eqdestroy___ast_u3363(roota_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
								eqdestroy___ast_u3363(prevX60gensym560__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3363(colontmpD__2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(aOrig_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA1405_: ;
							i_21 += ((NI)1);
							{
								LA1396_:;
							}
							{
								oldNimErrFin1396_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3363(aa_4);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
								eqdestroy___ast_u3363(ff_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
								*nimErr_ = oldNimErrFin1396_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
						} LA1395: ;
					}
				}
			}
			goto LA1386_;
LA1390_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__91;
				colontmpD__91 = NIM_NIL;
				colontmpD__91 = last__ast_u5257(rootf_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1410_;
				result = typeRel__sigmatch_u250(c_p0, colontmpD__91, a_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1410_;
				{
					LA1410_:;
				}
				{
					oldNimErrFin1410_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__91);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
					*nimErr_ = oldNimErrFin1410_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
			}
LA1386_: ;
			{
				if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA1415_;
				put__sigmatch_u246(c_p0, f_p1, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1385_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
LA1415_: ;
			{
				LA1385_:;
			}
			{
				oldNimErrFin1385_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__90);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
				eqdestroy___ast_u3363(colontmpD__89);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
				eqdestroy___ast_u3363(colontmpD__88);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
				eqdestroy___ast_u3363(rootf_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
				eqdestroy___ast_u3363(roota_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
				*nimErr_ = oldNimErrFin1385_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
		}
		goto LA1381_;
LA1383_: ;
		{
			result = typeRel__sigmatch_u250(c_p0, prevX60gensym560__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1380_;
			eqdestroy___ast_u3363(prevX60gensym560__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1381_: ;
		{
			LA1380_:;
		}
		{
			oldNimErrFin1380_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(prevX60gensym560__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1380_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_9;
		NIM_BOOL doBindGP_1;
		NIM_BOOL T1424_;
		x_9 = NIM_NIL;
		T1424_ = (NIM_BOOL)0;
		T1424_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0));
		if (T1424_) goto LA1425_;
		T1424_ = ((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)2)))&7U)))!=0);
LA1425_: ;
		doBindGP_1 = T1424_;
		x_9 = lookup__layeredtable_u1015((*c_p0).bindings, (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
		{
			if (!(x_9 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1428_;
			{
				NIM_BOOL T1432_;
				T1432_ = (NIM_BOOL)0;
				T1432_ = ((*(*c_p0).callee).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10));
				if (!(T1432_)) goto LA1433_;
				T1432_ = !((*c_p0).typedescMatched);
LA1433_: ;
				if (!T1432_) goto LA1434_;
				{
					if (!(((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)30)))&63U)))!=0)) goto LA1438_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
				goto LA1436_;
LA1438_: ;
				{
					if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA1441_;
					{
						NI T1445_;
						T1445_ = (NI)0;
						T1445_ = len__ast_u5481(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
						if (!(T1445_ == ((NI)0))) goto LA1446_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
					}
					goto LA1443_;
LA1446_: ;
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_5;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__92;
						aa_5 = NIM_NIL;
						colontmpD__92 = NIM_NIL;
						{
							NI T1452_;
							NimStringV2 argX60gensym572__1;
							T1452_ = (NI)0;
							T1452_ = len__ast_u5481(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1449_;
							if (!!((((NI)0) < T1452_))) goto LA1453_;
							argX60gensym572__1.len = 0; argX60gensym572__1.p = NIM_NIL;
							argX60gensym572__1 = toFileLineCol__msgs_u701(TM__EV5hHJmjIY9cla9b9be7fSVJQ_63);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1455_;
							internalErrorImpl__msgs_u1594((*(*(*c_p0).c).graph).config, unknownLineInfo__lineinfos_u361, argX60gensym572__1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_63);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1455_;
							{
								LA1455_:;
							}
							{
								eqdestroy___system_u2627(argX60gensym572__1);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1449_;
						}
LA1453_: ;
						(*c_p0).typedescMatched = NIM_TRUE;
						eqcopy___ast_u3366(&aa_5, a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1449_;
						{
							while (1) {
								NIM_BOOL T1460_;
								NI T1462_;
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T1463_;
								T1460_ = (NIM_BOOL)0;
								T1460_ = ((*aa_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8) || (*aa_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
								if (!(T1460_)) goto LA1461_;
								T1462_ = (NI)0;
								T1462_ = len__ast_u5481(aa_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1449_;
								T1460_ = (((NI)0) < T1462_);
LA1461_: ;
								if (!T1460_) goto LA1459;
								T1463_ = NIM_NIL;
								T1463_ = last__ast_u5257(aa_5);
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T1463_); goto LA1449_;}
								eqsink___ast_u3372(&aa_5, T1463_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1449_;
							} LA1459: ;
						}
						{
							if (!((*aa_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12) || (*aa_5).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51) && (*aa_5).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54) || (*aa_5).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56) && (*aa_5).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59) || (*aa_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62))) goto LA1466_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
							eqdestroy___ast_u3363(colontmpD__92);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
							eqdestroy___ast_u3363(aa_5);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
							eqdestroy___ast_u3363(x_9);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3363(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(aOrig_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA1466_: ;
						colontmpD__92 = base__ast_u5330(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1449_;
						result = typeRel__sigmatch_u250(c_p0, colontmpD__92, aa_5, flags_p3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1449_;
						{
							if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) < result)) goto LA1470_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
						}
LA1470_: ;
						{
							LA1449_:;
						}
						{
							oldNimErrFin1449_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3363(colontmpD__92);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
							eqdestroy___ast_u3363(aa_5);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
							*nimErr_ = oldNimErrFin1449_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
					}
LA1443_: ;
				}
				goto LA1436_;
LA1441_: ;
				{
					if (!(*c_p0).isNoCall) goto LA1475_;
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concrete_2;
						if (!doBindGP_1) goto LA1479_;
						concrete_2 = NIM_NIL;
						concrete_2 = concreteType__sigmatch_u733((&(*c_p0)), a_1, f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1481_;
						{
							if (!(concrete_2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1484_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
							eqdestroy___ast_u3363(concrete_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
							eqdestroy___ast_u3363(x_9);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3363(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(aOrig_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA1484_: ;
						put__sigmatch_u246(c_p0, f_p1, concrete_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1481_;
						{
							LA1481_:;
						}
						{
							oldNimErrFin1481_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3363(concrete_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
							*nimErr_ = oldNimErrFin1481_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
					}
LA1479_: ;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
				goto LA1436_;
LA1475_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA1436_: ;
			}
			goto LA1430_;
LA1434_: ;
			{
				{
					NIM_BOOL T1492_;
					NI T1493_;
					T1492_ = (NIM_BOOL)0;
					T1493_ = (NI)0;
					T1493_ = len__ast_u5481(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
					T1492_ = (((NI)0) < T1493_);
					if (!(T1492_)) goto LA1494_;
					T1492_ = !(((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0)));
LA1494_: ;
					if (!T1492_) goto LA1495_;
					result = typeRel__sigmatch_u250(c_p0, (*f_p1).sons.p->data[((NI)0)], a_1, (flags_p3 | 5));
					if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
					{
						NIM_BOOL T1499_;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concrete_3;
						T1499_ = (NIM_BOOL)0;
						T1499_ = doBindGP_1;
						if (!(T1499_)) goto LA1500_;
						T1499_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0) || result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8)));
LA1500_: ;
						if (!T1499_) goto LA1501_;
						concrete_3 = NIM_NIL;
						concrete_3 = concreteType__sigmatch_u733((&(*c_p0)), a_1, f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1503_;
						{
							if (!(concrete_3 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1506_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
							eqdestroy___ast_u3363(concrete_3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
							eqdestroy___ast_u3363(x_9);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3363(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(aOrig_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA1506_: ;
						put__sigmatch_u246(c_p0, f_p1, concrete_3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1503_;
						{
							LA1503_:;
						}
						{
							oldNimErrFin1503_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3363(concrete_3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
							*nimErr_ = oldNimErrFin1503_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
					}
LA1501_: ;
					{
						if (!(result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10) || result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3))) goto LA1512_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
					}
LA1512_: ;
				}
				goto LA1490_;
LA1495_: ;
				{
					if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA1515_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
				goto LA1490_;
LA1515_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
LA1490_: ;
			}
LA1430_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concrete_4;
				if (!(result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA1520_;
				concrete_4 = NIM_NIL;
				eqcopy___ast_u3366(&concrete_4, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1522_;
				{
					if (!(((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)30)))&63U)))!=0)) goto LA1525_;
					transitionGenericParamToType__ast_u6814((*a_1).sym);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1522_;
					(*a_1).flags &= ~(((NU64)1) << (((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)30))) & 63));
				}
				goto LA1523_;
LA1525_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T1530_;
					if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1528_;
					T1530_ = NIM_NIL;
					T1530_ = concreteType__sigmatch_u733((&(*c_p0)), a_1, f_p1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T1530_); goto LA1522_;}
					eqsink___ast_u3372(&concrete_4, T1530_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1522_;
					{
						if (!(concrete_4 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1533_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
						eqdestroy___ast_u3363(concrete_4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
						eqdestroy___ast_u3363(x_9);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3363(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(aOrig_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA1533_: ;
				}
				goto LA1523_;
LA1528_: ;
LA1523_: ;
				{
					if (!doBindGP_1) goto LA1537_;
					put__sigmatch_u246(c_p0, f_p1, concrete_4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1522_;
				}
LA1537_: ;
				{
					LA1522_:;
				}
				{
					oldNimErrFin1522_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(concrete_4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
					*nimErr_ = oldNimErrFin1522_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
			}
			goto LA1518_;
LA1520_: ;
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) < result)) goto LA1542_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
			goto LA1518_;
LA1542_: ;
LA1518_: ;
		}
		goto LA1426_;
LA1428_: ;
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3))) goto LA1545_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
		}
		goto LA1426_;
LA1545_: ;
		{
			if (!((*x_9).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA1548_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
		}
		goto LA1426_;
LA1548_: ;
		{
			NI inheritancePenaltyOld_1;
			inheritancePenaltyOld_1 = (*c_p0).inheritancePenalty;
			result = typeRel__sigmatch_u250(c_p0, x_9, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1423_;
			(*c_p0).inheritancePenalty = inheritancePenaltyOld_1;
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) < result)) goto LA1553_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
LA1553_: ;
		}
LA1426_: ;
		{
			LA1423_:;
		}
		{
			oldNimErrFin1423_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(x_9);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1423_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prev_5;
		prev_5 = NIM_NIL;
		prev_5 = lookup__layeredtable_u1015((*c_p0).bindings, (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1558_;
		{
			if (!(prev_5 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1561_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__93;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__94;
				if (!((*aOrig_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60))) goto LA1565_;
				colontmpD__93 = NIM_NIL;
				colontmpD__94 = NIM_NIL;
				{
					NIM_BOOL T1570_;
					NIM_BOOL T1571_;
					T1570_ = (NIM_BOOL)0;
					T1571_ = (NIM_BOOL)0;
					T1571_ = (((NI)0) < (*(*c_p0).c).inGenericContext);
					if (!(T1571_)) goto LA1572_;
					T1571_ = ((*aOrig_2).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
LA1572_: ;
					T1570_ = T1571_;
					if (!(T1570_)) goto LA1573_;
					T1570_ = !((*c_p0).isNoCall);
LA1573_: ;
					if (!T1570_) goto LA1574_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
				goto LA1568_;
LA1574_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__95;
					colontmpD__93 = base__ast_u5330(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
					if (!!(((*colontmpD__93).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0) || (*colontmpD__93).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12)))) goto LA1577_;
					colontmpD__95 = NIM_NIL;
					colontmpD__95 = base__ast_u5330(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1579_;
					result = typeRel__sigmatch_u250(c_p0, colontmpD__95, a_1, flags_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1579_;
					{
						NIM_BOOL T1582_;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* r_2;
						T1582_ = (NIM_BOOL)0;
						T1582_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
						if (!(T1582_)) goto LA1583_;
						T1582_ = !(((*f_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA1583_: ;
						if (!T1582_) goto LA1584_;
						r_2 = NIM_NIL;
						r_2 = tryResolvingStaticExpr__sigmatch_u1816(c_p0, (*f_p1).n, NIM_FALSE, NIM_FALSE, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
						if (NIM_UNLIKELY(*nimErr_)) goto LA1586_;
						{
							if (!(r_2 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA1589_;
							eqcopy___ast_u3240(&r_2, (*f_p1).n);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1586_;
						}
LA1589_: ;
						{
							NIM_BOOL T1593_;
							NIM_BOOL T1594_;
							NIM_BOOL T1596_;
							NIM_BOOL T1597_;
							T1593_ = (NIM_BOOL)0;
							T1594_ = (NIM_BOOL)0;
							T1594_ = exprStructuralEquivalent__trees_u63(r_2, (*aOrig_2).n, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1586_;
							T1593_ = !(T1594_);
							if (!(T1593_)) goto LA1595_;
							T1596_ = (NIM_BOOL)0;
							T1597_ = (NIM_BOOL)0;
							T1597_ = !(((*aOrig_2).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
							if (!(T1597_)) goto LA1598_;
							T1597_ = ((*(*aOrig_2).n).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6));
LA1598_: ;
							T1596_ = T1597_;
							if (!(T1596_)) goto LA1599_;
							T1596_ = inferStaticParam__sigmatch_u1830(c_p0, r_2, (*(*aOrig_2).n)._kind_1.intVal);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1586_;
LA1599_: ;
							T1593_ = !(T1596_);
LA1595_: ;
							if (!T1593_) goto LA1600_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
						}
LA1600_: ;
						{
							LA1586_:;
						}
						{
							oldNimErrFin1586_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3237(r_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1579_;
							*nimErr_ = oldNimErrFin1586_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1579_;
					}
LA1584_: ;
					{
						LA1579_:;
					}
					{
						oldNimErrFin1579_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__95);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
						*nimErr_ = oldNimErrFin1579_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
				}
				goto LA1568_;
LA1577_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__96;
					colontmpD__94 = base__ast_u5330(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
					if (!((*colontmpD__94).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA1607_;
					colontmpD__96 = NIM_NIL;
					{
						NI T1612_;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__97;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__98;
						colontmpD__96 = base__ast_u5330(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1609_;
						T1612_ = (NI)0;
						T1612_ = len__ast_u5481(colontmpD__96);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1609_;
						if (!(((NI)0) < T1612_)) goto LA1613_;
						colontmpD__97 = NIM_NIL;
						colontmpD__98 = NIM_NIL;
						colontmpD__97 = base__ast_u5330(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1615_;
						colontmpD__98 = last__ast_u5257(colontmpD__97);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1615_;
						result = typeRel__sigmatch_u250(c_p0, colontmpD__98, a_1, flags_p3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1615_;
						{
							LA1615_:;
						}
						{
							oldNimErrFin1615_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3363(colontmpD__98);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1609_;
							eqdestroy___ast_u3363(colontmpD__97);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1609_;
							*nimErr_ = oldNimErrFin1615_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1609_;
					}
					goto LA1610_;
LA1613_: ;
					{
						{
							if (!(((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)25)))&63U)))!=0)) goto LA1621_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
						}
						goto LA1619_;
LA1621_: ;
						{
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__99;
							colontmpD__99 = NIM_NIL;
							colontmpD__99 = base__ast_u5330(f_p1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1624_;
							result = typeRel__sigmatch_u250(c_p0, colontmpD__99, a_1, flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1624_;
							{
								LA1624_:;
							}
							{
								oldNimErrFin1624_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3363(colontmpD__99);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1609_;
								*nimErr_ = oldNimErrFin1624_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1609_;
						}
LA1619_: ;
					}
LA1610_: ;
					{
						LA1609_:;
					}
					{
						oldNimErrFin1609_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__96);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
						*nimErr_ = oldNimErrFin1609_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
				}
				goto LA1568_;
LA1607_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
LA1568_: ;
				{
					if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA1632_;
					put__sigmatch_u246(c_p0, f_p1, aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
				}
LA1632_: ;
				{
					LA1567_:;
				}
				{
					oldNimErrFin1567_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__94);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1558_;
					eqdestroy___ast_u3363(colontmpD__93);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1558_;
					*nimErr_ = oldNimErrFin1567_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1558_;
			}
			goto LA1563_;
LA1565_: ;
			{
				NIM_BOOL T1637_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__100;
				tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__101;
				tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ colontmpD__102;
				T1637_ = (NIM_BOOL)0;
				T1637_ = !(((*aOrig_2).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
				if (!(T1637_)) goto LA1638_;
				T1637_ = !(((*(*aOrig_2).n).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
LA1638_: ;
				if (!T1637_) goto LA1639_;
				colontmpD__100 = NIM_NIL;
				colontmpD__101 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
				colontmpD__102 = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__103;
					colontmpD__100 = base__ast_u5330(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1641_;
					if (!!(((*colontmpD__100).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0)))) goto LA1644_;
					colontmpD__103 = NIM_NIL;
					colontmpD__103 = last__ast_u5257(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1646_;
					colontmpD__101 = typeRel__sigmatch_u250(c_p0, colontmpD__103, (*(*aOrig_2).n).typField, flags_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1646_;
					result = colontmpD__101;
					{
						LA1646_:;
					}
					{
						oldNimErrFin1646_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__103);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1641_;
						*nimErr_ = oldNimErrFin1646_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1641_;
				}
				goto LA1642_;
LA1644_: ;
				{
					colontmpD__102 = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
					result = colontmpD__102;
				}
LA1642_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* boundType_1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__104;
					if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA1652_;
					boundType_1 = NIM_NIL;
					colontmpD__104 = NIM_NIL;
					colontmpD__104 = eqdup___ast_u3369((*(*aOrig_2).n).typField);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1641_;
					boundType_1 = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60), (*c_p0).c, colontmpD__104);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1641_;
					eqcopy___ast_u3240(&(*boundType_1).n, (*aOrig_2).n);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1641_;
					put__sigmatch_u246(c_p0, f_p1, boundType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1641_;
					eqdestroy___ast_u3363(boundType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1641_;
				}
LA1652_: ;
				{
					LA1641_:;
				}
				{
					oldNimErrFin1641_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__100);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1558_;
					*nimErr_ = oldNimErrFin1641_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1558_;
			}
			goto LA1563_;
LA1639_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA1563_: ;
		}
		goto LA1559_;
LA1561_: ;
		{
			if (!((*prev_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60))) goto LA1658_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__105;
				if (!((*aOrig_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60))) goto LA1662_;
				colontmpD__105 = NIM_NIL;
				colontmpD__105 = last__ast_u5257(prev_5);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1664_;
				result = typeRel__sigmatch_u250(c_p0, colontmpD__105, a_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1664_;
				{
					NIM_BOOL T1667_;
					T1667_ = (NIM_BOOL)0;
					T1667_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
					if (!(T1667_)) goto LA1668_;
					T1667_ = !(((*prev_5).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA1668_: ;
					if (!T1667_) goto LA1669_;
					{
						NIM_BOOL T1673_;
						T1673_ = (NIM_BOOL)0;
						T1673_ = exprStructuralEquivalent__trees_u63((*prev_5).n, (*aOrig_2).n, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1664_;
						if (!!(T1673_)) goto LA1674_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
					}
LA1674_: ;
				}
LA1669_: ;
				{
					LA1664_:;
				}
				{
					oldNimErrFin1664_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__105);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1558_;
					*nimErr_ = oldNimErrFin1664_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1558_;
			}
			goto LA1660_;
LA1662_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA1660_: ;
		}
		goto LA1559_;
LA1658_: ;
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		}
LA1559_: ;
		{
			LA1558_:;
		}
		{
			oldNimErrFin1558_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(prev_5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1558_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prev_6;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T1684_;
		prev_6 = NIM_NIL;
		T1684_ = NIM_NIL;
		{
			NI T1687_;
			T1687_ = (*f_p1).sons.len;
			if (!(((NI)1) < T1687_)) goto LA1688_;
			prev_6 = last__ast_u5257(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1683_;
		}
		goto LA1685_;
LA1688_: ;
		{
			prev_6 = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
		}
LA1685_: ;
		{
			if (!!((prev_6 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA1693_;
			result = typeRel__sigmatch_u250(c_p0, prev_6, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1683_;
		}
		goto LA1691_;
LA1693_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__106;
			colontmpD__106 = NIM_NIL;
			colontmpD__106 = base__ast_u5330(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1696_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__106, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1696_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__107;
				if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA1699_;
				colontmpD__107 = NIM_NIL;
				colontmpD__107 = eqdup___ast_u3369(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1696_;
				add__ast_u3876((&(*c_p0).inferredTypes), colontmpD__107);
				add__ast_u3866(f_p1, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1696_;
			}
LA1699_: ;
			{
				LA1696_:;
			}
			{
				oldNimErrFin1696_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__106);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1683_;
				*nimErr_ = oldNimErrFin1696_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1683_;
		}
LA1691_: ;
		{
			LA1683_:;
		}
		{
			oldNimErrFin1683_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(prev_6);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1683_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prev_7;
		prev_7 = NIM_NIL;
		prev_7 = lookup__layeredtable_u1015((*c_p0).bindings, (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1706_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__108;
			if (!(prev_7 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1709_;
			colontmpD__108 = NIM_NIL;
			{
				NIM_BOOL T1714_;
				T1714_ = (NIM_BOOL)0;
				T1714_ = (((NI)0) < (*(*c_p0).c).inGenericContext);
				if (!(T1714_)) goto LA1715_;
				T1714_ = containsUnresolvedType__types_u3464(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1711_;
LA1715_: ;
				if (!T1714_) goto LA1716_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
			goto LA1712_;
LA1716_: ;
			{
				if (!!(((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8)))) goto LA1719_;
				{
					NIM_BOOL T1723_;
					T1723_ = (NIM_BOOL)0;
					T1723_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
					if (!(T1723_)) goto LA1724_;
					T1723_ = (((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)30)))&63U)))!=0);
LA1724_: ;
					if (!T1723_) goto LA1725_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
				goto LA1721_;
LA1725_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA1721_: ;
			}
			goto LA1712_;
LA1719_: ;
			{
				colontmpD__108 = base__ast_u5330(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1711_;
				if (!((*colontmpD__108).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0))) goto LA1729_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
			goto LA1712_;
LA1729_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__109;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__110;
				colontmpD__109 = NIM_NIL;
				colontmpD__110 = NIM_NIL;
				colontmpD__109 = base__ast_u5330(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1732_;
				colontmpD__110 = base__ast_u5330(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1732_;
				result = typeRel__sigmatch_u250(c_p0, colontmpD__109, colontmpD__110, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1732_;
				{
					LA1732_:;
				}
				{
					oldNimErrFin1732_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__110);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1711_;
					eqdestroy___ast_u3363(colontmpD__109);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1711_;
					*nimErr_ = oldNimErrFin1732_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1711_;
			}
LA1712_: ;
			{
				if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA1737_;
				put__sigmatch_u246(c_p0, f_p1, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1711_;
			}
LA1737_: ;
			{
				LA1711_:;
			}
			{
				oldNimErrFin1711_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__108);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1706_;
				*nimErr_ = oldNimErrFin1711_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1706_;
		}
		goto LA1707_;
LA1709_: ;
		{
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__111;
				if (!(((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0)) goto LA1744_;
				colontmpD__111 = NIM_NIL;
				colontmpD__111 = base__ast_u5330(prev_7);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1746_;
				result = typeRel__sigmatch_u250(c_p0, colontmpD__111, a_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1746_;
				{
					LA1746_:;
				}
				{
					oldNimErrFin1746_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__111);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1706_;
					*nimErr_ = oldNimErrFin1746_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1706_;
			}
			goto LA1742_;
LA1744_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__112;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__113;
				if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA1750_;
				colontmpD__112 = NIM_NIL;
				colontmpD__113 = NIM_NIL;
				colontmpD__112 = base__ast_u5330(prev_7);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1752_;
				colontmpD__113 = base__ast_u5330(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1752_;
				result = typeRel__sigmatch_u250(c_p0, colontmpD__112, colontmpD__113, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1752_;
				{
					LA1752_:;
				}
				{
					oldNimErrFin1752_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__113);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1706_;
					eqdestroy___ast_u3363(colontmpD__112);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1706_;
					*nimErr_ = oldNimErrFin1752_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1706_;
			}
			goto LA1742_;
LA1750_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA1742_: ;
		}
LA1707_: ;
		{
			LA1706_:;
		}
		{
			oldNimErrFin1706_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(prev_7);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1706_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7):
	{
		{
			if (!!((aOrig_2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA1761_;
			put__sigmatch_u246(c_p0, f_p1, aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA1761_: ;
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50):
	{
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61):
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* instantiated_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* reevaluated_1;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__114;
		tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg T1776_;
		instantiated_1 = NIM_NIL;
		reevaluated_1 = NIM_NIL;
		colontmpD__114 = NIM_NIL;
		{
			NIM_BOOL T1768_;
			T1768_ = (NIM_BOOL)0;
			T1768_ = ((*f_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
			if (T1768_) goto LA1769_;
			T1768_ = ((*(*f_p1).n).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1));
LA1769_: ;
			if (!T1768_) goto LA1770_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			eqdestroy___ast_u3237(colontmpD__114);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(reevaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3237(instantiated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1770_: ;
		{
			if (!(((NI)0) < (*(*c_p0).c).inGenericContext)) goto LA1774_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			eqdestroy___ast_u3237(colontmpD__114);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(reevaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3237(instantiated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1774_: ;
		(*(*c_p0).c).inGenericContext += ((NI)1);
		instantiated_1 = prepareTypesInBody__semtypinst_u1579((*c_p0).c, (*c_p0).bindings, (*f_p1).n, ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1765_;
		T1776_ = 0;
		colontmpD__114 = (*(*c_p0).c).semExpr((*c_p0).c, instantiated_1, T1776_, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1765_;
		eqcopy___ast_u3366(&reevaluated_1, (*colontmpD__114).typField);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1765_;
		(*(*c_p0).c).inGenericContext -= ((NI)1);
		switch ((*reevaluated_1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61):
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__115;
			colontmpD__115 = NIM_NIL;
			colontmpD__115 = base__ast_u5330(reevaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1779_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__115, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1779_;
			{
				LA1779_:;
			}
			{
				oldNimErrFin1779_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__115);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1765_;
				*nimErr_ = oldNimErrFin1779_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1765_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__116;
			colontmpD__116 = NIM_NIL;
			colontmpD__116 = base__ast_u5330(reevaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1783_;
			result = typeRel__sigmatch_u250(c_p0, colontmpD__116, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1783_;
			{
				NIM_BOOL T1786_;
				T1786_ = (NIM_BOOL)0;
				T1786_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
				if (!(T1786_)) goto LA1787_;
				T1786_ = !(((*reevaluated_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA1787_: ;
				if (!T1786_) goto LA1788_;
				{
					NIM_BOOL T1792_;
					T1792_ = (NIM_BOOL)0;
					T1792_ = exprStructuralEquivalent__trees_u63((*aOrig_2).n, (*reevaluated_1).n, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1783_;
					if (!!(T1792_)) goto LA1793_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA1793_: ;
			}
LA1788_: ;
			{
				LA1783_:;
			}
			{
				oldNimErrFin1783_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__116);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1765_;
				*nimErr_ = oldNimErrFin1783_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1765_;
		}
		break;
		default:
		{
			result = typeRel__sigmatch_u250(c_p0, reevaluated_1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1765_;
			{
				NIM_BOOL T1800_;
				T1800_ = (NIM_BOOL)0;
				T1800_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
				if (!(T1800_)) goto LA1801_;
				T1800_ = !(((*reevaluated_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA1801_: ;
				if (!T1800_) goto LA1802_;
				{
					NIM_BOOL T1806_;
					T1806_ = (NIM_BOOL)0;
					T1806_ = exprStructuralEquivalent__trees_u63((*aOrig_2).n, (*reevaluated_1).n, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1765_;
					if (!!(T1806_)) goto LA1807_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA1807_: ;
			}
LA1802_: ;
		}
		break;
		}
		{
			LA1765_:;
		}
		{
			oldNimErrFin1765_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3237(colontmpD__114);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(reevaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3237(instantiated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1765_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0):
	{
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0))) goto LA1814_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
		}
LA1814_: ;
	}
	break;
	default:
	{
		NimStringV2 colontmpD__117;
		NimStringV2 colontmpD__118;
		NimStringV2 T1818_;
		colontmpD__117.len = 0; colontmpD__117.p = NIM_NIL;
		colontmpD__118.len = 0; colontmpD__118.p = NIM_NIL;
		T1818_.len = 0; T1818_.p = NIM_NIL;
		colontmpD__117 = dollar___ast_u182((*f_p1).kind);
		T1818_ = rawNewString(colontmpD__117.len + 19);
appendString((&T1818_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_65);
appendString((&T1818_), colontmpD__117);
		colontmpD__118 = T1818_;
		internalErrorImpl__msgs_u1594((*(*(*c_p0).c).graph).config, unknownLineInfo__lineinfos_u361, colontmpD__118, TM__EV5hHJmjIY9cla9b9be7fSVJQ_66);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1817_;
		{
			LA1817_:;
		}
		{
			eqdestroy___system_u2627(colontmpD__118);
			eqdestroy___system_u2627(colontmpD__117);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	}
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(aOrig_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, incMatches__sigmatch_u3877)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ r_p1, NI convMatch_p2) {
	switch (r_p1) {
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1):
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2):
	{
		(*m_p0).convMatches += convMatch_p2;
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3):
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)4):
	{
		(*m_p0).subtypeMatches += ((NI)1);
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8):
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)6):
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)5):
	{
		(*m_p0).genericMatches += ((NI)1);
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)9):
	{
		(*m_p0).intConvMatches += ((NI)256);
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)7):
	{
		(*m_p0).convMatches += ((NI)1);
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10):
	{
		(*m_p0).exactMatches += ((NI)1);
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0):
	{
	}
	break;
	default: __builtin_unreachable();
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, getInstantiatedType__sigmatch_u3579)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p3) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = lookup__layeredtable_u1015((*m_p2).bindings, (*f_p3).itemId);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T5_;
		if (!(result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = generateTypeInstance__semtypinst_u1615(c_p0, (*m_p2).bindings, (*arg_p1).info, f_p3);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T5_); goto BeforeRet_;}
		eqsink___ast_u3372(&result, T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T10_;
		if (!(result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA8_;
		internalErrorImpl__msgs_u1594((*(*c_p0).graph).config, (*arg_p1).info, TM__EV5hHJmjIY9cla9b9be7fSVJQ_71, TM__EV5hHJmjIY9cla9b9be7fSVJQ_72);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T10_ = NIM_NIL;
		T10_ = errorType__semdata_u4909(c_p0);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T10_); goto BeforeRet_;}
		eqsink___ast_u3372(&result, T10_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA8_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, implicitConv__sigmatch_u3593)(tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_p2, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p3, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p4) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL oldNimErrFin10_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = newNodeI__ast_u4076(kind_p0, (*arg_p2).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = containsGenericType__types_u3445(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T11_;
			if (!!((*m_p3).matchedErrorType)) goto LA8_;
			colontmpD_ = NIM_NIL;
			colontmpD_ = getInstantiatedType__sigmatch_u3579(c_p4, arg_p2, m_p3, f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
			T11_ = NIM_NIL;
			T11_ = skipTypes__ast_u5358(colontmpD_, TM__EV5hHJmjIY9cla9b9be7fSVJQ_19);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T11_); goto LA10_;}
			eqsink___ast_u3372(&(*result).typField, T11_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
			{
				LA10_:;
			}
			{
				oldNimErrFin10_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin10_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA6_;
LA8_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T15_;
			T15_ = NIM_NIL;
			T15_ = errorType__semdata_u4909(c_p4);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T15_); goto BeforeRet_;}
			eqsink___ast_u3372(&(*result).typField, T15_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA6_: ;
	}
	goto LA1_;
LA4_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T17_;
		T17_ = NIM_NIL;
		T17_ = skipTypes__ast_u5358(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_19);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T17_); goto BeforeRet_;}
		eqsink___ast_u3372(&(*result).typField, T17_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	{
		NIM_BOOL T20_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T24_;
		T20_ = (NIM_BOOL)0;
		T20_ = !(((*arg_p2).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T20_)) goto LA21_;
		T20_ = ((*(*arg_p2).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23));
LA21_: ;
		if (!T20_) goto LA22_;
		T24_ = NIM_NIL;
		T24_ = toVar__ast_u7239((*result).typField, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23), (*c_p4).Sup.idgen);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T24_); goto BeforeRet_;}
		eqsink___ast_u3372(&(*result).typField, T24_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*(*result).typField).flags = (*(*arg_p2).typField).flags;
	}
	goto LA18_;
LA22_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T26_;
		T26_ = NIM_NIL;
		T26_ = skipTypes__ast_u5358((*result).typField, TM__EV5hHJmjIY9cla9b9be7fSVJQ_75);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T26_); goto BeforeRet_;}
		eqsink___ast_u3372(&(*result).typField, T26_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA18_: ;
	{
		if (!((*result).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA29_;
		internalErrorImpl__msgs_u1594((*(*c_p4).graph).config, (*arg_p2).info, TM__EV5hHJmjIY9cla9b9be7fSVJQ_77, TM__EV5hHJmjIY9cla9b9be7fSVJQ_78);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA29_: ;
	add__ast_u3200(result, (*(*c_p4).graph).emptyNode);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T33_;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		T33_ = (NIM_BOOL)0;
		T33_ = !(((*arg_p2).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T33_)) goto LA34_;
		T33_ = ((*(*arg_p2).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47));
LA34_: ;
		if (!T33_) goto LA35_;
		a_1 = NIM_NIL;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = elementType__ast_u5310((*arg_p2).typField);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		a_1 = newNodeIT__ast_u4097(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65), (*arg_p2).info, colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__ast_u3200(a_1, arg_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__ast_u3200(result, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3237(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA31_;
LA35_: ;
	{
		add__ast_u3200(result, arg_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA31_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, convertLiteral__sigmatch_u3621)(tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p0, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p2, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p3, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* newType_p4) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL oldNimErrFin9_;
NIM_BOOL oldNimErrFin21_;
NIM_BOOL oldNimErrFin32_;
NIM_BOOL oldNimErrFin64_;
NIM_BOOL oldNimErrFin76_;
NIM_BOOL oldNimErrFin55_;
NIM_BOOL oldNimErrFin89_;
NIM_BOOL oldNimErrFin40_;
NIM_BOOL oldNimErrFin118_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	switch ((*n_p3).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)39):
	{
		result = copyNode__ast_u6707(n_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_u3175(n_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i_1 = i_2;
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* x_1;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* valX60gensym651__1;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* valX60gensym654__1;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
						if (!((*(*n_p3)._kind_6.sons.p->data[i_1]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)44))) goto LA7_;
						x_1 = NIM_NIL;
						valX60gensym651__1 = NIM_NIL;
						colontmpD_ = NIM_NIL;
						valX60gensym654__1 = NIM_NIL;
						colontmpD__2 = NIM_NIL;
						x_1 = copyNode__ast_u6707((*n_p3)._kind_6.sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						colontmpD_ = elemType__types_u250(newType_p4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						valX60gensym651__1 = convertLiteral__sigmatch_u3621(kind_p0, c_p1, m_p2, (*(*n_p3)._kind_6.sons.p->data[i_1])._kind_6.sons.p->data[((NI)0)], colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						{
							if (!(valX60gensym651__1 == 0)) goto LA12_;
							result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
							eqdestroy___ast_u3363(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(valX60gensym654__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(valX60gensym651__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(x_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA12_: ;
						add__ast_u3200(x_1, valX60gensym651__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						colontmpD__2 = elemType__types_u250(newType_p4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						valX60gensym654__1 = convertLiteral__sigmatch_u3621(kind_p0, c_p1, m_p2, (*(*n_p3)._kind_6.sons.p->data[i_1])._kind_6.sons.p->data[((NI)1)], colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						{
							if (!(valX60gensym654__1 == 0)) goto LA16_;
							result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
							eqdestroy___ast_u3363(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(valX60gensym654__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(valX60gensym651__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(x_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA16_: ;
						add__ast_u3200(x_1, valX60gensym654__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						add__ast_u3200(result, x_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						{
							LA9_:;
						}
						{
							oldNimErrFin9_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3363(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(valX60gensym654__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(valX60gensym651__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(x_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							*nimErr_ = oldNimErrFin9_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA5_;
LA7_: ;
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* valX60gensym657__1;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
						valX60gensym657__1 = NIM_NIL;
						colontmpD__3 = NIM_NIL;
						colontmpD__3 = elemType__types_u250(newType_p4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
						valX60gensym657__1 = convertLiteral__sigmatch_u3621(kind_p0, c_p1, m_p2, (*n_p3)._kind_6.sons.p->data[i_1], colontmpD__3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
						{
							if (!(valX60gensym657__1 == 0)) goto LA24_;
							result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
							eqdestroy___ast_u3363(colontmpD__3);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(valX60gensym657__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA24_: ;
						add__ast_u3200(result, valX60gensym657__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
						{
							LA21_:;
						}
						{
							oldNimErrFin21_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3363(colontmpD__3);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(valX60gensym657__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							*nimErr_ = oldNimErrFin21_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
LA5_: ;
					i_2 += ((NI)1);
				} LA4: ;
			}
		}
		eqcopy___ast_u3366(&(*result).typField, newType_p4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)41):
	{
		result = copyNode__ast_u6707(n_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_u3175(n_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI)0);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* valX60gensym660__1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
					if (!(i_4 < colontmp__2)) goto LA31;
					valX60gensym660__1 = NIM_NIL;
					colontmpD__4 = NIM_NIL;
					i_3 = i_4;
					colontmpD__4 = elemType__types_u250(newType_p4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
					valX60gensym660__1 = convertLiteral__sigmatch_u3621(kind_p0, c_p1, m_p2, (*n_p3)._kind_6.sons.p->data[i_3], colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
					{
						if (!(valX60gensym660__1 == 0)) goto LA35_;
						result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
						eqdestroy___ast_u3363(colontmpD__4);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3237(valX60gensym660__1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA35_: ;
					add__ast_u3200(result, valX60gensym660__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
					i_4 += ((NI)1);
					{
						LA32_:;
					}
					{
						oldNimErrFin32_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__4);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3237(valX60gensym660__1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						*nimErr_ = oldNimErrFin32_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA31: ;
			}
		}
		eqcopy___ast_u3366(&(*result).typField, newType_p4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)37):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)160):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* tup_1;
		tup_1 = NIM_NIL;
		tup_1 = skipTypes__ast_u5358(newType_p4, TM__EV5hHJmjIY9cla9b9be7fSVJQ_73);
		if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
		{
			if (!((*tup_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18))) goto LA43_;
			result = copyNode__ast_u6707(n_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
			{
				NIM_BOOL T47_;
				NI T48_;
				T47_ = (NIM_BOOL)0;
				T48_ = (NI)0;
				T48_ = len__ast_u3175(n_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				T47_ = (((NI)0) < T48_);
				if (!(T47_)) goto LA49_;
				T47_ = ((*(*n_p3)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)34));
LA49_: ;
				if (!T47_) goto LA50_;
				{
					NI i_5;
					NI colontmp__3;
					NI i_6;
					i_5 = (NI)0;
					colontmp__3 = (NI)0;
					colontmp__3 = len__ast_u3175(n_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
					i_6 = ((NI)0);
					{
						while (1) {
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* name_1;
							if (!(i_6 < colontmp__3)) goto LA54;
							name_1 = NIM_NIL;
							i_5 = i_6;
							eqcopy___ast_u3240(&name_1, (*(*n_p3)._kind_6.sons.p->data[i_5])._kind_6.sons.p->data[((NI)0)]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
							{
								if (!!(((*name_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3)))) goto LA58_;
								result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
								eqdestroy___ast_u3237(name_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
								eqdestroy___ast_u3363(tup_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA58_: ;
							{
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* f_1;
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* valX60gensym669__1;
								if (!!(((*tup_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA62_;
								f_1 = NIM_NIL;
								valX60gensym669__1 = NIM_NIL;
								f_1 = getSymFromList__astalgo_u191((*tup_1).n, (*(*name_1)._kind_4.sym).name, ((NI)0));
								if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
								{
									if (!(f_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL))) goto LA67_;
									result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
									eqdestroy___ast_u3237(valX60gensym669__1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									eqdestroy___ast_u4558(f_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									eqdestroy___ast_u3237(name_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
									eqdestroy___ast_u3363(tup_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto BeforeRet_;
								}
LA67_: ;
								valX60gensym669__1 = convertLiteral__sigmatch_u3621(kind_p0, c_p1, m_p2, (*(*n_p3)._kind_6.sons.p->data[i_5])._kind_6.sons.p->data[((NI)1)], (*f_1).typ);
								if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
								{
									if (!(valX60gensym669__1 == 0)) goto LA71_;
									result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
									eqdestroy___ast_u3237(valX60gensym669__1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									eqdestroy___ast_u4558(f_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									eqdestroy___ast_u3237(name_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
									eqdestroy___ast_u3363(tup_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto BeforeRet_;
								}
LA71_: ;
								add__ast_u3200(result, valX60gensym669__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
								{
									LA64_:;
								}
								{
									oldNimErrFin64_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3237(valX60gensym669__1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									eqdestroy___ast_u4558(f_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									*nimErr_ = oldNimErrFin64_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
							}
							goto LA60_;
LA62_: ;
							{
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* valX60gensym672__1;
								valX60gensym672__1 = NIM_NIL;
								valX60gensym672__1 = convertLiteral__sigmatch_u3621(kind_p0, c_p1, m_p2, (*(*n_p3)._kind_6.sons.p->data[i_5])._kind_6.sons.p->data[((NI)1)], (*tup_1).sons.p->data[i_5]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA76_;
								{
									if (!(valX60gensym672__1 == 0)) goto LA79_;
									result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
									eqdestroy___ast_u3237(valX60gensym672__1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									eqdestroy___ast_u3237(name_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
									eqdestroy___ast_u3363(tup_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto BeforeRet_;
								}
LA79_: ;
								add__ast_u3200(result, valX60gensym672__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA76_;
								{
									LA76_:;
								}
								{
									oldNimErrFin76_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3237(valX60gensym672__1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									*nimErr_ = oldNimErrFin76_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
							}
LA60_: ;
							i_6 += ((NI)1);
							{
								LA55_:;
							}
							{
								oldNimErrFin55_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3237(name_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
								*nimErr_ = oldNimErrFin55_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						} LA54: ;
					}
				}
			}
			goto LA45_;
LA50_: ;
			{
				{
					NI i_7;
					NI colontmp__4;
					NI i_8;
					i_7 = (NI)0;
					colontmp__4 = (NI)0;
					colontmp__4 = len__ast_u3175(n_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
					i_8 = ((NI)0);
					{
						while (1) {
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* valX60gensym676__1;
							if (!(i_8 < colontmp__4)) goto LA88;
							valX60gensym676__1 = NIM_NIL;
							i_7 = i_8;
							valX60gensym676__1 = convertLiteral__sigmatch_u3621(kind_p0, c_p1, m_p2, (*n_p3)._kind_6.sons.p->data[i_7], (*tup_1).sons.p->data[i_7]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA89_;
							{
								if (!(valX60gensym676__1 == 0)) goto LA92_;
								result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
								eqdestroy___ast_u3237(valX60gensym676__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
								eqdestroy___ast_u3363(tup_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA92_: ;
							add__ast_u3200(result, valX60gensym676__1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA89_;
							i_8 += ((NI)1);
							{
								LA89_:;
							}
							{
								oldNimErrFin89_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3237(valX60gensym676__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
								*nimErr_ = oldNimErrFin89_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						} LA88: ;
					}
				}
			}
LA45_: ;
			eqcopy___ast_u3366(&(*result).typField, newType_p4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
			eqdestroy___ast_u3363(tup_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA43_: ;
		{
			LA40_:;
		}
		{
			oldNimErrFin40_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(tup_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin40_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)5) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)15):
	{
		{
			NIM_BOOL T101_;
			NIM_BOOL T102_;
			tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ T104_;
			NIM_BOOL T105_;
			NI64 value_1;
			T101_ = (NIM_BOOL)0;
			T102_ = (NIM_BOOL)0;
			T102_ = !(((*n_p3).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)15)));
			if (!(T102_)) goto LA103_;
			T104_ = 0;
			T105_ = (NIM_BOOL)0;
			T105_ = sameTypeOrNil__types_u1834((*n_p3).typField, newType_p4, T104_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T102_ = !(T105_);
LA103_: ;
			T101_ = T102_;
			if (!(T101_)) goto LA106_;
			T101_ = isOrdinalType__types_u279(newType_p4, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA106_: ;
			if (!T101_) goto LA107_;
			value_1 = (*n_p3)._kind_1.intVal;
			{
				NIM_BOOL T111_;
				tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T112_;
				tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T114_;
				T111_ = (NIM_BOOL)0;
				T112_ = firstOrd__types_u1181((*(*c_p1).graph).config, newType_p4);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T111_ = lt___int128_u959(value_1, T112_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (T111_) goto LA113_;
				T114_ = lastOrd__types_u1297((*(*c_p1).graph).config, newType_p4);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T111_ = lt___int128_u933(T114_, value_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA113_: ;
				if (!T111_) goto LA115_;
				result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
				goto BeforeRet_;
			}
LA115_: ;
			result = copyNode__ast_u6707(n_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqcopy___ast_u3366(&(*result).typField, newType_p4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA107_: ;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)16) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)18):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
		colontmpD__5 = NIM_NIL;
		{
			colontmpD__5 = skipTypes__ast_u5358(newType_p4, TM__EV5hHJmjIY9cla9b9be7fSVJQ_74);
			if (NIM_UNLIKELY(*nimErr_)) goto LA118_;
			if (!((*colontmpD__5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36))) goto LA121_;
			{
				NIM_BOOL T125_;
				T125_ = (NIM_BOOL)0;
				T125_ = floatRangeCheck__types_u1415((*n_p3)._kind_2.floatVal, newType_p4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA118_;
				if (!!(T125_)) goto LA126_;
				result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
				eqdestroy___ast_u3363(colontmpD__5);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA126_: ;
			result = copyNode__ast_u6707(n_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA118_;
			eqcopy___ast_u3366(&(*result).typField, newType_p4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA118_;
			eqdestroy___ast_u3363(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA121_: ;
		{
			LA118_:;
		}
		{
			oldNimErrFin118_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin118_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		{
			NIM_BOOL T133_;
			NIM_BOOL T134_;
			tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ T136_;
			NIM_BOOL T137_;
			NI value_2;
			T133_ = (NIM_BOOL)0;
			T134_ = (NIM_BOOL)0;
			T134_ = ((*(*n_p3)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)20));
			if (!(T134_)) goto LA135_;
			T136_ = 0;
			T137_ = (NIM_BOOL)0;
			T137_ = sameTypeOrNil__types_u1834((*(*n_p3)._kind_4.sym).typ, newType_p4, T136_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T134_ = !(T137_);
LA135_: ;
			T133_ = T134_;
			if (!(T133_)) goto LA138_;
			T133_ = isOrdinalType__types_u279(newType_p4, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA138_: ;
			if (!T133_) goto LA139_;
			value_2 = (*(*n_p3)._kind_4.sym).position;
			{
				NIM_BOOL T143_;
				tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T144_;
				tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T146_;
				T143_ = (NIM_BOOL)0;
				T144_ = firstOrd__types_u1181((*(*c_p1).graph).config, newType_p4);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T143_ = lt___int128_u959(((NI64) (value_2)), T144_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (T143_) goto LA145_;
				T146_ = lastOrd__types_u1297((*(*c_p1).graph).config, newType_p4);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T143_ = lt___int128_u933(T146_, ((NI64) (value_2)));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA145_: ;
				if (!T143_) goto LA147_;
				result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
				goto BeforeRet_;
			}
LA147_: ;
			result = copyNode__ast_u6707(n_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqcopy___ast_u3366(&(*result).typField, newType_p4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA139_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	result = implicitConv__sigmatch_u3593(kind_p0, newType_p4, n_p3, m_p2, c_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmpInheritancePenalty__sigmatch_u584)(NI a_p0, NI b_p1) {
	NI result;
	NI eb_1;
	NI ea_1;
	eb_1 = b_p1;
	ea_1 = a_p0;
	{
		if (!(b_p1 < ((NI)0))) goto LA3_;
		eb_1 = ((NI)1073741823);
	}
LA3_: ;
	{
		if (!(a_p0 < ((NI)0))) goto LA7_;
		ea_1 = ((NI)1073741823);
	}
LA7_: ;
	result = (NI)(eb_1 - ea_1);
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, returnType__ast_u5333)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3366(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u160)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicDyn((*dest_p0).c);
		if (!T3_) goto LA4_;
		nimDestroyAndDispose((*dest_p0).c);
	}
LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = nimDecRefIsLastDyn((*dest_p0).callee);
		if (!T8_) goto LA9_;
		eqdestroy___ast_u3273((&(*(*dest_p0).callee)));
		nimRawDispose((*dest_p0).callee, ((NI)8));
	}
LA9_: ;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = nimDecRefIsLastDyn((*dest_p0).calleeSym);
		if (!T13_) goto LA14_;
		eqdestroy___ast_u3454((&(*(*dest_p0).calleeSym)));
		nimRawDispose((*dest_p0).calleeSym, ((NI)8));
	}
LA14_: ;
	{
		NIM_BOOL T18_;
		T18_ = (NIM_BOOL)0;
		T18_ = nimDecRefIsLastDyn((*dest_p0).call);
		if (!T18_) goto LA19_;
		eqdestroy___ast_u3255((&(*(*dest_p0).call)));
		nimRawDispose((*dest_p0).call, ((NI)8));
	}
LA19_: ;
	eqdestroy___layeredtable_u184((*dest_p0).bindings.topLayer.data);
	{
		NIM_BOOL T23_;
		T23_ = (NIM_BOOL)0;
		T23_ = nimDecRefIsLastDyn((*dest_p0).bindings.nextLayer);
		if (!T23_) goto LA24_;
		eqdestroy___layeredtable_u250((*(*dest_p0).bindings.nextLayer));
		nimRawDispose((*dest_p0).bindings.nextLayer, ((NI)4));
	}
LA24_: ;
	eqdestroy___ast_u3296((*dest_p0).inferredTypes);
	eqdestroy___system_u3809((*dest_p0).diagnostics);
	{
		NIM_BOOL T28_;
		T28_ = (NIM_BOOL)0;
		T28_ = nimDecRefIsLastDyn((*dest_p0).firstMismatch.formal);
		if (!T28_) goto LA29_;
		eqdestroy___ast_u3454((&(*(*dest_p0).firstMismatch.formal)));
		nimRawDispose((*dest_p0).firstMismatch.formal, ((NI)8));
	}
LA29_: ;
	eqdestroy___pureZosproc_u450((*dest_p0).newlyTypedOperands);
}
static N_INLINE(NIM_BOOL, isLValue__sigmatch_u3733)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, NIM_BOOL isOutParam_p2) {
	NIM_BOOL result;
	tyEnum_TAssignableResult__3ybZZK771F9azx9ccTLKswSA aa_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	aa_1 = isAssignable__parampatterns_u314(((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL), n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch (aa_1) {
	case ((tyEnum_TAssignableResult__3ybZZK771F9azx9ccTLKswSA)1):
	case ((tyEnum_TAssignableResult__3ybZZK771F9azx9ccTLKswSA)2):
	case ((tyEnum_TAssignableResult__3ybZZK771F9azx9ccTLKswSA)6):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TAssignableResult__3ybZZK771F9azx9ccTLKswSA)3):
	{
		result = (((NI)0) < (*c_p0).inUncheckedAssignSection);
	}
	break;
	case ((tyEnum_TAssignableResult__3ybZZK771F9azx9ccTLKswSA)4):
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_1;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		sym_1 = NIM_NIL;
		sym_1 = getRoot__trees_u373(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T6_ = (((*c_p0).features &((NU32)1<<((NU)((((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)18)))&31U)))!=0);
		if (!(T6_)) goto LA7_;
		T6_ = !((sym_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA7_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA8_;
		T5_ = ((*sym_1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)9));
LA8_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA9_;
		T4_ = isOutParam_p2;
LA9_: ;
		result = T4_;
		eqdestroy___ast_u4558(sym_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, markOwnerModuleAsUsed__sigmatch_u104)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* module_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	module_1 = NIM_NIL;
	eqcopy___ast_u4561(&module_1, s_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		while (1) {
			NIM_BOOL T3_;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T5_;
			T3_ = (NIM_BOOL)0;
			T3_ = !((module_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
			if (!(T3_)) goto LA4_;
			T3_ = !(((*module_1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)6)));
LA4_: ;
			if (!T3_) goto LA2;
			T5_ = NIM_NIL;
			T5_ = owner__ast_u6233(module_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T5_); goto BeforeRet_;}
			eqsink___ast_u4567(&module_1, T5_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA2: ;
	}
	{
		NIM_BOOL T8_;
		NI i_1;
		T8_ = (NIM_BOOL)0;
		T8_ = !((module_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
		if (!(T8_)) goto LA9_;
		T8_ = !((module_1 == (*c_p0).module));
LA9_: ;
		if (!T8_) goto LA10_;
		i_1 = ((NI)0);
		{
			while (1) {
				NI T14_;
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* candidate_1;
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym1163__1;
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym1166__1;
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym1167__1;
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* xX60gensym1168__1;
				T14_ = ((*c_p0).unusedImports.len-1);
				if (!(i_1 <= T14_)) goto LA13;
				candidate_1 = NIM_NIL;
				xX60gensym1163__1 = NIM_NIL;
				xX60gensym1166__1 = NIM_NIL;
				xX60gensym1167__1 = NIM_NIL;
				xX60gensym1168__1 = NIM_NIL;
				eqcopy___ast_u4561(&candidate_1, (*c_p0).unusedImports.p->data[i_1].Field0);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T17_;
					NIM_BOOL T18_;
					NI T20_;
					tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T22_;
					T17_ = (NIM_BOOL)0;
					T18_ = (NIM_BOOL)0;
					T18_ = (candidate_1 == module_1);
					if (T18_) goto LA19_;
					eqcopy___ast_u4561(&xX60gensym1163__1, candidate_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T20_ = (NI)0;
					T20_ = getOrDefault__sigmatch_u6605((*c_p0).importModuleMap, (NI)((NI)((NU32)(((NI) ((*xX60gensym1163__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym1163__1).itemId.item))), ((NI)(-2147483647 -1)));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqcopy___ast_u4561(&xX60gensym1166__1, module_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T18_ = (T20_ == (NI)((NI)((NU32)(((NI) ((*xX60gensym1166__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym1166__1).itemId.item))));
LA19_: ;
					T17_ = T18_;
					if (T17_) goto LA21_;
					xX60gensym1167__1 = candidate_1;
					eqwasMoved___ast_u4555(&candidate_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T22_.Field0 = (NI)((NI)((NU32)(((NI) ((*xX60gensym1167__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym1167__1).itemId.item)));
					eqcopy___ast_u4561(&xX60gensym1168__1, s_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T22_.Field1 = (NI)((NI)((NU32)(((NI) ((*xX60gensym1168__1).itemId.module))) << (NU32)(((NI)20))) + ((NI) ((*xX60gensym1168__1).itemId.item)));
					T17_ = contains__sigmatch_u6751((*c_p0).exportIndirections, T22_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA21_: ;
					if (!T17_) goto LA23_;
					del__sigmatch_u7043((&(*c_p0).unusedImports), (i_1));
				}
				goto LA15_;
LA23_: ;
				{
					i_1 += ((NI)1);
				}
LA15_: ;
				eqdestroy___ast_u4558(xX60gensym1168__1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u4558(xX60gensym1167__1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u4558(xX60gensym1166__1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u4558(xX60gensym1163__1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u4558(candidate_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA13: ;
		}
	}
LA10_: ;
	eqdestroy___ast_u4558(module_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newDeref__lowerings_u12)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	colontmpD_ = NIM_NIL;
	colontmpD_ = elementType__ast_u5310((*n_p0).typField);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newNodeIT__ast_u4097(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65), (*n_p0).info, colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__ast_u3200(result, n_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3363(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, userConvMatch__sigmatch_u3752)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p3, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_p4) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL oldNimErrFin46_;
NIM_BOOL oldNimErrFin53_;
NIM_BOOL oldNimErrFin40_;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
	{
		NI i_1;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (*c_p0).converters.len;
		colontmp_ = T2_;
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i_1 = i_2;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_1;
					tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g convMatch_1;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* constraint_1;
					tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ srca_1;
					tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T7_;
					NIM_BOOL destIsGeneric_1;
					tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ fdest_1;
					tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T31_;
					src_1 = NIM_NIL;
					dest_1 = NIM_NIL;
					nimZeroMem((void*)(&convMatch_1), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
					constraint_1 = NIM_NIL;
					src_1 = firstParamType__ast_u5342((*(*c_p0).converters.p->data[i_1]).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					dest_1 = returnType__ast_u5333((*(*c_p0).converters.p->data[i_1]).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					newCandidate__sigmatch_u457(c_p0, src_1, (&convMatch_1));
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					T7_ = 0;
					srca_1 = typeRel__sigmatch_u250((&convMatch_1), src_1, a_p3, T7_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					{
						if (!!((srca_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10) || srca_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) || srca_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3)))) goto LA10_;
						eqdestroy___ast_u3237(constraint_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___sigmatch_u160((&convMatch_1));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(dest_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(src_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto LA5;
					}
LA10_: ;
					eqcopy___ast_u3240(&constraint_1, (*(*(*(*(*(*c_p0).converters.p->data[i_1]).typ).n)._kind_6.sons.p->data[((NI)1)])._kind_4.sym).constraint);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					{
						NIM_BOOL T14_;
						NIM_BOOL T16_;
						T14_ = (NIM_BOOL)0;
						T14_ = !((constraint_1 == 0));
						if (!(T14_)) goto LA15_;
						T16_ = (NIM_BOOL)0;
						T16_ = matchNodeKinds__parampatterns_u479(constraint_1, arg_p4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						T14_ = !(T16_);
LA15_: ;
						if (!T14_) goto LA17_;
						eqdestroy___ast_u3237(constraint_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___sigmatch_u160((&convMatch_1));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(dest_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(src_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto LA5;
					}
LA17_: ;
					{
						NIM_BOOL T21_;
						NIM_BOOL T23_;
						T21_ = (NIM_BOOL)0;
						T21_ = ((*src_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*src_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47));
						if (!(T21_)) goto LA22_;
						T23_ = (NIM_BOOL)0;
						T23_ = isLValue__sigmatch_u3733(c_p0, arg_p4, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						T21_ = !(T23_);
LA22_: ;
						if (!T21_) goto LA24_;
						eqdestroy___ast_u3237(constraint_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___sigmatch_u160((&convMatch_1));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(dest_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(src_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto LA5;
					}
LA24_: ;
					destIsGeneric_1 = containsGenericType__types_u3445(dest_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T30_;
						if (!destIsGeneric_1) goto LA28_;
						T30_ = NIM_NIL;
						T30_ = generateTypeInstance__semtypinst_u1615(c_p0, convMatch_1.bindings, (*arg_p4).info, dest_1);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T30_); goto LA6_;}
						eqsink___ast_u3372(&dest_1, T30_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					}
LA28_: ;
					T31_ = 0;
					fdest_1 = typeRel__sigmatch_u250(m_p1, f_p2, dest_1, T31_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					{
						NIM_BOOL T34_;
						NIM_BOOL T36_;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* s_1;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* param_1;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T41_;
						T34_ = (NIM_BOOL)0;
						T34_ = (fdest_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10) || fdest_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8));
						if (!(T34_)) goto LA35_;
						T36_ = (NIM_BOOL)0;
						T36_ = ((*dest_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47));
						if (!(T36_)) goto LA37_;
						T36_ = ((*f_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23));
LA37_: ;
						T34_ = !(T36_);
LA35_: ;
						if (!T34_) goto LA38_;
						s_1 = NIM_NIL;
						param_1 = NIM_NIL;
						(*(*c_p0).converters.p->data[i_1]).flags |= ((NU64)1)<<(((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)0))) & 63);
						markOwnerModuleAsUsed__sigmatch_u104(c_p0, (*c_p0).converters.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						s_1 = newSymNode__ast_u5147((*c_p0).converters.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						eqcopy___ast_u3366(&(*s_1).typField, (*(*c_p0).converters.p->data[i_1]).typ);
						if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						(*s_1).info = (*arg_p4).info;
						T41_ = NIM_NIL;
						T41_ = newNodeIT__ast_u4097(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32), (*arg_p4).info, dest_1);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T41_); goto LA40_;}
						eqsink___ast_u3246(&result, T41_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						add__ast_u3200(result, s_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						param_1 = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
						{
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T47_;
							if (!(srca_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3))) goto LA44_;
							colontmpD_ = NIM_NIL;
							colontmpD_ = copyTree__ast_u6862(arg_p4);
							if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
							T47_ = NIM_NIL;
							T47_ = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59), src_1, colontmpD_, (&(*m_p1)), c_p0);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T47_); goto LA46_;}
							eqsink___ast_u3246(&param_1, T47_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
							{
								LA46_:;
							}
							{
								oldNimErrFin46_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3237(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
								*nimErr_ = oldNimErrFin46_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						}
						goto LA42_;
LA44_: ;
						{
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__3;
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T54_;
							if (!((*src_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23))) goto LA51_;
							colontmpD__2 = NIM_NIL;
							colontmpD__3 = NIM_NIL;
							colontmpD__2 = firstParamType__ast_u5342((*s_1).typField);
							if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
							T54_ = NIM_NIL;
							T54_ = newNodeIT__ast_u4097(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)64), (*arg_p4).info, colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T54_); goto LA53_;}
							eqsink___ast_u3246(&param_1, T54_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
							colontmpD__3 = copyTree__ast_u6862(arg_p4);
							if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
							add__ast_u3200(param_1, colontmpD__3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
							{
								LA53_:;
							}
							{
								oldNimErrFin53_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3237(colontmpD__3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
								eqdestroy___ast_u3363(colontmpD__2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
								*nimErr_ = oldNimErrFin53_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						}
						goto LA42_;
LA51_: ;
						{
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T58_;
							T58_ = NIM_NIL;
							T58_ = copyTree__ast_u6862(arg_p4);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T58_); goto LA40_;}
							eqsink___ast_u3246(&param_1, T58_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						}
LA42_: ;
						add__ast_u3200(result, param_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						{
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T63_;
							if (!((*dest_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*dest_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47))) goto LA61_;
							(*dest_1).flags |= ((NU64)1)<<(((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)20))) & 63);
							T63_ = NIM_NIL;
							T63_ = newDeref__lowerings_u12(result);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T63_); goto LA40_;}
							eqsink___ast_u3246(&result, T63_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						}
LA61_: ;
						(*m_p1).convMatches += ((NI)1);
						{
							NIM_BOOL T68_;
							if (!!((*m_p1).genericConverter)) goto LA66_;
							T68_ = (NIM_BOOL)0;
							T68_ = (srca_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8));
							if (T68_) goto LA69_;
							T68_ = destIsGeneric_1;
LA69_: ;
							(*m_p1).genericConverter = T68_;
						}
LA66_: ;
						eqdestroy___ast_u3237(param_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						eqdestroy___ast_u3237(s_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						eqdestroy___ast_u3237(constraint_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___sigmatch_u160((&convMatch_1));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(dest_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(src_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
						{
							LA40_:;
						}
						{
							oldNimErrFin40_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3237(param_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
							eqdestroy___ast_u3237(s_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
							*nimErr_ = oldNimErrFin40_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					}
LA38_: ;
					{
						LA6_:;
					}
					{
						oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3237(constraint_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___sigmatch_u160((&convMatch_1));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(dest_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(src_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						*nimErr_ = oldNimErrFin6_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA5: ;
				i_2 += ((NI)1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, localConvMatch__sigmatch_u3828)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p3, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_p4) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* call_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__2;
NIM_BOOL oldNimErrFin34_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	call_1 = NIM_NIL;
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	{
		if (!((*arg_p4).typField == 0)) goto LA4_;
		result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
		eqdestroy___ast_u3237(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3237(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3237(call_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = (f_p2 == (*arg_p4).typField);
		if (!(T8_)) goto LA9_;
		T8_ = ((*arg_p4).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58));
LA9_: ;
		if (!T8_) goto LA10_;
		eqcopy___ast_u3240(&result, arg_p4);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3237(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3237(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3237(call_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA10_: ;
	call_1 = newNodeI__ast_u4076(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)27), (*arg_p4).info);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD_ = copyTree__ast_u6862((*f_p2).n);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	add__ast_u3200(call_1, colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__2 = copyTree__ast_u6862(arg_p4);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	add__ast_u3200(call_1, colontmpD__2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = (*c_p0).semTryExpr(c_p0, call_1, 131072);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T20_;
		tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ r_1;
		tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T21_;
		if (!!((result == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA14_;
		{
			if (!((*result).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA18_;
			result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
			eqdestroy___ast_u3237(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(call_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA18_: ;
		T20_ = NIM_NIL;
		T20_ = (*c_p0).semExpr(c_p0, call_1, 131072, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T20_); goto LA1_;}
		eqsink___ast_u3246(&result, T20_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T21_ = 0;
		r_1 = typeRel__sigmatch_u250(m_p1, (*f_p2).sons.p->data[((NI)0)], (*result).typField, T21_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			if (!(r_1 < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA24_;
			result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
			eqdestroy___ast_u3237(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(call_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA24_: ;
		{
			if (!((*result).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)27))) goto LA28_;
			transitionSonsKind__ast_u6740(result, ((tyEnum_TNodeKind__fgQOep3rrztw9aeZI9aS2Ltg)32));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA28_: ;
		(*m_p1).convMatches += ((NI)1);
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T35_;
			if (!(r_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA32_;
			colontmpD__3 = NIM_NIL;
			colontmpD__3 = base__ast_u5330(f_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
			T35_ = NIM_NIL;
			T35_ = getInstantiatedType__sigmatch_u3579(c_p0, arg_p4, (&(*m_p1)), colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T35_); goto LA34_;}
			eqsink___ast_u3372(&(*result).typField, T35_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
			{
				LA34_:;
			}
			{
				oldNimErrFin34_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin34_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA32_: ;
		(*m_p1).baseTypeMatch = NIM_TRUE;
	}
LA14_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3237(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3237(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3237(call_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, paramTypesMatchAux__sigmatch_u3913)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argSemantized_p3, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argOrig_p4) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fMaybeStatic_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_2;
	tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_1;
NIM_BOOL oldNimErrFin24_;
NIM_BOOL oldNimErrFin40_;
NIM_BOOL oldNimErrFin49_;
NIM_BOOL oldNimErrFin35_;
	NI oldInheritancePenalty_1;
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ r_1;
	tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T63_;
NIM_BOOL oldNimErrFin105_;
NIM_BOOL oldNimErrFin137_;
NIM_BOOL oldNimErrFin130_;
NIM_BOOL oldNimErrFin115_;
NIM_BOOL oldNimErrFin150_;
NIM_BOOL oldNimErrFin195_;
NIM_BOOL oldNimErrFin176_;
NIM_BOOL oldNimErrFin207_;
NIM_BOOL oldNimErrFin244_;
NIM_BOOL oldNimErrFin272_;
NIM_BOOL oldNimErrFin288_;
NIM_BOOL oldNimErrFin282_;
NIM_BOOL oldNimErrFin295_;
NIM_BOOL oldNimErrFin269_;
NIM_BOOL oldNimErrFin220_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	fMaybeStatic_1 = NIM_NIL;
	arg_1 = NIM_NIL;
	a_2 = NIM_NIL;
	c_1 = NIM_NIL;
	result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
	fMaybeStatic_1 = skipTypes__ast_u5358(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_17);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3240(&arg_1, argSemantized_p3);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3366(&a_2, a_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___semdata_u4385(&c_1, (*m_p0).c, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!(((*fMaybeStatic_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)24)))&63U)))!=0)) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((*a_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
			if (!(T8_)) goto LA9_;
			T8_ = (((*a_2).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)30)))&63U)))!=0);
LA9_: ;
			if (!T8_) goto LA10_;
			assignType__ast_u6117(a_2, f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqcopy___ast_u3240(&result, argSemantized_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4382(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(fMaybeStatic_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA10_: ;
		{
			if (!((*a_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60))) goto LA14_;
			{
				NIM_BOOL T18_;
				NIM_BOOL T19_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
				T18_ = (NIM_BOOL)0;
				T19_ = (NIM_BOOL)0;
				T19_ = ((*(*m_p0).callee).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10));
				if (!(T19_)) goto LA20_;
				T19_ = ((*a_2).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
LA20_: ;
				T18_ = T19_;
				if (!(T18_)) goto LA21_;
				T18_ = !((((*a_2).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)25)))&63U)))!=0));
LA21_: ;
				if (!T18_) goto LA22_;
				colontmpD_ = NIM_NIL;
				colontmpD_ = makeTypeFromExpr__semdata_u4775(c_1, arg_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
				result = newNodeIT__ast_u4097(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)4), (*argOrig_p4).info, colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___semdata_u4382(c_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(a_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3237(arg_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3363(fMaybeStatic_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
				{
					LA24_:;
				}
				{
					oldNimErrFin24_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin24_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA22_: ;
		}
		goto LA12_;
LA14_: ;
		{
			NIM_BOOL T28_;
			T28_ = (NIM_BOOL)0;
			T28_ = ((*a_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61));
			if (!(T28_)) goto LA29_;
			T28_ = (((NI)0) < (*c_1).inGenericContext);
LA29_: ;
			if (!T28_) goto LA30_;
		}
		goto LA12_;
LA30_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* evaluated_1;
			if (!!(((*arg_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1)))) goto LA33_;
			evaluated_1 = NIM_NIL;
			evaluated_1 = (*c_1).semTryConstExpr(c_1, arg_1, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_1;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T41_;
				if (!!((evaluated_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA38_;
				typ_1 = NIM_NIL;
				colontmpD__2 = NIM_NIL;
				colontmpD__2 = eqdup___ast_u3369((*evaluated_1).typField);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				typ_1 = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60), c_1, colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				eqsink___ast_u3246(&(*typ_1).n, evaluated_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				eqwasMoved___ast_u3234(&evaluated_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				T41_ = NIM_NIL;
				T41_ = copyTree__ast_u6862(arg_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T41_); goto LA40_;}
				eqsink___ast_u3246(&arg_1, T41_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				eqcopy___ast_u3366(&(*arg_1).typField, typ_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				eqsink___ast_u3372(&a_2, typ_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				eqwasMoved___ast_u3360(&typ_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				{
					LA40_:;
				}
				{
					oldNimErrFin40_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(typ_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
					*nimErr_ = oldNimErrFin40_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
			}
			goto LA36_;
LA38_: ;
			{
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
					if (!((*(*m_p0).callee).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10))) goto LA47_;
					colontmpD__3 = NIM_NIL;
					{
						NIM_BOOL T52_;
						tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T54_;
						tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T55_;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T58_;
						T52_ = (NIM_BOOL)0;
						T52_ = ((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60));
						if (!(T52_)) goto LA53_;
						colontmpD__3 = base__ast_u5330(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
						T54_ = 0;
						T55_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
						T55_ = typeRel__sigmatch_u250(m_p0, colontmpD__3, a_2, T54_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
						T52_ = !((T55_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
LA53_: ;
						if (!T52_) goto LA56_;
						T58_ = NIM_NIL;
						T58_ = makeStaticExpr__semdata_u4786((*m_p0).c, arg_1);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T58_); goto LA49_;}
						eqsink___ast_u3246(&result, T58_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
						(*(*result).typField).flags |= ((NU64)1)<<(((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9))) & 63);
						eqsink___ast_u3246(&(*(*result).typField).n, arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
						eqwasMoved___ast_u3234(&arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
						eqdestroy___ast_u3363(colontmpD__3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
						eqdestroy___ast_u3237(evaluated_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___semdata_u4382(c_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(a_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3237(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(fMaybeStatic_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA56_: ;
					{
						LA49_:;
					}
					{
						oldNimErrFin49_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
						*nimErr_ = oldNimErrFin49_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
				}
LA47_: ;
			}
LA36_: ;
			{
				LA35_:;
			}
			{
				oldNimErrFin35_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3237(evaluated_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin35_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA12_;
LA33_: ;
LA12_: ;
	}
LA4_: ;
	oldInheritancePenalty_1 = (*m_p0).inheritancePenalty;
	T63_ = 0;
	r_1 = typeRel__sigmatch_u250(m_p0, f_p1, a_2, T63_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T66_;
		NIM_BOOL T67_;
		T66_ = (NIM_BOOL)0;
		T67_ = (NIM_BOOL)0;
		T67_ = !((r_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
		if (!(T67_)) goto LA68_;
		T67_ = !(((*m_p0).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA68_: ;
		T66_ = T67_;
		if (!(T66_)) goto LA69_;
		T66_ = ((*(*m_p0).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17) || (*(*m_p0).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18));
LA69_: ;
		if (!T66_) goto LA70_;
		incMatches__sigmatch_u3877(m_p0, r_1, ((NI)1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7))) goto LA74_;
			result = arg_1;
			eqwasMoved___ast_u3234(&arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4382(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(fMaybeStatic_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA72_;
LA74_: ;
		{
			if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA77_;
			result = arg_1;
			eqwasMoved___ast_u3234(&arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4382(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(fMaybeStatic_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA72_;
LA77_: ;
		{
			NIM_BOOL T80_;
			T80_ = (NIM_BOOL)0;
			T80_ = ((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60));
			if (!(T80_)) goto LA81_;
			T80_ = !(((*(*arg_1).typField).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA81_: ;
			if (!T80_) goto LA82_;
			eqcopy___ast_u3240(&result, (*(*arg_1).typField).n);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4382(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(fMaybeStatic_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA72_;
LA82_: ;
		{
			eqcopy___ast_u3240(&result, argSemantized_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4382(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(fMaybeStatic_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA72_: ;
	}
LA70_: ;
	{
		NI instantiationCounter_1;
		NI lastBindingCount_1;
		instantiationCounter_1 = ((NI)0);
		lastBindingCount_1 = ((NI)-1);
		{
			while (1) {
				NIM_BOOL T88_;
				NIM_BOOL T89_;
				NI T91_;
				tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T113_;
				T88_ = (NIM_BOOL)0;
				T89_ = (NIM_BOOL)0;
				T89_ = (r_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)5) || r_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)6) || r_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)7));
				if (!(T89_)) goto LA90_;
				T91_ = (NI)0;
				T91_ = currentLen__layeredtable_u286((*m_p0).bindings);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				T89_ = !((lastBindingCount_1 == T91_));
LA90_: ;
				T88_ = T89_;
				if (!(T88_)) goto LA92_;
				T88_ = (instantiationCounter_1 < ((NI)100));
LA92_: ;
				if (!T88_) goto LA87;
				lastBindingCount_1 = currentLen__layeredtable_u286((*m_p0).bindings);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				instantiationCounter_1 += ((NI)1);
				{
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T97_;
					if (!((*arg_1).kind >= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)51) && (*arg_1).kind <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)52) || (*arg_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)79) || (*arg_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)84) || (*arg_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)159))) goto LA95_;
					T97_ = NIM_NIL;
					T97_ = (*c_1).semInferredLambda.ClE_0? (*c_1).semInferredLambda.ClP_0(c_1, (*m_p0).bindings, arg_1, (*c_1).semInferredLambda.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_67)((*c_1).semInferredLambda.ClP_0))(c_1, (*m_p0).bindings, arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqsink___ast_u3246(&result, T97_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
				goto LA93_;
LA95_: ;
				{
					if (!!(((*arg_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3)))) goto LA99_;
					result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
					eqdestroy___semdata_u4382(c_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(a_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3237(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(fMaybeStatic_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
				goto LA93_;
LA99_: ;
				{
					if (!((*(*arg_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17) || (*(*arg_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18))) goto LA102_;
					result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
					eqdestroy___semdata_u4382(c_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(a_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3237(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(fMaybeStatic_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
				goto LA93_;
LA102_: ;
				{
					tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* inferred_1;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T110_;
					inferred_1 = NIM_NIL;
					{
						if (!((*(*arg_1)._kind_4.sym).ast == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA108_;
						result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
						eqdestroy___ast_u4558(inferred_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___semdata_u4382(c_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(a_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3237(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(fMaybeStatic_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA108_: ;
					inferred_1 = (*c_1).semGenerateInstance.ClE_0? (*c_1).semGenerateInstance.ClP_0(c_1, (*arg_1)._kind_4.sym, (*m_p0).bindings, (*arg_1).info, (*c_1).semGenerateInstance.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_68)((*c_1).semGenerateInstance.ClP_0))(c_1, (*arg_1)._kind_4.sym, (*m_p0).bindings, (*arg_1).info);
					if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
					T110_ = NIM_NIL;
					T110_ = newSymNode__ast_u5150(inferred_1, (*arg_1).info);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T110_); goto LA105_;}
					eqsink___ast_u3246(&result, T110_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
					{
						LA105_:;
					}
					{
						oldNimErrFin105_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u4558(inferred_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin105_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA93_: ;
				eqcopy___ast_u3240(&arg_1, result);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				T113_ = 0;
				r_1 = typeRel__sigmatch_u250(m_p0, f_p1, (*arg_1).typField, T113_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			} LA87: ;
		}
	}
	switch (r_1) {
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
		colontmpD__4 = NIM_NIL;
		colontmpD__5 = NIM_NIL;
		{
			colontmpD__4 = skipTypes__ast_u5358(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
			if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
			if (!((*colontmpD__4).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) || (*colontmpD__4).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40))) goto LA118_;
			(*m_p0).convMatches += ((NI)1);
		}
LA118_: ;
		(*m_p0).convMatches += ((NI)1);
		{
			colontmpD__5 = skipTypes__ast_u5358(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_69);
			if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
			if (!((*colontmpD__5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19))) goto LA122_;
			{
				NIM_BOOL T126_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T131_;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T141_;
				T126_ = (NIM_BOOL)0;
				T126_ = (((*a_2).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)43)))&63U)))!=0);
				if (!(T126_)) goto LA127_;
				T126_ = ((*arg_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)39));
LA127_: ;
				if (!T126_) goto LA128_;
				t_1 = NIM_NIL;
				T131_ = NIM_NIL;
				{
					NIM_BOOL T134_;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
					T134_ = (NIM_BOOL)0;
					T134_ = containsGenericType__types_u3445(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA130_;
					if (!T134_) goto LA135_;
					colontmpD__6 = NIM_NIL;
					colontmpD__6 = getInstantiatedType__sigmatch_u3579(c_1, arg_1, (&(*m_p0)), f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA137_;
					t_1 = skipTypes__ast_u5358(colontmpD__6, TM__EV5hHJmjIY9cla9b9be7fSVJQ_19);
					if (NIM_UNLIKELY(*nimErr_)) goto LA137_;
					{
						LA137_:;
					}
					{
						oldNimErrFin137_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__6);
						if (NIM_UNLIKELY(*nimErr_)) goto LA130_;
						*nimErr_ = oldNimErrFin137_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA130_;
				}
				goto LA132_;
LA135_: ;
				{
					t_1 = skipTypes__ast_u5358(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_19);
					if (NIM_UNLIKELY(*nimErr_)) goto LA130_;
				}
LA132_: ;
				T141_ = NIM_NIL;
				T141_ = convertLiteral__sigmatch_u3621(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), c_1, (&(*m_p0)), arg_1, t_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T141_); goto LA130_;}
				eqsink___ast_u3246(&result, T141_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA130_;
				{
					LA130_:;
				}
				{
					oldNimErrFin130_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(t_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
					*nimErr_ = oldNimErrFin130_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
			}
			goto LA124_;
LA128_: ;
			{
				eqsink___ast_u3246(&result, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
			}
LA124_: ;
		}
		goto LA120_;
LA122_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T146_;
			T146_ = NIM_NIL;
			T146_ = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), f_p1, arg_1, (&(*m_p0)), c_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T146_); goto LA115_;}
			eqsink___ast_u3246(&result, T146_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
		}
LA120_: ;
		{
			LA115_:;
		}
		{
			oldNimErrFin115_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin115_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T155_;
		colontmpD__7 = NIM_NIL;
		{
			colontmpD__7 = skipTypes__ast_u5358(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
			if (NIM_UNLIKELY(*nimErr_)) goto LA150_;
			if (!!(((*colontmpD__7).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) || (*colontmpD__7).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40)))) goto LA153_;
			(*m_p0).intConvMatches += ((NI)1);
		}
LA153_: ;
		(*m_p0).intConvMatches += ((NI)1);
		T155_ = NIM_NIL;
		T155_ = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), f_p1, arg_1, (&(*m_p0)), c_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T155_); goto LA150_;}
		eqsink___ast_u3246(&result, T155_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA150_;
		{
			LA150_:;
		}
		{
			oldNimErrFin150_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__7);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin150_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3):
	{
		(*m_p0).subtypeMatches += ((NI)1);
		{
			if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA161_;
			eqsink___ast_u3246(&result, arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3234(&arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA159_;
LA161_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T164_;
			T164_ = NIM_NIL;
			T164_ = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59), f_p1, arg_1, (&(*m_p0)), c_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T164_); goto LA1_;}
			eqsink___ast_u3246(&result, T164_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA159_: ;
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)4):
	{
		(*m_p0).subtypeMatches += ((NI)1);
		{
			if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23))) goto LA168_;
			eqsink___ast_u3246(&result, arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3234(&arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA166_;
LA168_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T171_;
			T171_ = NIM_NIL;
			T171_ = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), f_p1, arg_1, (&(*m_p0)), c_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T171_); goto LA1_;}
			eqsink___ast_u3246(&result, T171_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA166_: ;
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)6):
	{
		(*m_p0).genericMatches += ((NI)1);
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)7):
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T174_;
		(*m_p0).convMatches += ((NI)1);
		T174_ = NIM_NIL;
		T174_ = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), f_p1, result, (&(*m_p0)), c_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T174_); goto LA1_;}
		eqsink___ast_u3246(&result, T174_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__8;
		colontmpD__8 = NIM_NIL;
		(*m_p0).genericMatches += ((NI)1);
		{
			if (!((*arg_1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA179_;
			eqsink___ast_u3246(&result, arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
			eqwasMoved___ast_u3234(&arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
		}
		goto LA177_;
LA179_: ;
		{
			NIM_BOOL T182_;
			NI T184_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T187_;
			T182_ = (NIM_BOOL)0;
			colontmpD__8 = skipTypes__ast_u5358((*arg_1).typField, TM__EV5hHJmjIY9cla9b9be7fSVJQ_69);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
			T182_ = ((*colontmpD__8).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18));
			if (T182_) goto LA183_;
			T184_ = (NI)0;
			T184_ = cmpInheritancePenalty__sigmatch_u584(oldInheritancePenalty_1, (*m_p0).inheritancePenalty);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
			T182_ = (((NI)0) < T184_);
LA183_: ;
			if (!T182_) goto LA185_;
			T187_ = NIM_NIL;
			T187_ = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59), f_p1, arg_1, (&(*m_p0)), c_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T187_); goto LA176_;}
			eqsink___ast_u3246(&result, T187_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
		}
		goto LA177_;
LA185_: ;
		{
			NIM_BOOL T189_;
			NIM_BOOL T191_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__9;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T196_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T197_;
			T189_ = (NIM_BOOL)0;
			T189_ = isEmptyContainer__types_u3734((*arg_1).typField);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
			if (T189_) goto LA190_;
			T191_ = (NIM_BOOL)0;
			T191_ = isIntLit__types_u179((*arg_1).typField);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
			if (!(T191_)) goto LA192_;
			T191_ = !((*m_p0).isNoCall);
LA192_: ;
			T189_ = T191_;
LA190_: ;
			if (!T189_) goto LA193_;
			colontmpD__9 = NIM_NIL;
			T196_ = NIM_NIL;
			T196_ = copyTree__ast_u6862(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T196_); goto LA195_;}
			eqsink___ast_u3246(&result, T196_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA195_;
			colontmpD__9 = getInstantiatedType__sigmatch_u3579(c_1, arg_1, (&(*m_p0)), f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA195_;
			T197_ = NIM_NIL;
			T197_ = skipTypes__ast_u5358(colontmpD__9, TM__EV5hHJmjIY9cla9b9be7fSVJQ_19);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T197_); goto LA195_;}
			eqsink___ast_u3372(&(*result).typField, T197_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA195_;
			{
				LA195_:;
			}
			{
				oldNimErrFin195_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__9);
				if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
				*nimErr_ = oldNimErrFin195_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
		}
		goto LA177_;
LA193_: ;
		{
			eqsink___ast_u3246(&result, arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
			eqwasMoved___ast_u3234(&arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
		}
LA177_: ;
		{
			LA176_:;
		}
		{
			oldNimErrFin176_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__8);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin176_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)5):
	{
		(*m_p0).convMatches += ((NI)1);
		eqsink___ast_u3246(&result, arg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqwasMoved___ast_u3234(&arg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)9):
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T205_;
		(*m_p0).intConvMatches += ((NI)256);
		T205_ = NIM_NIL;
		T205_ = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), f_p1, arg_1, (&(*m_p0)), c_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T205_); goto LA1_;}
		eqsink___ast_u3246(&result, T205_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__10;
		ff_1 = NIM_NIL;
		colontmpD__10 = NIM_NIL;
		(*m_p0).exactMatches += ((NI)1);
		eqcopy___ast_u3240(&result, arg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA207_;
		ff_1 = skipTypes__ast_u5358(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_69);
		if (NIM_UNLIKELY(*nimErr_)) goto LA207_;
		{
			NIM_BOOL T210_;
			NIM_BOOL T212_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T216_;
			T210_ = (NIM_BOOL)0;
			T210_ = ((*ff_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18));
			if (T210_) goto LA211_;
			T212_ = (NIM_BOOL)0;
			T212_ = !(((*arg_1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
			if (!(T212_)) goto LA213_;
			colontmpD__10 = skipTypes__ast_u5358((*arg_1).typField, TM__EV5hHJmjIY9cla9b9be7fSVJQ_69);
			if (NIM_UNLIKELY(*nimErr_)) goto LA207_;
			T212_ = ((*colontmpD__10).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18));
LA213_: ;
			T210_ = T212_;
LA211_: ;
			if (!T210_) goto LA214_;
			T216_ = NIM_NIL;
			T216_ = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59), f_p1, arg_1, (&(*m_p0)), c_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T216_); goto LA207_;}
			eqsink___ast_u3246(&result, T216_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA207_;
		}
LA214_: ;
		{
			LA207_:;
		}
		{
			oldNimErrFin207_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__10);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(ff_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin207_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__11;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__12;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T253_;
		colontmpD__11 = NIM_NIL;
		colontmpD__12 = NIM_NIL;
		{
			if (!((*a_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61))) goto LA223_;
			result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
			eqdestroy___ast_u3363(colontmpD__12);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__11);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4382(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(fMaybeStatic_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA221_;
LA223_: ;
		{
			if (!((*a_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50))) goto LA226_;
			(*m_p0).genericMatches += ((NI)1);
			(*m_p0).matchedErrorType = NIM_TRUE;
			result = arg_1;
			eqwasMoved___ast_u3234(&arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			eqdestroy___ast_u3363(colontmpD__12);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__11);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4382(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(fMaybeStatic_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA221_;
LA226_: ;
		{
			NIM_BOOL T229_;
			NIM_BOOL T230_;
			NIM_BOOL T232_;
			NIM_BOOL T233_;
			NIM_BOOL T234_;
			NI T236_;
			NIM_BOOL T239_;
			tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* p_1;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* lifted_1;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__13;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__14;
			tyArray__Qs3hT0twmConQknx0ycf3Q T245_;
			tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg T246_;
			T229_ = (NIM_BOOL)0;
			T230_ = (NIM_BOOL)0;
			T230_ = ((*a_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63));
			if (!(T230_)) goto LA231_;
			T232_ = (NIM_BOOL)0;
			T233_ = (NIM_BOOL)0;
			T234_ = (NIM_BOOL)0;
			T234_ = ((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25));
			if (!(T234_)) goto LA235_;
			T236_ = (NI)0;
			T236_ = len__ast_u5481(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			T234_ = (T236_ == ((NI)1));
LA235_: ;
			T233_ = T234_;
			if (!(T233_)) goto LA237_;
			colontmpD__11 = returnType__ast_u5333(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			T233_ = (colontmpD__11 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA237_: ;
			T232_ = T233_;
			if (T232_) goto LA238_;
			T239_ = (NIM_BOOL)0;
			T239_ = ((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51));
			if (!(T239_)) goto LA240_;
			colontmpD__12 = elementType__ast_u5310(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			T239_ = ((*colontmpD__12).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25));
LA240_: ;
			T232_ = T239_;
LA238_: ;
			T230_ = T232_;
LA231_: ;
			T229_ = T230_;
			if (!(T229_)) goto LA241_;
			T229_ = ((*argOrig_p4).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)115));
LA241_: ;
			if (!T229_) goto LA242_;
			p_1 = NIM_NIL;
			lifted_1 = NIM_NIL;
			colontmpD__13 = NIM_NIL;
			colontmpD__14 = NIM_NIL;
			liMessage__msgs_u1223((*(*c_1).graph).config, (*argOrig_p4).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)78), TM__EV5hHJmjIY9cla9b9be7fSVJQ_79, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_80, NIM_FALSE, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto LA244_;
			eqcopy___modulegraphs_u14747(&p_1, (*c_1).graph);
			if (NIM_UNLIKELY(*nimErr_)) goto LA244_;
			nimZeroMem((void*)T245_, sizeof(tyArray__Qs3hT0twmConQknx0ycf3Q));
			T245_[0] = (*p_1).emptyNode;
			colontmpD__13 = newTree__ast_u4154(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)76), T245_, 1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA244_;
			colontmpD__14 = newProcNode__ast_u5409(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)52), (*argOrig_p4).info, argOrig_p4, colontmpD__13, (*p_1).emptyNode, (*p_1).emptyNode, (*p_1).emptyNode, (*p_1).emptyNode, (*p_1).emptyNode);
			if (NIM_UNLIKELY(*nimErr_)) goto LA244_;
			T246_ = 0;
			lifted_1 = (*c_1).semExpr(c_1, colontmpD__14, T246_, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto LA244_;
			{
				if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51))) goto LA249_;
				(*m_p0).genericMatches += ((NI)1);
				put__sigmatch_u246(m_p0, f_p1, (*lifted_1).typField);
				if (NIM_UNLIKELY(*nimErr_)) goto LA244_;
			}
LA249_: ;
			(*m_p0).convMatches += ((NI)1);
			result = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), f_p1, lifted_1, (&(*m_p0)), c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA244_;
			eqdestroy___ast_u3237(colontmpD__14);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			eqdestroy___ast_u3237(colontmpD__13);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			eqdestroy___ast_u3237(lifted_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			eqdestroy___modulegraphs_u14744(p_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			eqdestroy___ast_u3363(colontmpD__12);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__11);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4382(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(fMaybeStatic_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA244_:;
			}
			{
				oldNimErrFin244_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3237(colontmpD__14);
				if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
				eqdestroy___ast_u3237(colontmpD__13);
				if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
				eqdestroy___ast_u3237(lifted_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
				eqdestroy___modulegraphs_u14744(p_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
				*nimErr_ = oldNimErrFin244_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
		}
		goto LA221_;
LA242_: ;
LA221_: ;
		T253_ = NIM_NIL;
		T253_ = userConvMatch__sigmatch_u3752(c_1, m_p0, f_p1, a_2, arg_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T253_); goto LA220_;}
		eqsink___ast_u3246(&result, T253_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
		{
			NIM_BOOL T256_;
			T256_ = (NIM_BOOL)0;
			T256_ = (result == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
			if (!(T256_)) goto LA257_;
			T256_ = ((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48));
LA257_: ;
			if (!T256_) goto LA258_;
			{
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T264_;
				if (!!(((*f_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA262_;
				T264_ = NIM_NIL;
				T264_ = localConvMatch__sigmatch_u3828(c_1, m_p0, f_p1, a_2, arg_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T264_); goto LA220_;}
				eqsink___ast_u3246(&result, T264_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			}
			goto LA260_;
LA262_: ;
			{
				if (!((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7))) goto LA266_;
				(*m_p0).genericMatches += ((NI)1);
				eqsink___ast_u3246(&result, arg_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
				eqwasMoved___ast_u3234(&arg_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			}
			goto LA260_;
LA266_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__15;
				tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T270_;
				colontmpD__15 = NIM_NIL;
				colontmpD__15 = base__ast_u5330(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
				T270_ = 0;
				r_1 = typeRel__sigmatch_u250(m_p0, colontmpD__15, a_2, T270_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
				switch (r_1) {
				case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8):
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__16;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T273_;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T274_;
					colontmpD__16 = NIM_NIL;
					(*m_p0).convMatches += ((NI)1);
					T273_ = NIM_NIL;
					T273_ = copyTree__ast_u6862(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T273_); goto LA272_;}
					eqsink___ast_u3246(&result, T273_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA272_;
					colontmpD__16 = base__ast_u5330(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA272_;
					T274_ = NIM_NIL;
					T274_ = getInstantiatedType__sigmatch_u3579(c_1, arg_1, (&(*m_p0)), colontmpD__16);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T274_); goto LA272_;}
					eqsink___ast_u3372(&(*result).typField, T274_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA272_;
					(*m_p0).baseTypeMatch = NIM_TRUE;
					{
						LA272_:;
					}
					{
						oldNimErrFin272_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__16);
						if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
						*nimErr_ = oldNimErrFin272_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
				}
				break;
				case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)9):
				{
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T278_;
					(*m_p0).intConvMatches += ((NI)256);
					T278_ = NIM_NIL;
					T278_ = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), (*f_p1).sons.p->data[((NI)0)], arg_1, (&(*m_p0)), c_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T278_); goto LA269_;}
					eqsink___ast_u3246(&result, T278_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
					(*m_p0).baseTypeMatch = NIM_TRUE;
				}
				break;
				case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10):
				{
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T280_;
					(*m_p0).convMatches += ((NI)1);
					T280_ = NIM_NIL;
					T280_ = copyTree__ast_u6862(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T280_); goto LA269_;}
					eqsink___ast_u3246(&result, T280_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
					(*m_p0).baseTypeMatch = NIM_TRUE;
				}
				break;
				case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3):
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__17;
					colontmpD__17 = NIM_NIL;
					(*m_p0).subtypeMatches += ((NI)1);
					{
						colontmpD__17 = base__ast_u5330(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA282_;
						if (!((*colontmpD__17).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA285_;
						eqsink___ast_u3246(&result, arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA282_;
						eqwasMoved___ast_u3234(&arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA282_;
					}
					goto LA283_;
LA285_: ;
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__18;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T289_;
						colontmpD__18 = NIM_NIL;
						colontmpD__18 = base__ast_u5330(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA288_;
						T289_ = NIM_NIL;
						T289_ = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59), colontmpD__18, arg_1, (&(*m_p0)), c_1);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T289_); goto LA288_;}
						eqsink___ast_u3246(&result, T289_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA288_;
						{
							LA288_:;
						}
						{
							oldNimErrFin288_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3363(colontmpD__18);
							if (NIM_UNLIKELY(*nimErr_)) goto LA282_;
							*nimErr_ = oldNimErrFin288_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA282_;
					}
LA283_: ;
					(*m_p0).baseTypeMatch = NIM_TRUE;
					{
						LA282_:;
					}
					{
						oldNimErrFin282_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__17);
						if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
						*nimErr_ = oldNimErrFin282_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
				}
				break;
				default:
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__19;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T296_;
					colontmpD__19 = NIM_NIL;
					colontmpD__19 = base__ast_u5330(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA295_;
					T296_ = NIM_NIL;
					T296_ = userConvMatch__sigmatch_u3752(c_1, m_p0, colontmpD__19, a_2, arg_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T296_); goto LA295_;}
					eqsink___ast_u3246(&result, T296_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA295_;
					{
						if (!!((result == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA299_;
						(*m_p0).baseTypeMatch = NIM_TRUE;
					}
LA299_: ;
					{
						LA295_:;
					}
					{
						oldNimErrFin295_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__19);
						if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
						*nimErr_ = oldNimErrFin295_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
				}
				break;
				}
				{
					LA269_:;
				}
				{
					oldNimErrFin269_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD__15);
					if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
					*nimErr_ = oldNimErrFin269_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			}
LA260_: ;
		}
LA258_: ;
		{
			LA220_:;
		}
		{
			oldNimErrFin220_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__12);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(colontmpD__11);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin220_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	default: __builtin_unreachable();
	}
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___semdata_u4382(c_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(a_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3237(arg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(fMaybeStatic_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, shallowCopy__layeredtable_u283)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A pt_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* Result) {
	tyObject_Table__rIDniaYgWTEwlny3uhSy2w colontmpD_;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* colontmpD__2;
	NI colontmpD__3;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	nimZeroMem((void*)(&colontmpD_), sizeof(tyObject_Table__rIDniaYgWTEwlny3uhSy2w));
	colontmpD__2 = NIM_NIL;
	colontmpD__3 = (NI)0;
	colontmpD_ = eqdup___layeredtable_u172(pt_p0.topLayer);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).topLayer = colontmpD_;
	colontmpD__2 = eqdup___layeredtable_u238(pt_p0.nextLayer);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).nextLayer = colontmpD__2;
	colontmpD__3 = pt_p0.previousLen;
	(*Result).previousLen = colontmpD__3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, shallowCopyCandidate__sigmatch_u461)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* dest_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* src_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T1_;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	eqcopy___semdata_u4385(&(*dest_p0).c, (*src_p1).c, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*dest_p0).exactMatches = (*src_p1).exactMatches;
	(*dest_p0).subtypeMatches = (*src_p1).subtypeMatches;
	(*dest_p0).convMatches = (*src_p1).convMatches;
	(*dest_p0).intConvMatches = (*src_p1).intConvMatches;
	(*dest_p0).genericMatches = (*src_p1).genericMatches;
	(*dest_p0).state = (*src_p1).state;
	eqcopy___ast_u3366(&(*dest_p0).callee, (*src_p1).callee);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u4561(&(*dest_p0).calleeSym, (*src_p1).calleeSym);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = NIM_NIL;
	T1_ = copyTree__ast_u6862((*src_p1).call);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T1_); goto BeforeRet_;}
	eqsink___ast_u3246(&(*dest_p0).call, T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*dest_p0).baseTypeMatch = (*src_p1).baseTypeMatch;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	shallowCopy__layeredtable_u283((*src_p1).bindings, (&T2_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqsink___layeredtable_u259((&(*dest_p0).bindings), T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, staticAwareTypeRel__sigmatch_u4302)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** arg_p2) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL oldNimErrFin8_;
	tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T12_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	colontmpD_ = NIM_NIL;
	{
		NIM_BOOL T4_;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* copiedNode_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T9_;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60));
		if (!(T4_)) goto LA5_;
		colontmpD_ = base__ast_u5330(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T4_ = ((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25));
LA5_: ;
		if (!T4_) goto LA6_;
		copiedNode_1 = NIM_NIL;
		copiedNode_1 = copyNode__ast_u6707((*arg_p2));
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		T9_ = NIM_NIL;
		T9_ = exactReplica__ast_u6222((*copiedNode_1).typField);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T9_); goto LA8_;}
		eqsink___ast_u3372(&(*copiedNode_1).typField, T9_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		eqcopy___ast_u3240(&(*(*copiedNode_1).typField).n, (*arg_p2));
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		eqsink___ast_u3246(&(*arg_p2), copiedNode_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		eqwasMoved___ast_u3234(&copiedNode_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		{
			LA8_:;
		}
		{
			oldNimErrFin8_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3237(copiedNode_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin8_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA6_: ;
	T12_ = 0;
	result = typeRel__sigmatch_u250(m_p0, f_p1, (*(*arg_p2)).typField, T12_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimIncRef)(void* p_p0) {
	NI T1_;
	T1_ = (NI)0;
	T1_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)8));
	(*((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T1_))).rc += ((NI)16);
}
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___sigmatch_u163)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* dest_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* src_p1) {
	tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* colontmp_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmp_ = (*dest_p0).c;
	{
		if (!(*src_p1).c) goto LA3_;
		nimIncRefCyclic((*src_p1).c, NIM_TRUE);
	}
LA3_: ;
	(*dest_p0).c = (*src_p1).c;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = nimDecRefIsLastCyclicDyn(colontmp_);
		if (!T7_) goto LA8_;
		nimDestroyAndDispose(colontmp_);
	}
LA8_: ;
	(*dest_p0).exactMatches = (*src_p1).exactMatches;
	(*dest_p0).genericMatches = (*src_p1).genericMatches;
	(*dest_p0).subtypeMatches = (*src_p1).subtypeMatches;
	(*dest_p0).intConvMatches = (*src_p1).intConvMatches;
	(*dest_p0).convMatches = (*src_p1).convMatches;
	(*dest_p0).state = (*src_p1).state;
	{
		if (!(*src_p1).callee) goto LA12_;
		nimIncRef((*src_p1).callee);
	}
LA12_: ;
	{
		NIM_BOOL T16_;
		T16_ = (NIM_BOOL)0;
		T16_ = nimDecRefIsLastDyn((*dest_p0).callee);
		if (!T16_) goto LA17_;
		eqdestroy___ast_u3273((&(*(*dest_p0).callee)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).callee, ((NI)8));
	}
LA17_: ;
	(*dest_p0).callee = (*src_p1).callee;
	{
		if (!(*src_p1).calleeSym) goto LA21_;
		nimIncRef((*src_p1).calleeSym);
	}
LA21_: ;
	{
		NIM_BOOL T25_;
		T25_ = (NIM_BOOL)0;
		T25_ = nimDecRefIsLastDyn((*dest_p0).calleeSym);
		if (!T25_) goto LA26_;
		eqdestroy___ast_u3454((&(*(*dest_p0).calleeSym)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).calleeSym, ((NI)8));
	}
LA26_: ;
	(*dest_p0).calleeSym = (*src_p1).calleeSym;
	(*dest_p0).calleeScope = (*src_p1).calleeScope;
	{
		if (!(*src_p1).call) goto LA30_;
		nimIncRef((*src_p1).call);
	}
LA30_: ;
	{
		NIM_BOOL T34_;
		T34_ = (NIM_BOOL)0;
		T34_ = nimDecRefIsLastDyn((*dest_p0).call);
		if (!T34_) goto LA35_;
		eqdestroy___ast_u3255((&(*(*dest_p0).call)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).call, ((NI)8));
	}
LA35_: ;
	(*dest_p0).call = (*src_p1).call;
	eqcopy___layeredtable_u187((&(*dest_p0).bindings.topLayer.data), (*src_p1).bindings.topLayer.data);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*dest_p0).bindings.topLayer.counter = (*src_p1).bindings.topLayer.counter;
	{
		if (!(*src_p1).bindings.nextLayer) goto LA39_;
		nimIncRef((*src_p1).bindings.nextLayer);
	}
LA39_: ;
	{
		NIM_BOOL T43_;
		T43_ = (NIM_BOOL)0;
		T43_ = nimDecRefIsLastDyn((*dest_p0).bindings.nextLayer);
		if (!T43_) goto LA44_;
		eqdestroy___layeredtable_u250((*(*dest_p0).bindings.nextLayer));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).bindings.nextLayer, ((NI)4));
	}
LA44_: ;
	(*dest_p0).bindings.nextLayer = (*src_p1).bindings.nextLayer;
	(*dest_p0).bindings.previousLen = (*src_p1).bindings.previousLen;
	(*dest_p0).magic = (*src_p1).magic;
	(*dest_p0).baseTypeMatch = (*src_p1).baseTypeMatch;
	(*dest_p0).matchedErrorType = (*src_p1).matchedErrorType;
	(*dest_p0).genericConverter = (*src_p1).genericConverter;
	(*dest_p0).coerceDistincts = (*src_p1).coerceDistincts;
	(*dest_p0).typedescMatched = (*src_p1).typedescMatched;
	(*dest_p0).isNoCall = (*src_p1).isNoCall;
	eqcopy___ast_u3299((&(*dest_p0).inferredTypes), (*src_p1).inferredTypes);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___system_u3812((&(*dest_p0).diagnostics), (*src_p1).diagnostics);
	(*dest_p0).inheritancePenalty = (*src_p1).inheritancePenalty;
	(*dest_p0).firstMismatch.kind = (*src_p1).firstMismatch.kind;
	(*dest_p0).firstMismatch.arg = (*src_p1).firstMismatch.arg;
	{
		if (!(*src_p1).firstMismatch.formal) goto LA48_;
		nimIncRef((*src_p1).firstMismatch.formal);
	}
LA48_: ;
	{
		NIM_BOOL T52_;
		T52_ = (NIM_BOOL)0;
		T52_ = nimDecRefIsLastDyn((*dest_p0).firstMismatch.formal);
		if (!T52_) goto LA53_;
		eqdestroy___ast_u3454((&(*(*dest_p0).firstMismatch.formal)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).firstMismatch.formal, ((NI)8));
	}
LA53_: ;
	(*dest_p0).firstMismatch.formal = (*src_p1).firstMismatch.formal;
	(*dest_p0).diagnosticsEnabled = (*src_p1).diagnosticsEnabled;
	eqcopy___pureZosproc_u453((&(*dest_p0).newlyTypedOperands), (*src_p1).newlyTypedOperands);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, checkGeneric__sigmatch_u464)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* a_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* b_p1) {
	NI result;
	tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* bb_1;
	NI winner_1;
NIM_BOOL oldNimErrFin9_;
NIM_BOOL oldNimErrFin3_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	c_1 = NIM_NIL;
	aa_1 = NIM_NIL;
	bb_1 = NIM_NIL;
	eqcopy___semdata_u4385(&c_1, (*a_p0).c, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3366(&aa_1, (*a_p0).callee);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3366(&bb_1, (*b_p1).callee);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	winner_1 = ((NI)0);
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aai_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* bbi_1;
		aai_1 = NIM_NIL;
		bbi_1 = NIM_NIL;
		{
			NI i_1;
			NI colontmp_;
			NI T5_;
			NI T6_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			T5_ = (*aa_1).sons.len;
			T6_ = (*bb_1).sons.len;
			colontmp_ = (NI)(((T5_ <= T6_) ? T5_ : T6_) + ((NI)0));
			i_2 = ((NI)1);
			{
				while (1) {
					tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g ma_1;
					tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g mb_1;
					tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ tra_1;
					tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ trb_1;
					if (!(i_2 < colontmp_)) goto LA8;
					nimZeroMem((void*)(&ma_1), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
					nimZeroMem((void*)(&mb_1), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
					i_1 = i_2;
					eqcopy___ast_u3366(&aai_1, (*aa_1).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					eqcopy___ast_u3366(&bbi_1, (*bb_1).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					newCandidate__sigmatch_u457(c_1, bbi_1, (&ma_1));
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					tra_1 = typeRel__sigmatch_u250((&ma_1), bbi_1, aai_1, 17);
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					newCandidate__sigmatch_u457(c_1, aai_1, (&mb_1));
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					trb_1 = typeRel__sigmatch_u250((&mb_1), aai_1, bbi_1, 17);
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					{
						NIM_BOOL T12_;
						T12_ = (NIM_BOOL)0;
						T12_ = (tra_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8));
						if (!(T12_)) goto LA13_;
						T12_ = (trb_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0) || trb_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)6) || trb_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)7));
LA13_: ;
						if (!T12_) goto LA14_;
						{
							if (!(winner_1 == ((NI)-1))) goto LA18_;
							result = ((NI)0);
							eqdestroy___sigmatch_u160((&mb_1));
							if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
							eqdestroy___sigmatch_u160((&ma_1));
							if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
							eqdestroy___ast_u3363(bbi_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3363(aai_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3363(bb_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(aa_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___semdata_u4382(c_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA18_: ;
						winner_1 = ((NI)1);
					}
LA14_: ;
					{
						NIM_BOOL T22_;
						T22_ = (NIM_BOOL)0;
						T22_ = (trb_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8));
						if (!(T22_)) goto LA23_;
						T22_ = (tra_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0) || tra_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)6) || tra_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)7));
LA23_: ;
						if (!T22_) goto LA24_;
						{
							if (!(winner_1 == ((NI)1))) goto LA28_;
							result = ((NI)0);
							eqdestroy___sigmatch_u160((&mb_1));
							if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
							eqdestroy___sigmatch_u160((&ma_1));
							if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
							eqdestroy___ast_u3363(bbi_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3363(aai_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3363(bb_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(aa_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___semdata_u4382(c_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA28_: ;
						winner_1 = ((NI)-1);
					}
LA24_: ;
					i_2 += ((NI)1);
					{
						LA9_:;
					}
					{
						oldNimErrFin9_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___sigmatch_u160((&mb_1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
						eqdestroy___sigmatch_u160((&ma_1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
						*nimErr_ = oldNimErrFin9_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
				} LA8: ;
			}
		}
		{
			LA3_:;
		}
		{
			oldNimErrFin3_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(bbi_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3363(aai_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin3_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	result = winner_1;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(bb_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(aa_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___semdata_u4382(c_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, sumGeneric__sigmatch_u494)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NI result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_2;
NIM_BOOL oldNimErrFin50_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	t_2 = NIM_NIL;
	result = ((NI)0);
	eqcopy___ast_u3366(&t_2, t_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			switch ((*t_2).kind) {
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)58):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T5_;
				T5_ = NIM_NIL;
				T5_ = skipModifier__ast_u5317(t_2);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T5_); goto LA1_;}
				eqsink___ast_u3372(&t_2, T5_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T7_;
				T7_ = NIM_NIL;
				T7_ = elementType__ast_u5310(t_2);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T7_); goto LA1_;}
				eqsink___ast_u3372(&t_2, T7_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				result += ((NI)1);
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)1):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)26):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)39):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)40) ... ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)44):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51):
			{
				result += ((NI)1);
				goto LA2;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T10_;
				T10_ = NIM_NIL;
				T10_ = typeBodyImpl__ast_u5348(t_2);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T10_); goto LA1_;}
				eqsink___ast_u3372(&t_2, T10_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T12_;
				T12_ = NIM_NIL;
				T12_ = skipModifier__ast_u5317(t_2);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T12_); goto LA1_;}
				eqsink___ast_u3372(&t_2, T12_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				result += ((NI)1);
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)57):
			{
				NI maxBranch_1;
				maxBranch_1 = ((NI)0);
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* branch_1;
					branch_1 = NIM_NIL;
					branch_1 = 0;
					{
						NI i_1;
						NI colontmp_;
						NI T16_;
						NI i_2;
						i_1 = (NI)0;
						colontmp_ = (NI)0;
						T16_ = (*t_2).sons.len;
						colontmp_ = T16_;
						i_2 = ((NI)0);
						{
							while (1) {
								NI branchSum_1;
								if (!(i_2 < colontmp_)) goto LA18;
								i_1 = i_2;
								eqcopy___ast_u3366(&branch_1, (*t_2).sons.p->data[i_1]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								branchSum_1 = sumGeneric__sigmatch_u494(branch_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								{
									if (!(maxBranch_1 < branchSum_1)) goto LA21_;
									maxBranch_1 = branchSum_1;
								}
LA21_: ;
								i_2 += ((NI)1);
							} LA18: ;
						}
					}
					eqdestroy___ast_u3363(branch_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
				result += maxBranch_1;
				goto LA2;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T24_;
				T24_ = NIM_NIL;
				T24_ = elementType__ast_u5310(t_2);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T24_); goto LA1_;}
				eqsink___ast_u3372(&t_2, T24_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				{
					if (!((*t_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3))) goto LA27_;
					goto LA2;
				}
LA27_: ;
				result += ((NI)1);
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12):
			{
				{
					NI T32_;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T35_;
					T32_ = (NI)0;
					T32_ = len__ast_u5481(t_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if (!(((NI)0) < T32_)) goto LA33_;
					T35_ = NIM_NIL;
					T35_ = skipModifier__ast_u5317(t_2);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T35_); goto LA1_;}
					eqsink___ast_u3372(&t_2, T35_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
				goto LA30_;
LA33_: ;
				{
					result += ((NI)1);
					goto LA2;
				}
LA30_: ;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7):
			{
				goto LA2;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56):
			{
				result += ((*t_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56));
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_1;
					a_1 = NIM_NIL;
					a_1 = 0;
					{
						NI i_3;
						NI colontmp__2;
						NI T41_;
						NI i_4;
						i_3 = (NI)0;
						colontmp__2 = (NI)0;
						T41_ = (*t_2).sons.len;
						colontmp__2 = T41_;
						i_4 = ((NI)0);
						{
							while (1) {
								if (!(i_4 < colontmp__2)) goto LA43;
								i_3 = i_4;
								eqcopy___ast_u3366(&a_1, (*t_2).sons.p->data[i_3]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								{
									NI T48_;
									if (!!((a_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA46_;
									T48_ = (NI)0;
									T48_ = sumGeneric__sigmatch_u494(a_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									result += T48_;
								}
LA46_: ;
								i_4 += ((NI)1);
							} LA43: ;
						}
					}
					eqdestroy___ast_u3363(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
				goto LA2;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
				colontmpD_ = NIM_NIL;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
					NI T55_;
					colontmpD_ = returnType__ast_u5333(t_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
					if (!!((colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA53_;
					colontmpD__2 = NIM_NIL;
					colontmpD__2 = returnType__ast_u5333(t_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
					T55_ = (NI)0;
					T55_ = sumGeneric__sigmatch_u494(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
					result += T55_;
					eqdestroy___ast_u3363(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
				}
LA53_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_2;
					NI __1;
					a_2 = NIM_NIL;
					__1 = (NI)0;
					a_2 = 0;
					{
						NI i_5;
						NI colontmp__3;
						NI T58_;
						NI i_6;
						i_5 = (NI)0;
						colontmp__3 = (NI)0;
						T58_ = (*t_2).sons.len;
						colontmp__3 = T58_;
						i_6 = ((NI)1);
						{
							while (1) {
								NI T61_;
								if (!(i_6 < colontmp__3)) goto LA60;
								i_5 = i_6;
								__1 = i_5;
								eqcopy___ast_u3366(&a_2, (*t_2).sons.p->data[i_5]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
								T61_ = (NI)0;
								T61_ = sumGeneric__sigmatch_u494(a_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
								result += T61_;
								i_6 += ((NI)1);
							} LA60: ;
						}
					}
					eqdestroy___ast_u3363(a_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
				}
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				goto LA2;
				{
					LA50_:;
				}
				{
					oldNimErrFin50_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin50_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			break;
			default:
			{
				{
					NIM_BOOL T67_;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__4;
					NI T70_;
					T67_ = (NIM_BOOL)0;
					T67_ = isConcept__types_u3406(t_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if (!T67_) goto LA68_;
					colontmpD__3 = NIM_NIL;
					colontmpD__4 = NIM_NIL;
					colontmpD__3 = reduceToBase__types_u4283(t_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					colontmpD__4 = conceptBody__concepts_u181(colontmpD__3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					T70_ = (NI)0;
					T70_ = len__ast_u3175(colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					result += T70_;
					eqdestroy___ast_u3237(colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3363(colontmpD__3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA68_: ;
				goto LA2;
			}
			break;
			}
		}
	} LA2: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(t_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, complexDisambiguation__sigmatch_u573)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	NI result;
	NI winner_1;
NIM_BOOL oldNimErrFin2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	winner_1 = ((NI)0);
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ai_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* bi_1;
		ai_1 = NIM_NIL;
		bi_1 = NIM_NIL;
		{
			NI i_1;
			NI colontmp_;
			NI T4_;
			NI T5_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			T4_ = (*a_p0).sons.len;
			T5_ = (*b_p1).sons.len;
			colontmp_ = (NI)(((T4_ <= T5_) ? T4_ : T5_) + ((NI)0));
			i_2 = ((NI)1);
			{
				while (1) {
					NI x_1;
					NI y_1;
					if (!(i_2 < colontmp_)) goto LA7;
					i_1 = i_2;
					eqcopy___ast_u3366(&ai_1, (*a_p0).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
					eqcopy___ast_u3366(&bi_1, (*b_p1).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
					x_1 = sumGeneric__sigmatch_u494(ai_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
					y_1 = sumGeneric__sigmatch_u494(bi_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
					{
						if (!!((x_1 == y_1))) goto LA10_;
						{
							if (!(winner_1 == ((NI)0))) goto LA14_;
							{
								if (!(y_1 < x_1)) goto LA18_;
								winner_1 = ((NI)1);
							}
							goto LA16_;
LA18_: ;
							{
								winner_1 = ((NI)-1);
							}
LA16_: ;
						}
						goto LA12_;
LA14_: ;
						{
							if (!(y_1 < x_1)) goto LA22_;
							{
								if (!!((winner_1 == ((NI)1)))) goto LA26_;
								result = ((NI)0);
								eqdestroy___ast_u3363(bi_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(ai_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA26_: ;
						}
						goto LA12_;
LA22_: ;
						{
							{
								if (!!((winner_1 == ((NI)-1)))) goto LA31_;
								result = ((NI)0);
								eqdestroy___ast_u3363(bi_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(ai_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA31_: ;
						}
LA12_: ;
					}
LA10_: ;
					i_2 += ((NI)1);
				} LA7: ;
			}
		}
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(bi_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(ai_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin2_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	result = winner_1;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmpCandidates__sigmatch_u590)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* a_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* b_p1, NIM_BOOL isFormal_p2) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)((*a_p0).exactMatches - (*b_p1).exactMatches);
	{
		if (!!((result == ((NI)0)))) goto LA3_;
		goto BeforeRet_;
	}
LA3_: ;
	result = (NI)((*a_p0).genericMatches - (*b_p1).genericMatches);
	{
		if (!!((result == ((NI)0)))) goto LA7_;
		goto BeforeRet_;
	}
LA7_: ;
	result = (NI)((*a_p0).subtypeMatches - (*b_p1).subtypeMatches);
	{
		if (!!((result == ((NI)0)))) goto LA11_;
		goto BeforeRet_;
	}
LA11_: ;
	result = (NI)((*a_p0).intConvMatches - (*b_p1).intConvMatches);
	{
		if (!!((result == ((NI)0)))) goto LA15_;
		goto BeforeRet_;
	}
LA15_: ;
	result = (NI)((*a_p0).convMatches - (*b_p1).convMatches);
	{
		if (!!((result == ((NI)0)))) goto LA19_;
		goto BeforeRet_;
	}
LA19_: ;
	result = cmpInheritancePenalty__sigmatch_u584((*a_p0).inheritancePenalty, (*b_p1).inheritancePenalty);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((result == ((NI)0)))) goto LA23_;
		goto BeforeRet_;
	}
LA23_: ;
	{
		if (!isFormal_p2) goto LA27_;
		result = checkGeneric__sigmatch_u464(a_p0, b_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((result == ((NI)0)))) goto LA31_;
			goto BeforeRet_;
		}
LA31_: ;
		result = complexDisambiguation__sigmatch_u573((*a_p0).callee, (*b_p1).callee);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA27_: ;
	{
		if (!!((result == ((NI)0)))) goto LA35_;
		goto BeforeRet_;
	}
LA35_: ;
	result = (NI)((*a_p0).calleeScope - (*b_p1).calleeScope);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, warnAboutDeprecated__sigmatch_u6438)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p2) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* pragmaNode_1;
	NimStringV2 name_1;
	NimStringV2 colontmpD_;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T2_;
	NimStringV2 T8_;
NIM_BOOL oldNimErrFin22_;
	NimStringV2 T42_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pragmaNode_1 = NIM_NIL;
	name_1.len = 0; name_1.p = NIM_NIL;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	T2_ = NIM_NIL;
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__2;
		if (!((*s_p2).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)20))) goto LA5_;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = owner__ast_u6233(s_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		pragmaNode_1 = extractPragma__ast_u3993(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u4558(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA3_;
LA5_: ;
	{
		pragmaNode_1 = extractPragma__ast_u3993(s_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA3_: ;
	T8_.len = 0; T8_.p = NIM_NIL;
	{
		NIM_BOOL T11_;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__3;
		NimStringV2 T15_;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*s_p2).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)20));
		if (!(T11_)) goto LA12_;
		T11_ = !((((*s_p2).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)22)))&63U)))!=0));
LA12_: ;
		if (!T11_) goto LA13_;
		colontmpD__3 = NIM_NIL;
		T15_.len = 0; T15_.p = NIM_NIL;
		colontmpD__3 = owner__ast_u6233(s_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T15_ = rawNewString((*(*colontmpD__3).name).s.len + (*(*s_p2).name).s.len + 31);
appendString((&T15_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_85);
appendString((&T15_), (*(*colontmpD__3).name).s);
appendString((&T15_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_87);
appendString((&T15_), (*(*s_p2).name).s);
appendString((&T15_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_88);
		name_1 = T15_;
		eqdestroy___ast_u4558(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA9_;
LA13_: ;
	{
		eqcopy___system_u2630((&name_1), (*(*s_p2).name).s);
	}
LA9_: ;
	{
		if (!!((pragmaNode_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA19_;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* it_1;
			it_1 = NIM_NIL;
			{
				NI i_1;
				NI colontmp_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_u3182(pragmaNode_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
				i_2 = ((NI)0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA25;
						i_1 = i_2;
						eqcopy___ast_u3240(&it_1, (*pragmaNode_1)._kind_6.sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						{
							NIM_BOOL T28_;
							NIM_BOOL T29_;
							tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw T30_;
							NI T32_;
							NimStringV2 colontmpD__4;
							NimStringV2 T37_;
							T28_ = (NIM_BOOL)0;
							T29_ = (NIM_BOOL)0;
							T30_ = (tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)0;
							T30_ = whichPragma__trees_u218(it_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
							T29_ = (T30_ == ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)139));
							if (!(T29_)) goto LA31_;
							T32_ = (NI)0;
							T32_ = safeLen__ast_u3182(it_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
							T29_ = (T32_ == ((NI)2));
LA31_: ;
							T28_ = T29_;
							if (!(T28_)) goto LA33_;
							T28_ = ((*(*it_1)._kind_6.sons.p->data[((NI)1)]).kind >= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)20) && (*(*it_1)._kind_6.sons.p->data[((NI)1)]).kind <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)22));
LA33_: ;
							if (!T28_) goto LA34_;
							colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
							T37_.len = 0; T37_.p = NIM_NIL;
							T37_ = rawNewString((*(*it_1)._kind_6.sons.p->data[((NI)1)])._kind_3.strVal.len + name_1.len + 16);
appendString((&T37_), (*(*it_1)._kind_6.sons.p->data[((NI)1)])._kind_3.strVal);
appendString((&T37_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_90);
appendString((&T37_), name_1);
appendString((&T37_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_92);
							colontmpD__4 = T37_;
							liMessage__msgs_u1223(conf_p0, info_p1, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)24), colontmpD__4, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_93, NIM_FALSE, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto LA36_;
							eqdestroy___system_u2627(colontmpD__4);
							eqdestroy___ast_u3237(it_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___system_u2627(colontmpD_);
							eqdestroy___system_u2627(name_1);
							eqdestroy___ast_u3237(pragmaNode_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
							{
								LA36_:;
							}
							{
								eqdestroy___system_u2627(colontmpD__4);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						}
LA34_: ;
						i_2 += ((NI)1);
					} LA25: ;
				}
			}
			{
				LA22_:;
			}
			{
				oldNimErrFin22_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3237(it_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin22_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
	}
LA19_: ;
	T42_.len = 0; T42_.p = NIM_NIL;
	T42_ = rawNewString(name_1.len + 14);
appendString((&T42_), name_1);
appendString((&T42_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_95);
	colontmpD_ = T42_;
	liMessage__msgs_u1223(conf_p0, info_p1, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)24), colontmpD_, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_96, NIM_FALSE, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___system_u2627(colontmpD_);
		eqdestroy___system_u2627(name_1);
		eqdestroy___ast_u3237(pragmaNode_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NimStringV2, toFileLineCol__msgs_u705)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1) {
	NimStringV2 result;
	NimStringV2 colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	result = TM__EV5hHJmjIY9cla9b9be7fSVJQ_100;
	colontmpD_ = toMsgFilename__msgs_u688(conf_p0, info_p1.fileIndex);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	prepareAdd((&result), colontmpD_.len + 0);
appendString((&result), colontmpD_);
	{
		if (!(((NI)0) < ((NI) (info_p1.line)))) goto LA4_;
		prepareAdd((&result), 1);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_101);
		addInt__stdZprivateZdigitsutils_u204((&result), ((NI) (info_p1.line)));
		{
			if (!(((NI)0) < (NI)(((NI) (info_p1.col)) + ((NI)1)))) goto LA8_;
			prepareAdd((&result), 2);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_102);
			addInt__stdZprivateZdigitsutils_u204((&result), (NI)(((NI) (info_p1.col)) + ((NI)1)));
		}
LA8_: ;
		prepareAdd((&result), 1);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_103);
	}
LA4_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2627(colontmpD_);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, userError__sigmatch_u6475)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p2) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* pragmaNode_1;
	NimStringV2 colontmpD_;
	NimStringV2 colontmpD__2;
NIM_BOOL oldNimErrFin7_;
	tyArray__24KAM9afIUgUaqBaEBB6r9bg T28_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pragmaNode_1 = NIM_NIL;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
	pragmaNode_1 = extractPragma__ast_u3993(s_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!!((pragmaNode_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA4_;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* it_1;
			it_1 = NIM_NIL;
			{
				NI i_1;
				NI colontmp_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_u3182(pragmaNode_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				i_2 = ((NI)0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA10;
						i_1 = i_2;
						eqcopy___ast_u3240(&it_1, (*pragmaNode_1)._kind_6.sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
						{
							NIM_BOOL T13_;
							NIM_BOOL T14_;
							tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw T15_;
							NI T17_;
							NimStringV2 colontmpD__3;
							NimStringV2 colontmpD__4;
							NimStringV2 colontmpD__5;
							tyArray__24KAM9afIUgUaqBaEBB6r9bg T22_;
							NimStringV2 T23_;
							T13_ = (NIM_BOOL)0;
							T14_ = (NIM_BOOL)0;
							T15_ = (tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)0;
							T15_ = whichPragma__trees_u218(it_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							T14_ = (T15_ == ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)123));
							if (!(T14_)) goto LA16_;
							T17_ = (NI)0;
							T17_ = safeLen__ast_u3182(it_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							T14_ = (T17_ == ((NI)2));
LA16_: ;
							T13_ = T14_;
							if (!(T13_)) goto LA18_;
							T13_ = ((*(*it_1)._kind_6.sons.p->data[((NI)1)]).kind >= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)20) && (*(*it_1)._kind_6.sons.p->data[((NI)1)]).kind <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)22));
LA18_: ;
							if (!T13_) goto LA19_;
							colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
							colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
							colontmpD__5.len = 0; colontmpD__5.p = NIM_NIL;
							T23_.len = 0; T23_.p = NIM_NIL;
							T23_ = rawNewString((*(*it_1)._kind_6.sons.p->data[((NI)1)])._kind_3.strVal.len + 2);
appendString((&T23_), (*(*it_1)._kind_6.sons.p->data[((NI)1)])._kind_3.strVal);
appendString((&T23_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_99);
							colontmpD__3 = T23_;
							T22_[0] = colontmpD__3;
							T22_[1] = (*(*s_p2).name).s;
							colontmpD__4 = toFileLineCol__msgs_u705(conf_p0, (*(*s_p2).ast).info);
							if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
							T22_[2] = colontmpD__4;
							colontmpD__5 = nsuFormatOpenArray(TM__EV5hHJmjIY9cla9b9be7fSVJQ_98, T22_, 3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
							liMessage__msgs_u1223(conf_p0, info_p1, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__5, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_104, NIM_FALSE, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
							eqdestroy___system_u2627(colontmpD__5);
							eqdestroy___system_u2627(colontmpD__4);
							eqdestroy___system_u2627(colontmpD__3);
							eqdestroy___ast_u3237(it_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___system_u2627(colontmpD__2);
							eqdestroy___system_u2627(colontmpD_);
							eqdestroy___ast_u3237(pragmaNode_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
							{
								LA21_:;
							}
							{
								eqdestroy___system_u2627(colontmpD__5);
								eqdestroy___system_u2627(colontmpD__4);
								eqdestroy___system_u2627(colontmpD__3);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
						}
LA19_: ;
						i_2 += ((NI)1);
					} LA10: ;
				}
			}
			{
				LA7_:;
			}
			{
				oldNimErrFin7_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3237(it_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin7_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
	}
LA4_: ;
	T28_[0] = TM__EV5hHJmjIY9cla9b9be7fSVJQ_106;
	T28_[1] = (*(*s_p2).name).s;
	colontmpD_ = toFileLineCol__msgs_u705(conf_p0, (*(*s_p2).ast).info);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T28_[2] = colontmpD_;
	colontmpD__2 = nsuFormatOpenArray(TM__EV5hHJmjIY9cla9b9be7fSVJQ_105, T28_, 3);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	liMessage__msgs_u1223(conf_p0, info_p1, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__2, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_107, NIM_FALSE, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___system_u2627(colontmpD__2);
		eqdestroy___system_u2627(colontmpD_);
		eqdestroy___ast_u3237(pragmaNode_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, markUsed__sigmatch_u99)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p2, NIM_BOOL checkStyle_p3) {
	tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_1;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
NIM_BOOL oldNimErrFin8_;
NIM_BOOL oldNimErrFin38_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	conf_1 = NIM_NIL;
	colontmpD_ = NIM_NIL;
	eqcopy___options_u2137(&conf_1, (*(*c_p0).graph).config);
	(*s_p2).flags |= ((NU64)1)<<(((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)0))) & 63);
	{
		NIM_BOOL T4_;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__2;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__3;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*s_p2).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)20));
		if (!(T4_)) goto LA5_;
		colontmpD_ = owner__ast_u6233(s_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T4_ = !((colontmpD_ == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA5_: ;
		if (!T4_) goto LA6_;
		colontmpD__2 = NIM_NIL;
		colontmpD__3 = NIM_NIL;
		colontmpD__2 = owner__ast_u6233(s_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		(*colontmpD__2).flags |= ((NU64)1)<<(((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)0))) & 63);
		{
			colontmpD__3 = owner__ast_u6233(s_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
			if (!(((*colontmpD__3).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)22)))&63U)))!=0)) goto LA11_;
			warnAboutDeprecated__sigmatch_u6438(conf_1, info_p1, s_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		}
LA11_: ;
		{
			LA8_:;
		}
		{
			oldNimErrFin8_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u4558(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u4558(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin8_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA6_: ;
	{
		tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg T17_;
		T17_ = 0;
		if (!!(((20971520 & (*s_p2).flags) == T17_))) goto LA18_;
		{
			if (!(((*s_p2).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)22)))&63U)))!=0)) goto LA22_;
			{
				NIM_BOOL T26_;
				T26_ = (NIM_BOOL)0;
				T26_ = ((*c_p0).lastTLineInfo.line == info_p1.line);
				if (!(T26_)) goto LA27_;
				T26_ = ((*c_p0).lastTLineInfo.col == info_p1.col);
LA27_: ;
				if (!!(T26_)) goto LA28_;
				warnAboutDeprecated__sigmatch_u6438(conf_1, info_p1, s_p2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				(*c_p0).lastTLineInfo = info_p1;
			}
LA28_: ;
		}
LA22_: ;
		{
			if (!(((*s_p2).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)24)))&63U)))!=0)) goto LA32_;
			userError__sigmatch_u6475(conf_1, info_p1, s_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA32_: ;
	}
LA18_: ;
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__4;
		if (!checkStyle_p3) goto LA36_;
		colontmpD__4 = NIM_NIL;
		{
			NIM_BOOL T41_;
			NIM_BOOL T42_;
			NIM_BOOL T43_;
			NIM_BOOL T44_;
			NIM_BOOL T45_;
			tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A T46_;
			T41_ = (NIM_BOOL)0;
			T42_ = (NIM_BOOL)0;
			T43_ = (NIM_BOOL)0;
			T44_ = (NIM_BOOL)0;
			T45_ = (NIM_BOOL)0;
			T46_ = 0;
			T45_ = !(((98304 & (*(*(*c_p0).graph).config).globalOptions) == T46_));
			if (!(T45_)) goto LA47_;
			T45_ = (((*(*(*c_p0).graph).config).notes[(NU)((((tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w)104) - 20))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w)104) - 20))&7U)))!=0);
LA47_: ;
			T44_ = T45_;
			if (!(T44_)) goto LA48_;
			colontmpD__4 = getModule__modulegraphs_u14800((*c_p0).graph, info_p1.fileIndex);
			if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
			T44_ = belongsToProjectPackageMaybeNil__packages_u85((*(*c_p0).graph).config, colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
LA48_: ;
			T43_ = T44_;
			if (!(T43_)) goto LA49_;
			T43_ = !(((*s_p2).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)5)));
LA49_: ;
			T42_ = T43_;
			if (!(T42_)) goto LA50_;
			T42_ = (((NU8)((*(*s_p2).name).s.p->data[((NI)0)])) >= ((NU8)(97)) && ((NU8)((*(*s_p2).name).s.p->data[((NI)0)])) <= ((NU8)(122)) || ((NU8)((*(*s_p2).name).s.p->data[((NI)0)])) >= ((NU8)(65)) && ((NU8)((*(*s_p2).name).s.p->data[((NI)0)])) <= ((NU8)(90)) || ((NU8)((*(*s_p2).name).s.p->data[((NI)0)])) >= ((NU8)(48)) && ((NU8)((*(*s_p2).name).s.p->data[((NI)0)])) <= ((NU8)(57)) || ((NU8)((*(*s_p2).name).s.p->data[((NI)0)])) >= ((NU8)(128)) && ((NU8)((*(*s_p2).name).s.p->data[((NI)0)])) <= ((NU8)(255)) || ((NU8)((*(*s_p2).name).s.p->data[((NI)0)])) == ((NU8)(95)));
LA50_: ;
			T41_ = T42_;
			if (!(T41_)) goto LA51_;
			T41_ = !((((*s_p2).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)60)))&63U)))!=0));
LA51_: ;
			if (!T41_) goto LA52_;
			styleCheckUseImpl__linter_u194((*(*c_p0).graph).config, info_p1, s_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
		}
LA52_: ;
		{
			LA38_:;
		}
		{
			oldNimErrFin38_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u4558(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin38_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA36_: ;
	markOwnerModuleAsUsed__sigmatch_u104(c_p0, s_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u4558(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___options_u2134(conf_1);
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, paramTypesMatch__sigmatch_u4316)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_p3, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argOrig_p4) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL oldNimErrFin42_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (arg_p3 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = !(((*arg_p3).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)56) || (*arg_p3).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)57)));
LA4_: ;
		if (!T3_) goto LA5_;
		result = paramTypesMatchAux__sigmatch_u3913(m_p0, f_p1, a_p2, arg_p3, argOrig_p4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA5_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actingF_1;
		tySet_tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q matchSet_1;
		NI best_1;
		actingF_1 = NIM_NIL;
		matchSet_1 = 16777151;
		best_1 = ((NI)-1);
		eqcopy___ast_u3240(&result, arg_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		actingF_1 = f_p1;
		{
			if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48))) goto LA10_;
			{
				if (!((*(*m_p0).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p0).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17))) goto LA14_;
				actingF_1 = (*f_p1).sons.p->data[((NI)0)];
			}
LA14_: ;
		}
LA10_: ;
		{
			NI bestScope_1;
			NI counts_1;
			if (!((*actingF_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7) || (*actingF_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6))) goto LA18_;
			bestScope_1 = ((NI)-1);
			counts_1 = ((NI)0);
			{
				NI i_1;
				NI colontmp_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_u3175(arg_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI)0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA22;
						i_1 = i_2;
						{
							NI thisScope_1;
							if (!((matchSet_1 &((NU32)1<<((NU)(((*(*(*arg_p3)._kind_6.sons.p->data[i_1])._kind_4.sym).kind))&31U)))!=0)) goto LA25_;
							thisScope_1 = cmpScopes__lookups_u2550((*m_p0).c, (*(*arg_p3)._kind_6.sons.p->data[i_1])._kind_4.sym);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								if (!(bestScope_1 < thisScope_1)) goto LA29_;
								best_1 = i_1;
								bestScope_1 = thisScope_1;
								counts_1 = ((NI)0);
							}
							goto LA27_;
LA29_: ;
							{
								if (!(thisScope_1 == bestScope_1)) goto LA32_;
								counts_1 += ((NI)1);
							}
							goto LA27_;
LA32_: ;
LA27_: ;
						}
LA25_: ;
						i_2 += ((NI)1);
					} LA22: ;
				}
			}
			{
				if (!(best_1 == ((NI)-1))) goto LA36_;
				eqsink___ast_u3246(&result, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA34_;
LA36_: ;
			{
				if (!(((NI)0) < counts_1)) goto LA39_;
				(*m_p0).genericMatches = ((NI)1);
				best_1 = ((NI)-1);
			}
			goto LA34_;
LA39_: ;
LA34_: ;
		}
		goto LA16_;
LA18_: ;
		{
			tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_1;
			tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g x_1;
			tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g y_1;
			tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g z_1;
			tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g T43_;
			tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g T44_;
			tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g T45_;
			c_1 = NIM_NIL;
			nimZeroMem((void*)(&x_1), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
			nimZeroMem((void*)(&y_1), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
			nimZeroMem((void*)(&z_1), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
			eqcopy___semdata_u4385(&c_1, (*m_p0).c, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			nimZeroMem((void*)(&T43_), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
			newCandidate__sigmatch_u457(c_1, (*m_p0).callee, (&T43_));
			x_1 = T43_;
			if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			nimZeroMem((void*)(&T44_), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
			newCandidate__sigmatch_u457(c_1, (*m_p0).callee, (&T44_));
			y_1 = T44_;
			if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			nimZeroMem((void*)(&T45_), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
			newCandidate__sigmatch_u457(c_1, (*m_p0).callee, (&T45_));
			z_1 = T45_;
			if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			eqcopy___ast_u4561(&x_1.calleeSym, (*m_p0).calleeSym);
			if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			eqcopy___ast_u4561(&y_1.calleeSym, (*m_p0).calleeSym);
			if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			eqcopy___ast_u4561(&z_1.calleeSym, (*m_p0).calleeSym);
			if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_u3175(arg_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
				i_4 = ((NI)0);
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA48;
						i_3 = i_4;
						{
							{
								NI T65_;
								tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ r_1;
								if (!((matchSet_1 &((NU32)1<<((NU)(((*(*(*arg_p3)._kind_6.sons.p->data[i_3])._kind_4.sym).kind))&31U)))!=0)) goto LA52_;
								shallowCopyCandidate__sigmatch_u461((&z_1), (&(*m_p0)));
								if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
								eqcopy___ast_u3366(&z_1.callee, (*(*arg_p3)._kind_6.sons.p->data[i_3]).typField);
								if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
								{
									NIM_BOOL T56_;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
									tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T60_;
									T56_ = (NIM_BOOL)0;
									T56_ = ((*(*(*arg_p3)._kind_6.sons.p->data[i_3])._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)7));
									if (!(T56_)) goto LA57_;
									T56_ = !(((*z_1.callee).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8)));
LA57_: ;
									if (!T56_) goto LA58_;
									colontmpD_ = NIM_NIL;
									colontmpD_ = owner__ast_u6233((*(*arg_p3)._kind_6.sons.p->data[i_3])._kind_4.sym);
									if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
									T60_ = NIM_NIL;
									T60_ = newType__ast_u5879(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8), (*c_1).Sup.idgen, colontmpD_, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T60_); goto LA42_;}
									eqsink___ast_u3372(&z_1.callee, T60_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
									addSonSkipIntLit__magicsys_u134(z_1.callee, (*(*(*arg_p3)._kind_6.sons.p->data[i_3])._kind_4.sym).typ, (*c_1).Sup.idgen);
									if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
									eqdestroy___ast_u4558(colontmpD_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
								}
LA58_: ;
								{
									if (!(((*z_1.callee).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0)) goto LA63_;
									goto LA49;
								}
LA63_: ;
								eqcopy___ast_u4561(&z_1.calleeSym, (*(*arg_p3)._kind_6.sons.p->data[i_3])._kind_4.sym);
								if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
								T65_ = (NI)0;
								T65_ = cmpScopes__lookups_u2550((*m_p0).c, (*(*arg_p3)._kind_6.sons.p->data[i_3])._kind_4.sym);
								if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
								z_1.calleeScope = T65_;
								r_1 = staticAwareTypeRel__sigmatch_u4302((&z_1), f_p1, &(*arg_p3)._kind_6.sons.p->data[i_3]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
								incMatches__sigmatch_u3877((&z_1), r_1, ((NI)2));
								if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
								{
									if (!!((r_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA68_;
									z_1.state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)1);
									switch (x_1.state) {
									case ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)0):
									case ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2):
									{
										eqcopy___sigmatch_u163((&x_1), (&z_1));
										if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										best_1 = i_3;
									}
									break;
									case ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)1):
									{
										NI cmp_1;
										cmp_1 = cmpCandidates__sigmatch_u590((&x_1), (&z_1), NIM_FALSE);
										if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										{
											if (!(cmp_1 < ((NI)0))) goto LA74_;
											best_1 = i_3;
											eqcopy___sigmatch_u163((&x_1), (&z_1));
											if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										}
										goto LA72_;
LA74_: ;
										{
											if (!(cmp_1 == ((NI)0))) goto LA77_;
											eqcopy___sigmatch_u163((&y_1), (&z_1));
											if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										}
										goto LA72_;
LA77_: ;
LA72_: ;
									}
									break;
									default: __builtin_unreachable();
									}
								}
LA68_: ;
							}
LA52_: ;
						} LA49: ;
						i_4 += ((NI)1);
					} LA48: ;
				}
			}
			{
				if (!(x_1.state == ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)0))) goto LA81_;
				eqsink___ast_u3246(&result, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			}
			goto LA79_;
LA81_: ;
			{
				NIM_BOOL T84_;
				NI T86_;
				T84_ = (NIM_BOOL)0;
				T84_ = (y_1.state == ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)1));
				if (!(T84_)) goto LA85_;
				T86_ = (NI)0;
				T86_ = cmpCandidates__sigmatch_u590((&x_1), (&y_1), NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
				T84_ = (T86_ == ((NI)0));
LA85_: ;
				if (!T84_) goto LA87_;
				{
					if (!!((x_1.state == ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)1)))) goto LA91_;
					internalErrorImpl__msgs_u1594((*(*(*m_p0).c).graph).config, (*arg_p3).info, TM__EV5hHJmjIY9cla9b9be7fSVJQ_82, TM__EV5hHJmjIY9cla9b9be7fSVJQ_83);
					if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
				}
LA91_: ;
				eqsink___ast_u3246(&result, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			}
			goto LA79_;
LA87_: ;
LA79_: ;
			{
				LA42_:;
			}
			{
				oldNimErrFin42_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___sigmatch_u160((&z_1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___sigmatch_u160((&y_1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___sigmatch_u160((&x_1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___semdata_u4382(c_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin42_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA16_: ;
		{
			NIM_BOOL T97_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T101_;
			T97_ = (NIM_BOOL)0;
			T97_ = (((NI)-1) < best_1);
			if (!(T97_)) goto LA98_;
			T97_ = !((result == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA98_: ;
			if (!T97_) goto LA99_;
			markUsed__sigmatch_u99((*m_p0).c, (*arg_p3).info, (*(*arg_p3)._kind_6.sons.p->data[best_1])._kind_4.sym, NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T101_ = NIM_NIL;
			T101_ = paramTypesMatchAux__sigmatch_u3913(m_p0, f_p1, (*(*arg_p3)._kind_6.sons.p->data[best_1]).typField, (*arg_p3)._kind_6.sons.p->data[best_1], argOrig_p4);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T101_); goto BeforeRet_;}
			eqsink___ast_u3246(&result, T101_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA99_: ;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, find__sigmatch_u5093)(NI* a_p0, NI a_p0Len_0, NI item_p1) {
	NI result;
{	result = ((NI)0);
	{
		NI* i_1;
		NI i_2;
		i_1 = (NI*)0;
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < a_p0Len_0)) goto LA3;
				i_1 = (&a_p0[i_2]);
				{
					if (!((*i_1) == item_p1)) goto LA6_;
					goto BeforeRet_;
				}
LA6_: ;
				result += ((NI)1);
				i_2 += ((NI)1);
			} LA3: ;
		}
	}
	result = ((NI)-1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__sigmatch_u5088)(NI* a_p0, NI a_p0Len_0, NI item_p1) {
	NIM_BOOL result;
	NI T1_;
{	T1_ = (NI)0;
	T1_ = find__sigmatch_u5093(a_p0, a_p0Len_0, item_p1);
	result = (((NI)0) <= T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, argtypeMatches__sigmatch_u5028)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, NIM_BOOL fromHlo_p3) {
	NIM_BOOL result;
	tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g m_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* res_1;
	NIM_BOOL colontmpD_;
	NIM_BOOL colontmpD__2;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&m_1), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
	res_1 = NIM_NIL;
	colontmpD_ = (NIM_BOOL)0;
	colontmpD__2 = (NIM_BOOL)0;
	newCandidate__sigmatch_u457(c_p0, f_p1, (&m_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	res_1 = paramTypesMatch__sigmatch_u4316((&m_1), f_p1, a_p2, (*(*c_p0).graph).emptyNode, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!!(fromHlo_p3)) goto LA4_;
		colontmpD_ = !((res_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
		result = colontmpD_;
	}
	goto LA2_;
LA4_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = !((res_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
		if (!(T8_)) goto LA9_;
		T8_ = (m_1.convMatches == ((NI)0));
LA9_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA10_;
		T7_ = contains__sigmatch_u5088(TM__EV5hHJmjIY9cla9b9be7fSVJQ_108, 2, m_1.intConvMatches);
LA10_: ;
		colontmpD__2 = T7_;
		result = colontmpD__2;
	}
LA2_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3237(res_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u160((&m_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, typeFits__sigmatch_u6175)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* firstArg_p2) {
	NIM_BOOL result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL oldNimErrFin18_;
NIM_BOOL oldNimErrFin11_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	colontmpD_ = NIM_NIL;
	{
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NI T7_;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* m_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = !(((*s_p1).typ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T5_)) goto LA6_;
		T7_ = (NI)0;
		T7_ = paramsLen__ast_u5595((*s_p1).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T5_ = (((NI)0) < T7_);
LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA8_;
		colontmpD_ = firstParamType__ast_u5342((*s_p1).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T4_ = !((colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
LA8_: ;
		if (!T4_) goto LA9_;
		m_1 = NIM_NIL;
		colontmpD__2 = NIM_NIL;
		m_1 = getModule__astalgo_u156(s_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		{
			NIM_BOOL T14_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* exp_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
			T14_ = (NIM_BOOL)0;
			T14_ = !((m_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
			if (!(T14_)) goto LA15_;
			T14_ = (((*m_1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)15)))&63U)))!=0);
LA15_: ;
			if (!T14_) goto LA16_;
			exp_1 = NIM_NIL;
			colontmpD__3 = NIM_NIL;
			{
				if (!((*s_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)7))) goto LA21_;
				eqdestroy___ast_u3363(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				eqdestroy___ast_u3363(exp_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4558(m_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA21_: ;
			colontmpD__3 = firstParamType__ast_u5342((*s_p1).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
			exp_1 = skipTypes__ast_u5358(colontmpD__3, TM__EV5hHJmjIY9cla9b9be7fSVJQ_14);
			if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T27_;
				if (!((*exp_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48))) goto LA25_;
				T27_ = NIM_NIL;
				T27_ = elemType__types_u250(exp_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T27_); goto LA18_;}
				eqsink___ast_u3372(&exp_1, T27_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
			}
LA25_: ;
			{
				if (!((*exp_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6) || (*exp_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7) || (*exp_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12) || (*exp_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59))) goto LA30_;
				eqdestroy___ast_u3363(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				eqdestroy___ast_u3363(exp_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				eqdestroy___ast_u3363(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4558(m_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3363(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA30_: ;
			{
				LA18_:;
			}
			{
				oldNimErrFin18_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				eqdestroy___ast_u3363(exp_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				*nimErr_ = oldNimErrFin18_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		}
LA16_: ;
		colontmpD__2 = firstParamType__ast_u5342((*s_p1).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		result = argtypeMatches__sigmatch_u5028(c_p0, colontmpD__2, firstArg_p2, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		{
			LA11_:;
		}
		{
			oldNimErrFin11_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u4558(m_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin11_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA2_;
LA9_: ;
	{
		result = NIM_FALSE;
	}
LA2_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestOperations__sigmatch_u6210)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* f_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p3, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p4) {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_1;
NIM_BOOL oldNimErrFin24_;
NIM_BOOL oldNimErrFin14_;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL oldNimErrFin63_;
NIM_BOOL oldNimErrFin51_;
NIM_BOOL oldNimErrFin98_;
NIM_BOOL oldNimErrFin79_;
NIM_BOOL oldNimErrFin45_;
NIM_BOOL oldNimErrFin4_;
NIM_BOOL oldNimErrFin2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	info_1 = (*n_p1).info;
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* item_1;
		tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg seen_1;
		NI scopeN_1;
		NIM_BOOL isLocal_1;
		item_1 = NIM_NIL;
		nimZeroMem((void*)(&seen_1), sizeof(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg));
		scopeN_1 = (NI)0;
		isLocal_1 = (NIM_BOOL)0;
		seen_1 = initHashSet__lookups_u798(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		{
			tyTuple__WIyQ4Cfp4shlBOyEpagHMw res_1;
			NIM_BOOL isLocal_2;
			NI scopeN_2;
			nimZeroMem((void*)(&res_1), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
			isLocal_2 = NIM_TRUE;
			scopeN_2 = ((NI)0);
			{
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_1;
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* current_1;
				scope_1 = NIM_NIL;
				current_1 = NIM_NIL;
				eqcopy___lookups_u74(&current_1, (*c_p0).currentScope);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				{
					while (1) {
						if (!!((current_1 == ((tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww*) NIM_NIL)))) goto LA8;
						eqcopy___lookups_u74(&scope_1, current_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						{
							if (!(scope_1 == (*c_p0).topLevelScope)) goto LA11_;
							isLocal_2 = NIM_FALSE;
						}
LA11_: ;
						scopeN_2 -= ((NI)1);
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* item_2;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_1;
							tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw it_1;
							item_2 = NIM_NIL;
							s_1 = NIM_NIL;
							item_2 = 0;
							nimZeroMem((void*)(&it_1), sizeof(tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw));
							s_1 = initTabIter__astalgo_u3139((&it_1), (*scope_1).symbols);
							if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
							{
								while (1) {
									tyTuple__WIyQ4Cfp4shlBOyEpagHMw T17_;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_1;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T35_;
									if (!!((s_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA16;
									eqsink___ast_u4567(&item_2, s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									eqwasMoved___ast_u4555(&s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									nimZeroMem((void*)(&T17_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
									blitTmp_1 = item_2;
									eqwasMoved___ast_u4555(&item_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									T17_.Field0 = blitTmp_1;
									T17_.Field1 = scopeN_2;
									T17_.Field2 = isLocal_2;
									eqsink___lookups_u768((&res_1), T17_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									{
										tyTuple__FFspgHRWev9aDuj0fEpj9bUw T20_;
										NIM_BOOL T21_;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_2;
										tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_1;
										T20_.Field0 = (*res_1.Field0).info;
										T20_.Field1 = (*(*res_1.Field0).name).id;
										T21_ = (NIM_BOOL)0;
										T21_ = containsOrIncl__lookups_u984((&seen_1), T20_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
										if (!!(T21_)) goto LA22_;
										it_2 = NIM_NIL;
										eqsink___ast_u4567(&item_1, res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
										eqwasMoved___ast_u4555(&res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
										scopeN_1 = res_1.Field1;
										isLocal_1 = res_1.Field2;
										it_2 = item_1;
										eqwasMoved___ast_u4555(&item_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
										pm_1 = 0;
										{
											NIM_BOOL T27_;
											NI T31_;
											tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T32_;
											T27_ = (NIM_BOOL)0;
											T27_ = filterSymNoOpr__sigmatch_u5946(it_2, f_p2, (&pm_1));
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
											if (!(T27_)) goto LA28_;
											T27_ = typeFits__sigmatch_u6175(c_p0, it_2, typ_p3);
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
LA28_: ;
											if (!T27_) goto LA29_;
											T31_ = (NI)0;
											T31_ = getQuality__sigmatch_u6023(it_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
											T32_ = NIM_NIL;
											T32_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_2, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), info_1, T31_, pm_1, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
											if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T32_); goto LA24_;}
											add__sigmatch_u6054((&(*outputs_p4)), T32_);
										}
LA29_: ;
										{
											LA24_:;
										}
										{
											oldNimErrFin24_ = *nimErr_; *nimErr_ = NIM_FALSE;
											eqdestroy___ast_u4558(it_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
											*nimErr_ = oldNimErrFin24_;
										}
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									}
LA22_: ;
									T35_ = NIM_NIL;
									T35_ = nextIter__astalgo_u3123((&it_1), (*scope_1).symbols);
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T35_); goto LA14_;}
									eqsink___ast_u4567(&s_1, T35_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
								} LA16: ;
							}
							{
								LA14_:;
							}
							{
								oldNimErrFin14_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4558(s_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								eqdestroy___ast_u4558(item_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								*nimErr_ = oldNimErrFin14_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						}
						eqcopy___lookups_u74(&current_1, (*current_1).parent);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					} LA8: ;
				}
				{
					LA6_:;
				}
				{
					oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___lookups_u71(current_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					eqdestroy___lookups_u71(scope_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					*nimErr_ = oldNimErrFin6_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
			}
			scopeN_2 -= ((NI)1);
			isLocal_2 = NIM_FALSE;
			{
				tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw* im_1;
				NI i_1;
				NI L_1;
				NI T41_;
				im_1 = (tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw*)0;
				i_1 = ((NI)0);
				T41_ = (*c_p0).imports.len;
				L_1 = T41_;
				{
					while (1) {
						if (!(i_1 < L_1)) goto LA43;
						im_1 = (&(*c_p0).imports.p->data[i_1]);
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_2;
							NIM_BOOL importHidden_1;
							s_2 = NIM_NIL;
							s_2 = 0;
							importHidden_1 = (((*(*im_1).m).options &((NU32)1<<((NU)((((tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ)27)))&31U)))!=0);
							{
								NIM_BOOL T48_;
								tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ rodIt_1;
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* r_1;
								tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* T52_;
								tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* T53_;
								T48_ = (NIM_BOOL)0;
								T48_ = isCachedModule__modulegraphs_u3010((*c_p0).graph, (*im_1).m);
								if (NIM_UNLIKELY(*nimErr_)) goto LA45_;
								if (!T48_) goto LA49_;
								nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
								r_1 = NIM_NIL;
								nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
								T52_ = NIM_NIL;
								T52_ = (*(*c_p0).graph).config;
								T53_ = NIM_NIL;
								T53_ = (*(*c_p0).graph).cache;
								r_1 = initRodIterAllSyms__icZic_u21656((&rodIt_1), T52_, T53_, (&(*(*c_p0).graph).packed_0), ((NI32) ((*(*im_1).m).position)), importHidden_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
								{
									while (1) {
										tyTuple__WIyQ4Cfp4shlBOyEpagHMw T56_;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_2;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T74_;
										if (!!((r_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA55;
										eqsink___ast_u4567(&s_2, r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
										eqwasMoved___ast_u4555(&r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
										nimZeroMem((void*)(&T56_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
										blitTmp_2 = s_2;
										eqwasMoved___ast_u4555(&s_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
										T56_.Field0 = blitTmp_2;
										T56_.Field1 = scopeN_2;
										T56_.Field2 = isLocal_2;
										eqsink___lookups_u768((&res_1), T56_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
										{
											tyTuple__FFspgHRWev9aDuj0fEpj9bUw T59_;
											NIM_BOOL T60_;
											tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_3;
											tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_2;
											T59_.Field0 = (*res_1.Field0).info;
											T59_.Field1 = (*(*res_1.Field0).name).id;
											T60_ = (NIM_BOOL)0;
											T60_ = containsOrIncl__lookups_u984((&seen_1), T59_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
											if (!!(T60_)) goto LA61_;
											it_3 = NIM_NIL;
											eqsink___ast_u4567(&item_1, res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA63_;
											eqwasMoved___ast_u4555(&res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA63_;
											scopeN_1 = res_1.Field1;
											isLocal_1 = res_1.Field2;
											it_3 = item_1;
											eqwasMoved___ast_u4555(&item_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA63_;
											pm_2 = 0;
											{
												NIM_BOOL T66_;
												NI T70_;
												tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T71_;
												T66_ = (NIM_BOOL)0;
												T66_ = filterSymNoOpr__sigmatch_u5946(it_3, f_p2, (&pm_2));
												if (NIM_UNLIKELY(*nimErr_)) goto LA63_;
												if (!(T66_)) goto LA67_;
												T66_ = typeFits__sigmatch_u6175(c_p0, it_3, typ_p3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA63_;
LA67_: ;
												if (!T66_) goto LA68_;
												T70_ = (NI)0;
												T70_ = getQuality__sigmatch_u6023(it_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA63_;
												T71_ = NIM_NIL;
												T71_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_3, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), info_1, T70_, pm_2, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
												if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T71_); goto LA63_;}
												add__sigmatch_u6054((&(*outputs_p4)), T71_);
											}
LA68_: ;
											{
												LA63_:;
											}
											{
												oldNimErrFin63_ = *nimErr_; *nimErr_ = NIM_FALSE;
												eqdestroy___ast_u4558(it_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
												*nimErr_ = oldNimErrFin63_;
											}
											if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
										}
LA61_: ;
										T74_ = NIM_NIL;
										T74_ = nextRodIter__icZic_u21992((&rodIt_1), (&(*(*c_p0).graph).packed_0));
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T74_); goto LA51_;}
										eqsink___ast_u4567(&r_1, T74_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
									} LA55: ;
								}
								{
									LA51_:;
								}
								{
									oldNimErrFin51_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4558(r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA45_;
									eqdestroy___modulegraphs_u3290((&rodIt_1));
									if (NIM_UNLIKELY(*nimErr_)) goto LA45_;
									*nimErr_ = oldNimErrFin51_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA45_;
							}
							goto LA46_;
LA49_: ;
							{
								{
									tySequence__ZCZaCk14bTmSb6LMW9aWPVA colontmp_;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** s_3;
									tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg* retX60gensym20__1;
									NI i_2;
									NI L_2;
									NI T84_;
									colontmp_.len = 0; colontmp_.p = NIM_NIL;
									s_3 = (tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg**)0;
									colontmp_.len = 0; colontmp_.p = NIM_NIL;
									retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*(*im_1).m).position].interf);
									{
										if (!importHidden_1) goto LA82_;
										retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*(*im_1).m).position].interfHidden);
									}
LA82_: ;
									eqcopy___ast_u4835((&colontmp_), (*retX60gensym20__1).data);
									if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
									i_2 = ((NI)0);
									T84_ = colontmp_.len;
									L_2 = T84_;
									{
										while (1) {
											if (!(i_2 < L_2)) goto LA86;
											s_3 = &colontmp_.p->data[i_2];
											{
												tyTuple__WIyQ4Cfp4shlBOyEpagHMw T91_;
												tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_3;
												if (!!(((*s_3) == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA89_;
												eqcopy___ast_u4561(&s_2, (*s_3));
												if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
												nimZeroMem((void*)(&T91_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
												blitTmp_3 = s_2;
												eqwasMoved___ast_u4555(&s_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
												T91_.Field0 = blitTmp_3;
												T91_.Field1 = scopeN_2;
												T91_.Field2 = isLocal_2;
												eqsink___lookups_u768((&res_1), T91_);
												if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
												{
													tyTuple__FFspgHRWev9aDuj0fEpj9bUw T94_;
													NIM_BOOL T95_;
													tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_4;
													tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_3;
													T94_.Field0 = (*res_1.Field0).info;
													T94_.Field1 = (*(*res_1.Field0).name).id;
													T95_ = (NIM_BOOL)0;
													T95_ = containsOrIncl__lookups_u984((&seen_1), T94_);
													if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
													if (!!(T95_)) goto LA96_;
													it_4 = NIM_NIL;
													eqsink___ast_u4567(&item_1, res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
													eqwasMoved___ast_u4555(&res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
													scopeN_1 = res_1.Field1;
													isLocal_1 = res_1.Field2;
													it_4 = item_1;
													eqwasMoved___ast_u4555(&item_1);
													if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
													pm_3 = 0;
													{
														NIM_BOOL T101_;
														NI T105_;
														tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T106_;
														T101_ = (NIM_BOOL)0;
														T101_ = filterSymNoOpr__sigmatch_u5946(it_4, f_p2, (&pm_3));
														if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
														if (!(T101_)) goto LA102_;
														T101_ = typeFits__sigmatch_u6175(c_p0, it_4, typ_p3);
														if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
LA102_: ;
														if (!T101_) goto LA103_;
														T105_ = (NI)0;
														T105_ = getQuality__sigmatch_u6023(it_4);
														if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
														T106_ = NIM_NIL;
														T106_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_4, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), info_1, T105_, pm_3, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
														if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T106_); goto LA98_;}
														add__sigmatch_u6054((&(*outputs_p4)), T106_);
													}
LA103_: ;
													{
														LA98_:;
													}
													{
														oldNimErrFin98_ = *nimErr_; *nimErr_ = NIM_FALSE;
														eqdestroy___ast_u4558(it_4);
														if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
														*nimErr_ = oldNimErrFin98_;
													}
													if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
												}
LA96_: ;
											}
LA89_: ;
											i_2 += ((NI)1);
										} LA86: ;
									}
									{
										LA79_:;
									}
									{
										oldNimErrFin79_ = *nimErr_; *nimErr_ = NIM_FALSE;
										eqdestroy___ast_u4832(colontmp_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA45_;
										*nimErr_ = oldNimErrFin79_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA45_;
								}
							}
LA46_: ;
							{
								LA45_:;
							}
							{
								oldNimErrFin45_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4558(s_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
								*nimErr_ = oldNimErrFin45_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
						}
						i_1 += ((NI)1);
					} LA43: ;
				}
			}
			{
				LA4_:;
			}
			{
				oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___lookups_u759(res_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				*nimErr_ = oldNimErrFin4_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		}
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___lookups_u947(seen_1);
			eqdestroy___ast_u4558(item_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin2_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestFieldAccess__sigmatch_u6254)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* field_p2, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p3) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_1;
	tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_1;
NIM_BOOL oldNimErrFin17_;
NIM_BOOL oldNimErrFin38_;
NIM_BOOL oldNimErrFin55_;
NIM_BOOL oldNimErrFin32_;
NIM_BOOL oldNimErrFin90_;
NIM_BOOL oldNimErrFin102_;
NIM_BOOL oldNimErrFin99_;
NIM_BOOL oldNimErrFin126_;
NIM_BOOL oldNimErrFin118_;
NIM_BOOL oldNimErrFin80_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	typ_1 = NIM_NIL;
	eqcopy___ast_u3366(&typ_1, (*n_p1).typField);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	pm_1 = 0;
	{
		if (!(typ_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
			if (!(T8_)) goto LA9_;
			T8_ = ((*(*n_p1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)6));
LA9_: ;
			if (!T8_) goto LA10_;
			{
				if (!((*n_p1)._kind_4.sym == (*c_p0).module)) goto LA14_;
				{
					tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_1;
					tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_1;
					tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw it_2;
					it_1 = NIM_NIL;
					s_1 = NIM_NIL;
					nimZeroMem((void*)(&it_2), sizeof(tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw));
					s_1 = initTabIter__astalgo_u3139((&it_2), (*(*c_p0).topLevelScope).symbols);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					{
						while (1) {
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T27_;
							if (!!((s_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA19;
							eqsink___ast_u4567(&it_1, s_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
							eqwasMoved___ast_u4555(&s_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
							{
								NIM_BOOL T22_;
								NI T25_;
								tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T26_;
								T22_ = (NIM_BOOL)0;
								T22_ = filterSym__sigmatch_u5915(it_1, field_p2, (&pm_1));
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								if (!T22_) goto LA23_;
								T25_ = (NI)0;
								T25_ = getQuality__sigmatch_u6023(it_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								T26_ = NIM_NIL;
								T26_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_1, NIM_FALSE, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), (*n_p1).info, T25_, pm_1, (((NI)0) < (*c_p0).inTypeContext), ((NI)-99), NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T26_); goto LA17_;}
								add__sigmatch_u6054((&(*outputs_p3)), T26_);
							}
LA23_: ;
							T27_ = NIM_NIL;
							T27_ = nextIter__astalgo_u3123((&it_2), (*(*c_p0).topLevelScope).symbols);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T27_); goto LA17_;}
							eqsink___ast_u4567(&s_1, T27_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						} LA19: ;
					}
					{
						LA17_:;
					}
					{
						oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u4558(s_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u4558(it_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin17_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
			}
			goto LA12_;
LA14_: ;
			{
				{
					tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_3;
					tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmp_;
					NIM_BOOL importHidden_1;
					it_3 = NIM_NIL;
					colontmp_ = NIM_NIL;
					eqcopy___ast_u4561(&colontmp_, (*n_p1)._kind_4.sym);
					if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
					importHidden_1 = (((*colontmp_).options &((NU32)1<<((NU)((((tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ)27)))&31U)))!=0);
					{
						NIM_BOOL T35_;
						tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ rodIt_1;
						tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* r_1;
						tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* T39_;
						tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* T40_;
						T35_ = (NIM_BOOL)0;
						T35_ = isCachedModule__modulegraphs_u3010((*c_p0).graph, colontmp_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
						if (!T35_) goto LA36_;
						nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
						r_1 = NIM_NIL;
						nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
						T39_ = NIM_NIL;
						T39_ = (*(*c_p0).graph).config;
						T40_ = NIM_NIL;
						T40_ = (*(*c_p0).graph).cache;
						r_1 = initRodIterAllSyms__icZic_u21656((&rodIt_1), T39_, T40_, (&(*(*c_p0).graph).packed_0), ((NI32) ((*colontmp_).position)), importHidden_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
						{
							while (1) {
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T50_;
								if (!!((r_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA42;
								eqsink___ast_u4567(&it_3, r_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
								eqwasMoved___ast_u4555(&r_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
								{
									NIM_BOOL T45_;
									NI T48_;
									tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T49_;
									T45_ = (NIM_BOOL)0;
									T45_ = filterSym__sigmatch_u5915(it_3, field_p2, (&pm_1));
									if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
									if (!T45_) goto LA46_;
									T48_ = (NI)0;
									T48_ = getQuality__sigmatch_u6023(it_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
									T49_ = NIM_NIL;
									T49_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_3, NIM_FALSE, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), (*n_p1).info, T48_, pm_1, (((NI)0) < (*c_p0).inTypeContext), ((NI)-99), NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T49_); goto LA38_;}
									add__sigmatch_u6054((&(*outputs_p3)), T49_);
								}
LA46_: ;
								T50_ = NIM_NIL;
								T50_ = nextRodIter__icZic_u21992((&rodIt_1), (&(*(*c_p0).graph).packed_0));
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T50_); goto LA38_;}
								eqsink___ast_u4567(&r_1, T50_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
							} LA42: ;
						}
						{
							LA38_:;
						}
						{
							oldNimErrFin38_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u4558(r_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
							eqdestroy___modulegraphs_u3290((&rodIt_1));
							if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
							*nimErr_ = oldNimErrFin38_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
					}
					goto LA33_;
LA36_: ;
					{
						{
							tySequence__ZCZaCk14bTmSb6LMW9aWPVA colontmp__2;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** s_2;
							tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg* retX60gensym20__1;
							NI i_1;
							NI L_1;
							NI T60_;
							colontmp__2.len = 0; colontmp__2.p = NIM_NIL;
							s_2 = (tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg**)0;
							retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*colontmp_).position].interf);
							{
								if (!importHidden_1) goto LA58_;
								retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*colontmp_).position].interfHidden);
							}
LA58_: ;
							eqcopy___ast_u4835((&colontmp__2), (*retX60gensym20__1).data);
							if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
							i_1 = ((NI)0);
							T60_ = colontmp__2.len;
							L_1 = T60_;
							{
								while (1) {
									if (!(i_1 < L_1)) goto LA62;
									s_2 = &colontmp__2.p->data[i_1];
									{
										if (!!(((*s_2) == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA65_;
										eqcopy___ast_u4561(&it_3, (*s_2));
										if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
										{
											NIM_BOOL T69_;
											NI T72_;
											tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T73_;
											T69_ = (NIM_BOOL)0;
											T69_ = filterSym__sigmatch_u5915(it_3, field_p2, (&pm_1));
											if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
											if (!T69_) goto LA70_;
											T72_ = (NI)0;
											T72_ = getQuality__sigmatch_u6023(it_3);
											if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
											T73_ = NIM_NIL;
											T73_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_3, NIM_FALSE, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), (*n_p1).info, T72_, pm_1, (((NI)0) < (*c_p0).inTypeContext), ((NI)-99), NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
											if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T73_); goto LA55_;}
											add__sigmatch_u6054((&(*outputs_p3)), T73_);
										}
LA70_: ;
									}
LA65_: ;
									i_1 += ((NI)1);
								} LA62: ;
							}
							{
								LA55_:;
							}
							{
								oldNimErrFin55_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4832(colontmp__2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
								*nimErr_ = oldNimErrFin55_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
						}
					}
LA33_: ;
					{
						LA32_:;
					}
					{
						oldNimErrFin32_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u4558(colontmp_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u4558(it_3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin32_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
			}
LA12_: ;
		}
		goto LA6_;
LA10_: ;
		{
			suggestEverything__sigmatch_u6237(c_p0, n_p1, field_p2, outputs_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA6_: ;
	}
	goto LA2_;
LA4_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* orig_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T81_;
		orig_1 = NIM_NIL;
		orig_1 = typ_1;
		eqwasMoved___ast_u3360(&typ_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
		T81_ = NIM_NIL;
		T81_ = skipTypes__ast_u5358(orig_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_15);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T81_); goto LA80_;}
		eqsink___ast_u3372(&typ_1, T81_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
		{
			NIM_BOOL T84_;
			NIM_BOOL T85_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
			T84_ = (NIM_BOOL)0;
			T85_ = (NIM_BOOL)0;
			T85_ = ((*typ_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14));
			if (!(T85_)) goto LA86_;
			T85_ = ((*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
LA86_: ;
			T84_ = T85_;
			if (!(T84_)) goto LA87_;
			T84_ = ((*(*n_p1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)7));
LA87_: ;
			if (!T84_) goto LA88_;
			t_1 = NIM_NIL;
			eqcopy___ast_u3366(&t_1, typ_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA90_;
			{
				while (1) {
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T93_;
					if (!!((t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA92;
					suggestSymList__sigmatch_u6077(c_p0, (*t_1).n, field_p2, (*n_p1).info, outputs_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA90_;
					T93_ = NIM_NIL;
					T93_ = baseClass__ast_u5327(t_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T93_); goto LA90_;}
					eqsink___ast_u3372(&t_1, T93_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA90_;
				} LA92: ;
			}
			{
				LA90_:;
			}
			{
				oldNimErrFin90_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
				*nimErr_ = oldNimErrFin90_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
		}
		goto LA82_;
LA88_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_2;
			if (!((*typ_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17))) goto LA97_;
			t_2 = NIM_NIL;
			eqcopy___ast_u3366(&t_2, typ_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
			{
				while (1) {
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T107_;
					colontmpD_ = NIM_NIL;
					colontmpD__2 = NIM_NIL;
					suggestObject__sigmatch_u6092(c_p0, (*t_2).n, field_p2, (*n_p1).info, outputs_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
					{
						colontmpD_ = baseClass__ast_u5327(t_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
						if (!(colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA105_;
						eqdestroy___ast_u3363(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
						eqdestroy___ast_u3363(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
						goto LA100;
					}
LA105_: ;
					colontmpD__2 = baseClass__ast_u5327(t_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
					T107_ = NIM_NIL;
					T107_ = skipTypes__ast_u5358(colontmpD__2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T107_); goto LA102_;}
					eqsink___ast_u3372(&t_2, T107_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
					{
						LA102_:;
					}
					{
						oldNimErrFin102_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
						eqdestroy___ast_u3363(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
						*nimErr_ = oldNimErrFin102_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
				}
			} LA100: ;
			{
				LA99_:;
			}
			{
				oldNimErrFin99_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3363(t_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
				*nimErr_ = oldNimErrFin99_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
		}
		goto LA82_;
LA97_: ;
		{
			NIM_BOOL T113_;
			T113_ = (NIM_BOOL)0;
			T113_ = ((*typ_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18));
			if (!(T113_)) goto LA114_;
			T113_ = !(((*typ_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA114_: ;
			if (!T113_) goto LA115_;
			{
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* node_1;
				node_1 = NIM_NIL;
				{
					NI i_2;
					NI colontmp__3;
					NI i_3;
					i_2 = (NI)0;
					colontmp__3 = (NI)0;
					colontmp__3 = safeLen__ast_u3182((*typ_1).n);
					if (NIM_UNLIKELY(*nimErr_)) goto LA118_;
					i_3 = ((NI)0);
					{
						while (1) {
							if (!(i_3 < colontmp__3)) goto LA121;
							i_2 = i_3;
							eqcopy___ast_u3240(&node_1, (*(*typ_1).n)._kind_6.sons.p->data[i_2]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA118_;
							{
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_3;
								tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_2;
								if (!((*node_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3))) goto LA124_;
								s_3 = NIM_NIL;
								eqcopy___ast_u4561(&s_3, (*node_1)._kind_4.sym);
								if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
								pm_2 = 0;
								{
									NIM_BOOL T129_;
									NI T132_;
									tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T133_;
									T129_ = (NIM_BOOL)0;
									T129_ = filterSym__sigmatch_u5915(s_3, field_p2, (&pm_2));
									if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
									if (!T129_) goto LA130_;
									T132_ = (NI)0;
									T132_ = getQuality__sigmatch_u6023(s_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
									T133_ = NIM_NIL;
									T133_ = symToSuggest__sigmatch_u5357((*c_p0).graph, s_3, NIM_TRUE, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), (*n_p1).info, T132_, pm_2, (((NI)0) < (*c_p0).inTypeContext), ((NI)0), NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T133_); goto LA126_;}
									add__sigmatch_u6054((&(*outputs_p3)), T133_);
								}
LA130_: ;
								{
									LA126_:;
								}
								{
									oldNimErrFin126_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4558(s_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA118_;
									*nimErr_ = oldNimErrFin126_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA118_;
							}
LA124_: ;
							i_3 += ((NI)1);
						} LA121: ;
					}
				}
				{
					LA118_:;
				}
				{
					oldNimErrFin118_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3237(node_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
					*nimErr_ = oldNimErrFin118_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
			}
		}
		goto LA82_;
LA115_: ;
LA82_: ;
		suggestOperations__sigmatch_u6210(c_p0, n_p1, field_p2, orig_1, outputs_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
		{
			if (!!((typ_1 == orig_1))) goto LA140_;
			suggestOperations__sigmatch_u6210(c_p0, n_p1, field_p2, typ_1, outputs_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
		}
LA140_: ;
		{
			LA80_:;
		}
		{
			oldNimErrFin80_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3363(orig_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin80_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA2_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(typ_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sugExpr__sigmatch_u7170)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p2) {
NIM_BOOL oldNimErrFin5_;
NIM_BOOL oldNimErrFin52_;
NIM_BOOL oldNimErrFin42_;
NIM_BOOL oldNimErrFin34_;
NIM_BOOL oldNimErrFin90_;
NIM_BOOL oldNimErrFin78_;
NIM_BOOL oldNimErrFin124_;
NIM_BOOL oldNimErrFin105_;
NIM_BOOL oldNimErrFin72_;
NIM_BOOL oldNimErrFin32_;
NIM_BOOL oldNimErrFin30_;
NIM_BOOL oldNimErrFin22_;
NIM_BOOL oldNimErrFin145_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* obj_1;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* prefix_1;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T6_;
		if (!((*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)45))) goto LA3_;
		obj_1 = NIM_NIL;
		prefix_1 = NIM_NIL;
		obj_1 = safeSemExpr__sigmatch_u7164(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		T6_ = NIM_NIL;
		{
			NIM_BOOL T9_;
			NIM_BOOL T10_;
			NI T11_;
			T9_ = (NIM_BOOL)0;
			T10_ = (NIM_BOOL)0;
			T11_ = (NI)0;
			T11_ = len__ast_u3175(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
			T10_ = (T11_ == ((NI)2));
			if (!(T10_)) goto LA12_;
			T10_ = ((*(*n_p1)._kind_6.sons.p->data[((NI)1)]).info.line == (*(*n_p1)._kind_6.sons.p->data[((NI)0)]).info.line);
LA12_: ;
			T9_ = T10_;
			if (!(T9_)) goto LA13_;
			T9_ = !((*(*(*c_p0).graph).config).m.trackPosAttached);
LA13_: ;
			if (!T9_) goto LA14_;
			eqcopy___ast_u3240(&prefix_1, (*n_p1)._kind_6.sons.p->data[((NI)1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		}
		goto LA7_;
LA14_: ;
		{
			prefix_1 = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
		}
LA7_: ;
		suggestFieldAccess__sigmatch_u6254(c_p0, obj_1, prefix_1, outputs_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		{
			LA5_:;
		}
		{
			oldNimErrFin5_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3237(prefix_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(obj_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin5_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA3_: ;
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* prefix_2;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T23_;
		tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_1;
		if (!((*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2))) goto LA20_;
		prefix_2 = NIM_NIL;
		T23_ = NIM_NIL;
		{
			if (!(*(*(*c_p0).graph).config).m.trackPosAttached) goto LA26_;
			prefix_2 = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
		}
		goto LA24_;
LA26_: ;
		{
			eqcopy___ast_u3240(&prefix_2, n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
		}
LA24_: ;
		info_1 = (*n_p1).info;
		{
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* item_1;
			tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg seen_1;
			NI scopeN_1;
			NIM_BOOL isLocal_1;
			item_1 = NIM_NIL;
			nimZeroMem((void*)(&seen_1), sizeof(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg));
			scopeN_1 = (NI)0;
			isLocal_1 = (NIM_BOOL)0;
			seen_1 = initHashSet__lookups_u798(((NI)64));
			if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
			{
				tyTuple__WIyQ4Cfp4shlBOyEpagHMw res_1;
				NIM_BOOL isLocal_2;
				NI scopeN_2;
				nimZeroMem((void*)(&res_1), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
				isLocal_2 = NIM_TRUE;
				scopeN_2 = ((NI)0);
				{
					tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_1;
					tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* current_1;
					scope_1 = NIM_NIL;
					current_1 = NIM_NIL;
					eqcopy___lookups_u74(&current_1, (*c_p0).currentScope);
					if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
					{
						while (1) {
							if (!!((current_1 == ((tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww*) NIM_NIL)))) goto LA36;
							eqcopy___lookups_u74(&scope_1, current_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
							{
								if (!(scope_1 == (*c_p0).topLevelScope)) goto LA39_;
								isLocal_2 = NIM_FALSE;
							}
LA39_: ;
							scopeN_2 -= ((NI)1);
							{
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* item_2;
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_1;
								tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw it_1;
								item_2 = NIM_NIL;
								s_1 = NIM_NIL;
								item_2 = 0;
								nimZeroMem((void*)(&it_1), sizeof(tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw));
								s_1 = initTabIter__astalgo_u3139((&it_1), (*scope_1).symbols);
								if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
								{
									while (1) {
										tyTuple__WIyQ4Cfp4shlBOyEpagHMw T45_;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_1;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T62_;
										if (!!((s_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA44;
										eqsink___ast_u4567(&item_2, s_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										eqwasMoved___ast_u4555(&s_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										nimZeroMem((void*)(&T45_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
										blitTmp_1 = item_2;
										eqwasMoved___ast_u4555(&item_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										T45_.Field0 = blitTmp_1;
										T45_.Field1 = scopeN_2;
										T45_.Field2 = isLocal_2;
										eqsink___lookups_u768((&res_1), T45_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										{
											tyTuple__FFspgHRWev9aDuj0fEpj9bUw T48_;
											NIM_BOOL T49_;
											tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_2;
											tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_1;
											T48_.Field0 = (*res_1.Field0).info;
											T48_.Field1 = (*(*res_1.Field0).name).id;
											T49_ = (NIM_BOOL)0;
											T49_ = containsOrIncl__lookups_u984((&seen_1), T48_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
											if (!!(T49_)) goto LA50_;
											it_2 = NIM_NIL;
											eqsink___ast_u4567(&item_1, res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
											eqwasMoved___ast_u4555(&res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
											scopeN_1 = res_1.Field1;
											isLocal_1 = res_1.Field2;
											it_2 = item_1;
											eqwasMoved___ast_u4555(&item_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
											pm_1 = 0;
											{
												NIM_BOOL T55_;
												NI T58_;
												tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T59_;
												T55_ = (NIM_BOOL)0;
												T55_ = filterSym__sigmatch_u5915(it_2, prefix_2, (&pm_1));
												if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
												if (!T55_) goto LA56_;
												T58_ = (NI)0;
												T58_ = getQuality__sigmatch_u6023(it_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
												T59_ = NIM_NIL;
												T59_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_2, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), info_1, T58_, pm_1, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
												if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T59_); goto LA52_;}
												add__sigmatch_u6054((&(*outputs_p2)), T59_);
											}
LA56_: ;
											{
												LA52_:;
											}
											{
												oldNimErrFin52_ = *nimErr_; *nimErr_ = NIM_FALSE;
												eqdestroy___ast_u4558(it_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
												*nimErr_ = oldNimErrFin52_;
											}
											if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										}
LA50_: ;
										T62_ = NIM_NIL;
										T62_ = nextIter__astalgo_u3123((&it_1), (*scope_1).symbols);
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T62_); goto LA42_;}
										eqsink___ast_u4567(&s_1, T62_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
									} LA44: ;
								}
								{
									LA42_:;
								}
								{
									oldNimErrFin42_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4558(s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
									eqdestroy___ast_u4558(item_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
									*nimErr_ = oldNimErrFin42_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
							}
							eqcopy___lookups_u74(&current_1, (*current_1).parent);
							if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
						} LA36: ;
					}
					{
						LA34_:;
					}
					{
						oldNimErrFin34_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___lookups_u71(current_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
						eqdestroy___lookups_u71(scope_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
						*nimErr_ = oldNimErrFin34_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
				}
				scopeN_2 -= ((NI)1);
				isLocal_2 = NIM_FALSE;
				{
					tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw* im_1;
					NI i_1;
					NI L_1;
					NI T68_;
					im_1 = (tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw*)0;
					i_1 = ((NI)0);
					T68_ = (*c_p0).imports.len;
					L_1 = T68_;
					{
						while (1) {
							if (!(i_1 < L_1)) goto LA70;
							im_1 = (&(*c_p0).imports.p->data[i_1]);
							{
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_2;
								NIM_BOOL importHidden_1;
								s_2 = NIM_NIL;
								s_2 = 0;
								importHidden_1 = (((*(*im_1).m).options &((NU32)1<<((NU)((((tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ)27)))&31U)))!=0);
								{
									NIM_BOOL T75_;
									tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ rodIt_1;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* r_1;
									tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* T79_;
									tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* T80_;
									T75_ = (NIM_BOOL)0;
									T75_ = isCachedModule__modulegraphs_u3010((*c_p0).graph, (*im_1).m);
									if (NIM_UNLIKELY(*nimErr_)) goto LA72_;
									if (!T75_) goto LA76_;
									nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
									r_1 = NIM_NIL;
									nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
									T79_ = NIM_NIL;
									T79_ = (*(*c_p0).graph).config;
									T80_ = NIM_NIL;
									T80_ = (*(*c_p0).graph).cache;
									r_1 = initRodIterAllSyms__icZic_u21656((&rodIt_1), T79_, T80_, (&(*(*c_p0).graph).packed_0), ((NI32) ((*(*im_1).m).position)), importHidden_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
									{
										while (1) {
											tyTuple__WIyQ4Cfp4shlBOyEpagHMw T83_;
											tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_2;
											tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T100_;
											if (!!((r_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA82;
											eqsink___ast_u4567(&s_2, r_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
											eqwasMoved___ast_u4555(&r_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
											nimZeroMem((void*)(&T83_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
											blitTmp_2 = s_2;
											eqwasMoved___ast_u4555(&s_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
											T83_.Field0 = blitTmp_2;
											T83_.Field1 = scopeN_2;
											T83_.Field2 = isLocal_2;
											eqsink___lookups_u768((&res_1), T83_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
											{
												tyTuple__FFspgHRWev9aDuj0fEpj9bUw T86_;
												NIM_BOOL T87_;
												tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_3;
												tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_2;
												T86_.Field0 = (*res_1.Field0).info;
												T86_.Field1 = (*(*res_1.Field0).name).id;
												T87_ = (NIM_BOOL)0;
												T87_ = containsOrIncl__lookups_u984((&seen_1), T86_);
												if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
												if (!!(T87_)) goto LA88_;
												it_3 = NIM_NIL;
												eqsink___ast_u4567(&item_1, res_1.Field0);
												if (NIM_UNLIKELY(*nimErr_)) goto LA90_;
												eqwasMoved___ast_u4555(&res_1.Field0);
												if (NIM_UNLIKELY(*nimErr_)) goto LA90_;
												scopeN_1 = res_1.Field1;
												isLocal_1 = res_1.Field2;
												it_3 = item_1;
												eqwasMoved___ast_u4555(&item_1);
												if (NIM_UNLIKELY(*nimErr_)) goto LA90_;
												pm_2 = 0;
												{
													NIM_BOOL T93_;
													NI T96_;
													tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T97_;
													T93_ = (NIM_BOOL)0;
													T93_ = filterSym__sigmatch_u5915(it_3, prefix_2, (&pm_2));
													if (NIM_UNLIKELY(*nimErr_)) goto LA90_;
													if (!T93_) goto LA94_;
													T96_ = (NI)0;
													T96_ = getQuality__sigmatch_u6023(it_3);
													if (NIM_UNLIKELY(*nimErr_)) goto LA90_;
													T97_ = NIM_NIL;
													T97_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_3, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), info_1, T96_, pm_2, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
													if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T97_); goto LA90_;}
													add__sigmatch_u6054((&(*outputs_p2)), T97_);
												}
LA94_: ;
												{
													LA90_:;
												}
												{
													oldNimErrFin90_ = *nimErr_; *nimErr_ = NIM_FALSE;
													eqdestroy___ast_u4558(it_3);
													if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
													*nimErr_ = oldNimErrFin90_;
												}
												if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
											}
LA88_: ;
											T100_ = NIM_NIL;
											T100_ = nextRodIter__icZic_u21992((&rodIt_1), (&(*(*c_p0).graph).packed_0));
											if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T100_); goto LA78_;}
											eqsink___ast_u4567(&r_1, T100_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
										} LA82: ;
									}
									{
										LA78_:;
									}
									{
										oldNimErrFin78_ = *nimErr_; *nimErr_ = NIM_FALSE;
										eqdestroy___ast_u4558(r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA72_;
										eqdestroy___modulegraphs_u3290((&rodIt_1));
										if (NIM_UNLIKELY(*nimErr_)) goto LA72_;
										*nimErr_ = oldNimErrFin78_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA72_;
								}
								goto LA73_;
LA76_: ;
								{
									{
										tySequence__ZCZaCk14bTmSb6LMW9aWPVA colontmp_;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** s_3;
										tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg* retX60gensym20__1;
										NI i_2;
										NI L_2;
										NI T110_;
										colontmp_.len = 0; colontmp_.p = NIM_NIL;
										s_3 = (tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg**)0;
										colontmp_.len = 0; colontmp_.p = NIM_NIL;
										retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*(*im_1).m).position].interf);
										{
											if (!importHidden_1) goto LA108_;
											retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*(*im_1).m).position].interfHidden);
										}
LA108_: ;
										eqcopy___ast_u4835((&colontmp_), (*retX60gensym20__1).data);
										if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
										i_2 = ((NI)0);
										T110_ = colontmp_.len;
										L_2 = T110_;
										{
											while (1) {
												if (!(i_2 < L_2)) goto LA112;
												s_3 = &colontmp_.p->data[i_2];
												{
													tyTuple__WIyQ4Cfp4shlBOyEpagHMw T117_;
													tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_3;
													if (!!(((*s_3) == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA115_;
													eqcopy___ast_u4561(&s_2, (*s_3));
													if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
													nimZeroMem((void*)(&T117_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
													blitTmp_3 = s_2;
													eqwasMoved___ast_u4555(&s_2);
													if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
													T117_.Field0 = blitTmp_3;
													T117_.Field1 = scopeN_2;
													T117_.Field2 = isLocal_2;
													eqsink___lookups_u768((&res_1), T117_);
													if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
													{
														tyTuple__FFspgHRWev9aDuj0fEpj9bUw T120_;
														NIM_BOOL T121_;
														tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_4;
														tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_3;
														T120_.Field0 = (*res_1.Field0).info;
														T120_.Field1 = (*(*res_1.Field0).name).id;
														T121_ = (NIM_BOOL)0;
														T121_ = containsOrIncl__lookups_u984((&seen_1), T120_);
														if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
														if (!!(T121_)) goto LA122_;
														it_4 = NIM_NIL;
														eqsink___ast_u4567(&item_1, res_1.Field0);
														if (NIM_UNLIKELY(*nimErr_)) goto LA124_;
														eqwasMoved___ast_u4555(&res_1.Field0);
														if (NIM_UNLIKELY(*nimErr_)) goto LA124_;
														scopeN_1 = res_1.Field1;
														isLocal_1 = res_1.Field2;
														it_4 = item_1;
														eqwasMoved___ast_u4555(&item_1);
														if (NIM_UNLIKELY(*nimErr_)) goto LA124_;
														pm_3 = 0;
														{
															NIM_BOOL T127_;
															NI T130_;
															tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T131_;
															T127_ = (NIM_BOOL)0;
															T127_ = filterSym__sigmatch_u5915(it_4, prefix_2, (&pm_3));
															if (NIM_UNLIKELY(*nimErr_)) goto LA124_;
															if (!T127_) goto LA128_;
															T130_ = (NI)0;
															T130_ = getQuality__sigmatch_u6023(it_4);
															if (NIM_UNLIKELY(*nimErr_)) goto LA124_;
															T131_ = NIM_NIL;
															T131_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_4, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), info_1, T130_, pm_3, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
															if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T131_); goto LA124_;}
															add__sigmatch_u6054((&(*outputs_p2)), T131_);
														}
LA128_: ;
														{
															LA124_:;
														}
														{
															oldNimErrFin124_ = *nimErr_; *nimErr_ = NIM_FALSE;
															eqdestroy___ast_u4558(it_4);
															if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
															*nimErr_ = oldNimErrFin124_;
														}
														if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
													}
LA122_: ;
												}
LA115_: ;
												i_2 += ((NI)1);
											} LA112: ;
										}
										{
											LA105_:;
										}
										{
											oldNimErrFin105_ = *nimErr_; *nimErr_ = NIM_FALSE;
											eqdestroy___ast_u4832(colontmp_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA72_;
											*nimErr_ = oldNimErrFin105_;
										}
										if (NIM_UNLIKELY(*nimErr_)) goto LA72_;
									}
								}
LA73_: ;
								{
									LA72_:;
								}
								{
									oldNimErrFin72_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4558(s_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
									*nimErr_ = oldNimErrFin72_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
							}
							i_1 += ((NI)1);
						} LA70: ;
					}
				}
				{
					LA32_:;
				}
				{
					oldNimErrFin32_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___lookups_u759(res_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
					*nimErr_ = oldNimErrFin32_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
			}
			{
				LA30_:;
			}
			{
				oldNimErrFin30_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___lookups_u947(seen_1);
				eqdestroy___ast_u4558(item_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
				*nimErr_ = oldNimErrFin30_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
		}
		{
			LA22_:;
		}
		{
			oldNimErrFin22_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3237(prefix_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin22_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA20_: ;
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* prefix_3;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T146_;
		prefix_3 = NIM_NIL;
		T146_ = NIM_NIL;
		{
			if (!(*(*(*c_p0).graph).config).m.trackPosAttached) goto LA149_;
			prefix_3 = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
		}
		goto LA147_;
LA149_: ;
		{
			eqcopy___ast_u3240(&prefix_3, n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA145_;
		}
LA147_: ;
		suggestEverything__sigmatch_u6237(c_p0, n_p1, prefix_3, outputs_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA145_;
		{
			LA145_:;
		}
		{
			oldNimErrFin145_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3237(prefix_3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin145_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nameFits__sigmatch_u6108)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2) {
	NIM_BOOL result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* op_1;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* opr_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T2_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	op_1 = NIM_NIL;
	opr_1 = NIM_NIL;
	T2_ = NIM_NIL;
	{
		if (!((*n_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)27) || (*n_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)29) || (*n_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)30) || (*n_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)31) || (*n_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)26) || (*n_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)28) || (*n_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32))) goto LA5_;
		op_1 = (*n_p2)._kind_6.sons.p->data[((NI)0)];
	}
	goto LA3_;
LA5_: ;
	{
		op_1 = n_p2;
	}
LA3_: ;
	{
		if (!((*op_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)57) || (*op_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)56))) goto LA10_;
		op_1 = (*op_1)._kind_6.sons.p->data[((NI)0)];
	}
LA10_: ;
	{
		if (!((*op_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)45))) goto LA14_;
		op_1 = (*op_1)._kind_6.sons.p->data[((NI)1)];
	}
LA14_: ;
	switch ((*op_1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		eqcopy___idents_u158(&opr_1, (*(*op_1)._kind_4.sym).name);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2):
	{
		eqcopy___idents_u158(&opr_1, (*op_1)._kind_5.ident);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
		eqdestroy___idents_u155(opr_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	}
	result = ((*opr_1).id == (*(*s_p1).name).id);
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___idents_u155(opr_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, genericParamHasConstraints__ast_u5633)(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*, genericConstraint__ast_u5657)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3366(&result, (*t_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, matchGenericParam__sigmatch_u255)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* arg_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formalBase_1;
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ tm_1;
	tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T47_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg_1 = NIM_NIL;
	formalBase_1 = NIM_NIL;
	eqcopy___ast_u3366(&arg_1, (*n_p2).typField);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!(((NI)0) < (*(*m_p0).c).inGenericContext)) goto LA4_;
		{
			while (1) {
				NIM_BOOL T8_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T10_;
				T8_ = (NIM_BOOL)0;
				T8_ = !((arg_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
				if (!(T8_)) goto LA9_;
				T8_ = ((*arg_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
LA9_: ;
				if (!T8_) goto LA7;
				T10_ = NIM_NIL;
				T10_ = lookup__layeredtable_u1015((*m_p0).bindings, (*arg_1).itemId);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T10_); goto LA1_;}
				eqsink___ast_u3372(&arg_1, T10_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			} LA7: ;
		}
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = (arg_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (T13_) goto LA14_;
			T13_ = containsUnresolvedType__types_u3464(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA14_: ;
			if (!T13_) goto LA15_;
			(*m_p0).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
			eqdestroy___ast_u3363(formalBase_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3363(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA15_: ;
	}
LA4_: ;
	eqcopy___ast_u3366(&formalBase_1, formal_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			NIM_BOOL T19_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T21_;
			T19_ = (NIM_BOOL)0;
			T19_ = ((*formalBase_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
			if (!(T19_)) goto LA20_;
			T19_ = genericParamHasConstraints__ast_u5633(formalBase_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA20_: ;
			if (!T19_) goto LA18;
			T21_ = NIM_NIL;
			T21_ = genericConstraint__ast_u5657(formalBase_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T21_); goto LA1_;}
			eqsink___ast_u3372(&formalBase_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		} LA18: ;
	}
	{
		NIM_BOOL T24_;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* evaluated_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		T24_ = (NIM_BOOL)0;
		T24_ = ((*formalBase_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60));
		if (!(T24_)) goto LA25_;
		T24_ = !(((*arg_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60)));
LA25_: ;
		if (!T24_) goto LA26_;
		evaluated_1 = NIM_NIL;
		colontmpD_ = NIM_NIL;
		{
			if (!((*n_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)56) || (*n_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)57))) goto LA30_;
			(*n_p2).flags &= ~(((NU32)1) << (((((tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw)7))) & 31));
		}
LA30_: ;
		colontmpD_ = skipTypes__ast_u5358(formalBase_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_109);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		evaluated_1 = (*(*m_p0).c).semTryConstExpr((*m_p0).c, n_p2, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T36_;
			if (!!((evaluated_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA34_;
			colontmpD__2 = NIM_NIL;
			colontmpD__2 = eqdup___ast_u3369((*evaluated_1).typField);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T36_ = NIM_NIL;
			T36_ = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60), (*m_p0).c, colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T36_); goto LA1_;}
			eqsink___ast_u3372(&arg_1, T36_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqsink___ast_u3246(&(*arg_1).n, evaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3234(&evaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA34_: ;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3237(evaluated_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA22_;
LA26_: ;
	{
		if (!((*formalBase_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA38_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T44_;
			if (!!(((*arg_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8)))) goto LA42_;
			T44_ = NIM_NIL;
			T44_ = makeTypeDesc__semdata_u4966((*m_p0).c, arg_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T44_); goto LA1_;}
			eqsink___ast_u3372(&arg_1, T44_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA42_: ;
	}
	goto LA22_;
LA38_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T46_;
		T46_ = NIM_NIL;
		T46_ = skipTypes__ast_u5358(arg_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_18);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T46_); goto LA1_;}
		eqsink___ast_u3372(&arg_1, T46_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA22_: ;
	T47_ = 0;
	tm_1 = typeRel__sigmatch_u250(m_p0, formal_p1, arg_1, T47_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!(tm_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0) || tm_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1))) goto LA50_;
		(*m_p0).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
		(*m_p0).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)8);
		eqdestroy___ast_u3363(formalBase_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(arg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA50_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(formalBase_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(arg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, matchGenericParams__sigmatch_u333)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* binding_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* callee_p2) {
	tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* typeParams_1;
	NI paramCount_1;
	NI bindingCount_1;
	NI T2_;
NIM_BOOL oldNimErrFin17_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	c_1 = NIM_NIL;
	typeParams_1 = NIM_NIL;
	eqcopy___semdata_u4385(&c_1, (*m_p0).c, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3240(&typeParams_1, (*(*callee_p2).ast)._kind_6.sons.p->data[((NI)2)]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	paramCount_1 = len__ast_u3175(typeParams_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_ = (NI)0;
	T2_ = len__ast_u3175(binding_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	bindingCount_1 = (NI)(T2_ - ((NI)1));
	{
		if (!(paramCount_1 < bindingCount_1)) goto LA5_;
		(*m_p0).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
		(*m_p0).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)10);
		(*m_p0).firstMismatch.arg = (NI)(paramCount_1 + ((NI)1));
		eqdestroy___ast_u3237(typeParams_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___semdata_u4382(c_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA5_: ;
	{
		NI i_1;
		NI res_1;
		i_1 = (NI)0;
		res_1 = ((NI)1);
		{
			while (1) {
				if (!(res_1 <= bindingCount_1)) goto LA9;
				i_1 = ((NI) (res_1));
				matchGenericParam__sigmatch_u255(m_p0, (*(*typeParams_1)._kind_6.sons.p->data[(NI)(i_1 - ((NI)1))]).typField, (*binding_p1)._kind_6.sons.p->data[i_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				{
					if (!((*m_p0).state == ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2))) goto LA12_;
					(*m_p0).firstMismatch.arg = i_1;
					eqcopy___ast_u4561(&(*m_p0).firstMismatch.formal, (*(*typeParams_1)._kind_6.sons.p->data[(NI)(i_1 - ((NI)1))])._kind_4.sym);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3237(typeParams_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___semdata_u4382(c_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA12_: ;
				res_1 += ((NI)1);
			} LA9: ;
		}
	}
	{
		NI i_2;
		NI i_3;
		i_2 = (NI)0;
		i_3 = bindingCount_1;
		{
			while (1) {
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* param_1;
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* paramSym_1;
				if (!(i_3 < paramCount_1)) goto LA16;
				param_1 = NIM_NIL;
				paramSym_1 = NIM_NIL;
				i_2 = i_3;
				eqcopy___ast_u3240(&param_1, (*typeParams_1)._kind_6.sons.p->data[i_2]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
				eqcopy___ast_u4561(&paramSym_1, (*param_1)._kind_4.sym);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
				{
					if (!!(((*paramSym_1).ast == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA20_;
					matchGenericParam__sigmatch_u255(m_p0, (*param_1).typField, (*paramSym_1).ast);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					{
						if (!((*m_p0).state == ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2))) goto LA24_;
						(*m_p0).firstMismatch.arg = (NI)(i_2 + ((NI)1));
						eqsink___ast_u4567(&(*m_p0).firstMismatch.formal, paramSym_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						eqwasMoved___ast_u4555(&paramSym_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						eqdestroy___ast_u4558(paramSym_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3237(param_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3237(typeParams_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___semdata_u4382(c_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA24_: ;
				}
				goto LA18_;
LA20_: ;
				{
					if (!(((*(*paramSym_1).typ).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)26)))&63U)))!=0)) goto LA27_;
					(*m_p0).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)0);
					(*m_p0).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)9);
					(*m_p0).firstMismatch.arg = (NI)(i_2 + ((NI)1));
					eqsink___ast_u4567(&(*m_p0).firstMismatch.formal, paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					eqwasMoved___ast_u4555(&paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					eqdestroy___ast_u4558(paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3237(param_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3237(typeParams_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___semdata_u4382(c_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
				goto LA18_;
LA27_: ;
				{
					(*m_p0).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
					(*m_p0).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)9);
					(*m_p0).firstMismatch.arg = (NI)(i_2 + ((NI)1));
					eqsink___ast_u4567(&(*m_p0).firstMismatch.formal, paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					eqwasMoved___ast_u4555(&paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					eqdestroy___ast_u4558(paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3237(param_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3237(typeParams_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___semdata_u4382(c_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA18_: ;
				i_3 += ((NI)1);
				{
					LA17_:;
				}
				{
					oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u4558(paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3237(param_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin17_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			} LA16: ;
		}
	}
	(*m_p0).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)1);
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3237(typeParams_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___semdata_u4382(c_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initCandidate__sigmatch_u416)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* callee_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* binding_p2, NI calleeScope_p3, NIM_BOOL diagnosticsEnabled_p4, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ T9_;
	tyObject_Table__rIDniaYgWTEwlny3uhSy2w T10_;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T11_;
NIM_BOOL oldNimErrFin26_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
	initCandidateAux__sigmatch_u107(ctx_p0, (*callee_p1).typ, Result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u4561(&(*Result).calleeSym, callee_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		NI T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) || (*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)13) || (*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17) || (*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)15) || (*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)14) || (*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)16));
		if (!(T3_)) goto LA4_;
		T3_ = (calleeScope_p3 == ((NI)-1));
LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NI)0;
		T7_ = cmpScopes__lookups_u2550(ctx_p0, callee_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*Result).calleeScope = T7_;
	}
	goto LA1_;
LA5_: ;
	{
		(*Result).calleeScope = calleeScope_p3;
	}
LA1_: ;
	T9_.len = 0; T9_.p = NIM_NIL;
	T9_.len = 0; T9_.p = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content*) newSeqPayload(0, sizeof(NimStringV2), NIM_ALIGNOF(NimStringV2));
	eqsink___system_u3818((&(*Result).diagnostics), T9_);
	(*Result).diagnosticsEnabled = diagnosticsEnabled_p4;
	(*Result).magic = (*(*Result).calleeSym).magic;
	T10_ = initTable__layeredtable_u22(((NI)32));
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___layeredtable_u166(T10_); goto BeforeRet_;}
	nimZeroMem((void*)(&T11_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	initLayeredTypeMap__layeredtable_u9(T10_, (&T11_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqsink___layeredtable_u259((&(*Result).bindings), T11_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T14_;
		tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg genericMatch_1;
		T14_ = (NIM_BOOL)0;
		T14_ = !((binding_p2 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
		if (!(T14_)) goto LA15_;
		T14_ = ((*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) || (*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)13) || (*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)14) || (*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)15) || (*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)16) || (*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17) || (*callee_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18));
LA15_: ;
		if (!T14_) goto LA16_;
		matchGenericParams__sigmatch_u333(Result, binding_p2, callee_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		genericMatch_1 = (*Result).state;
		{
			if (!!((genericMatch_1 == ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2)))) goto LA20_;
			(*Result).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)0);
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_1;
				if (!(genericMatch_1 == ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)1))) goto LA24_;
				typ_1 = NIM_NIL;
				typ_1 = (*ctx_p0).instantiateOnlyProcType.ClE_0? (*ctx_p0).instantiateOnlyProcType.ClP_0(ctx_p0, (*Result).bindings, callee_p1, (*binding_p2).info, (*ctx_p0).instantiateOnlyProcType.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_110)((*ctx_p0).instantiateOnlyProcType.ClP_0))(ctx_p0, (*Result).bindings, callee_p1, (*binding_p2).info);
				if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
				eqsink___ast_u3372(&(*Result).callee, typ_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
				eqwasMoved___ast_u3360(&typ_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
				{
					LA26_:;
				}
				{
					oldNimErrFin26_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3363(typ_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					*nimErr_ = oldNimErrFin26_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA22_;
LA24_: ;
			{
				tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g T30_;
				nimZeroMem((void*)(&T30_), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
				T30_ = (*Result);
				copyingEraseVoidParams__sigmatch_u377((&T30_), &(*Result).callee);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
LA22_: ;
		}
LA20_: ;
	}
LA16_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, newCandidate__sigmatch_u451)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* callee_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* binding_p2, NI calleeScope_p3, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
	initCandidate__sigmatch_u416(ctx_p0, callee_p1, binding_p2, calleeScope_p3, NIM_FALSE, Result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, initIntSet__pureZcollectionsZintsets_u598)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* Result) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	initPackedSet__pureZcollectionsZintsets_u37(Result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___sigmatch_u142)(tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg* dest_p0, tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg src_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	(*dest_p0).kind = src_p1.kind;
	(*dest_p0).arg = src_p1.arg;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0).formal);
		if (!T3_) goto LA4_;
		eqdestroy___ast_u3454((&(*(*dest_p0).formal)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).formal, ((NI)8));
	}
LA4_: ;
	(*dest_p0).formal = src_p1.formal;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, findFirstArgBlock__sigmatch_u4513)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	NI result;
NIM_BOOL oldNimErrFin5_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((NI)2147483647);
	{
		NI a2_1;
		NI colontmp_;
		NI T2_;
		NI res_1;
		a2_1 = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__ast_u3175(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmp_ = (NI)(T2_ - ((NI)1));
		res_1 = colontmp_;
		{
			while (1) {
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* formalLast_1;
				NI T10_;
				NI T11_;
				if (!(((NI)0) <= res_1)) goto LA4;
				formalLast_1 = NIM_NIL;
				a2_1 = ((NI) (res_1));
				{
					if (!!(((*(*n_p1)._kind_6.sons.p->data[a2_1]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)115)))) goto LA8_;
					eqdestroy___ast_u3237(formalLast_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto LA1;
				}
LA8_: ;
				T10_ = (NI)0;
				T10_ = len__ast_u3175((*(*m_p0).callee).n);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				T11_ = (NI)0;
				T11_ = len__ast_u3175(n_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				eqcopy___ast_u3240(&formalLast_1, (*(*(*m_p0).callee).n)._kind_6.sons.p->data[(NI)(T10_ - (NI)(T11_ - a2_1))]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				{
					NIM_BOOL T14_;
					NIM_BOOL T15_;
					T14_ = (NIM_BOOL)0;
					T15_ = (NIM_BOOL)0;
					T15_ = ((*formalLast_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
					if (!(T15_)) goto LA16_;
					T15_ = ((*(*formalLast_1)._kind_4.sym).ast == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
LA16_: ;
					T14_ = T15_;
					if (!(T14_)) goto LA17_;
					T14_ = !(((*(*(*formalLast_1)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63) || (*(*(*formalLast_1)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48)));
LA17_: ;
					if (!T14_) goto LA18_;
					result = a2_1;
				}
				goto LA12_;
LA18_: ;
				{
					eqdestroy___ast_u3237(formalLast_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto LA1;
				}
LA12_: ;
				res_1 -= ((NI)1);
				{
					LA5_:;
				}
				{
					oldNimErrFin5_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3237(formalLast_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					*nimErr_ = oldNimErrFin5_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA4: ;
		}
	} LA1: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setSon__sigmatch_u4425)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* father_p0, NI at_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* son_p2) {
	NI oldLen_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	oldLen_1 = len__ast_u3175(father_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(oldLen_1 <= at_p1)) goto LA3_;
		setLen__ast_u3703((&(*father_p0)._kind_6.sons), ((NI)(at_p1 + ((NI)1))));
	}
LA3_: ;
	eqcopy___ast_u3240(&(*father_p0)._kind_6.sons.p->data[at_p1], son_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, arrayConstr__sigmatch_u4491)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	result = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD_ = makeRangeType__semdata_u4942(c_p0, IL64(0), IL64(-1), info_p1, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	rawAddSon__ast_u6677(result, colontmpD_, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__2 = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	rawAddSon__ast_u6677(result, colontmpD__2, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, incrIndexType__sigmatch_u4495)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_ = NIM_NIL;
	colontmpD_ = indexType__ast_u5324(t_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*(*colontmpD_).n)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal += ((NI)1);
	eqdestroy___ast_u3363(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, prepareNamedParam__sigmatch_u4479)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p1) {
NIM_BOOL oldNimErrFin5_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* colontmpD_;
		tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_1;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T6_;
		if (!!(((*(*a_p0)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2)))) goto LA3_;
		colontmpD_ = NIM_NIL;
		info_1 = (*(*a_p0)._kind_6.sons.p->data[((NI)0)]).info;
		colontmpD_ = considerQuotedIdent__lookups_u31(c_p1, (*a_p0)._kind_6.sons.p->data[((NI)0)], ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		T6_ = NIM_NIL;
		T6_ = newIdentNode__ast_u5143(colontmpD_, info_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T6_); goto LA5_;}
		eqsink___ast_u3246(&(*a_p0)._kind_6.sons.p->data[((NI)0)], T6_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		{
			LA5_:;
		}
		{
			oldNimErrFin5_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___idents_u155(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin5_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, prepareOperand__sigmatch_u4434)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p2, NIM_BOOL* newlyTyped_p3) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NI T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*formal_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6));
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = len__ast_u5481(formal_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = !((T5_ == ((NI)1)));
LA4_: ;
		if (!T3_) goto LA6_;
		eqcopy___ast_u3240(&result, a_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA6_: ;
	{
		if (!((*a_p2).typField == 0)) goto LA9_;
		{
			tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_1;
			if (!((*formal_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)64))) goto LA13_;
			flags_1 = 774;
			result = (*c_p0).semOperand(c_p0, a_p2, flags_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA11_;
LA13_: ;
		{
			tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_2;
			flags_2 = 768;
			result = (*c_p0).semOperand(c_p0, a_p2, flags_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA11_: ;
		(*newlyTyped_p3) = NIM_TRUE;
	}
	goto LA1_;
LA9_: ;
	{
		eqcopy___ast_u3240(&result, a_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		considerGenSyms__semdata_u2718(c_p0, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T19_;
			NIM_BOOL T20_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T25_;
			T19_ = (NIM_BOOL)0;
			T20_ = (NIM_BOOL)0;
			T20_ = !(((*result).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65)));
			if (!(T20_)) goto LA21_;
			T20_ = ((*(*result).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*(*result).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47));
LA21_: ;
			T19_ = T20_;
			if (!(T19_)) goto LA22_;
			T19_ = ((*c_p0).matchedConcept == ((tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg*) NIM_NIL));
LA22_: ;
			if (!T19_) goto LA23_;
			T25_ = NIM_NIL;
			T25_ = newDeref__lowerings_u12(result);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T25_); goto BeforeRet_;}
			eqsink___ast_u3246(&result, T25_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA23_: ;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, arrayConstr__sigmatch_u4487)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	result = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD_ = makeRangeType__semdata_u4942(c_p0, IL64(0), IL64(0), (*n_p1).info, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	rawAddSon__ast_u6677(result, colontmpD_, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__2 = skipTypes__ast_u5358((*n_p1).typField, TM__EV5hHJmjIY9cla9b9be7fSVJQ_116);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	addSonSkipIntLit__magicsys_u134(result, colontmpD__2, (*c_p0).Sup.idgen);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, prepareOperand__sigmatch_u4469)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p1, NIM_BOOL* newlyTyped_p2) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		if (!((*a_p1).typField == 0)) goto LA3_;
		result = (*c_p0).semOperand(c_p0, a_p1, 512);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*newlyTyped_p2) = NIM_TRUE;
	}
	goto LA1_;
LA3_: ;
	{
		eqcopy___ast_u3240(&result, a_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		considerGenSyms__semdata_u2718(c_p0, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, matchesAux__sigmatch_u4544)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* nOrig_p2, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p3, tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* marker_p4) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	NI colontmpD__2;
	NI colontmpD__3;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_1;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* formal_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* container_1;
	tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg T2_;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T3_;
	NI a_1;
	NI f_1;
	NI formalLen_1;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T9_;
	NI firstArgBlock_1;
NIM_BOOL oldNimErrFin43_;
NIM_BOOL oldNimErrFin91_;
NIM_BOOL oldNimErrFin117_;
NIM_BOOL oldNimErrFin145_;
NIM_BOOL oldNimErrFin149_;
NIM_BOOL oldNimErrFin135_;
NIM_BOOL oldNimErrFin189_;
NIM_BOOL oldNimErrFin242_;
NIM_BOOL oldNimErrFin270_;
NIM_BOOL oldNimErrFin284_;
NIM_BOOL oldNimErrFin279_;
NIM_BOOL oldNimErrFin318_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_ = NIM_NIL;
	colontmpD__2 = (NI)0;
	colontmpD__3 = (NI)0;
	arg_1 = NIM_NIL;
	formal_1 = NIM_NIL;
	container_1 = NIM_NIL;
	(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)1);
	nimZeroMem((void*)(&T2_), sizeof(tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg));
	eqsink___sigmatch_u142((&(*m_p3).firstMismatch), T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD_ = base__ast_u5330((*m_p3).callee);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T3_ = NIM_NIL;
	T3_ = newNodeIT__ast_u4097((*n_p1).kind, (*n_p1).info, colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T3_); goto LA1_;}
	eqsink___ast_u3246(&(*m_p3).call, T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	add__ast_u3200((*m_p3).call, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	a_1 = ((NI)1);
	{
		if (!!(((*(*m_p3).callee).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10)))) goto LA6_;
		colontmpD__2 = ((NI)1);
		f_1 = colontmpD__2;
	}
	goto LA4_;
LA6_: ;
	{
		colontmpD__3 = ((NI)0);
		f_1 = colontmpD__3;
	}
LA4_: ;
	arg_1 = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
	formalLen_1 = len__ast_u3175((*(*m_p3).callee).n);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T9_ = NIM_NIL;
	{
		if (!(((NI)1) < formalLen_1)) goto LA12_;
		eqcopy___ast_u4561(&formal_1, (*(*(*(*m_p3).callee).n)._kind_6.sons.p->data[((NI)1)])._kind_4.sym);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA10_;
LA12_: ;
	{
		formal_1 = ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL);
	}
LA10_: ;
	container_1 = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
	firstArgBlock_1 = findFirstArgBlock__sigmatch_u4513(m_p3, n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			NI T17_;
			T17_ = (NI)0;
			T17_ = len__ast_u3175(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!(a_1 < T17_)) goto LA16;
			openShadowScope__lookups_u3833(c_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				NIM_BOOL T20_;
				NIM_BOOL T21_;
				NIM_BOOL T24_;
				T20_ = (NIM_BOOL)0;
				T21_ = (NIM_BOOL)0;
				T21_ = ((NI)(formalLen_1 - ((NI)1)) <= a_1);
				if (!(T21_)) goto LA22_;
				T21_ = (f_1 < formalLen_1);
LA22_: ;
				T20_ = T21_;
				if (!(T20_)) goto LA23_;
				T24_ = (NIM_BOOL)0;
				T24_ = ((*(*(*(*(*m_p3).callee).n)._kind_6.sons.p->data[f_1]).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48));
				if (!(T24_)) goto LA25_;
				T24_ = ((*(*(*(*(*(*m_p3).callee).n)._kind_6.sons.p->data[f_1]).typField).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6));
LA25_: ;
				T20_ = T24_;
LA23_: ;
				if (!T20_) goto LA26_;
				eqcopy___ast_u4561(&formal_1, (*(*(*(*m_p3).callee).n)._kind_6.sons.p->data[f_1])._kind_4.sym);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				incl__pureZcollectionsZintsets_u366(marker_p4, (*formal_1).position);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				{
					if (!((*(*n_p1)._kind_6.sons.p->data[a_1]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58))) goto LA30_;
					{
						NIM_BOOL T34_;
						T34_ = (NIM_BOOL)0;
						T34_ = ((*(*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1));
						if (!(T34_)) goto LA35_;
						T34_ = ((*(*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)41) || (*(*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152));
LA35_: ;
						if (!!(T34_)) goto LA36_;
						failedAssertImpl__stdZassertions_u242(TM__EV5hHJmjIY9cla9b9be7fSVJQ_112);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
LA36_: ;
					setSon__sigmatch_u4425((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), (*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
				goto LA28_;
LA30_: ;
				{
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T44_;
						if (!(container_1 == 0)) goto LA41_;
						colontmpD__4 = NIM_NIL;
						colontmpD__4 = arrayConstr__sigmatch_u4491(c_p0, (*n_p1).info);
						if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
						T44_ = NIM_NIL;
						T44_ = newNodeIT__ast_u4097(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152), (*(*n_p1)._kind_6.sons.p->data[a_1]).info, colontmpD__4);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T44_); goto LA43_;}
						eqsink___ast_u3246(&container_1, T44_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
						setSon__sigmatch_u4425((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), container_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
						{
							LA43_:;
						}
						{
							oldNimErrFin43_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3363(colontmpD__4);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							*nimErr_ = oldNimErrFin43_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
					goto LA39_;
LA41_: ;
					{
						incrIndexType__sigmatch_u4495((*container_1).typField);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
LA39_: ;
					add__ast_u3200(container_1, (*n_p1)._kind_6.sons.p->data[a_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA28_: ;
			}
			goto LA18_;
LA26_: ;
			{
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T55_;
				NIM_BOOL newlyTyped_1;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T65_;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T70_;
				if (!((*(*n_p1)._kind_6.sons.p->data[a_1]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)33))) goto LA49_;
				(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)2);
				prepareNamedParam__sigmatch_u4479((*n_p1)._kind_6.sons.p->data[a_1], c_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				{
					if (!!(((*(*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2)))) goto LA53_;
					liMessage__msgs_u1223((*(*c_p0).graph).config, (*(*n_p1)._kind_6.sons.p->data[a_1]).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), TM__EV5hHJmjIY9cla9b9be7fSVJQ_114, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_115, NIM_FALSE, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					mergeShadowScope__lookups_u3837(c_p0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
					(*m_p3).firstMismatch.arg = a_1;
					eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqwasMoved___ast_u4555(&formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3237(container_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u4558(formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3237(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA53_: ;
				T55_ = NIM_NIL;
				T55_ = getNamedParamFromList__astalgo_u239((*(*m_p3).callee).n, (*(*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)0)])._kind_5.ident);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T55_); goto LA1_;}
				eqsink___ast_u4567(&formal_1, T55_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				{
					if (!(formal_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL))) goto LA58_;
					mergeShadowScope__lookups_u3837(c_p0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
					(*m_p3).firstMismatch.arg = a_1;
					eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqwasMoved___ast_u4555(&formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3237(container_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u4558(formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3237(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA58_: ;
				{
					NIM_BOOL T62_;
					T62_ = (NIM_BOOL)0;
					T62_ = containsOrIncl__astyaml_u223(marker_p4, (*formal_1).position);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if (!T62_) goto LA63_;
					(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)1);
					mergeShadowScope__lookups_u3837(c_p0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
					(*m_p3).firstMismatch.arg = a_1;
					eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqwasMoved___ast_u4555(&formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3237(container_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u4558(formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3237(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA63_: ;
				(*m_p3).baseTypeMatch = NIM_FALSE;
				(*m_p3).typedescMatched = NIM_FALSE;
				newlyTyped_1 = NIM_FALSE;
				T65_ = NIM_NIL;
				T65_ = prepareOperand__sigmatch_u4434(c_p0, (*formal_1).typ, (*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)1)], (&newlyTyped_1));
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T65_); goto LA1_;}
				eqsink___ast_u3246(&(*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)1)], T65_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				{
					if (!newlyTyped_1) goto LA68_;
					add__varpartitions_u1540((&(*m_p3).newlyTypedOperands), a_1);
				}
LA68_: ;
				eqcopy___ast_u3366(&(*(*n_p1)._kind_6.sons.p->data[a_1]).typField, (*(*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)1)]).typField);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				T70_ = NIM_NIL;
				T70_ = paramTypesMatch__sigmatch_u4316(m_p3, (*formal_1).typ, (*(*n_p1)._kind_6.sons.p->data[a_1]).typField, (*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)1)], (*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)1)]);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T70_); goto LA1_;}
				eqsink___ast_u3246(&arg_1, T70_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)3);
				{
					if (!(arg_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA73_;
					mergeShadowScope__lookups_u3837(c_p0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
					(*m_p3).firstMismatch.arg = a_1;
					eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqwasMoved___ast_u4555(&formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3237(container_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u4558(formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3237(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3363(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA73_: ;
				{
					NIM_BOOL T77_;
					T77_ = (NIM_BOOL)0;
					T77_ = !(((*formal_1).constraint == 0));
					if (!(T77_)) goto LA78_;
					T77_ = !((((*formal_1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)53)))&63U)))!=0));
LA78_: ;
					if (!T77_) goto LA79_;
					{
						NIM_BOOL T83_;
						T83_ = (NIM_BOOL)0;
						T83_ = matchNodeKinds__parampatterns_u479((*formal_1).constraint, (*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)1)]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						if (!T83_) goto LA84_;
						(*m_p3).genericMatches += ((NI)100);
					}
					goto LA81_;
LA84_: ;
					{
						mergeShadowScope__lookups_u3837(c_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
						(*m_p3).firstMismatch.arg = a_1;
						eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqwasMoved___ast_u4555(&formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3237(container_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u4558(formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3237(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA81_: ;
				}
LA79_: ;
				{
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argConverter_1;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T92_;
					if (!((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23))) goto LA89_;
					argConverter_1 = NIM_NIL;
					T92_ = NIM_NIL;
					{
						if (!((*arg_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65))) goto LA95_;
						eqcopy___ast_u3240(&argConverter_1, (*arg_1)._kind_6.sons.p->data[((NI)0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA91_;
					}
					goto LA93_;
LA95_: ;
					{
						eqcopy___ast_u3240(&argConverter_1, arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA91_;
					}
LA93_: ;
					{
						if (!((*argConverter_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32))) goto LA100_;
						{
							if (!!(((*(*argConverter_1).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23)))) goto LA104_;
							(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)4);
							mergeShadowScope__lookups_u3837(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA91_;
							(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
							(*m_p3).firstMismatch.arg = a_1;
							eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA91_;
							eqwasMoved___ast_u4555(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA91_;
							eqdestroy___ast_u3237(argConverter_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3237(container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u4558(formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA104_: ;
					}
					goto LA98_;
LA100_: ;
					{
						NIM_BOOL T107_;
						NIM_BOOL T108_;
						T107_ = (NIM_BOOL)0;
						T107_ = isOutParam__ast_u7626((*formal_1).typ);
						if (NIM_UNLIKELY(*nimErr_)) goto LA91_;
						T108_ = (NIM_BOOL)0;
						T108_ = isLValue__sigmatch_u3733(c_p0, (*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)1)], T107_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA91_;
						if (!!(T108_)) goto LA109_;
						(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)4);
						mergeShadowScope__lookups_u3837(c_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA91_;
						(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
						(*m_p3).firstMismatch.arg = a_1;
						eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA91_;
						eqwasMoved___ast_u4555(&formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA91_;
						eqdestroy___ast_u3237(argConverter_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3237(container_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u4558(formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3237(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
					goto LA98_;
LA109_: ;
LA98_: ;
					{
						LA91_:;
					}
					{
						oldNimErrFin91_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3237(argConverter_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin91_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA89_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T118_;
					if (!(*m_p3).baseTypeMatch) goto LA115_;
					colontmpD__5 = NIM_NIL;
					colontmpD__5 = arrayConstr__sigmatch_u4487(c_p0, arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA117_;
					T118_ = NIM_NIL;
					T118_ = newNodeIT__ast_u4097(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)41), (*(*n_p1)._kind_6.sons.p->data[a_1]).info, colontmpD__5);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T118_); goto LA117_;}
					eqsink___ast_u3246(&container_1, T118_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA117_;
					add__ast_u3200(container_1, arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA117_;
					setSon__sigmatch_u4425((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), container_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA117_;
					{
						if (!!((f_1 == (NI)(formalLen_1 - ((NI)1))))) goto LA121_;
						eqsink___ast_u3246(&container_1, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
						if (NIM_UNLIKELY(*nimErr_)) goto LA117_;
					}
LA121_: ;
					{
						LA117_:;
					}
					{
						oldNimErrFin117_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3363(colontmpD__5);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin117_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
				goto LA113_;
LA115_: ;
				{
					setSon__sigmatch_u4425((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA113_: ;
				f_1 += ((NI)1);
			}
			goto LA18_;
LA49_: ;
			{
				{
					if (!(formalLen_1 <= f_1)) goto LA129_;
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
						NIM_BOOL newlyTyped_2;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T136_;
						if (!(((*(*m_p3).callee).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)0)))&63U)))!=0)) goto LA133_;
						colontmpD__6 = NIM_NIL;
						newlyTyped_2 = NIM_FALSE;
						T136_ = NIM_NIL;
						T136_ = prepareOperand__sigmatch_u4469(c_p0, (*n_p1)._kind_6.sons.p->data[a_1], (&newlyTyped_2));
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T136_); goto LA135_;}
						eqsink___ast_u3246(&(*n_p1)._kind_6.sons.p->data[a_1], T136_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA135_;
						{
							if (!newlyTyped_2) goto LA139_;
							add__varpartitions_u1540((&(*m_p3).newlyTypedOperands), a_1);
						}
LA139_: ;
						{
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__8;
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__9;
							colontmpD__6 = skipTypes__ast_u5358((*(*n_p1)._kind_6.sons.p->data[a_1]).typField, TM__EV5hHJmjIY9cla9b9be7fSVJQ_69);
							if (NIM_UNLIKELY(*nimErr_)) goto LA135_;
							if (!((*colontmpD__6).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28))) goto LA143_;
							colontmpD__7 = NIM_NIL;
							colontmpD__8 = NIM_NIL;
							colontmpD__9 = NIM_NIL;
							colontmpD__7 = getSysType__magicsys_u54((*c_p0).graph, (*(*n_p1)._kind_6.sons.p->data[a_1]).info, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29));
							if (NIM_UNLIKELY(*nimErr_)) goto LA145_;
							colontmpD__8 = copyTree__ast_u6862((*n_p1)._kind_6.sons.p->data[a_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA145_;
							colontmpD__9 = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), colontmpD__7, colontmpD__8, (&(*m_p3)), c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA145_;
							add__ast_u3200((*m_p3).call, colontmpD__9);
							if (NIM_UNLIKELY(*nimErr_)) goto LA145_;
							{
								LA145_:;
							}
							{
								oldNimErrFin145_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3237(colontmpD__9);
								if (NIM_UNLIKELY(*nimErr_)) goto LA135_;
								eqdestroy___ast_u3237(colontmpD__8);
								if (NIM_UNLIKELY(*nimErr_)) goto LA135_;
								eqdestroy___ast_u3363(colontmpD__7);
								if (NIM_UNLIKELY(*nimErr_)) goto LA135_;
								*nimErr_ = oldNimErrFin145_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA135_;
						}
						goto LA141_;
LA143_: ;
						{
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__10;
							colontmpD__10 = NIM_NIL;
							colontmpD__10 = copyTree__ast_u6862((*n_p1)._kind_6.sons.p->data[a_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA149_;
							add__ast_u3200((*m_p3).call, colontmpD__10);
							if (NIM_UNLIKELY(*nimErr_)) goto LA149_;
							{
								LA149_:;
							}
							{
								oldNimErrFin149_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3237(colontmpD__10);
								if (NIM_UNLIKELY(*nimErr_)) goto LA135_;
								*nimErr_ = oldNimErrFin149_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA135_;
						}
LA141_: ;
						{
							LA135_:;
						}
						{
							oldNimErrFin135_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3363(colontmpD__6);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							*nimErr_ = oldNimErrFin135_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
					goto LA131_;
LA133_: ;
					{
						NIM_BOOL T155_;
						NIM_BOOL newlyTyped_3;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T159_;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T164_;
						T155_ = (NIM_BOOL)0;
						T155_ = !((formal_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
						if (!(T155_)) goto LA156_;
						T155_ = ((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48));
LA156_: ;
						if (!T155_) goto LA157_;
						(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)3);
						(*m_p3).baseTypeMatch = NIM_FALSE;
						(*m_p3).typedescMatched = NIM_FALSE;
						incl__pureZcollectionsZintsets_u366(marker_p4, (*formal_1).position);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						newlyTyped_3 = NIM_FALSE;
						T159_ = NIM_NIL;
						T159_ = prepareOperand__sigmatch_u4434(c_p0, (*formal_1).typ, (*n_p1)._kind_6.sons.p->data[a_1], (&newlyTyped_3));
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T159_); goto LA1_;}
						eqsink___ast_u3246(&(*n_p1)._kind_6.sons.p->data[a_1], T159_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						{
							if (!newlyTyped_3) goto LA162_;
							add__varpartitions_u1540((&(*m_p3).newlyTypedOperands), a_1);
						}
LA162_: ;
						T164_ = NIM_NIL;
						T164_ = paramTypesMatch__sigmatch_u4316(m_p3, (*formal_1).typ, (*(*n_p1)._kind_6.sons.p->data[a_1]).typField, (*n_p1)._kind_6.sons.p->data[a_1], (*nOrig_p2)._kind_6.sons.p->data[a_1]);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T164_); goto LA1_;}
						eqsink___ast_u3246(&arg_1, T164_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						{
							NIM_BOOL T167_;
							NIM_BOOL T168_;
							T167_ = (NIM_BOOL)0;
							T168_ = (NIM_BOOL)0;
							T168_ = !((arg_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
							if (!(T168_)) goto LA169_;
							T168_ = (*m_p3).baseTypeMatch;
LA169_: ;
							T167_ = T168_;
							if (!(T167_)) goto LA170_;
							T167_ = !((container_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA170_: ;
							if (!T167_) goto LA171_;
							add__ast_u3200(container_1, arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							incrIndexType__sigmatch_u4495((*container_1).typField);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							{
								NIM_BOOL T175_;
								T175_ = (NIM_BOOL)0;
								T175_ = !(((*formal_1).constraint == 0));
								if (!(T175_)) goto LA176_;
								T175_ = !((((*formal_1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)53)))&63U)))!=0));
LA176_: ;
								if (!T175_) goto LA177_;
								{
									NIM_BOOL T181_;
									T181_ = (NIM_BOOL)0;
									T181_ = matchNodeKinds__parampatterns_u479((*formal_1).constraint, (*n_p1)._kind_6.sons.p->data[a_1]);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									if (!T181_) goto LA182_;
									(*m_p3).genericMatches += ((NI)100);
								}
								goto LA179_;
LA182_: ;
								{
									mergeShadowScope__lookups_u3837(c_p0);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
									(*m_p3).firstMismatch.arg = a_1;
									eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqwasMoved___ast_u4555(&formal_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3237(container_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u4558(formal_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3237(arg_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3363(colontmpD_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto BeforeRet_;
								}
LA179_: ;
							}
LA177_: ;
							{
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argConverter_2;
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T190_;
								if (!((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23))) goto LA187_;
								argConverter_2 = NIM_NIL;
								T190_ = NIM_NIL;
								{
									if (!((*arg_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65))) goto LA193_;
									eqcopy___ast_u3240(&argConverter_2, (*arg_1)._kind_6.sons.p->data[((NI)0)]);
									if (NIM_UNLIKELY(*nimErr_)) goto LA189_;
								}
								goto LA191_;
LA193_: ;
								{
									eqcopy___ast_u3240(&argConverter_2, arg_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA189_;
								}
LA191_: ;
								{
									if (!((*argConverter_2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32))) goto LA198_;
									{
										if (!!(((*(*argConverter_2).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23)))) goto LA202_;
										(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)4);
										mergeShadowScope__lookups_u3837(c_p0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA189_;
										(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
										(*m_p3).firstMismatch.arg = a_1;
										eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA189_;
										eqwasMoved___ast_u4555(&formal_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA189_;
										eqdestroy___ast_u3237(argConverter_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
										eqdestroy___ast_u3237(container_1);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										eqdestroy___ast_u4558(formal_1);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										eqdestroy___ast_u3237(arg_1);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										eqdestroy___ast_u3363(colontmpD_);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										goto BeforeRet_;
									}
LA202_: ;
								}
								goto LA196_;
LA198_: ;
								{
									NIM_BOOL T205_;
									NIM_BOOL T206_;
									T205_ = (NIM_BOOL)0;
									T205_ = isOutParam__ast_u7626((*formal_1).typ);
									if (NIM_UNLIKELY(*nimErr_)) goto LA189_;
									T206_ = (NIM_BOOL)0;
									T206_ = isLValue__sigmatch_u3733(c_p0, (*n_p1)._kind_6.sons.p->data[a_1], T205_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA189_;
									if (!!(T206_)) goto LA207_;
									(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)4);
									mergeShadowScope__lookups_u3837(c_p0);
									if (NIM_UNLIKELY(*nimErr_)) goto LA189_;
									(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
									(*m_p3).firstMismatch.arg = a_1;
									eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA189_;
									eqwasMoved___ast_u4555(&formal_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA189_;
									eqdestroy___ast_u3237(argConverter_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3237(container_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u4558(formal_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3237(arg_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3363(colontmpD_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto BeforeRet_;
								}
								goto LA196_;
LA207_: ;
LA196_: ;
								{
									LA189_:;
								}
								{
									oldNimErrFin189_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3237(argConverter_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									*nimErr_ = oldNimErrFin189_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							}
LA187_: ;
						}
						goto LA165_;
LA171_: ;
						{
							mergeShadowScope__lookups_u3837(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
							(*m_p3).firstMismatch.arg = a_1;
							eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqwasMoved___ast_u4555(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3237(container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u4558(formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA165_: ;
					}
					goto LA131_;
LA157_: ;
					{
						(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)6);
						mergeShadowScope__lookups_u3837(c_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
						(*m_p3).firstMismatch.arg = a_1;
						eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqwasMoved___ast_u4555(&formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3237(container_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u4558(formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3237(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA131_: ;
				}
				goto LA127_;
LA129_: ;
				{
					{
						if (!!(((*(*(*(*m_p3).callee).n)._kind_6.sons.p->data[f_1]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3)))) goto LA216_;
						internalErrorImpl__msgs_u1594((*(*c_p0).graph).config, (*(*n_p1)._kind_6.sons.p->data[a_1]).info, TM__EV5hHJmjIY9cla9b9be7fSVJQ_118, TM__EV5hHJmjIY9cla9b9be7fSVJQ_119);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						mergeShadowScope__lookups_u3837(c_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
						(*m_p3).firstMismatch.arg = a_1;
						eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqwasMoved___ast_u4555(&formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3237(container_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u4558(formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3237(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA216_: ;
					{
						NIM_BOOL T220_;
						NI T224_;
						NI T225_;
						T220_ = (NIM_BOOL)0;
						T220_ = (((*c_p0).features &((NU32)1<<((NU)((((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)17)))&31U)))!=0);
						if (!(T220_)) goto LA221_;
						T220_ = (firstArgBlock_1 <= a_1);
LA221_: ;
						if (!T220_) goto LA222_;
						T224_ = (NI)0;
						T224_ = len__ast_u3175((*(*m_p3).callee).n);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						T225_ = (NI)0;
						T225_ = len__ast_u3175(n_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						f_1 = ((f_1 >= (NI)(T224_ - (NI)(T225_ - a_1))) ? f_1 : (NI)(T224_ - (NI)(T225_ - a_1)));
					}
LA222_: ;
					eqcopy___ast_u4561(&formal_1, (*(*(*(*m_p3).callee).n)._kind_6.sons.p->data[f_1])._kind_4.sym);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)3);
					{
						NIM_BOOL T228_;
						T228_ = (NIM_BOOL)0;
						T228_ = containsOrIncl__astyaml_u223(marker_p4, (*formal_1).position);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						if (!(T228_)) goto LA229_;
						T228_ = (container_1 == 0);
LA229_: ;
						if (!T228_) goto LA230_;
						(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)7);
						mergeShadowScope__lookups_u3837(c_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
						(*m_p3).firstMismatch.arg = a_1;
						eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqwasMoved___ast_u4555(&formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3237(container_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u4558(formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3237(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3363(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA230_: ;
					{
						NIM_BOOL T234_;
						T234_ = (NIM_BOOL)0;
						T234_ = ((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48));
						if (!(T234_)) goto LA235_;
						T234_ = ((*(*(*formal_1).typ).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6));
LA235_: ;
						if (!T234_) goto LA236_;
						{
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__11;
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T243_;
							if (!(container_1 == 0)) goto LA240_;
							colontmpD__11 = NIM_NIL;
							colontmpD__11 = arrayConstr__sigmatch_u4491(c_p0, (*n_p1).info);
							if (NIM_UNLIKELY(*nimErr_)) goto LA242_;
							T243_ = NIM_NIL;
							T243_ = newNodeIT__ast_u4097(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152), (*(*n_p1)._kind_6.sons.p->data[a_1]).info, colontmpD__11);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T243_); goto LA242_;}
							eqsink___ast_u3246(&container_1, T243_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA242_;
							setSon__sigmatch_u4425((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA242_;
							{
								LA242_:;
							}
							{
								oldNimErrFin242_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3363(colontmpD__11);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								*nimErr_ = oldNimErrFin242_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
						goto LA238_;
LA240_: ;
						{
							incrIndexType__sigmatch_u4495((*container_1).typField);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
LA238_: ;
						add__ast_u3200(container_1, (*n_p1)._kind_6.sons.p->data[a_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
					goto LA232_;
LA236_: ;
					{
						NIM_BOOL newlyTyped_4;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T248_;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T253_;
						(*m_p3).baseTypeMatch = NIM_FALSE;
						(*m_p3).typedescMatched = NIM_FALSE;
						newlyTyped_4 = NIM_FALSE;
						T248_ = NIM_NIL;
						T248_ = prepareOperand__sigmatch_u4434(c_p0, (*formal_1).typ, (*n_p1)._kind_6.sons.p->data[a_1], (&newlyTyped_4));
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T248_); goto LA1_;}
						eqsink___ast_u3246(&(*n_p1)._kind_6.sons.p->data[a_1], T248_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						{
							if (!newlyTyped_4) goto LA251_;
							add__varpartitions_u1540((&(*m_p3).newlyTypedOperands), a_1);
						}
LA251_: ;
						T253_ = NIM_NIL;
						T253_ = paramTypesMatch__sigmatch_u4316(m_p3, (*formal_1).typ, (*(*n_p1)._kind_6.sons.p->data[a_1]).typField, (*n_p1)._kind_6.sons.p->data[a_1], (*nOrig_p2)._kind_6.sons.p->data[a_1]);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T253_); goto LA1_;}
						eqsink___ast_u3246(&arg_1, T253_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						{
							if (!(arg_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA256_;
							mergeShadowScope__lookups_u3837(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
							(*m_p3).firstMismatch.arg = a_1;
							eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqwasMoved___ast_u4555(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3237(container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u4558(formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA256_: ;
						{
							NIM_BOOL T260_;
							NIM_BOOL T261_;
							NI T275_;
							T260_ = (NIM_BOOL)0;
							T261_ = (NIM_BOOL)0;
							T261_ = ((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48));
							if (!(T261_)) goto LA262_;
							T261_ = ((*(*(*formal_1).typ).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7));
LA262_: ;
							T260_ = T261_;
							if (!(T260_)) goto LA263_;
							T260_ = ((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17));
LA263_: ;
							if (!T260_) goto LA264_;
							{
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__12;
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__13;
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T271_;
								if (!(container_1 == 0)) goto LA268_;
								colontmpD__12 = NIM_NIL;
								colontmpD__13 = NIM_NIL;
								colontmpD__12 = arrayConstr__sigmatch_u4491(c_p0, (*n_p1).info);
								if (NIM_UNLIKELY(*nimErr_)) goto LA270_;
								T271_ = NIM_NIL;
								T271_ = newNodeIT__ast_u4097(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)41), (*(*n_p1)._kind_6.sons.p->data[a_1]).info, colontmpD__12);
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T271_); goto LA270_;}
								eqsink___ast_u3246(&container_1, T271_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA270_;
								colontmpD__13 = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), (*formal_1).typ, container_1, (&(*m_p3)), c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA270_;
								setSon__sigmatch_u4425((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), colontmpD__13);
								if (NIM_UNLIKELY(*nimErr_)) goto LA270_;
								{
									LA270_:;
								}
								{
									oldNimErrFin270_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3237(colontmpD__13);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3363(colontmpD__12);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									*nimErr_ = oldNimErrFin270_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							}
							goto LA266_;
LA268_: ;
							{
								incrIndexType__sigmatch_u4495((*container_1).typField);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							}
LA266_: ;
							add__ast_u3200(container_1, (*n_p1)._kind_6.sons.p->data[a_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							T275_ = (NI)0;
							T275_ = len__ast_u3175(n_p1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							f_1 = ((f_1 >= (NI)((NI)((NI)(formalLen_1 - T275_) + a_1) + ((NI)1))) ? f_1 : (NI)((NI)((NI)(formalLen_1 - T275_) + a_1) + ((NI)1)));
						}
						goto LA258_;
LA264_: ;
						{
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__14;
							NI T289_;
							if (!(*m_p3).baseTypeMatch) goto LA277_;
							colontmpD__14 = NIM_NIL;
							{
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__15;
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T285_;
								if (!(container_1 == 0)) goto LA282_;
								colontmpD__15 = NIM_NIL;
								colontmpD__15 = arrayConstr__sigmatch_u4487(c_p0, arg_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA284_;
								T285_ = NIM_NIL;
								T285_ = newNodeIT__ast_u4097(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)41), (*(*n_p1)._kind_6.sons.p->data[a_1]).info, colontmpD__15);
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T285_); goto LA284_;}
								eqsink___ast_u3246(&container_1, T285_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA284_;
								(*(*container_1).typField).flags |= ((NU64)1)<<(((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)0))) & 63);
								{
									LA284_:;
								}
								{
									oldNimErrFin284_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3363(colontmpD__15);
									if (NIM_UNLIKELY(*nimErr_)) goto LA279_;
									*nimErr_ = oldNimErrFin284_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA279_;
							}
							goto LA280_;
LA282_: ;
							{
								incrIndexType__sigmatch_u4495((*container_1).typField);
								if (NIM_UNLIKELY(*nimErr_)) goto LA279_;
							}
LA280_: ;
							add__ast_u3200(container_1, arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA279_;
							colontmpD__14 = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), (*formal_1).typ, container_1, (&(*m_p3)), c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA279_;
							setSon__sigmatch_u4425((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), colontmpD__14);
							if (NIM_UNLIKELY(*nimErr_)) goto LA279_;
							T289_ = (NI)0;
							T289_ = len__ast_u3175(n_p1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA279_;
							f_1 = ((f_1 >= (NI)((NI)((NI)(formalLen_1 - T289_) + a_1) + ((NI)1))) ? f_1 : (NI)((NI)((NI)(formalLen_1 - T289_) + a_1) + ((NI)1)));
							{
								LA279_:;
							}
							{
								oldNimErrFin279_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3237(colontmpD__14);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								*nimErr_ = oldNimErrFin279_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
						goto LA258_;
LA277_: ;
						{
							NIM_BOOL T293_;
							T293_ = (NIM_BOOL)0;
							T293_ = !(((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48)));
							if (T293_) goto LA294_;
							T293_ = (container_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
LA294_: ;
							if (!T293_) goto LA295_;
							setSon__sigmatch_u4425((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							f_1 += ((NI)1);
							eqsink___ast_u3246(&container_1, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
						goto LA258_;
LA295_: ;
						{
							NimStringV2 colontmpD__16;
							NimStringV2 colontmpD__17;
							NimStringV2 colontmpD__18;
							tyArray__Re75IspeoxXy2oCZHwcRrA T299_;
							colontmpD__16.len = 0; colontmpD__16.p = NIM_NIL;
							colontmpD__17.len = 0; colontmpD__17.p = NIM_NIL;
							colontmpD__18.len = 0; colontmpD__18.p = NIM_NIL;
							colontmpD__16 = typeToString__types_u54((*(*n_p1)._kind_6.sons.p->data[a_1]).typField, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
							if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
							T299_[0] = colontmpD__16;
							colontmpD__17 = typeToString__types_u54((*formal_1).typ, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
							if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
							T299_[1] = colontmpD__17;
							colontmpD__18 = nsuFormatOpenArray(TM__EV5hHJmjIY9cla9b9be7fSVJQ_121, T299_, 2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
							liMessage__msgs_u1223((*(*c_p0).graph).config, (*(*n_p1)._kind_6.sons.p->data[a_1]).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__18, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_122, NIM_FALSE, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
							mergeShadowScope__lookups_u3837(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
							(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
							(*m_p3).firstMismatch.arg = a_1;
							eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
							eqwasMoved___ast_u4555(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
							eqdestroy___system_u2627(colontmpD__18);
							eqdestroy___system_u2627(colontmpD__17);
							eqdestroy___system_u2627(colontmpD__16);
							eqdestroy___ast_u3237(container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u4558(formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
							{
								LA298_:;
							}
							{
								eqdestroy___system_u2627(colontmpD__18);
								eqdestroy___system_u2627(colontmpD__17);
								eqdestroy___system_u2627(colontmpD__16);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
LA258_: ;
					}
LA232_: ;
					{
						NIM_BOOL T304_;
						T304_ = (NIM_BOOL)0;
						T304_ = !(((*formal_1).constraint == 0));
						if (!(T304_)) goto LA305_;
						T304_ = !((((*formal_1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)53)))&63U)))!=0));
LA305_: ;
						if (!T304_) goto LA306_;
						{
							NIM_BOOL T310_;
							T310_ = (NIM_BOOL)0;
							T310_ = matchNodeKinds__parampatterns_u479((*formal_1).constraint, (*n_p1)._kind_6.sons.p->data[a_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							if (!T310_) goto LA311_;
							(*m_p3).genericMatches += ((NI)100);
						}
						goto LA308_;
LA311_: ;
						{
							mergeShadowScope__lookups_u3837(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
							(*m_p3).firstMismatch.arg = a_1;
							eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqwasMoved___ast_u4555(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3237(container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u4558(formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA308_: ;
					}
LA306_: ;
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argConverter_3;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T319_;
						if (!((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23))) goto LA316_;
						argConverter_3 = NIM_NIL;
						T319_ = NIM_NIL;
						{
							if (!((*arg_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65))) goto LA322_;
							eqcopy___ast_u3240(&argConverter_3, (*arg_1)._kind_6.sons.p->data[((NI)0)]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA318_;
						}
						goto LA320_;
LA322_: ;
						{
							eqcopy___ast_u3240(&argConverter_3, arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA318_;
						}
LA320_: ;
						{
							if (!((*argConverter_3).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32))) goto LA327_;
							{
								if (!!(((*(*argConverter_3).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23)))) goto LA331_;
								(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)4);
								mergeShadowScope__lookups_u3837(c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA318_;
								(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
								(*m_p3).firstMismatch.arg = a_1;
								eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA318_;
								eqwasMoved___ast_u4555(&formal_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA318_;
								eqdestroy___ast_u3237(argConverter_3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3237(container_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u4558(formal_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3237(arg_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3363(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA331_: ;
						}
						goto LA325_;
LA327_: ;
						{
							NIM_BOOL T334_;
							NIM_BOOL T335_;
							T334_ = (NIM_BOOL)0;
							T334_ = isOutParam__ast_u7626((*formal_1).typ);
							if (NIM_UNLIKELY(*nimErr_)) goto LA318_;
							T335_ = (NIM_BOOL)0;
							T335_ = isLValue__sigmatch_u3733(c_p0, (*n_p1)._kind_6.sons.p->data[a_1], T334_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA318_;
							if (!!(T335_)) goto LA336_;
							(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)4);
							mergeShadowScope__lookups_u3837(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA318_;
							(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
							(*m_p3).firstMismatch.arg = a_1;
							eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA318_;
							eqwasMoved___ast_u4555(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA318_;
							eqdestroy___ast_u3237(argConverter_3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3237(container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u4558(formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3237(arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3363(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
						goto LA325_;
LA336_: ;
LA325_: ;
						{
							LA318_:;
						}
						{
							oldNimErrFin318_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3237(argConverter_3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							*nimErr_ = oldNimErrFin318_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
LA316_: ;
				}
LA127_: ;
			}
LA18_: ;
			{
				NIM_BOOL T342_;
				NIM_BOOL T344_;
				T342_ = (NIM_BOOL)0;
				T342_ = ((*m_p3).state == ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)1));
				if (!(T342_)) goto LA343_;
				T344_ = (NIM_BOOL)0;
				T344_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
				if (!(T344_)) goto LA345_;
				T344_ = ((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17));
LA345_: ;
				T342_ = !(T344_);
LA343_: ;
				if (!T342_) goto LA346_;
				mergeShadowScope__lookups_u3837(c_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			goto LA340_;
LA346_: ;
			{
				closeShadowScope__lookups_u3835(c_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA340_: ;
			a_1 += ((NI)1);
		} LA16: ;
	}
	(*m_p3).firstMismatch.arg = a_1;
	eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqwasMoved___ast_u4555(&formal_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3237(container_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u4558(formal_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3237(arg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3363(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, partialMatch__sigmatch_u4885)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* nOrig_p2, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p3) {
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA marker_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&marker_1), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	initIntSet__pureZcollectionsZintsets_u598((&marker_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	matchesAux__sigmatch_u4544(c_p0, n_p1, nOrig_p2, m_p3, (&marker_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___pureZcollectionsZintsets_u230((&marker_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, argsFit__sigmatch_u6127)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* candidate_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* nOrig_p3) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	switch ((*candidate_p1).kind) {
	case ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)6):
	case ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) ... ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18):
	case ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)20):
	{
		tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g m_1;
		nimZeroMem((void*)(&m_1), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
		newCandidate__sigmatch_u451(c_p0, candidate_p1, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL), ((NI)-1), (&m_1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		partialMatch__sigmatch_u4885(c_p0, n_p2, nOrig_p3, (&m_1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		result = !((m_1.state == ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2)));
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___sigmatch_u160((&m_1));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin2_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestCall__sigmatch_u6138)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* nOrig_p2, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p3) {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_1;
NIM_BOOL oldNimErrFin24_;
NIM_BOOL oldNimErrFin14_;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL oldNimErrFin65_;
NIM_BOOL oldNimErrFin53_;
NIM_BOOL oldNimErrFin102_;
NIM_BOOL oldNimErrFin83_;
NIM_BOOL oldNimErrFin47_;
NIM_BOOL oldNimErrFin4_;
NIM_BOOL oldNimErrFin2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	info_1 = (*n_p1).info;
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* item_1;
		tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg seen_1;
		NI scopeN_1;
		NIM_BOOL isLocal_1;
		item_1 = NIM_NIL;
		nimZeroMem((void*)(&seen_1), sizeof(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg));
		scopeN_1 = (NI)0;
		isLocal_1 = (NIM_BOOL)0;
		seen_1 = initHashSet__lookups_u798(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		{
			tyTuple__WIyQ4Cfp4shlBOyEpagHMw res_1;
			NIM_BOOL isLocal_2;
			NI scopeN_2;
			nimZeroMem((void*)(&res_1), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
			isLocal_2 = NIM_TRUE;
			scopeN_2 = ((NI)0);
			{
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_1;
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* current_1;
				scope_1 = NIM_NIL;
				current_1 = NIM_NIL;
				eqcopy___lookups_u74(&current_1, (*c_p0).currentScope);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				{
					while (1) {
						if (!!((current_1 == ((tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww*) NIM_NIL)))) goto LA8;
						eqcopy___lookups_u74(&scope_1, current_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						{
							if (!(scope_1 == (*c_p0).topLevelScope)) goto LA11_;
							isLocal_2 = NIM_FALSE;
						}
LA11_: ;
						scopeN_2 -= ((NI)1);
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* item_2;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_1;
							tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw it_1;
							item_2 = NIM_NIL;
							s_1 = NIM_NIL;
							item_2 = 0;
							nimZeroMem((void*)(&it_1), sizeof(tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw));
							s_1 = initTabIter__astalgo_u3139((&it_1), (*scope_1).symbols);
							if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
							{
								while (1) {
									tyTuple__WIyQ4Cfp4shlBOyEpagHMw T17_;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_1;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T37_;
									if (!!((s_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA16;
									eqsink___ast_u4567(&item_2, s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									eqwasMoved___ast_u4555(&s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									nimZeroMem((void*)(&T17_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
									blitTmp_1 = item_2;
									eqwasMoved___ast_u4555(&item_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									T17_.Field0 = blitTmp_1;
									T17_.Field1 = scopeN_2;
									T17_.Field2 = isLocal_2;
									eqsink___lookups_u768((&res_1), T17_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									{
										tyTuple__FFspgHRWev9aDuj0fEpj9bUw T20_;
										NIM_BOOL T21_;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_2;
										tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_1;
										T20_.Field0 = (*res_1.Field0).info;
										T20_.Field1 = (*(*res_1.Field0).name).id;
										T21_ = (NIM_BOOL)0;
										T21_ = containsOrIncl__lookups_u984((&seen_1), T20_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
										if (!!(T21_)) goto LA22_;
										it_2 = NIM_NIL;
										eqsink___ast_u4567(&item_1, res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
										eqwasMoved___ast_u4555(&res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
										scopeN_1 = res_1.Field1;
										isLocal_1 = res_1.Field2;
										it_2 = item_1;
										eqwasMoved___ast_u4555(&item_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
										pm_1 = 0;
										{
											NIM_BOOL T27_;
											NIM_BOOL T28_;
											NI T33_;
											tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T34_;
											T27_ = (NIM_BOOL)0;
											T28_ = (NIM_BOOL)0;
											T28_ = filterSym__sigmatch_u5915(it_2, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL), (&pm_1));
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
											if (!(T28_)) goto LA29_;
											T28_ = nameFits__sigmatch_u6108(c_p0, it_2, n_p1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
LA29_: ;
											T27_ = T28_;
											if (!(T27_)) goto LA30_;
											T27_ = argsFit__sigmatch_u6127(c_p0, it_2, n_p1, nOrig_p2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
LA30_: ;
											if (!T27_) goto LA31_;
											T33_ = (NI)0;
											T33_ = getQuality__sigmatch_u6023(it_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
											T34_ = NIM_NIL;
											T34_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_2, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)2), info_1, T33_, pm_1, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
											if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T34_); goto LA24_;}
											add__sigmatch_u6054((&(*outputs_p3)), T34_);
										}
LA31_: ;
										{
											LA24_:;
										}
										{
											oldNimErrFin24_ = *nimErr_; *nimErr_ = NIM_FALSE;
											eqdestroy___ast_u4558(it_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
											*nimErr_ = oldNimErrFin24_;
										}
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									}
LA22_: ;
									T37_ = NIM_NIL;
									T37_ = nextIter__astalgo_u3123((&it_1), (*scope_1).symbols);
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T37_); goto LA14_;}
									eqsink___ast_u4567(&s_1, T37_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
								} LA16: ;
							}
							{
								LA14_:;
							}
							{
								oldNimErrFin14_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4558(s_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								eqdestroy___ast_u4558(item_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								*nimErr_ = oldNimErrFin14_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						}
						eqcopy___lookups_u74(&current_1, (*current_1).parent);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					} LA8: ;
				}
				{
					LA6_:;
				}
				{
					oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___lookups_u71(current_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					eqdestroy___lookups_u71(scope_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					*nimErr_ = oldNimErrFin6_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
			}
			scopeN_2 -= ((NI)1);
			isLocal_2 = NIM_FALSE;
			{
				tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw* im_1;
				NI i_1;
				NI L_1;
				NI T43_;
				im_1 = (tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw*)0;
				i_1 = ((NI)0);
				T43_ = (*c_p0).imports.len;
				L_1 = T43_;
				{
					while (1) {
						if (!(i_1 < L_1)) goto LA45;
						im_1 = (&(*c_p0).imports.p->data[i_1]);
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_2;
							NIM_BOOL importHidden_1;
							s_2 = NIM_NIL;
							s_2 = 0;
							importHidden_1 = (((*(*im_1).m).options &((NU32)1<<((NU)((((tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ)27)))&31U)))!=0);
							{
								NIM_BOOL T50_;
								tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ rodIt_1;
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* r_1;
								tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* T54_;
								tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* T55_;
								T50_ = (NIM_BOOL)0;
								T50_ = isCachedModule__modulegraphs_u3010((*c_p0).graph, (*im_1).m);
								if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
								if (!T50_) goto LA51_;
								nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
								r_1 = NIM_NIL;
								nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
								T54_ = NIM_NIL;
								T54_ = (*(*c_p0).graph).config;
								T55_ = NIM_NIL;
								T55_ = (*(*c_p0).graph).cache;
								r_1 = initRodIterAllSyms__icZic_u21656((&rodIt_1), T54_, T55_, (&(*(*c_p0).graph).packed_0), ((NI32) ((*(*im_1).m).position)), importHidden_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
								{
									while (1) {
										tyTuple__WIyQ4Cfp4shlBOyEpagHMw T58_;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_2;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T78_;
										if (!!((r_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA57;
										eqsink___ast_u4567(&s_2, r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
										eqwasMoved___ast_u4555(&r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
										nimZeroMem((void*)(&T58_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
										blitTmp_2 = s_2;
										eqwasMoved___ast_u4555(&s_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
										T58_.Field0 = blitTmp_2;
										T58_.Field1 = scopeN_2;
										T58_.Field2 = isLocal_2;
										eqsink___lookups_u768((&res_1), T58_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
										{
											tyTuple__FFspgHRWev9aDuj0fEpj9bUw T61_;
											NIM_BOOL T62_;
											tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_3;
											tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_2;
											T61_.Field0 = (*res_1.Field0).info;
											T61_.Field1 = (*(*res_1.Field0).name).id;
											T62_ = (NIM_BOOL)0;
											T62_ = containsOrIncl__lookups_u984((&seen_1), T61_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
											if (!!(T62_)) goto LA63_;
											it_3 = NIM_NIL;
											eqsink___ast_u4567(&item_1, res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
											eqwasMoved___ast_u4555(&res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
											scopeN_1 = res_1.Field1;
											isLocal_1 = res_1.Field2;
											it_3 = item_1;
											eqwasMoved___ast_u4555(&item_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
											pm_2 = 0;
											{
												NIM_BOOL T68_;
												NIM_BOOL T69_;
												NI T74_;
												tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T75_;
												T68_ = (NIM_BOOL)0;
												T69_ = (NIM_BOOL)0;
												T69_ = filterSym__sigmatch_u5915(it_3, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL), (&pm_2));
												if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
												if (!(T69_)) goto LA70_;
												T69_ = nameFits__sigmatch_u6108(c_p0, it_3, n_p1);
												if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
LA70_: ;
												T68_ = T69_;
												if (!(T68_)) goto LA71_;
												T68_ = argsFit__sigmatch_u6127(c_p0, it_3, n_p1, nOrig_p2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
LA71_: ;
												if (!T68_) goto LA72_;
												T74_ = (NI)0;
												T74_ = getQuality__sigmatch_u6023(it_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
												T75_ = NIM_NIL;
												T75_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_3, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)2), info_1, T74_, pm_2, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
												if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T75_); goto LA65_;}
												add__sigmatch_u6054((&(*outputs_p3)), T75_);
											}
LA72_: ;
											{
												LA65_:;
											}
											{
												oldNimErrFin65_ = *nimErr_; *nimErr_ = NIM_FALSE;
												eqdestroy___ast_u4558(it_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
												*nimErr_ = oldNimErrFin65_;
											}
											if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
										}
LA63_: ;
										T78_ = NIM_NIL;
										T78_ = nextRodIter__icZic_u21992((&rodIt_1), (&(*(*c_p0).graph).packed_0));
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T78_); goto LA53_;}
										eqsink___ast_u4567(&r_1, T78_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
									} LA57: ;
								}
								{
									LA53_:;
								}
								{
									oldNimErrFin53_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4558(r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
									eqdestroy___modulegraphs_u3290((&rodIt_1));
									if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
									*nimErr_ = oldNimErrFin53_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
							}
							goto LA48_;
LA51_: ;
							{
								{
									tySequence__ZCZaCk14bTmSb6LMW9aWPVA colontmp_;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** s_3;
									tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg* retX60gensym20__1;
									NI i_2;
									NI L_2;
									NI T88_;
									colontmp_.len = 0; colontmp_.p = NIM_NIL;
									s_3 = (tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg**)0;
									colontmp_.len = 0; colontmp_.p = NIM_NIL;
									retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*(*im_1).m).position].interf);
									{
										if (!importHidden_1) goto LA86_;
										retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*(*im_1).m).position].interfHidden);
									}
LA86_: ;
									eqcopy___ast_u4835((&colontmp_), (*retX60gensym20__1).data);
									if (NIM_UNLIKELY(*nimErr_)) goto LA83_;
									i_2 = ((NI)0);
									T88_ = colontmp_.len;
									L_2 = T88_;
									{
										while (1) {
											if (!(i_2 < L_2)) goto LA90;
											s_3 = &colontmp_.p->data[i_2];
											{
												tyTuple__WIyQ4Cfp4shlBOyEpagHMw T95_;
												tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_3;
												if (!!(((*s_3) == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA93_;
												eqcopy___ast_u4561(&s_2, (*s_3));
												if (NIM_UNLIKELY(*nimErr_)) goto LA83_;
												nimZeroMem((void*)(&T95_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
												blitTmp_3 = s_2;
												eqwasMoved___ast_u4555(&s_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA83_;
												T95_.Field0 = blitTmp_3;
												T95_.Field1 = scopeN_2;
												T95_.Field2 = isLocal_2;
												eqsink___lookups_u768((&res_1), T95_);
												if (NIM_UNLIKELY(*nimErr_)) goto LA83_;
												{
													tyTuple__FFspgHRWev9aDuj0fEpj9bUw T98_;
													NIM_BOOL T99_;
													tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_4;
													tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_3;
													T98_.Field0 = (*res_1.Field0).info;
													T98_.Field1 = (*(*res_1.Field0).name).id;
													T99_ = (NIM_BOOL)0;
													T99_ = containsOrIncl__lookups_u984((&seen_1), T98_);
													if (NIM_UNLIKELY(*nimErr_)) goto LA83_;
													if (!!(T99_)) goto LA100_;
													it_4 = NIM_NIL;
													eqsink___ast_u4567(&item_1, res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
													eqwasMoved___ast_u4555(&res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
													scopeN_1 = res_1.Field1;
													isLocal_1 = res_1.Field2;
													it_4 = item_1;
													eqwasMoved___ast_u4555(&item_1);
													if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
													pm_3 = 0;
													{
														NIM_BOOL T105_;
														NIM_BOOL T106_;
														NI T111_;
														tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T112_;
														T105_ = (NIM_BOOL)0;
														T106_ = (NIM_BOOL)0;
														T106_ = filterSym__sigmatch_u5915(it_4, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL), (&pm_3));
														if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
														if (!(T106_)) goto LA107_;
														T106_ = nameFits__sigmatch_u6108(c_p0, it_4, n_p1);
														if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
LA107_: ;
														T105_ = T106_;
														if (!(T105_)) goto LA108_;
														T105_ = argsFit__sigmatch_u6127(c_p0, it_4, n_p1, nOrig_p2);
														if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
LA108_: ;
														if (!T105_) goto LA109_;
														T111_ = (NI)0;
														T111_ = getQuality__sigmatch_u6023(it_4);
														if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
														T112_ = NIM_NIL;
														T112_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_4, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)2), info_1, T111_, pm_3, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
														if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T112_); goto LA102_;}
														add__sigmatch_u6054((&(*outputs_p3)), T112_);
													}
LA109_: ;
													{
														LA102_:;
													}
													{
														oldNimErrFin102_ = *nimErr_; *nimErr_ = NIM_FALSE;
														eqdestroy___ast_u4558(it_4);
														if (NIM_UNLIKELY(*nimErr_)) goto LA83_;
														*nimErr_ = oldNimErrFin102_;
													}
													if (NIM_UNLIKELY(*nimErr_)) goto LA83_;
												}
LA100_: ;
											}
LA93_: ;
											i_2 += ((NI)1);
										} LA90: ;
									}
									{
										LA83_:;
									}
									{
										oldNimErrFin83_ = *nimErr_; *nimErr_ = NIM_FALSE;
										eqdestroy___ast_u4832(colontmp_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
										*nimErr_ = oldNimErrFin83_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
								}
							}
LA48_: ;
							{
								LA47_:;
							}
							{
								oldNimErrFin47_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4558(s_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
								*nimErr_ = oldNimErrFin47_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
						}
						i_1 += ((NI)1);
					} LA45: ;
				}
			}
			{
				LA4_:;
			}
			{
				oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___lookups_u759(res_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				*nimErr_ = oldNimErrFin4_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		}
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___lookups_u947(seen_1);
			eqdestroy___ast_u4558(item_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin2_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestVar__sigmatch_u6157)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p2) {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_1;
NIM_BOOL oldNimErrFin24_;
NIM_BOOL oldNimErrFin14_;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL oldNimErrFin62_;
NIM_BOOL oldNimErrFin50_;
NIM_BOOL oldNimErrFin96_;
NIM_BOOL oldNimErrFin77_;
NIM_BOOL oldNimErrFin44_;
NIM_BOOL oldNimErrFin4_;
NIM_BOOL oldNimErrFin2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	info_1 = (*n_p1).info;
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* item_1;
		tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg seen_1;
		NI scopeN_1;
		NIM_BOOL isLocal_1;
		item_1 = NIM_NIL;
		nimZeroMem((void*)(&seen_1), sizeof(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg));
		scopeN_1 = (NI)0;
		isLocal_1 = (NIM_BOOL)0;
		seen_1 = initHashSet__lookups_u798(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		{
			tyTuple__WIyQ4Cfp4shlBOyEpagHMw res_1;
			NIM_BOOL isLocal_2;
			NI scopeN_2;
			nimZeroMem((void*)(&res_1), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
			isLocal_2 = NIM_TRUE;
			scopeN_2 = ((NI)0);
			{
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_1;
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* current_1;
				scope_1 = NIM_NIL;
				current_1 = NIM_NIL;
				eqcopy___lookups_u74(&current_1, (*c_p0).currentScope);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				{
					while (1) {
						if (!!((current_1 == ((tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww*) NIM_NIL)))) goto LA8;
						eqcopy___lookups_u74(&scope_1, current_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						{
							if (!(scope_1 == (*c_p0).topLevelScope)) goto LA11_;
							isLocal_2 = NIM_FALSE;
						}
LA11_: ;
						scopeN_2 -= ((NI)1);
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* item_2;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_1;
							tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw it_1;
							item_2 = NIM_NIL;
							s_1 = NIM_NIL;
							item_2 = 0;
							nimZeroMem((void*)(&it_1), sizeof(tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw));
							s_1 = initTabIter__astalgo_u3139((&it_1), (*scope_1).symbols);
							if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
							{
								while (1) {
									tyTuple__WIyQ4Cfp4shlBOyEpagHMw T17_;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_1;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T34_;
									if (!!((s_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA16;
									eqsink___ast_u4567(&item_2, s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									eqwasMoved___ast_u4555(&s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									nimZeroMem((void*)(&T17_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
									blitTmp_1 = item_2;
									eqwasMoved___ast_u4555(&item_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									T17_.Field0 = blitTmp_1;
									T17_.Field1 = scopeN_2;
									T17_.Field2 = isLocal_2;
									eqsink___lookups_u768((&res_1), T17_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									{
										tyTuple__FFspgHRWev9aDuj0fEpj9bUw T20_;
										NIM_BOOL T21_;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_2;
										tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_1;
										T20_.Field0 = (*res_1.Field0).info;
										T20_.Field1 = (*(*res_1.Field0).name).id;
										T21_ = (NIM_BOOL)0;
										T21_ = containsOrIncl__lookups_u984((&seen_1), T20_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
										if (!!(T21_)) goto LA22_;
										it_2 = NIM_NIL;
										eqsink___ast_u4567(&item_1, res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
										eqwasMoved___ast_u4555(&res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
										scopeN_1 = res_1.Field1;
										isLocal_1 = res_1.Field2;
										it_2 = item_1;
										eqwasMoved___ast_u4555(&item_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
										pm_1 = 0;
										{
											NIM_BOOL T27_;
											NI T30_;
											tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T31_;
											T27_ = (NIM_BOOL)0;
											T27_ = nameFits__sigmatch_u6108(c_p0, it_2, n_p1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
											if (!T27_) goto LA28_;
											T30_ = (NI)0;
											T30_ = getQuality__sigmatch_u6023(it_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
											T31_ = NIM_NIL;
											T31_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_2, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)2), info_1, T30_, pm_1, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
											if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T31_); goto LA24_;}
											add__sigmatch_u6054((&(*outputs_p2)), T31_);
										}
LA28_: ;
										{
											LA24_:;
										}
										{
											oldNimErrFin24_ = *nimErr_; *nimErr_ = NIM_FALSE;
											eqdestroy___ast_u4558(it_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
											*nimErr_ = oldNimErrFin24_;
										}
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									}
LA22_: ;
									T34_ = NIM_NIL;
									T34_ = nextIter__astalgo_u3123((&it_1), (*scope_1).symbols);
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T34_); goto LA14_;}
									eqsink___ast_u4567(&s_1, T34_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
								} LA16: ;
							}
							{
								LA14_:;
							}
							{
								oldNimErrFin14_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4558(s_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								eqdestroy___ast_u4558(item_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								*nimErr_ = oldNimErrFin14_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						}
						eqcopy___lookups_u74(&current_1, (*current_1).parent);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					} LA8: ;
				}
				{
					LA6_:;
				}
				{
					oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___lookups_u71(current_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					eqdestroy___lookups_u71(scope_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					*nimErr_ = oldNimErrFin6_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
			}
			scopeN_2 -= ((NI)1);
			isLocal_2 = NIM_FALSE;
			{
				tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw* im_1;
				NI i_1;
				NI L_1;
				NI T40_;
				im_1 = (tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw*)0;
				i_1 = ((NI)0);
				T40_ = (*c_p0).imports.len;
				L_1 = T40_;
				{
					while (1) {
						if (!(i_1 < L_1)) goto LA42;
						im_1 = (&(*c_p0).imports.p->data[i_1]);
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_2;
							NIM_BOOL importHidden_1;
							s_2 = NIM_NIL;
							s_2 = 0;
							importHidden_1 = (((*(*im_1).m).options &((NU32)1<<((NU)((((tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ)27)))&31U)))!=0);
							{
								NIM_BOOL T47_;
								tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ rodIt_1;
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* r_1;
								tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* T51_;
								tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* T52_;
								T47_ = (NIM_BOOL)0;
								T47_ = isCachedModule__modulegraphs_u3010((*c_p0).graph, (*im_1).m);
								if (NIM_UNLIKELY(*nimErr_)) goto LA44_;
								if (!T47_) goto LA48_;
								nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
								r_1 = NIM_NIL;
								nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
								T51_ = NIM_NIL;
								T51_ = (*(*c_p0).graph).config;
								T52_ = NIM_NIL;
								T52_ = (*(*c_p0).graph).cache;
								r_1 = initRodIterAllSyms__icZic_u21656((&rodIt_1), T51_, T52_, (&(*(*c_p0).graph).packed_0), ((NI32) ((*(*im_1).m).position)), importHidden_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
								{
									while (1) {
										tyTuple__WIyQ4Cfp4shlBOyEpagHMw T55_;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_2;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T72_;
										if (!!((r_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA54;
										eqsink___ast_u4567(&s_2, r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
										eqwasMoved___ast_u4555(&r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
										nimZeroMem((void*)(&T55_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
										blitTmp_2 = s_2;
										eqwasMoved___ast_u4555(&s_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
										T55_.Field0 = blitTmp_2;
										T55_.Field1 = scopeN_2;
										T55_.Field2 = isLocal_2;
										eqsink___lookups_u768((&res_1), T55_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
										{
											tyTuple__FFspgHRWev9aDuj0fEpj9bUw T58_;
											NIM_BOOL T59_;
											tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_3;
											tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_2;
											T58_.Field0 = (*res_1.Field0).info;
											T58_.Field1 = (*(*res_1.Field0).name).id;
											T59_ = (NIM_BOOL)0;
											T59_ = containsOrIncl__lookups_u984((&seen_1), T58_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
											if (!!(T59_)) goto LA60_;
											it_3 = NIM_NIL;
											eqsink___ast_u4567(&item_1, res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
											eqwasMoved___ast_u4555(&res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
											scopeN_1 = res_1.Field1;
											isLocal_1 = res_1.Field2;
											it_3 = item_1;
											eqwasMoved___ast_u4555(&item_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
											pm_2 = 0;
											{
												NIM_BOOL T65_;
												NI T68_;
												tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T69_;
												T65_ = (NIM_BOOL)0;
												T65_ = nameFits__sigmatch_u6108(c_p0, it_3, n_p1);
												if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
												if (!T65_) goto LA66_;
												T68_ = (NI)0;
												T68_ = getQuality__sigmatch_u6023(it_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
												T69_ = NIM_NIL;
												T69_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_3, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)2), info_1, T68_, pm_2, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
												if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T69_); goto LA62_;}
												add__sigmatch_u6054((&(*outputs_p2)), T69_);
											}
LA66_: ;
											{
												LA62_:;
											}
											{
												oldNimErrFin62_ = *nimErr_; *nimErr_ = NIM_FALSE;
												eqdestroy___ast_u4558(it_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
												*nimErr_ = oldNimErrFin62_;
											}
											if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
										}
LA60_: ;
										T72_ = NIM_NIL;
										T72_ = nextRodIter__icZic_u21992((&rodIt_1), (&(*(*c_p0).graph).packed_0));
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T72_); goto LA50_;}
										eqsink___ast_u4567(&r_1, T72_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
									} LA54: ;
								}
								{
									LA50_:;
								}
								{
									oldNimErrFin50_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4558(r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA44_;
									eqdestroy___modulegraphs_u3290((&rodIt_1));
									if (NIM_UNLIKELY(*nimErr_)) goto LA44_;
									*nimErr_ = oldNimErrFin50_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA44_;
							}
							goto LA45_;
LA48_: ;
							{
								{
									tySequence__ZCZaCk14bTmSb6LMW9aWPVA colontmp_;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** s_3;
									tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg* retX60gensym20__1;
									NI i_2;
									NI L_2;
									NI T82_;
									colontmp_.len = 0; colontmp_.p = NIM_NIL;
									s_3 = (tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg**)0;
									colontmp_.len = 0; colontmp_.p = NIM_NIL;
									retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*(*im_1).m).position].interf);
									{
										if (!importHidden_1) goto LA80_;
										retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*(*im_1).m).position].interfHidden);
									}
LA80_: ;
									eqcopy___ast_u4835((&colontmp_), (*retX60gensym20__1).data);
									if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
									i_2 = ((NI)0);
									T82_ = colontmp_.len;
									L_2 = T82_;
									{
										while (1) {
											if (!(i_2 < L_2)) goto LA84;
											s_3 = &colontmp_.p->data[i_2];
											{
												tyTuple__WIyQ4Cfp4shlBOyEpagHMw T89_;
												tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_3;
												if (!!(((*s_3) == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA87_;
												eqcopy___ast_u4561(&s_2, (*s_3));
												if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
												nimZeroMem((void*)(&T89_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
												blitTmp_3 = s_2;
												eqwasMoved___ast_u4555(&s_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
												T89_.Field0 = blitTmp_3;
												T89_.Field1 = scopeN_2;
												T89_.Field2 = isLocal_2;
												eqsink___lookups_u768((&res_1), T89_);
												if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
												{
													tyTuple__FFspgHRWev9aDuj0fEpj9bUw T92_;
													NIM_BOOL T93_;
													tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_4;
													tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_3;
													T92_.Field0 = (*res_1.Field0).info;
													T92_.Field1 = (*(*res_1.Field0).name).id;
													T93_ = (NIM_BOOL)0;
													T93_ = containsOrIncl__lookups_u984((&seen_1), T92_);
													if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
													if (!!(T93_)) goto LA94_;
													it_4 = NIM_NIL;
													eqsink___ast_u4567(&item_1, res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA96_;
													eqwasMoved___ast_u4555(&res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA96_;
													scopeN_1 = res_1.Field1;
													isLocal_1 = res_1.Field2;
													it_4 = item_1;
													eqwasMoved___ast_u4555(&item_1);
													if (NIM_UNLIKELY(*nimErr_)) goto LA96_;
													pm_3 = 0;
													{
														NIM_BOOL T99_;
														NI T102_;
														tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T103_;
														T99_ = (NIM_BOOL)0;
														T99_ = nameFits__sigmatch_u6108(c_p0, it_4, n_p1);
														if (NIM_UNLIKELY(*nimErr_)) goto LA96_;
														if (!T99_) goto LA100_;
														T102_ = (NI)0;
														T102_ = getQuality__sigmatch_u6023(it_4);
														if (NIM_UNLIKELY(*nimErr_)) goto LA96_;
														T103_ = NIM_NIL;
														T103_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_4, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)2), info_1, T102_, pm_3, (((NI)0) < (*c_p0).inTypeContext), scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
														if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T103_); goto LA96_;}
														add__sigmatch_u6054((&(*outputs_p2)), T103_);
													}
LA100_: ;
													{
														LA96_:;
													}
													{
														oldNimErrFin96_ = *nimErr_; *nimErr_ = NIM_FALSE;
														eqdestroy___ast_u4558(it_4);
														if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
														*nimErr_ = oldNimErrFin96_;
													}
													if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
												}
LA94_: ;
											}
LA87_: ;
											i_2 += ((NI)1);
										} LA84: ;
									}
									{
										LA77_:;
									}
									{
										oldNimErrFin77_ = *nimErr_; *nimErr_ = NIM_FALSE;
										eqdestroy___ast_u4832(colontmp_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA44_;
										*nimErr_ = oldNimErrFin77_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA44_;
								}
							}
LA45_: ;
							{
								LA44_:;
							}
							{
								oldNimErrFin44_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4558(s_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
								*nimErr_ = oldNimErrFin44_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
						}
						i_1 += ((NI)1);
					} LA42: ;
				}
			}
			{
				LA4_:;
			}
			{
				oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___lookups_u759(res_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				*nimErr_ = oldNimErrFin4_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		}
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___lookups_u947(seen_1);
			eqdestroy___ast_u4558(item_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin2_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmpSuggestions__sigmatch_u5196)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* a_p0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* b_p1) {
	NI result;
{	result = (NI)(((NI) ((*b_p1).prefix)) - ((NI) ((*a_p0).prefix)));
	{
		if (!!((result == ((NI)0)))) goto LA3_;
		goto BeforeRet_;
	}
LA3_: ;
	result = (NI)(((NI) ((*b_p1).contextFits)) - ((NI) ((*a_p0).contextFits)));
	{
		if (!!((result == ((NI)0)))) goto LA7_;
		goto BeforeRet_;
	}
LA7_: ;
	result = (NI)((*b_p1).scope - (*a_p0).scope);
	{
		if (!!((result == ((NI)0)))) goto LA11_;
		goto BeforeRet_;
	}
LA11_: ;
	result = (NI)((*b_p1).quality - (*a_p0).quality);
	{
		if (!!((result == ((NI)0)))) goto LA15_;
		goto BeforeRet_;
	}
LA15_: ;
	result = (NI)((*b_p1).localUsages - (*a_p0).localUsages);
	{
		if (!!((result == ((NI)0)))) goto LA19_;
		goto BeforeRet_;
	}
LA19_: ;
	result = (NI)((*b_p1).globalUsages - (*a_p0).globalUsages);
	{
		if (!!((result == ((NI)0)))) goto LA23_;
		goto BeforeRet_;
	}
LA23_: ;
	result = cmp__system_u1553((*(*a_p0).name), (*(*b_p1).name));
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimAddCharV1)(NimStringV2* s_p0, NIM_CHAR c_p1) {
	prepareAdd(s_p0, ((NI)1));
	(*(*s_p0).p).data[(*s_p0).len] = c_p1;
	(*s_p0).len += ((NI)1);
	(*(*s_p0).p).data[(*s_p0).len] = 0;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___sigmatch_u5548)(tyObject_SuggestInlayHintcolonObjectType___zpydc9br7HBXeBRDNSH9cTMw* suggest_p0) {
	NimStringV2 result;
	NimStringV2 colontmpD_;
	NimStringV2 colontmpD__2;
	NimStringV2 colontmpD__3;
	NimStringV2 colontmpD__4;
	NimStringV2 colontmpD__5;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
	colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
	colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
	colontmpD__5.len = 0; colontmpD__5.p = NIM_NIL;
	result = dollar___options_u343((*suggest_p0).kind);
	nimAddCharV1((&result), 9);
	colontmpD_ = dollar___systemZdollars_u9((*suggest_p0).line);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	prepareAdd((&result), colontmpD_.len + 0);
appendString((&result), colontmpD_);
	nimAddCharV1((&result), 9);
	colontmpD__2 = dollar___systemZdollars_u9((*suggest_p0).column);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	prepareAdd((&result), colontmpD__2.len + 0);
appendString((&result), colontmpD__2);
	nimAddCharV1((&result), 9);
	prepareAdd((&result), (*suggest_p0).label.len + 0);
appendString((&result), (*suggest_p0).label);
	nimAddCharV1((&result), 9);
	colontmpD__3 = nimBoolToStr((*suggest_p0).paddingLeft);
	prepareAdd((&result), colontmpD__3.len + 0);
appendString((&result), colontmpD__3);
	nimAddCharV1((&result), 9);
	colontmpD__4 = nimBoolToStr((*suggest_p0).paddingRight);
	prepareAdd((&result), colontmpD__4.len + 0);
appendString((&result), colontmpD__4);
	nimAddCharV1((&result), 9);
	colontmpD__5 = nimBoolToStr((*suggest_p0).allowInsert);
	prepareAdd((&result), colontmpD__5.len + 0);
appendString((&result), colontmpD__5);
	nimAddCharV1((&result), 9);
	prepareAdd((&result), (*suggest_p0).tooltip.len + 0);
appendString((&result), (*suggest_p0).tooltip);
	eqdestroy___system_u2627(colontmpD__5);
	eqdestroy___system_u2627(colontmpD__4);
	eqdestroy___system_u2627(colontmpD__3);
	eqdestroy___system_u2627(colontmpD__2);
	eqdestroy___system_u2627(colontmpD_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___sigmatch_u5554)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* suggest_p0) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	{
		if (!((*suggest_p0).section == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)20))) goto LA3_;
		result = dollar___sigmatch_u5548((*suggest_p0).inlayHintInfo);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA3_: ;
	{
		result = dollar___options_u4310((*suggest_p0).section);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimAddCharV1((&result), 9);
		{
			NimStringV2 colontmpD_;
			NimStringV2 colontmpD__2;
			NimStringV2 colontmpD__3;
			if (!((*suggest_p0).section == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)9))) goto LA8_;
			colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
			colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
			colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q) ((*suggest_p0).symkind)) == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8));
				if (!(T12_)) goto LA13_;
				T12_ = (*suggest_p0).isGlobal;
LA13_: ;
				if (!T12_) goto LA14_;
				prepareAdd((&result), 11);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_126);
			}
			goto LA10_;
LA14_: ;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q) ((*suggest_p0).symkind)) == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)9));
				if (!(T17_)) goto LA18_;
				T17_ = (*suggest_p0).isGlobal;
LA18_: ;
				if (!T17_) goto LA19_;
				prepareAdd((&result), 11);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_128);
			}
			goto LA10_;
LA19_: ;
			{
				NimStringV2 colontmpD__4;
				colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
				colontmpD__4 = dollar___ast_u309(((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q) ((*suggest_p0).symkind)));
				prepareAdd((&result), colontmpD__4.len + 0);
appendString((&result), colontmpD__4);
				eqdestroy___system_u2627(colontmpD__4);
			}
LA10_: ;
			nimAddCharV1((&result), 9);
			colontmpD_ = dollar___systemZdollars_u9((*suggest_p0).line);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			prepareAdd((&result), colontmpD_.len + 0);
appendString((&result), colontmpD_);
			nimAddCharV1((&result), 9);
			colontmpD__2 = dollar___systemZdollars_u9((*suggest_p0).column);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			prepareAdd((&result), colontmpD__2.len + 0);
appendString((&result), colontmpD__2);
			nimAddCharV1((&result), 9);
			colontmpD__3 = dollar___systemZdollars_u9((*suggest_p0).tokenLen);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			prepareAdd((&result), colontmpD__3.len + 0);
appendString((&result), colontmpD__3);
			eqdestroy___system_u2627(colontmpD__3);
			eqdestroy___system_u2627(colontmpD__2);
			eqdestroy___system_u2627(colontmpD_);
		}
		goto LA6_;
LA8_: ;
		{
			NimStringV2 colontmpD__5;
			NimStringV2 colontmpD__6;
			NimStringV2 colontmpD__7;
			colontmpD__5.len = 0; colontmpD__5.p = NIM_NIL;
			colontmpD__6.len = 0; colontmpD__6.p = NIM_NIL;
			colontmpD__7.len = 0; colontmpD__7.p = NIM_NIL;
			colontmpD__5 = dollar___ast_u309(((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q) ((*suggest_p0).symkind)));
			prepareAdd((&result), colontmpD__5.len + 0);
appendString((&result), colontmpD__5);
			nimAddCharV1((&result), 9);
			{
				NI T25_;
				NimStringV2 colontmpD__8;
				T25_ = (*suggest_p0).qualifiedPath.len;
				if (!!((T25_ == ((NI)0)))) goto LA26_;
				colontmpD__8.len = 0; colontmpD__8.p = NIM_NIL;
				colontmpD__8 = nsuJoinSep((((*suggest_p0).qualifiedPath).p) ? ((*suggest_p0).qualifiedPath.p->data) : NIM_NIL, (*suggest_p0).qualifiedPath.len, TM__EV5hHJmjIY9cla9b9be7fSVJQ_130);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				prepareAdd((&result), colontmpD__8.len + 0);
appendString((&result), colontmpD__8);
				eqdestroy___system_u2627(colontmpD__8);
			}
LA26_: ;
			nimAddCharV1((&result), 9);
			prepareAdd((&result), (*suggest_p0).forth.len + 0);
appendString((&result), (*suggest_p0).forth);
			nimAddCharV1((&result), 9);
			prepareAdd((&result), (*suggest_p0).filePath.len + 0);
appendString((&result), (*suggest_p0).filePath);
			nimAddCharV1((&result), 9);
			colontmpD__6 = dollar___systemZdollars_u9((*suggest_p0).line);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			prepareAdd((&result), colontmpD__6.len + 0);
appendString((&result), colontmpD__6);
			nimAddCharV1((&result), 9);
			colontmpD__7 = dollar___systemZdollars_u9((*suggest_p0).column);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			prepareAdd((&result), colontmpD__7.len + 0);
appendString((&result), colontmpD__7);
			nimAddCharV1((&result), 9);
			{
				NIM_BOOL T30_;
				NimStringV2 colontmpD__9;
				T30_ = (NIM_BOOL)0;
				T30_ = ((*suggest_p0).version == ((NI)0));
				if (T30_) goto LA31_;
				T30_ = ((*suggest_p0).version == ((NI)3));
LA31_: ;
				if (!T30_) goto LA32_;
				colontmpD__9.len = 0; colontmpD__9.p = NIM_NIL;
				nimAddCharV1((&result), 9);
				colontmpD__9 = dollar___systemZdollars_u9((*suggest_p0).quality);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				prepareAdd((&result), colontmpD__9.len + 0);
appendString((&result), colontmpD__9);
				{
					NimStringV2 colontmpD__10;
					if (!((*suggest_p0).section == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1))) goto LA36_;
					colontmpD__10.len = 0; colontmpD__10.p = NIM_NIL;
					nimAddCharV1((&result), 9);
					colontmpD__10 = dollar___prefixmatches_u7((*suggest_p0).prefix);
					prepareAdd((&result), colontmpD__10.len + 0);
appendString((&result), colontmpD__10);
					eqdestroy___system_u2627(colontmpD__10);
				}
LA36_: ;
				eqdestroy___system_u2627(colontmpD__9);
			}
LA32_: ;
			eqdestroy___system_u2627(colontmpD__7);
			eqdestroy___system_u2627(colontmpD__6);
			eqdestroy___system_u2627(colontmpD__5);
		}
LA6_: ;
		{
			NIM_BOOL T40_;
			NimStringV2 colontmpD__11;
			NimStringV2 colontmpD__12;
			T40_ = (NIM_BOOL)0;
			T40_ = ((*suggest_p0).version == ((NI)3));
			if (!(T40_)) goto LA41_;
			T40_ = ((*suggest_p0).section == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)10) || (*suggest_p0).section == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)19));
LA41_: ;
			if (!T40_) goto LA42_;
			colontmpD__11.len = 0; colontmpD__11.p = NIM_NIL;
			colontmpD__12.len = 0; colontmpD__12.p = NIM_NIL;
			nimAddCharV1((&result), 9);
			colontmpD__11 = dollar___systemZdollars_u44((*suggest_p0).endLine);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			prepareAdd((&result), colontmpD__11.len + 0);
appendString((&result), colontmpD__11);
			nimAddCharV1((&result), 9);
			colontmpD__12 = dollar___systemZdollars_u9((*suggest_p0).endCol);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			prepareAdd((&result), colontmpD__12.len + 0);
appendString((&result), colontmpD__12);
			eqdestroy___system_u2627(colontmpD__12);
			eqdestroy___system_u2627(colontmpD__11);
		}
LA42_: ;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, produceOutput__sigmatch_u5690)(tySequence__nSO1ltijM4vhc0UrrXKEqA* a_p0, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyProc__Bw3od9aVB1x0nc8QWI54cVQ T5_;
		if (!((*conf_p1).ideCmd == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1) || (*conf_p1).ideCmd == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)2))) goto LA3_;
		nimZeroMem((void*)(&T5_), sizeof(tyProc__Bw3od9aVB1x0nc8QWI54cVQ));
		T5_.ClP_0 = ((TM__EV5hHJmjIY9cla9b9be7fSVJQ_123) (cmpSuggestions__sigmatch_u5196)); T5_.ClE_0 = NIM_NIL;
		sort__sigmatch_u5699(((*a_p0).p) ? ((*a_p0).p->data) : NIM_NIL, (*a_p0).len, T5_, ((tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA)1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	{
		NI T8_;
		T8_ = (*a_p0).len;
		if (!((*conf_p1).suggestMaxResults < T8_)) goto LA9_;
		setLen__modulegraphs_u11847((&(*a_p0)), ((*conf_p1).suggestMaxResults));
	}
LA9_: ;
	{
		if (!!(((*conf_p1).suggestionResultHook.ClP_0 == 0))) goto LA13_;
		{
			tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA** s_1;
			NI i_1;
			NI L_1;
			NI T16_;
			s_1 = (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA**)0;
			i_1 = ((NI)0);
			T16_ = (*a_p0).len;
			L_1 = T16_;
			{
				while (1) {
					if (!(i_1 < L_1)) goto LA18;
					s_1 = &(*a_p0).p->data[i_1];
					(*conf_p1).suggestionResultHook.ClE_0? (*conf_p1).suggestionResultHook.ClP_0((*s_1), (*conf_p1).suggestionResultHook.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_124)((*conf_p1).suggestionResultHook.ClP_0))((*s_1));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_1 += ((NI)1);
				} LA18: ;
			}
		}
	}
	goto LA11_;
LA13_: ;
	{
		{
			tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA** s_2;
			NI i_2;
			NI L_2;
			NI T21_;
			s_2 = (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA**)0;
			i_2 = ((NI)0);
			T21_ = (*a_p0).len;
			L_2 = T21_;
			{
				while (1) {
					NimStringV2 colontmpD_;
					if (!(i_2 < L_2)) goto LA23;
					colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
					s_2 = &(*a_p0).p->data[i_2];
					colontmpD_ = dollar___sigmatch_u5554((*s_2));
					if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
					suggestWriteln__msgs_u459(conf_p1, colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
					i_2 += ((NI)1);
					{
						LA24_:;
					}
					{
						eqdestroy___system_u2627(colontmpD_);
					}
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA23: ;
			}
		}
	}
LA11_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestExprNoCheck__sigmatch_u7200)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tySequence__nSO1ltijM4vhc0UrrXKEqA outputs_1;
NIM_BOOL oldNimErrFin27_;
NIM_BOOL oldNimErrFin17_;
NIM_BOOL oldNimErrFin41_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	outputs_1.len = 0; outputs_1.p = NIM_NIL;
	{
		if (!(((NI)0) < (*c_p0).compilesContextId)) goto LA4_;
		eqdestroy___modulegraphs_u11748(outputs_1);
		goto BeforeRet_;
	}
LA4_: ;
	(*c_p0).compilesContextId += ((NI)1);
	outputs_1.len = 0; outputs_1.p = (tySequence__nSO1ltijM4vhc0UrrXKEqA_Content*) newSeqPayload(0, sizeof(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA*), NIM_ALIGNOF(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA*));
	{
		if (!((*(*(*c_p0).graph).config).ideCmd == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1))) goto LA8_;
		sugExpr__sigmatch_u7170(c_p0, n_p1, (&outputs_1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA6_;
LA8_: ;
	{
		if (!((*(*(*c_p0).graph).config).ideCmd == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)2))) goto LA11_;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_1;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* x_1;
			if (!((*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)27) || (*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)29) || (*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)30) || (*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)31) || (*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)26) || (*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)28) || (*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32))) goto LA15_;
			a_1 = NIM_NIL;
			x_1 = NIM_NIL;
			a_1 = copyNode__ast_u6707(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			x_1 = safeSemExpr__sigmatch_u7164(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			{
				NIM_BOOL T20_;
				T20_ = (NIM_BOOL)0;
				T20_ = ((*x_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1));
				if (T20_) goto LA21_;
				T20_ = ((*x_1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA21_: ;
				if (!T20_) goto LA22_;
				eqcopy___ast_u3240(&x_1, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			}
LA22_: ;
			add__ast_u3200(a_1, x_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			{
				NI i_1;
				NI colontmp_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_u3175(n_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
				i_2 = ((NI)1);
				{
					while (1) {
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* x_2;
						if (!(i_2 < colontmp_)) goto LA26;
						x_2 = NIM_NIL;
						i_1 = i_2;
						x_2 = safeSemExpr__sigmatch_u7164(c_p0, (*n_p1)._kind_6.sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA27_;
						{
							NIM_BOOL T30_;
							T30_ = (NIM_BOOL)0;
							T30_ = ((*x_2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1));
							if (T30_) goto LA31_;
							T30_ = ((*x_2).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA31_: ;
							if (!T30_) goto LA32_;
							eqdestroy___ast_u3237(x_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
							goto LA24;
						}
LA32_: ;
						add__ast_u3200(a_1, x_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA27_;
						i_2 += ((NI)1);
						{
							LA27_:;
						}
						{
							oldNimErrFin27_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3237(x_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
							*nimErr_ = oldNimErrFin27_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					} LA26: ;
				}
			} LA24: ;
			suggestCall__sigmatch_u6138(c_p0, a_1, n_p1, (&outputs_1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			{
				LA17_:;
			}
			{
				oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3237(x_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3237(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin17_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA13_;
LA15_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* x_3;
			if (!((*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2) || (*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3) || (*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)53) || (*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)57) || (*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)56) || (*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)165))) goto LA39_;
			x_3 = NIM_NIL;
			x_3 = safeSemExpr__sigmatch_u7164(c_p0, n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			{
				NIM_BOOL T44_;
				T44_ = (NIM_BOOL)0;
				T44_ = ((*x_3).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1));
				if (T44_) goto LA45_;
				T44_ = ((*x_3).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA45_: ;
				if (!T44_) goto LA46_;
				eqcopy___ast_u3240(&x_3, n_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			}
LA46_: ;
			suggestVar__sigmatch_u6157(c_p0, x_3, (&outputs_1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			{
				LA41_:;
			}
			{
				oldNimErrFin41_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3237(x_3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin41_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA13_;
LA39_: ;
LA13_: ;
	}
	goto LA6_;
LA11_: ;
LA6_: ;
	(*c_p0).compilesContextId -= ((NI)1);
	{
		NIM_BOOL T52_;
		NI T53_;
		T52_ = (NIM_BOOL)0;
		T53_ = outputs_1.len;
		T52_ = (((NI)0) < T53_);
		if (!(T52_)) goto LA54_;
		T52_ = ((*(*(*c_p0).graph).config).ideCmd == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1) || (*(*(*c_p0).graph).config).ideCmd == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)2) || (*(*(*c_p0).graph).config).ideCmd == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)3));
LA54_: ;
		if (!T52_) goto LA55_;
		produceOutput__sigmatch_u5690((&outputs_1), (*(*c_p0).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		suggestQuit__msgs_u483();
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA55_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___modulegraphs_u11748(outputs_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestExpr__sigmatch_u7316)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = exactEquals__msgs_u1103((*(*(*c_p0).graph).config).m.trackPos, (*n_p1).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		suggestExprNoCheck__sigmatch_u7200(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA4_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, matches__sigmatch_u4891)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* nOrig_p2, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p3) {
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA marker_1;
NIM_BOOL oldNimErrFin31_;
NIM_BOOL oldNimErrFin43_;
NIM_BOOL oldNimErrFin17_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&marker_1), sizeof(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA));
	{
		if (!((*m_p3).magic == ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)5) || (*m_p3).magic == ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)6))) goto LA4_;
		(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)1);
		eqcopy___ast_u3240(&(*m_p3).call, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___pureZcollectionsZintsets_u230((&marker_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	{
		if (!((*m_p3).state == ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2))) goto LA8_;
		eqdestroy___pureZcollectionsZintsets_u230((&marker_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA8_: ;
	initIntSet__pureZcollectionsZintsets_u598((&marker_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	matchesAux__sigmatch_u4544(c_p0, n_p1, nOrig_p2, m_p3, (&marker_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!((*m_p3).state == ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2))) goto LA12_;
		eqdestroy___pureZcollectionsZintsets_u230((&marker_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA12_: ;
	{
		NI f_1;
		NI colontmp_;
		NI i_1;
		f_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_u3175((*(*m_p3).callee).n);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		i_1 = ((NI)1);
		{
			while (1) {
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* formal_1;
				if (!(i_1 < colontmp_)) goto LA16;
				formal_1 = NIM_NIL;
				f_1 = i_1;
				eqcopy___ast_u4561(&formal_1, (*(*(*(*m_p3).callee).n)._kind_6.sons.p->data[f_1])._kind_4.sym);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
				{
					NIM_BOOL T20_;
					T20_ = (NIM_BOOL)0;
					T20_ = containsOrIncl__astyaml_u223((&marker_1), (*formal_1).position);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					if (!!(T20_)) goto LA21_;
					{
						if (!((*formal_1).ast == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA25_;
						{
							tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw colontmpD_;
							tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw colontmpD__2;
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* container_1;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__4;
							tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw cnKind_1;
							if (!((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48))) goto LA29_;
							colontmpD_ = (tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)0;
							colontmpD__2 = (tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)0;
							container_1 = NIM_NIL;
							colontmpD__3 = NIM_NIL;
							colontmpD__4 = NIM_NIL;
							{
								NIM_BOOL T34_;
								T34_ = (NIM_BOOL)0;
								T34_ = ((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48));
								if (!(T34_)) goto LA35_;
								T34_ = ((*(*(*formal_1).typ).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6));
LA35_: ;
								if (!T34_) goto LA36_;
								colontmpD_ = ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152);
								cnKind_1 = colontmpD_;
							}
							goto LA32_;
LA36_: ;
							{
								colontmpD__2 = ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)41);
								cnKind_1 = colontmpD__2;
							}
LA32_: ;
							colontmpD__3 = arrayConstr__sigmatch_u4491(c_p0, (*n_p1).info);
							if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
							container_1 = newNodeIT__ast_u4097(cnKind_1, (*n_p1).info, colontmpD__3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
							colontmpD__4 = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), (*formal_1).typ, container_1, (&(*m_p3)), c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
							setSon__sigmatch_u4425((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), colontmpD__4);
							if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
							{
								LA31_:;
							}
							{
								oldNimErrFin31_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3237(colontmpD__4);
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								eqdestroy___ast_u3363(colontmpD__3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								eqdestroy___ast_u3237(container_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								*nimErr_ = oldNimErrFin31_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						}
						goto LA27_;
LA29_: ;
						{
							(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
							(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)5);
							eqsink___ast_u4567(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
							eqwasMoved___ast_u4555(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
							eqdestroy___ast_u4558(formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							goto LA14;
						}
LA27_: ;
					}
					goto LA23_;
LA25_: ;
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* defaultValue_1;
						defaultValue_1 = NIM_NIL;
						{
							NimStringV2 colontmpD__5;
							NimStringV2 colontmpD__6;
							NimStringV2 T49_;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T55_;
							if (!((*(*formal_1).ast).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1))) goto LA46_;
							colontmpD__5.len = 0; colontmpD__5.p = NIM_NIL;
							colontmpD__6.len = 0; colontmpD__6.p = NIM_NIL;
							T49_.len = 0; T49_.p = NIM_NIL;
							{
								if (!!(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA52_;
								eqcopy___system_u2630((&colontmpD__5), (*(*(*m_p3).calleeSym).name).s);
								T49_ = colontmpD__5;
							}
							goto LA50_;
LA52_: ;
							{
								colontmpD__6 = TM__EV5hHJmjIY9cla9b9be7fSVJQ_131;
								T49_ = colontmpD__6;
							}
LA50_: ;
							pushInfoContext__msgs_u569((*(*c_p0).graph).config, (*(*m_p3).call).info, T49_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
							typeMismatch__types_u4017((*(*c_p0).graph).config, (*(*formal_1).ast).info, (*formal_1).typ, (*(*formal_1).ast).typField, (*formal_1).ast);
							if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
							popInfoContext__msgs_u593((*(*c_p0).graph).config);
							if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
							T55_ = NIM_NIL;
							T55_ = errorType__semdata_u4909(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T55_); goto LA48_;}
							eqsink___ast_u3372(&(*(*formal_1).ast).typField, T55_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
							{
								LA48_:;
							}
							{
								eqdestroy___system_u2627(colontmpD__6);
								eqdestroy___system_u2627(colontmpD__5);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
						}
LA46_: ;
						{
							if (!(((*(*formal_1).ast).flags &((NU32)1<<((NU)((((tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw)19)))&31U)))!=0)) goto LA60_;
							(*(*m_p3).call).flags |= ((NU32)1)<<(((((tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw)19))) & 31);
						}
LA60_: ;
						defaultValue_1 = copyTree__ast_u6862((*formal_1).ast);
						if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
						{
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T66_;
							if (!((*defaultValue_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23))) goto LA64_;
							T66_ = NIM_NIL;
							T66_ = implicitConv__sigmatch_u3593(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), (*formal_1).typ, defaultValue_1, (&(*m_p3)), c_p0);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T66_); goto LA43_;}
							eqsink___ast_u3246(&defaultValue_1, T66_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
						}
LA64_: ;
						{
							tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A T69_;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* existing_1;
							T69_ = 0;
							if (!!(((100663296 & (*(*formal_1).typ).flags) == T69_))) goto LA70_;
							existing_1 = NIM_NIL;
							existing_1 = lookup__layeredtable_u1015((*m_p3).bindings, (*(*formal_1).typ).itemId);
							if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
							{
								NIM_BOOL T74_;
								T74_ = (NIM_BOOL)0;
								T74_ = (existing_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
								if (T74_) goto LA75_;
								T74_ = ((*existing_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8));
LA75_: ;
								if (!T74_) goto LA76_;
								put__sigmatch_u246(m_p3, (*formal_1).typ, (*defaultValue_1).typField);
								if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
							}
LA76_: ;
							eqdestroy___ast_u3363(existing_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
						}
LA70_: ;
						(*defaultValue_1).flags |= ((NU32)1)<<(((((tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw)18))) & 31);
						setSon__sigmatch_u4425((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), defaultValue_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
						{
							LA43_:;
						}
						{
							oldNimErrFin43_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3237(defaultValue_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
							*nimErr_ = oldNimErrFin43_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					}
LA23_: ;
				}
LA21_: ;
				i_1 += ((NI)1);
				{
					LA17_:;
				}
				{
					oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u4558(formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin17_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			} LA16: ;
		}
	} LA14: ;
	{
		if (!((*m_p3).state == ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2))) goto LA84_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** t_1;
			NI i_2;
			NI L_1;
			NI T87_;
			t_1 = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
			i_2 = ((NI)0);
			T87_ = (*m_p3).inferredTypes.len;
			L_1 = T87_;
			{
				while (1) {
					if (!(i_2 < L_1)) goto LA89;
					t_1 = &(*m_p3).inferredTypes.p->data[i_2];
					{
						NI T92_;
						T92_ = (NI)0;
						T92_ = len__ast_u5481((*t_1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						if (!(((NI)1) < T92_)) goto LA93_;
						newSons__ast_u6094((*t_1), ((NI)1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
LA93_: ;
					i_2 += ((NI)1);
				} LA89: ;
			}
		}
	}
LA84_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___pureZcollectionsZintsets_u230((&marker_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, argTypeToString__sigmatch_u595)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* arg_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	{
		if (!((*arg_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)56) || (*arg_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)57))) goto LA3_;
		result = typeToString__types_u54((*(*arg_p0)._kind_6.sons.p->data[((NI)0)]).typField, prefer_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_u3175(arg_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)1);
			{
				while (1) {
					NimStringV2 colontmpD_;
					if (!(i_2 < colontmp_)) goto LA7;
					colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
					i_1 = i_2;
					prepareAdd((&result), 3);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_136);
					colontmpD_ = typeToString__types_u54((*(*arg_p0)._kind_6.sons.p->data[i_1]).typField, prefer_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
					prepareAdd((&result), colontmpD_.len + 0);
appendString((&result), colontmpD_);
					i_2 += ((NI)1);
					{
						LA8_:;
					}
					{
						eqdestroy___system_u2627(colontmpD_);
					}
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA7: ;
			}
		}
	}
	goto LA1_;
LA3_: ;
	{
		if (!((*arg_p0).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA12_;
		result = TM__EV5hHJmjIY9cla9b9be7fSVJQ_138;
	}
	goto LA1_;
LA12_: ;
	{
		result = typeToString__types_u54((*arg_p0).typField, prefer_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, describeArgs__sigmatch_u674)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, NI startIdx_p2, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p3) {
	NimStringV2 result;
NIM_BOOL oldNimErrFin4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = TM__EV5hHJmjIY9cla9b9be7fSVJQ_132;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_u3175(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = startIdx_p2;
		{
			while (1) {
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argX60gensym90__1;
				NimStringV2 colontmpD_;
				if (!(i_2 < colontmp_)) goto LA3;
				argX60gensym90__1 = NIM_NIL;
				colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
				i_1 = i_2;
				eqcopy___ast_u3240(&argX60gensym90__1, (*n_p1)._kind_6.sons.p->data[i_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
				{
					NimStringV2 colontmpD__2;
					tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg T10_;
					if (!((*(*n_p1)._kind_6.sons.p->data[i_1]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)33))) goto LA7_;
					colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
					T10_ = 0;
					colontmpD__2 = renderTree__renderer_u59((*(*n_p1)._kind_6.sons.p->data[i_1])._kind_6.sons.p->data[((NI)0)], T10_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					prepareAdd((&result), colontmpD__2.len + 0);
appendString((&result), colontmpD__2);
					prepareAdd((&result), 2);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_134);
					{
						NIM_BOOL T13_;
						tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg T17_;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T18_;
						T13_ = (NIM_BOOL)0;
						T13_ = ((*argX60gensym90__1).typField == 0);
						if (!(T13_)) goto LA14_;
						T13_ = !(((*argX60gensym90__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)115) || (*argX60gensym90__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)52)));
LA14_: ;
						if (!T13_) goto LA15_;
						T17_ = 0;
						T18_ = NIM_NIL;
						T18_ = (*c_p0).semTryExpr(c_p0, (*(*n_p1)._kind_6.sons.p->data[i_1])._kind_6.sons.p->data[((NI)1)], T17_);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T18_); goto LA9_;}
						eqsink___ast_u3246(&argX60gensym90__1, T18_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						{
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T23_;
							if (!(argX60gensym90__1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA21_;
							eqcopy___ast_u3240(&argX60gensym90__1, (*(*n_p1)._kind_6.sons.p->data[i_1])._kind_6.sons.p->data[((NI)1)]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
							T23_ = NIM_NIL;
							T23_ = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T23_); goto LA9_;}
							eqsink___ast_u3372(&(*argX60gensym90__1).typField, T23_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						}
						goto LA19_;
LA21_: ;
						{
							{
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T29_;
								if (!((*argX60gensym90__1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA27_;
								T29_ = NIM_NIL;
								T29_ = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T29_); goto LA9_;}
								eqsink___ast_u3372(&(*argX60gensym90__1).typField, T29_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
							}
LA27_: ;
							eqcopy___ast_u3366(&(*(*n_p1)._kind_6.sons.p->data[i_1]).typField, (*argX60gensym90__1).typField);
							if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
							eqcopy___ast_u3240(&(*(*n_p1)._kind_6.sons.p->data[i_1])._kind_6.sons.p->data[((NI)1)], argX60gensym90__1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						}
LA19_: ;
					}
LA15_: ;
					{
						LA9_:;
					}
					{
						eqdestroy___system_u2627(colontmpD__2);
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
				}
				goto LA5_;
LA7_: ;
				{
					{
						NIM_BOOL T35_;
						tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg T39_;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T40_;
						T35_ = (NIM_BOOL)0;
						T35_ = ((*argX60gensym90__1).typField == 0);
						if (!(T35_)) goto LA36_;
						T35_ = !(((*argX60gensym90__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)115) || (*argX60gensym90__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)52) || (*argX60gensym90__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)88) || (*argX60gensym90__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)85) || (*argX60gensym90__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)86) || (*argX60gensym90__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)87)));
LA36_: ;
						if (!T35_) goto LA37_;
						T39_ = 0;
						T40_ = NIM_NIL;
						T40_ = (*c_p0).semTryExpr(c_p0, (*n_p1)._kind_6.sons.p->data[i_1], T39_);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T40_); goto LA4_;}
						eqsink___ast_u3246(&argX60gensym90__1, T40_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
						{
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T45_;
							if (!(argX60gensym90__1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA43_;
							eqcopy___ast_u3240(&argX60gensym90__1, (*n_p1)._kind_6.sons.p->data[i_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
							T45_ = NIM_NIL;
							T45_ = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T45_); goto LA4_;}
							eqsink___ast_u3372(&(*argX60gensym90__1).typField, T45_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
						}
						goto LA41_;
LA43_: ;
						{
							{
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T51_;
								if (!((*argX60gensym90__1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA49_;
								T51_ = NIM_NIL;
								T51_ = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T51_); goto LA4_;}
								eqsink___ast_u3372(&(*argX60gensym90__1).typField, T51_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
							}
LA49_: ;
							eqcopy___ast_u3240(&(*n_p1)._kind_6.sons.p->data[i_1], argX60gensym90__1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
						}
LA41_: ;
					}
LA37_: ;
				}
LA5_: ;
				{
					NIM_BOOL T54_;
					T54_ = (NIM_BOOL)0;
					T54_ = !(((*argX60gensym90__1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
					if (!(T54_)) goto LA55_;
					T54_ = ((*(*argX60gensym90__1).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50));
LA55_: ;
					if (!T54_) goto LA56_;
					eqdestroy___system_u2627(colontmpD_);
					eqdestroy___ast_u3237(argX60gensym90__1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA56_: ;
				colontmpD_ = argTypeToString__sigmatch_u595(argX60gensym90__1, prefer_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
				prepareAdd((&result), colontmpD_.len + 0);
appendString((&result), colontmpD_);
				{
					NI T60_;
					T60_ = (NI)0;
					T60_ = len__ast_u3175(n_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					if (!!((i_1 == (NI)(T60_ - ((NI)1))))) goto LA61_;
					prepareAdd((&result), 2);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_139);
				}
LA61_: ;
				i_2 += ((NI)1);
				{
					LA4_:;
				}
				{
					oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___system_u2627(colontmpD_);
					eqdestroy___ast_u3237(argX60gensym90__1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					*nimErr_ = oldNimErrFin4_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___sigmatch_u169)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* dest_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* src_p1) {
	tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* colontmp_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmp_ = (*dest_p0).c;
	(*dest_p0).c = (*src_p1).c;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicDyn(colontmp_);
		if (!T3_) goto LA4_;
		nimDestroyAndDispose(colontmp_);
	}
LA4_: ;
	(*dest_p0).exactMatches = (*src_p1).exactMatches;
	(*dest_p0).genericMatches = (*src_p1).genericMatches;
	(*dest_p0).subtypeMatches = (*src_p1).subtypeMatches;
	(*dest_p0).intConvMatches = (*src_p1).intConvMatches;
	(*dest_p0).convMatches = (*src_p1).convMatches;
	(*dest_p0).state = (*src_p1).state;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = nimDecRefIsLastDyn((*dest_p0).callee);
		if (!T8_) goto LA9_;
		eqdestroy___ast_u3273((&(*(*dest_p0).callee)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).callee, ((NI)8));
	}
LA9_: ;
	(*dest_p0).callee = (*src_p1).callee;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = nimDecRefIsLastDyn((*dest_p0).calleeSym);
		if (!T13_) goto LA14_;
		eqdestroy___ast_u3454((&(*(*dest_p0).calleeSym)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).calleeSym, ((NI)8));
	}
LA14_: ;
	(*dest_p0).calleeSym = (*src_p1).calleeSym;
	(*dest_p0).calleeScope = (*src_p1).calleeScope;
	{
		NIM_BOOL T18_;
		T18_ = (NIM_BOOL)0;
		T18_ = nimDecRefIsLastDyn((*dest_p0).call);
		if (!T18_) goto LA19_;
		eqdestroy___ast_u3255((&(*(*dest_p0).call)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).call, ((NI)8));
	}
LA19_: ;
	(*dest_p0).call = (*src_p1).call;
	if ((*dest_p0).bindings.topLayer.data.p != (*src_p1).bindings.topLayer.data.p) {	eqdestroy___layeredtable_u184((*dest_p0).bindings.topLayer.data);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
(*dest_p0).bindings.topLayer.data.len = (*src_p1).bindings.topLayer.data.len; (*dest_p0).bindings.topLayer.data.p = (*src_p1).bindings.topLayer.data.p;
	(*dest_p0).bindings.topLayer.counter = (*src_p1).bindings.topLayer.counter;
	{
		NIM_BOOL T23_;
		T23_ = (NIM_BOOL)0;
		T23_ = nimDecRefIsLastDyn((*dest_p0).bindings.nextLayer);
		if (!T23_) goto LA24_;
		eqdestroy___layeredtable_u250((*(*dest_p0).bindings.nextLayer));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).bindings.nextLayer, ((NI)4));
	}
LA24_: ;
	(*dest_p0).bindings.nextLayer = (*src_p1).bindings.nextLayer;
	(*dest_p0).bindings.previousLen = (*src_p1).bindings.previousLen;
	(*dest_p0).magic = (*src_p1).magic;
	(*dest_p0).baseTypeMatch = (*src_p1).baseTypeMatch;
	(*dest_p0).matchedErrorType = (*src_p1).matchedErrorType;
	(*dest_p0).genericConverter = (*src_p1).genericConverter;
	(*dest_p0).coerceDistincts = (*src_p1).coerceDistincts;
	(*dest_p0).typedescMatched = (*src_p1).typedescMatched;
	(*dest_p0).isNoCall = (*src_p1).isNoCall;
	if ((*dest_p0).inferredTypes.p != (*src_p1).inferredTypes.p) {	eqdestroy___ast_u3296((*dest_p0).inferredTypes);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
(*dest_p0).inferredTypes.len = (*src_p1).inferredTypes.len; (*dest_p0).inferredTypes.p = (*src_p1).inferredTypes.p;
	if ((*dest_p0).diagnostics.p != (*src_p1).diagnostics.p) {	eqdestroy___system_u3809((*dest_p0).diagnostics);
	}
(*dest_p0).diagnostics.len = (*src_p1).diagnostics.len; (*dest_p0).diagnostics.p = (*src_p1).diagnostics.p;
	(*dest_p0).inheritancePenalty = (*src_p1).inheritancePenalty;
	(*dest_p0).firstMismatch.kind = (*src_p1).firstMismatch.kind;
	(*dest_p0).firstMismatch.arg = (*src_p1).firstMismatch.arg;
	{
		NIM_BOOL T28_;
		T28_ = (NIM_BOOL)0;
		T28_ = nimDecRefIsLastDyn((*dest_p0).firstMismatch.formal);
		if (!T28_) goto LA29_;
		eqdestroy___ast_u3454((&(*(*dest_p0).firstMismatch.formal)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).firstMismatch.formal, ((NI)8));
	}
LA29_: ;
	(*dest_p0).firstMismatch.formal = (*src_p1).firstMismatch.formal;
	(*dest_p0).diagnosticsEnabled = (*src_p1).diagnosticsEnabled;
	if ((*dest_p0).newlyTypedOperands.p != (*src_p1).newlyTypedOperands.p) {	eqdestroy___pureZosproc_u450((*dest_p0).newlyTypedOperands);
	}
(*dest_p0).newlyTypedOperands.len = (*src_p1).newlyTypedOperands.len; (*dest_p0).newlyTypedOperands.p = (*src_p1).newlyTypedOperands.p;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCheckPointResult__79bKWAKrLRHiUZ6lV3lObBQ, inCheckpoint__sigmatch_u6352)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA current_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA trackPos_p1) {
	tyEnum_TCheckPointResult__79bKWAKrLRHiUZ6lV3lObBQ result;
{	{
		if (!(current_p0.fileIndex == trackPos_p1.fileIndex)) goto LA3_;
		result = ((tyEnum_TCheckPointResult__79bKWAKrLRHiUZ6lV3lObBQ)0);
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = (current_p0.line == trackPos_p1.line);
			if (!(T7_)) goto LA8_;
			T7_ = (((NI16)(current_p0.col - trackPos_p1.col) > 0? ((NI16)(current_p0.col - trackPos_p1.col)) : -((NI16)(current_p0.col - trackPos_p1.col))) < ((NI16)4));
LA8_: ;
			if (!T7_) goto LA9_;
			result = ((tyEnum_TCheckPointResult__79bKWAKrLRHiUZ6lV3lObBQ)2);
			goto BeforeRet_;
		}
LA9_: ;
		{
			if (!((NU16)(trackPos_p1.line) <= (NU16)(current_p0.line))) goto LA13_;
			result = ((tyEnum_TCheckPointResult__79bKWAKrLRHiUZ6lV3lObBQ)1);
			goto BeforeRet_;
		}
LA13_: ;
	}
	goto LA1_;
LA3_: ;
	{
		result = ((tyEnum_TCheckPointResult__79bKWAKrLRHiUZ6lV3lObBQ)0);
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___sigmatch_u130)(tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg* dest_p0) {
	(*dest_p0).kind = 0;
	(*dest_p0).arg = 0;
	(*dest_p0).formal = 0;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, describeArg__sigmatch_u619)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, NI i_p2, NI startIdx_p3, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p4) {
	NimStringV2 result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argX60gensym60__1;
	NimStringV2 colontmpD_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	argX60gensym60__1 = NIM_NIL;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	result = TM__EV5hHJmjIY9cla9b9be7fSVJQ_140;
	eqcopy___ast_u3240(&argX60gensym60__1, (*n_p1)._kind_6.sons.p->data[i_p2]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NimStringV2 colontmpD__2;
		tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg T7_;
		if (!((*(*n_p1)._kind_6.sons.p->data[i_p2]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)33))) goto LA4_;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		T7_ = 0;
		colontmpD__2 = renderTree__renderer_u59((*(*n_p1)._kind_6.sons.p->data[i_p2])._kind_6.sons.p->data[((NI)0)], T7_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		prepareAdd((&result), colontmpD__2.len + 0);
appendString((&result), colontmpD__2);
		prepareAdd((&result), 2);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_141);
		{
			NIM_BOOL T10_;
			tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg T14_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T15_;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*argX60gensym60__1).typField == 0);
			if (!(T10_)) goto LA11_;
			T10_ = !(((*argX60gensym60__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)115) || (*argX60gensym60__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)52)));
LA11_: ;
			if (!T10_) goto LA12_;
			T14_ = 0;
			T15_ = NIM_NIL;
			T15_ = (*c_p0).semTryExpr(c_p0, (*(*n_p1)._kind_6.sons.p->data[i_p2])._kind_6.sons.p->data[((NI)1)], T14_);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T15_); goto LA6_;}
			eqsink___ast_u3246(&argX60gensym60__1, T15_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T20_;
				if (!(argX60gensym60__1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA18_;
				eqcopy___ast_u3240(&argX60gensym60__1, (*(*n_p1)._kind_6.sons.p->data[i_p2])._kind_6.sons.p->data[((NI)1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				T20_ = NIM_NIL;
				T20_ = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T20_); goto LA6_;}
				eqsink___ast_u3372(&(*argX60gensym60__1).typField, T20_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			}
			goto LA16_;
LA18_: ;
			{
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T26_;
					if (!((*argX60gensym60__1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA24_;
					T26_ = NIM_NIL;
					T26_ = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T26_); goto LA6_;}
					eqsink___ast_u3372(&(*argX60gensym60__1).typField, T26_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				}
LA24_: ;
				eqcopy___ast_u3366(&(*(*n_p1)._kind_6.sons.p->data[i_p2]).typField, (*argX60gensym60__1).typField);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				eqcopy___ast_u3240(&(*(*n_p1)._kind_6.sons.p->data[i_p2])._kind_6.sons.p->data[((NI)1)], argX60gensym60__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			}
LA16_: ;
		}
LA12_: ;
		{
			LA6_:;
		}
		{
			eqdestroy___system_u2627(colontmpD__2);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA2_;
LA4_: ;
	{
		{
			NIM_BOOL T32_;
			tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg T36_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T37_;
			T32_ = (NIM_BOOL)0;
			T32_ = ((*argX60gensym60__1).typField == 0);
			if (!(T32_)) goto LA33_;
			T32_ = !(((*argX60gensym60__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)115) || (*argX60gensym60__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)52) || (*argX60gensym60__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)88) || (*argX60gensym60__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)85) || (*argX60gensym60__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)86) || (*argX60gensym60__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)87)));
LA33_: ;
			if (!T32_) goto LA34_;
			T36_ = 0;
			T37_ = NIM_NIL;
			T37_ = (*c_p0).semTryExpr(c_p0, (*n_p1)._kind_6.sons.p->data[i_p2], T36_);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T37_); goto LA1_;}
			eqsink___ast_u3246(&argX60gensym60__1, T37_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T42_;
				if (!(argX60gensym60__1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA40_;
				eqcopy___ast_u3240(&argX60gensym60__1, (*n_p1)._kind_6.sons.p->data[i_p2]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				T42_ = NIM_NIL;
				T42_ = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T42_); goto LA1_;}
				eqsink___ast_u3372(&(*argX60gensym60__1).typField, T42_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			goto LA38_;
LA40_: ;
			{
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T48_;
					if (!((*argX60gensym60__1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA46_;
					T48_ = NIM_NIL;
					T48_ = newTypeS__semdata_u4713(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T48_); goto LA1_;}
					eqsink___ast_u3372(&(*argX60gensym60__1).typField, T48_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA46_: ;
				eqcopy___ast_u3240(&(*n_p1)._kind_6.sons.p->data[i_p2], argX60gensym60__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA38_: ;
		}
LA34_: ;
	}
LA2_: ;
	{
		NIM_BOOL T51_;
		T51_ = (NIM_BOOL)0;
		T51_ = !(((*argX60gensym60__1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T51_)) goto LA52_;
		T51_ = ((*(*argX60gensym60__1).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50));
LA52_: ;
		if (!T51_) goto LA53_;
		eqdestroy___system_u2627(colontmpD_);
		eqdestroy___ast_u3237(argX60gensym60__1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA53_: ;
	colontmpD_ = argTypeToString__sigmatch_u595(argX60gensym60__1, prefer_p4);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	prepareAdd((&result), colontmpD_.len + 0);
appendString((&result), colontmpD_);
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___system_u2627(colontmpD_);
		eqdestroy___ast_u3237(argX60gensym60__1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sem_u3365)(tySequence__9bnh9aVmYtKU19btQYqjGktpw dest_p0) {
	NI colontmp_;
	colontmp_ = ((NI)0);
	{
		while (1) {
			NI T3_;
			T3_ = dest_p0.len;
			if (!(colontmp_ < T3_)) goto LA2;
			{
				NIM_BOOL T6_;
				T6_ = (NIM_BOOL)0;
				T6_ = nimDecRefIsLastDyn(dest_p0.p->data[colontmp_].sym);
				if (!T6_) goto LA7_;
				eqdestroy___ast_u3454((&(*dest_p0.p->data[colontmp_].sym)));
				nimRawDispose(dest_p0.p->data[colontmp_].sym, ((NI)8));
			}
LA7_: ;
			{
				NIM_BOOL T11_;
				T11_ = (NIM_BOOL)0;
				T11_ = nimDecRefIsLastDyn(dest_p0.p->data[colontmp_].firstMismatch.formal);
				if (!T11_) goto LA12_;
				eqdestroy___ast_u3454((&(*dest_p0.p->data[colontmp_].firstMismatch.formal)));
				nimRawDispose(dest_p0.p->data[colontmp_].firstMismatch.formal, ((NI)8));
			}
LA12_: ;
			eqdestroy___system_u3809(dest_p0.p->data[colontmp_].diagnostics);
			colontmp_ += ((NI)1);
		} LA2: ;
	}
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyObject_CandidateError__f049c8Bs49cqj6FTSrUbSmlw));
}
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___sigmatch_u157)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* dest_p0) {
	(*dest_p0).c = 0;
	(*dest_p0).exactMatches = 0;
	(*dest_p0).genericMatches = 0;
	(*dest_p0).subtypeMatches = 0;
	(*dest_p0).intConvMatches = 0;
	(*dest_p0).convMatches = 0;
	(*dest_p0).state = 0;
	(*dest_p0).callee = 0;
	(*dest_p0).calleeSym = 0;
	(*dest_p0).calleeScope = 0;
	(*dest_p0).call = 0;
	(*dest_p0).bindings.topLayer.data.len = 0; (*dest_p0).bindings.topLayer.data.p = NIM_NIL;
	(*dest_p0).bindings.topLayer.counter = 0;
	(*dest_p0).bindings.nextLayer = 0;
	(*dest_p0).bindings.previousLen = 0;
	(*dest_p0).magic = 0;
	(*dest_p0).baseTypeMatch = 0;
	(*dest_p0).matchedErrorType = 0;
	(*dest_p0).genericConverter = 0;
	(*dest_p0).coerceDistincts = 0;
	(*dest_p0).typedescMatched = 0;
	(*dest_p0).isNoCall = 0;
	(*dest_p0).inferredTypes.len = 0; (*dest_p0).inferredTypes.p = NIM_NIL;
	(*dest_p0).diagnostics.len = 0; (*dest_p0).diagnostics.p = NIM_NIL;
	(*dest_p0).inheritancePenalty = 0;
	(*dest_p0).firstMismatch.kind = 0;
	(*dest_p0).firstMismatch.arg = 0;
	(*dest_p0).firstMismatch.formal = 0;
	(*dest_p0).diagnosticsEnabled = 0;
	(*dest_p0).newlyTypedOperands.len = 0; (*dest_p0).newlyTypedOperands.p = NIM_NIL;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, cmpTypes__sigmatch_u3573)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
	tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g m_1;
	tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T2_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	nimZeroMem((void*)(&m_1), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
	newCandidate__sigmatch_u457(c_p0, f_p1, (&m_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_ = 0;
	result = typeRel__sigmatch_u250((&m_1), f_p1, a_p2, T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___sigmatch_u160((&m_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestStmt__sigmatch_u7342)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	suggestExpr__sigmatch_u7316(c_p0, n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, instTypeBoundOp__sigmatch_u5108)(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) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* result;
	tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g m_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	nimZeroMem((void*)(&m_1), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
	f_1 = NIM_NIL;
	newCandidate__sigmatch_u457(c_p0, (*dc_p1).typ, (&m_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NI T4_;
		NimStringV2 colontmpD_;
		NimStringV2 T8_;
		T4_ = (NI)0;
		T4_ = len__ast_u5481((*dc_p1).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!(T4_ <= col_p5)) goto LA5_;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		T8_.len = 0; T8_.p = NIM_NIL;
		T8_ = rawNewString((*(*dc_p1).name).s.len + 22);
appendString((&T8_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_143);
appendString((&T8_), (*(*dc_p1).name).s);
appendString((&T8_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_144);
		colontmpD_ = T8_;
		liMessage__msgs_u1223((*(*c_p0).graph).config, info_p3, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD_, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_145, NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		result = ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL);
		eqdestroy___system_u2627(colontmpD_);
		eqdestroy___ast_u3363(f_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u160((&m_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA7_:;
		}
		{
			eqdestroy___system_u2627(colontmpD_);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA5_: ;
	eqcopy___ast_u3366(&f_1, (*(*dc_p1).typ).sons.p->data[col_p5]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!(op_p4 == ((tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q)6))) goto LA13_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T19_;
			if (!((*f_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*f_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21))) goto LA17_;
			T19_ = NIM_NIL;
			T19_ = elementType__ast_u5310(f_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T19_); goto LA1_;}
			eqsink___ast_u3372(&f_1, T19_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA17_: ;
	}
	goto LA11_;
LA13_: ;
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T25_;
			if (!((*f_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23))) goto LA23_;
			T25_ = NIM_NIL;
			T25_ = elementType__ast_u5310(f_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3363(T25_); goto LA1_;}
			eqsink___ast_u3372(&f_1, T25_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA23_: ;
	}
LA11_: ;
	{
		tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T28_;
		tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T29_;
		NimStringV2 colontmpD__2;
		NimStringV2 T33_;
		T28_ = 0;
		T29_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
		T29_ = typeRel__sigmatch_u250((&m_1), f_1, t_p2, T28_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!(T29_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA30_;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		result = ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL);
		T33_.len = 0; T33_.p = NIM_NIL;
		T33_ = rawNewString((*(*dc_p1).name).s.len + 22);
appendString((&T33_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_146);
appendString((&T33_), (*(*dc_p1).name).s);
appendString((&T33_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_147);
		colontmpD__2 = T33_;
		liMessage__msgs_u1223((*(*c_p0).graph).config, info_p3, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__2, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_148, NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		{
			LA32_:;
		}
		{
			eqdestroy___system_u2627(colontmpD__2);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA26_;
LA30_: ;
	{
		result = (*c_p0).semGenerateInstance.ClE_0? (*c_p0).semGenerateInstance.ClP_0(c_p0, dc_p1, m_1.bindings, info_p3, (*c_p0).semGenerateInstance.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_149)((*c_p0).semGenerateInstance.ClP_0))(c_p0, dc_p1, m_1.bindings, info_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			if (!(op_p4 == ((tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q)6))) goto LA39_;
		}
LA39_: ;
	}
LA26_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3363(f_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u160((&m_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestSentinel__sigmatch_u7404)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0) {
	tySequence__nSO1ltijM4vhc0UrrXKEqA outputs_1;
NIM_BOOL oldNimErrFin25_;
NIM_BOOL oldNimErrFin17_;
NIM_BOOL oldNimErrFin59_;
NIM_BOOL oldNimErrFin84_;
NIM_BOOL oldNimErrFin53_;
NIM_BOOL oldNimErrFin15_;
NIM_BOOL oldNimErrFin13_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	outputs_1.len = 0; outputs_1.p = NIM_NIL;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*(*(*c_p0).graph).config).ideCmd == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1)));
		if (T4_) goto LA5_;
		T4_ = !((((NI32) ((*(*c_p0).module).position)) == (*(*(*c_p0).graph).config).m.trackPos.fileIndex));
LA5_: ;
		if (!T4_) goto LA6_;
		eqdestroy___modulegraphs_u11748(outputs_1);
		goto BeforeRet_;
	}
LA6_: ;
	{
		if (!(((NI)0) < (*c_p0).compilesContextId)) goto LA10_;
		eqdestroy___modulegraphs_u11748(outputs_1);
		goto BeforeRet_;
	}
LA10_: ;
	(*c_p0).compilesContextId += ((NI)1);
	outputs_1.len = 0; outputs_1.p = (tySequence__nSO1ltijM4vhc0UrrXKEqA_Content*) newSeqPayload(0, sizeof(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA*), NIM_ALIGNOF(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA*));
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* it_1;
		tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg seen_1;
		NI scopeN_1;
		NIM_BOOL isLocal_1;
		it_1 = NIM_NIL;
		nimZeroMem((void*)(&seen_1), sizeof(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg));
		scopeN_1 = (NI)0;
		isLocal_1 = (NIM_BOOL)0;
		seen_1 = initHashSet__lookups_u798(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
		{
			tyTuple__WIyQ4Cfp4shlBOyEpagHMw res_1;
			NIM_BOOL isLocal_2;
			NI scopeN_2;
			nimZeroMem((void*)(&res_1), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
			isLocal_2 = NIM_TRUE;
			scopeN_2 = ((NI)0);
			{
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_1;
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* current_1;
				scope_1 = NIM_NIL;
				current_1 = NIM_NIL;
				eqcopy___lookups_u74(&current_1, (*c_p0).currentScope);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
				{
					while (1) {
						if (!!((current_1 == ((tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww*) NIM_NIL)))) goto LA19;
						eqcopy___lookups_u74(&scope_1, current_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						{
							if (!(scope_1 == (*c_p0).topLevelScope)) goto LA22_;
							isLocal_2 = NIM_FALSE;
						}
LA22_: ;
						scopeN_2 -= ((NI)1);
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* item_1;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_1;
							tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw it_2;
							item_1 = NIM_NIL;
							s_1 = NIM_NIL;
							item_1 = 0;
							nimZeroMem((void*)(&it_2), sizeof(tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw));
							s_1 = initTabIter__astalgo_u3139((&it_2), (*scope_1).symbols);
							if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
							{
								while (1) {
									tyTuple__WIyQ4Cfp4shlBOyEpagHMw T28_;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_1;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T43_;
									if (!!((s_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA27;
									eqsink___ast_u4567(&item_1, s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
									eqwasMoved___ast_u4555(&s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
									nimZeroMem((void*)(&T28_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
									blitTmp_1 = item_1;
									eqwasMoved___ast_u4555(&item_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
									T28_.Field0 = blitTmp_1;
									T28_.Field1 = scopeN_2;
									T28_.Field2 = isLocal_2;
									eqsink___lookups_u768((&res_1), T28_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
									{
										tyTuple__FFspgHRWev9aDuj0fEpj9bUw T31_;
										NIM_BOOL T32_;
										tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_1;
										T31_.Field0 = (*res_1.Field0).info;
										T31_.Field1 = (*(*res_1.Field0).name).id;
										T32_ = (NIM_BOOL)0;
										T32_ = containsOrIncl__lookups_u984((&seen_1), T31_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
										if (!!(T32_)) goto LA33_;
										eqsink___ast_u4567(&it_1, res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
										eqwasMoved___ast_u4555(&res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
										scopeN_1 = res_1.Field1;
										isLocal_1 = res_1.Field2;
										pm_1 = 0;
										{
											NIM_BOOL T37_;
											tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA T40_;
											NI T41_;
											tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T42_;
											T37_ = (NIM_BOOL)0;
											T37_ = filterSymNoOpr__sigmatch_u5946(it_1, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL), (&pm_1));
											if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
											if (!T37_) goto LA38_;
											T40_ = newLineInfo__msgs_u419((*(*(*c_p0).graph).config).m.trackPos.fileIndex, ((NI)0), ((NI)-1));
											if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
											T41_ = (NI)0;
											T41_ = getQuality__sigmatch_u6023(it_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
											T42_ = NIM_NIL;
											T42_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_1, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), T40_, T41_, ((tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g)0), NIM_FALSE, scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
											if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T42_); goto LA25_;}
											add__sigmatch_u6054((&outputs_1), T42_);
										}
LA38_: ;
									}
LA33_: ;
									T43_ = NIM_NIL;
									T43_ = nextIter__astalgo_u3123((&it_2), (*scope_1).symbols);
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T43_); goto LA25_;}
									eqsink___ast_u4567(&s_1, T43_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
								} LA27: ;
							}
							{
								LA25_:;
							}
							{
								oldNimErrFin25_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4558(s_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								eqdestroy___ast_u4558(item_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								*nimErr_ = oldNimErrFin25_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						}
						eqcopy___lookups_u74(&current_1, (*current_1).parent);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					} LA19: ;
				}
				{
					LA17_:;
				}
				{
					oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___lookups_u71(current_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA15_;
					eqdestroy___lookups_u71(scope_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA15_;
					*nimErr_ = oldNimErrFin17_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA15_;
			}
			scopeN_2 -= ((NI)1);
			isLocal_2 = NIM_FALSE;
			{
				tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw* im_1;
				NI i_1;
				NI L_1;
				NI T49_;
				im_1 = (tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw*)0;
				i_1 = ((NI)0);
				T49_ = (*c_p0).imports.len;
				L_1 = T49_;
				{
					while (1) {
						if (!(i_1 < L_1)) goto LA51;
						im_1 = (&(*c_p0).imports.p->data[i_1]);
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_2;
							NIM_BOOL importHidden_1;
							s_2 = NIM_NIL;
							s_2 = 0;
							importHidden_1 = (((*(*im_1).m).options &((NU32)1<<((NU)((((tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ)27)))&31U)))!=0);
							{
								NIM_BOOL T56_;
								tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ rodIt_1;
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* r_1;
								tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* T60_;
								tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* T61_;
								T56_ = (NIM_BOOL)0;
								T56_ = isCachedModule__modulegraphs_u3010((*c_p0).graph, (*im_1).m);
								if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
								if (!T56_) goto LA57_;
								nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
								r_1 = NIM_NIL;
								nimZeroMem((void*)(&rodIt_1), sizeof(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ));
								T60_ = NIM_NIL;
								T60_ = (*(*c_p0).graph).config;
								T61_ = NIM_NIL;
								T61_ = (*(*c_p0).graph).cache;
								r_1 = initRodIterAllSyms__icZic_u21656((&rodIt_1), T60_, T61_, (&(*(*c_p0).graph).packed_0), ((NI32) ((*(*im_1).m).position)), importHidden_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
								{
									while (1) {
										tyTuple__WIyQ4Cfp4shlBOyEpagHMw T64_;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_2;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T79_;
										if (!!((r_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA63;
										eqsink___ast_u4567(&s_2, r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
										eqwasMoved___ast_u4555(&r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
										nimZeroMem((void*)(&T64_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
										blitTmp_2 = s_2;
										eqwasMoved___ast_u4555(&s_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
										T64_.Field0 = blitTmp_2;
										T64_.Field1 = scopeN_2;
										T64_.Field2 = isLocal_2;
										eqsink___lookups_u768((&res_1), T64_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
										{
											tyTuple__FFspgHRWev9aDuj0fEpj9bUw T67_;
											NIM_BOOL T68_;
											tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_2;
											T67_.Field0 = (*res_1.Field0).info;
											T67_.Field1 = (*(*res_1.Field0).name).id;
											T68_ = (NIM_BOOL)0;
											T68_ = containsOrIncl__lookups_u984((&seen_1), T67_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
											if (!!(T68_)) goto LA69_;
											eqsink___ast_u4567(&it_1, res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
											eqwasMoved___ast_u4555(&res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
											scopeN_1 = res_1.Field1;
											isLocal_1 = res_1.Field2;
											pm_2 = 0;
											{
												NIM_BOOL T73_;
												tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA T76_;
												NI T77_;
												tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T78_;
												T73_ = (NIM_BOOL)0;
												T73_ = filterSymNoOpr__sigmatch_u5946(it_1, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL), (&pm_2));
												if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
												if (!T73_) goto LA74_;
												T76_ = newLineInfo__msgs_u419((*(*(*c_p0).graph).config).m.trackPos.fileIndex, ((NI)0), ((NI)-1));
												if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
												T77_ = (NI)0;
												T77_ = getQuality__sigmatch_u6023(it_1);
												if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
												T78_ = NIM_NIL;
												T78_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_1, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), T76_, T77_, ((tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g)0), NIM_FALSE, scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
												if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T78_); goto LA59_;}
												add__sigmatch_u6054((&outputs_1), T78_);
											}
LA74_: ;
										}
LA69_: ;
										T79_ = NIM_NIL;
										T79_ = nextRodIter__icZic_u21992((&rodIt_1), (&(*(*c_p0).graph).packed_0));
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T79_); goto LA59_;}
										eqsink___ast_u4567(&r_1, T79_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
									} LA63: ;
								}
								{
									LA59_:;
								}
								{
									oldNimErrFin59_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4558(r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
									eqdestroy___modulegraphs_u3290((&rodIt_1));
									if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
									*nimErr_ = oldNimErrFin59_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
							}
							goto LA54_;
LA57_: ;
							{
								{
									tySequence__ZCZaCk14bTmSb6LMW9aWPVA colontmp_;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** s_3;
									tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg* retX60gensym20__1;
									NI i_2;
									NI L_2;
									NI T89_;
									colontmp_.len = 0; colontmp_.p = NIM_NIL;
									s_3 = (tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg**)0;
									colontmp_.len = 0; colontmp_.p = NIM_NIL;
									retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*(*im_1).m).position].interf);
									{
										if (!importHidden_1) goto LA87_;
										retX60gensym20__1 = (&(*(*c_p0).graph).ifaces.p->data[(*(*im_1).m).position].interfHidden);
									}
LA87_: ;
									eqcopy___ast_u4835((&colontmp_), (*retX60gensym20__1).data);
									if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
									i_2 = ((NI)0);
									T89_ = colontmp_.len;
									L_2 = T89_;
									{
										while (1) {
											if (!(i_2 < L_2)) goto LA91;
											s_3 = &colontmp_.p->data[i_2];
											{
												tyTuple__WIyQ4Cfp4shlBOyEpagHMw T96_;
												tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* blitTmp_3;
												if (!!(((*s_3) == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA94_;
												eqcopy___ast_u4561(&s_2, (*s_3));
												if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
												nimZeroMem((void*)(&T96_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
												blitTmp_3 = s_2;
												eqwasMoved___ast_u4555(&s_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
												T96_.Field0 = blitTmp_3;
												T96_.Field1 = scopeN_2;
												T96_.Field2 = isLocal_2;
												eqsink___lookups_u768((&res_1), T96_);
												if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
												{
													tyTuple__FFspgHRWev9aDuj0fEpj9bUw T99_;
													NIM_BOOL T100_;
													tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g pm_3;
													T99_.Field0 = (*res_1.Field0).info;
													T99_.Field1 = (*(*res_1.Field0).name).id;
													T100_ = (NIM_BOOL)0;
													T100_ = containsOrIncl__lookups_u984((&seen_1), T99_);
													if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
													if (!!(T100_)) goto LA101_;
													eqsink___ast_u4567(&it_1, res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
													eqwasMoved___ast_u4555(&res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
													scopeN_1 = res_1.Field1;
													isLocal_1 = res_1.Field2;
													pm_3 = 0;
													{
														NIM_BOOL T105_;
														tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA T108_;
														NI T109_;
														tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T110_;
														T105_ = (NIM_BOOL)0;
														T105_ = filterSymNoOpr__sigmatch_u5946(it_1, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL), (&pm_3));
														if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
														if (!T105_) goto LA106_;
														T108_ = newLineInfo__msgs_u419((*(*(*c_p0).graph).config).m.trackPos.fileIndex, ((NI)0), ((NI)-1));
														if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
														T109_ = (NI)0;
														T109_ = getQuality__sigmatch_u6023(it_1);
														if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
														T110_ = NIM_NIL;
														T110_ = symToSuggest__sigmatch_u5357((*c_p0).graph, it_1, isLocal_1, ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1), T108_, T109_, ((tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g)0), NIM_FALSE, scopeN_1, NIM_FALSE, ((NU16)0), ((NI)0), NIM_TRUE);
														if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___modulegraphs_u11892(T110_); goto LA84_;}
														add__sigmatch_u6054((&outputs_1), T110_);
													}
LA106_: ;
												}
LA101_: ;
											}
LA94_: ;
											i_2 += ((NI)1);
										} LA91: ;
									}
									{
										LA84_:;
									}
									{
										oldNimErrFin84_ = *nimErr_; *nimErr_ = NIM_FALSE;
										eqdestroy___ast_u4832(colontmp_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
										*nimErr_ = oldNimErrFin84_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
								}
							}
LA54_: ;
							{
								LA53_:;
							}
							{
								oldNimErrFin53_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4558(s_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA15_;
								*nimErr_ = oldNimErrFin53_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA15_;
						}
						i_1 += ((NI)1);
					} LA51: ;
				}
			}
			{
				LA15_:;
			}
			{
				oldNimErrFin15_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___lookups_u759(res_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
				*nimErr_ = oldNimErrFin15_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
		}
		{
			LA13_:;
		}
		{
			oldNimErrFin13_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___lookups_u947(seen_1);
			eqdestroy___ast_u4558(it_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin13_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	(*c_p0).compilesContextId -= ((NI)1);
	produceOutput__sigmatch_u5690((&outputs_1), (*(*c_p0).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		eqdestroy___modulegraphs_u11748(outputs_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
