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

#include "nimbase.h"
#include <string.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.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__PBlYIBD9bHKBu5FQE5lPn7A tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content tySequence__7lEisrXlQEzwtUKW5pzRCw_Content;
typedef struct tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ;
typedef struct tyObject_Table__79b4rr6WWQqgRr9b4NH4UF9cw tyObject_Table__79b4rr6WWQqgRr9b4NH4UF9cw;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg_Content tySequence__fdmz6VkIf1ewwrssKYqRFg_Content;
typedef struct tyObject_Table__AC9bec2JdoOuC3xQePGWgmA tyObject_Table__AC9bec2JdoOuC3xQePGWgmA;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg_Content tySequence__kxu4GK0onha2t9bo86mdVAg_Content;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA_Content tySequence__48JTohSgTy339bRxHzUD8KA_Content;
typedef struct tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg;
typedef struct tyObject_Table__bHTcQUCehDW9clHfFZXI7lQ tyObject_Table__bHTcQUCehDW9clHfFZXI7lQ;
typedef struct tySequence__fz0REU1l0nYmKHXgMLRrIg tySequence__fz0REU1l0nYmKHXgMLRrIg;
typedef struct tySequence__fz0REU1l0nYmKHXgMLRrIg_Content tySequence__fz0REU1l0nYmKHXgMLRrIg_Content;
typedef struct tyObject_Table__w2vCG1OPnHmNolvQVT168g tyObject_Table__w2vCG1OPnHmNolvQVT168g;
typedef struct tySequence__Ip9aV1IKO2gVdheNOM31DCQ tySequence__Ip9aV1IKO2gVdheNOM31DCQ;
typedef struct tySequence__Ip9aV1IKO2gVdheNOM31DCQ_Content tySequence__Ip9aV1IKO2gVdheNOM31DCQ_Content;
typedef struct tySequence__kHjIdgrpmuSn9cUIIKpSiDg tySequence__kHjIdgrpmuSn9cUIIKpSiDg;
typedef struct tySequence__kHjIdgrpmuSn9cUIIKpSiDg_Content tySequence__kHjIdgrpmuSn9cUIIKpSiDg_Content;
typedef struct tyObject_CountTable__qvMelb9coODdwoghoAPc9c9aA tyObject_CountTable__qvMelb9coODdwoghoAPc9c9aA;
typedef struct tySequence__Wd0Vle6gxRCPPoSlNEvfTA tySequence__Wd0Vle6gxRCPPoSlNEvfTA;
typedef struct tySequence__Wd0Vle6gxRCPPoSlNEvfTA_Content tySequence__Wd0Vle6gxRCPPoSlNEvfTA_Content;
typedef struct tyObject_Table__fZyCWkMwhdvr3pauCNDaag tyObject_Table__fZyCWkMwhdvr3pauCNDaag;
typedef struct tySequence__T7nNEWoEbKBa0G5Htr45Xw tySequence__T7nNEWoEbKBa0G5Htr45Xw;
typedef struct tySequence__T7nNEWoEbKBa0G5Htr45Xw_Content tySequence__T7nNEWoEbKBa0G5Htr45Xw_Content;
typedef struct tyObject_Table__5vmBY49areSIlgIs4A1LLKQ tyObject_Table__5vmBY49areSIlgIs4A1LLKQ;
typedef struct tySequence__q9cHvMDDxYU1hSCdG4YwIhA tySequence__q9cHvMDDxYU1hSCdG4YwIhA;
typedef struct tySequence__q9cHvMDDxYU1hSCdG4YwIhA_Content tySequence__q9cHvMDDxYU1hSCdG4YwIhA_Content;
typedef struct tySequence__olFOFaYzOJN9aV5BWqK4b9bA tySequence__olFOFaYzOJN9aV5BWqK4b9bA;
typedef struct tySequence__olFOFaYzOJN9aV5BWqK4b9bA_Content tySequence__olFOFaYzOJN9aV5BWqK4b9bA_Content;
typedef struct tyObject_Table__9bmd0cvHWe1s4FTDn5BPmfw tyObject_Table__9bmd0cvHWe1s4FTDn5BPmfw;
typedef struct tySequence__vJcM7B74R2U5db9cxyXT9coA tySequence__vJcM7B74R2U5db9cxyXT9coA;
typedef struct tySequence__vJcM7B74R2U5db9cxyXT9coA_Content tySequence__vJcM7B74R2U5db9cxyXT9coA_Content;
typedef struct tyObject_Table__GhjCMuklnRqwdX9bZo9bCoNg tyObject_Table__GhjCMuklnRqwdX9bZo9bCoNg;
typedef struct tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg;
typedef struct tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg_Content tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg_Content;
typedef struct tyObject_Table__pI3mJh4Ap2XujSCfcSeUvQ tyObject_Table__pI3mJh4Ap2XujSCfcSeUvQ;
typedef struct tySequence__R9c39btP6BwOBBPnbaNUtMQg tySequence__R9c39btP6BwOBBPnbaNUtMQg;
typedef struct tySequence__R9c39btP6BwOBBPnbaNUtMQg_Content tySequence__R9c39btP6BwOBBPnbaNUtMQg_Content;
typedef struct tyObject_Table__MsPmCuYz1KcEw6lr7P9cGkw tyObject_Table__MsPmCuYz1KcEw6lr7P9cGkw;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA_Content tySequence__squ9b9bUH4OLHf6cEMrt6hVA_Content;
typedef struct tyObject_Table__1HJsK7ponJ4Vb1lJgVFVTQ tyObject_Table__1HJsK7ponJ4Vb1lJgVFVTQ;
typedef struct tySequence__3nALyQgqjnfK2Qjc6ny2Uw tySequence__3nALyQgqjnfK2Qjc6ny2Uw;
typedef struct tySequence__3nALyQgqjnfK2Qjc6ny2Uw_Content tySequence__3nALyQgqjnfK2Qjc6ny2Uw_Content;
typedef struct tySequence__WbW5Q8QVks0bQpUJSGmuVg tySequence__WbW5Q8QVks0bQpUJSGmuVg;
typedef struct tySequence__WbW5Q8QVks0bQpUJSGmuVg_Content tySequence__WbW5Q8QVks0bQpUJSGmuVg_Content;
typedef struct tyObject_Operators__yrAfvKhiysDamJlcGNgVfQ tyObject_Operators__yrAfvKhiysDamJlcGNgVfQ;
typedef struct tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg;
typedef struct tyObject_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_TIdTable__XZ9cFaLoittQMULJSfBpHrA tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA;
typedef struct tySequence__7OXYQ6bHRkhJpRaiS7kiwQ tySequence__7OXYQ6bHRkhJpRaiS7kiwQ;
typedef struct tySequence__7OXYQ6bHRkhJpRaiS7kiwQ_Content tySequence__7OXYQ6bHRkhJpRaiS7kiwQ_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_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg;
typedef struct tyObject_ImportContext__lQXKzA0w9aSWy9bwygXJvlHQ tyObject_ImportContext__lQXKzA0w9aSWy9bwygXJvlHQ;
typedef struct tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg;
typedef struct tyTuple__wjbnfGBIEcH6aaevyJWrgw tyTuple__wjbnfGBIEcH6aaevyJWrgw;
typedef struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg tyTuple__7q7q3E6Oj24ZNVJb9aonhAg;
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__uaQEKxLZNO5fpFluyxnhTg tyObject_Table__uaQEKxLZNO5fpFluyxnhTg;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ_Content tySequence__9cnx3zXnWzeclW8Ko4oUgAQ_Content;
typedef struct tyTuple__7TXOq9czx9cn1FWKG5gXNK8Q tyTuple__7TXOq9czx9cn1FWKG5gXNK8Q;
typedef struct tySequence__vb3AGHvMJTxdOSSwMmBmTQ tySequence__vb3AGHvMJTxdOSSwMmBmTQ;
typedef struct tySequence__vb3AGHvMJTxdOSSwMmBmTQ_Content tySequence__vb3AGHvMJTxdOSSwMmBmTQ_Content;
typedef struct tyTuple__F1mMODXmKFMNQ5rLCtcv0Q tyTuple__F1mMODXmKFMNQ5rLCtcv0Q;
typedef struct tySequence__apM9bRAO19cVjhWlxqd1PGeA tySequence__apM9bRAO19cVjhWlxqd1PGeA;
typedef struct tySequence__apM9bRAO19cVjhWlxqd1PGeA_Content tySequence__apM9bRAO19cVjhWlxqd1PGeA_Content;
typedef struct tyTuple__vHfXSpEC1R9b9cKgfFB9a58gw tyTuple__vHfXSpEC1R9b9cKgfFB9a58gw;
typedef struct tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA;
typedef struct tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ;
typedef struct tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig;
typedef struct tyTuple__4iq9bD09amB7Ah0r9cBB0nSPQ tyTuple__4iq9bD09amB7Ah0r9cBB0nSPQ;
typedef struct tySequence__9bW2eTK9b7vXE70Sx5VPH1mw tySequence__9bW2eTK9b7vXE70Sx5VPH1mw;
typedef struct tySequence__9bW2eTK9b7vXE70Sx5VPH1mw_Content tySequence__9bW2eTK9b7vXE70Sx5VPH1mw_Content;
typedef struct tyTuple__bnJwOH0eJlAwCAMbr1inhw tyTuple__bnJwOH0eJlAwCAMbr1inhw;
typedef struct tyTuple__YG7h1OUHzgfgTeH9cl0U0dw tyTuple__YG7h1OUHzgfgTeH9cl0U0dw;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__tG5yYi8DnD7bl00aT9cgctQ tyTuple__tG5yYi8DnD7bl00aT9cgctQ;
typedef struct tyObject_SuggestFileSymbolDatabase__o0ahEzaLn5a7TdNqH4OVqQ tyObject_SuggestFileSymbolDatabase__o0ahEzaLn5a7TdNqH4OVqQ;
typedef struct tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg;
typedef struct tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg_Content tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg_Content;
typedef struct tySequence__yUWoZehF86MIc40opFgacw tySequence__yUWoZehF86MIc40opFgacw;
typedef struct tySequence__yUWoZehF86MIc40opFgacw_Content tySequence__yUWoZehF86MIc40opFgacw_Content;
typedef struct tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw;
typedef struct tyTuple__gnRkA1L4XiR4uByriyHW8Q tyTuple__gnRkA1L4XiR4uByriyHW8Q;
typedef struct tyTuple__CvjVmQeIfivirDme2r5MRw tyTuple__CvjVmQeIfivirDme2r5MRw;
typedef struct tyTuple__2QDyOgS51ZMPO0W1pWCY6g tyTuple__2QDyOgS51ZMPO0W1pWCY6g;
typedef struct tyTuple__UbCNQED4XJUgxOgPHJUcAQ tyTuple__UbCNQED4XJUgxOgPHJUcAQ;
typedef struct tySequence__juxPMVNF1FoR2ltzeQu8NQ tySequence__juxPMVNF1FoR2ltzeQu8NQ;
typedef struct tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content;
typedef struct tyTuple__zExIg9bDTcVf2FHROUpzoow tyTuple__zExIg9bDTcVf2FHROUpzoow;
typedef struct tyTuple__XrHNJHOzS3O7uwF9bvCySiA tyTuple__XrHNJHOzS3O7uwF9bvCySiA;
typedef struct tyTuple__EdLY4EJQ37VFgbAn5g5rXQ tyTuple__EdLY4EJQ37VFgbAn5g5rXQ;
typedef struct tyTuple__OtlgAx3kBps9cOSMNDZSzBA tyTuple__OtlgAx3kBps9cOSMNDZSzBA;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__RFOJ4fF7D9bpvmh9birH1JhQ tyTuple__RFOJ4fF7D9bpvmh9birH1JhQ;
typedef struct tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw;
typedef struct tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q;
typedef struct tyTuple__O3g9a8zTXSX36ljWponcAoA tyTuple__O3g9a8zTXSX36ljWponcAoA;
typedef struct tyTuple__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 tyObject_TIdPair__jFcUgE4X1tLOqan9b4YIIeg tyObject_TIdPair__jFcUgE4X1tLOqan9b4YIIeg;
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__uJvLVbod8mnHGzJkQj89bWg[38];
struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA {
  NI len; tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content* p;
};
struct tySequence__tsHRsYLyvTCPLlGRExqi7Q {
  NI len; tySequence__tsHRsYLyvTCPLlGRExqi7Q_Content* p;
};
struct tySequence__lAikaRQvUF0uwNAz0U4FFA {
  NI len; tySequence__lAikaRQvUF0uwNAz0U4FFA_Content* p;
};
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__Yik7hgYZHhPeLJ5RsXTPqg) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p2);
typedef NU32 tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg;
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__JIyBW5s9ba7hfYBnWxDVvgg) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p3);
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__iXlRd9cBAN0CQpA5dkyhRvw) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_p2);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7FLV9alRQFu6LOhr9bksExQQ) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, void* ClE_0);
void* ClE_0;
} tyProc__0qHBYUhlP28E2DV7mVNNAg;
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__1nD4dBuhjTAOzMZJo9bmgog) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
typedef NU32 tySet_tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__209aOewTLBT6nbWmyvOQFiw) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* nOrig_p2, tySet_tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q filter_p3, tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_p4, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p5);
typedef N_NIMCALL_PTR(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, tyProc__D9aXgBooMpgLrPTmha6q31w) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prev_p2);
typedef struct {
N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2, void* ClE_0);
void* ClE_0;
} tyProc__GbPSPD9bjvt0RIJnnVTczJA;
typedef struct {
N_NIMCALL_PTR(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* fn_p1, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, void* ClE_0);
void* ClE_0;
} tyProc__iDJMP540ifFac3zJ49bj2cA;
typedef struct {
N_NIMCALL_PTR(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* prc_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, void* ClE_0);
void* ClE_0;
} tyProc__gq9a76bauTeymgreaiTI9cmg;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** n_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p2, void* ClE_0);
void* ClE_0;
} tyProc__Gji0NjiFFDU49aJiF3QZF8A;
struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA {
  NI len; tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content* p;
};
typedef NI tyArray__k7D0lwfLmYccbQxUd49bbcQ[34];
struct tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA {
	NI elems;
	NI counter;
	NI max;
	tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA* head;
	tySequence__ZeWVlH6DqG79b1pTDhrrUYA data;
	tyArray__k7D0lwfLmYccbQxUd49bbcQ a;
};
struct tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg {
	NI counter;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA data;
};
struct tySequence__4zAALtm0xUbRlYWQ2V8K7A {
  NI len; tySequence__4zAALtm0xUbRlYWQ2V8K7A_Content* p;
};
typedef NU8 tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q;
typedef N_NIMCALL_PTR(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, tyProc__UAj9bGJLVN9cwAsTcRZFyWmg) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dc_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3, tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q op_p4, NI col_p5);
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__uJvLVbod8mnHGzJkQj89bWg intTypeCache;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* nilTypeCache;
	tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg* matchedConcept;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA friendModules;
	NI instCounter;
	NI* templInstCounter;
	NI inGenericContext;
	NI inStaticContext;
	NI inUnrolledContext;
	NI compilesContextId;
	NI compilesContextIdGenerator;
	NI inGenericInst;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA converters;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA patterns;
	tySequence__tsHRsYLyvTCPLlGRExqi7Q optionStack;
	tySequence__lAikaRQvUF0uwNAz0U4FFA libs;
	tyProc__Yik7hgYZHhPeLJ5RsXTPqg semConstExpr;
	tyProc__JIyBW5s9ba7hfYBnWxDVvgg semExpr;
	tyProc__JIyBW5s9ba7hfYBnWxDVvgg semExprWithType;
	tyProc__iXlRd9cBAN0CQpA5dkyhRvw semTryExpr;
	tyProc__Yik7hgYZHhPeLJ5RsXTPqg semTryConstExpr;
	tyProc__7FLV9alRQFu6LOhr9bksExQQ computeRequiresInit;
	tyProc__0qHBYUhlP28E2DV7mVNNAg hasUnresolvedArgs;
	tyProc__iXlRd9cBAN0CQpA5dkyhRvw semOperand;
	tyProc__1nD4dBuhjTAOzMZJo9bmgog semConstBoolExpr;
	tyProc__209aOewTLBT6nbWmyvOQFiw semOverloadedCall;
	tyProc__D9aXgBooMpgLrPTmha6q31w semTypeNode;
	tyProc__GbPSPD9bjvt0RIJnnVTczJA semInferredLambda;
	tyProc__iDJMP540ifFac3zJ49bj2cA semGenerateInstance;
	tyProc__gq9a76bauTeymgreaiTI9cmg instantiateOnlyProcType;
	tyProc__Gji0NjiFFDU49aJiF3QZF8A fitDefaultNode;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA includedFiles;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg pureEnumFields;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg userPragmas;
	tyObject_TCtx__FHLmhXedV9bg0OyLunsHRew* evalContext;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA unknownIdents;
	tySequence__4zAALtm0xUbRlYWQ2V8K7A generics;
	NI topStmts;
	NI lastGenericIdx;
	NI inParallelStmt;
	tyProc__UAj9bGJLVN9cwAsTcRZFyWmg instTypeBoundOp;
	tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* cache;
	tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg signatures;
	NimStringV2 recursiveDep;
	NIM_BOOL suggestionsMade;
	NIM_BOOL isAmbiguous;
	tySet_tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ features;
	NI inTypeContext;
	NI inConceptDecl;
	tySequence__9bffTLF0HkxjFCzZL8og4GA unusedImports;
	tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ exportIndirections;
	tyObject_Table__nBRoNCTSfpfbfAeK9bNW1qw importModuleMap;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA lastTLineInfo;
	tyObject_Table__g77QNejuRRKraNk8K2YkoA sideEffects;
	NI inUncheckedAssignSection;
	tyObject_Table__toCaB3NxiVHPRVLgcez0Xg importModuleLookup;
	tySequence__9ahcSjIErJohSBBFLwuF56Q skipTypes;
	NI inTypeofContext;
	tyProc__bvRec9bo79ajqrJt3Bkg9c33w semAsgnOpr;
};
struct tySequence__TfHJycarvNts8E4mVG4Mfg {
  NI len; tySequence__TfHJycarvNts8E4mVG4Mfg_Content* p;
};
struct tySequence__5reviU45axUMPQgL9aoENrg {
  NI len; tySequence__5reviU45axUMPQgL9aoENrg_Content* p;
};
struct tyObject_PackedModuleGraph__vzv9a6xTiz616FotDgUeo9bg {
	tySequence__5reviU45axUMPQgL9aoENrg pm;
};
struct tySequence__dtr79aXjHrgHuH79ac55I2aw {
  NI len; tySequence__dtr79aXjHrgHuH79ac55I2aw_Content* p;
};
struct tySequence__8y0Gi4GwtXi2wk2mK1IOzw {
  NI len; tySequence__8y0Gi4GwtXi2wk2mK1IOzw_Content* p;
};
struct tyObject_Table__EBJpp1hXwvFl9cyekUv4qHg {
	tySequence__8y0Gi4GwtXi2wk2mK1IOzw data;
	NI counter;
};
struct tySequence__C2ivDnhTZ6IxAdui1rfuqw {
  NI len; tySequence__C2ivDnhTZ6IxAdui1rfuqw_Content* p;
};
struct tyObject_Table__nn0jq9adRZXGGj9assM9c9bR0w {
	tySequence__C2ivDnhTZ6IxAdui1rfuqw data;
	NI counter;
};
struct tySequence__3vEEVfBECLN6NIRA3FIp5g {
  NI len; tySequence__3vEEVfBECLN6NIRA3FIp5g_Content* p;
};
struct tyObject_Table__ChMwcRY3QzpOEBWbGAfvcA {
	tySequence__3vEEVfBECLN6NIRA3FIp5g data;
	NI counter;
};
typedef tyObject_Table__ChMwcRY3QzpOEBWbGAfvcA tyArray__HTPiakF26bUQGH9bgtmrtkA[7];
struct tySequence__9aSa87aKMiolq9a7z3kC0jTw {
  NI len; tySequence__9aSa87aKMiolq9a7z3kC0jTw_Content* p;
};
struct tyObject_Table__tEqt8LkShErhjQ9acvGyE7g {
	tySequence__9aSa87aKMiolq9a7z3kC0jTw data;
	NI counter;
};
struct tySequence__N589c2UsUgqqOITU2JfIuAQ {
  NI len; tySequence__N589c2UsUgqqOITU2JfIuAQ_Content* p;
};
struct tyObject_Table__QS2Z9cQjmvkp1aaFGq4ippw {
	tySequence__N589c2UsUgqqOITU2JfIuAQ data;
	NI counter;
};
struct tySequence__GYDW6wGgERshoSd16jJ3eQ {
  NI len; tySequence__GYDW6wGgERshoSd16jJ3eQ_Content* p;
};
struct tyObject_Table__bnfVX2VJ9aUicVujDM0GIhw {
	tySequence__GYDW6wGgERshoSd16jJ3eQ data;
	NI counter;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  NI len; tySequence__7lEisrXlQEzwtUKW5pzRCw_Content* p;
};
struct tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A {
	tySequence__7lEisrXlQEzwtUKW5pzRCw data;
	NI counter;
};
typedef NU8 tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw;
typedef NU8 tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg;
typedef NU8 tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA;
typedef 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__79b4rr6WWQqgRr9b4NH4UF9cw {
	tySequence__fdmz6VkIf1ewwrssKYqRFg data;
	NI counter;
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg {
  NI len; tySequence__kxu4GK0onha2t9bo86mdVAg_Content* p;
};
struct tyObject_Table__AC9bec2JdoOuC3xQePGWgmA {
	tySequence__kxu4GK0onha2t9bo86mdVAg data;
	NI counter;
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  NI len; tySequence__48JTohSgTy339bRxHzUD8KA_Content* p;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
struct tySequence__fz0REU1l0nYmKHXgMLRrIg {
  NI len; tySequence__fz0REU1l0nYmKHXgMLRrIg_Content* p;
};
struct tyObject_Table__bHTcQUCehDW9clHfFZXI7lQ {
	tySequence__fz0REU1l0nYmKHXgMLRrIg data;
	NI counter;
};
struct tySequence__Ip9aV1IKO2gVdheNOM31DCQ {
  NI len; tySequence__Ip9aV1IKO2gVdheNOM31DCQ_Content* p;
};
struct tyObject_Table__w2vCG1OPnHmNolvQVT168g {
	tySequence__Ip9aV1IKO2gVdheNOM31DCQ data;
	NI counter;
};
struct tySequence__kHjIdgrpmuSn9cUIIKpSiDg {
  NI len; tySequence__kHjIdgrpmuSn9cUIIKpSiDg_Content* p;
};
struct tySequence__Wd0Vle6gxRCPPoSlNEvfTA {
  NI len; tySequence__Wd0Vle6gxRCPPoSlNEvfTA_Content* p;
};
struct tyObject_CountTable__qvMelb9coODdwoghoAPc9c9aA {
	tySequence__Wd0Vle6gxRCPPoSlNEvfTA data;
	NI counter;
	NIM_BOOL isSorted;
};
struct tySequence__T7nNEWoEbKBa0G5Htr45Xw {
  NI len; tySequence__T7nNEWoEbKBa0G5Htr45Xw_Content* p;
};
struct tyObject_Table__fZyCWkMwhdvr3pauCNDaag {
	tySequence__T7nNEWoEbKBa0G5Htr45Xw data;
	NI counter;
};
struct tySequence__q9cHvMDDxYU1hSCdG4YwIhA {
  NI len; tySequence__q9cHvMDDxYU1hSCdG4YwIhA_Content* p;
};
struct tyObject_Table__5vmBY49areSIlgIs4A1LLKQ {
	tySequence__q9cHvMDDxYU1hSCdG4YwIhA data;
	NI counter;
};
struct tySequence__olFOFaYzOJN9aV5BWqK4b9bA {
  NI len; tySequence__olFOFaYzOJN9aV5BWqK4b9bA_Content* p;
};
typedef tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* tyArray__EOkbZZXacNOZHC8p7xc7hw[65];
struct tySequence__vJcM7B74R2U5db9cxyXT9coA {
  NI len; tySequence__vJcM7B74R2U5db9cxyXT9coA_Content* p;
};
struct tyObject_Table__9bmd0cvHWe1s4FTDn5BPmfw {
	tySequence__vJcM7B74R2U5db9cxyXT9coA data;
	NI counter;
};
struct tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg {
  NI len; tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg_Content* p;
};
struct tyObject_Table__GhjCMuklnRqwdX9bZo9bCoNg {
	tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg data;
	NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, tyProc__QieBhPPkGvcmpFg89a4ftcA) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* m_p1, NI32 fileIdx_p2);
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__F2ahyGAjs3aNLJYEXzu07g) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* m_p1, NI32 fileIdx_p2);
struct tySequence__R9c39btP6BwOBBPnbaNUtMQg {
  NI len; tySequence__R9c39btP6BwOBBPnbaNUtMQg_Content* p;
};
struct tyObject_Table__pI3mJh4Ap2XujSCfcSeUvQ {
	tySequence__R9c39btP6BwOBBPnbaNUtMQg data;
	NI counter;
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  NI len; tySequence__squ9b9bUH4OLHf6cEMrt6hVA_Content* p;
};
struct tyObject_Table__MsPmCuYz1KcEw6lr7P9cGkw {
	tySequence__squ9b9bUH4OLHf6cEMrt6hVA data;
	NI counter;
};
struct tySequence__3nALyQgqjnfK2Qjc6ny2Uw {
  NI len; tySequence__3nALyQgqjnfK2Qjc6ny2Uw_Content* p;
};
struct tyObject_Table__1HJsK7ponJ4Vb1lJgVFVTQ {
	tySequence__3nALyQgqjnfK2Qjc6ny2Uw data;
	NI counter;
};
struct tySequence__WbW5Q8QVks0bQpUJSGmuVg {
  NI len; tySequence__WbW5Q8QVks0bQpUJSGmuVg_Content* p;
};
typedef NU8 tyEnum_PipelinePass__kO50VlNfBJZtrNuD4VL9aTg;
typedef N_NIMCALL_PTR(void, tyProc__c9a5q9aZQWYYOu1vHoRoq9bVQ) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p2);
typedef N_NIMCALL_PTR(void, tyProc__kj3TYePLaHBuXxhRznQQNQ) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* body_p2);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__D3Q9bYoPIpHZVLfEIxpBssA) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p2);
struct tyObject_Operators__yrAfvKhiysDamJlcGNgVfQ {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opNot;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opContains;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opLe;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opLt;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opAnd;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opOr;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opIsNil;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opEq;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opAdd;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opSub;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opMul;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opDiv;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opLen;
};
struct tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw {
	tySequence__TfHJycarvNts8E4mVG4Mfg ifaces;
	tyObject_PackedModuleGraph__vzv9a6xTiz616FotDgUeo9bg packed_0;
	tySequence__dtr79aXjHrgHuH79ac55I2aw encoders;
	tyObject_Table__EBJpp1hXwvFl9cyekUv4qHg typeInstCache;
	tyObject_Table__nn0jq9adRZXGGj9assM9c9bR0w procInstCache;
	tyArray__HTPiakF26bUQGH9bgtmrtkA attachedOps;
	tyObject_Table__tEqt8LkShErhjQ9acvGyE7g methodsPerGenericType;
	tyObject_Table__QS2Z9cQjmvkp1aaFGq4ippw memberProcsPerType;
	tyObject_Table__bnfVX2VJ9aUicVujDM0GIhw initializersPerType;
	tyObject_Table__ChMwcRY3QzpOEBWbGAfvcA enumToStringProcs;
	tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A emittedTypeInfo;
	tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ startupPackedConfig;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg packageSyms;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA deps;
	tyObject_Table__79b4rr6WWQqgRr9b4NH4UF9cw importDeps;
	NIM_BOOL suggestMode;
	NIM_BOOL invalidTransitiveClosure;
	NIM_BOOL interactive;
	NIM_BOOL withinSystem;
	tyObject_Table__AC9bec2JdoOuC3xQePGWgmA inclToMod;
	tySequence__48JTohSgTy339bRxHzUD8KA importStack;
	RootObj* backend;
	tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config;
	tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* cache;
	RootObj* vm;
	RootObj* repl;
	tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* usageSym;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA owners;
	tyObject_Table__bHTcQUCehDW9clHfFZXI7lQ suggestSymbols;
	tyObject_Table__w2vCG1OPnHmNolvQVT168g suggestErrors;
	tySequence__kHjIdgrpmuSn9cUIIKpSiDg methods;
	tyObject_CountTable__qvMelb9coODdwoghoAPc9c9aA bucketTable;
	tyObject_Table__fZyCWkMwhdvr3pauCNDaag objectTree;
	tyObject_Table__5vmBY49areSIlgIs4A1LLKQ methodsPerType;
	tySequence__olFOFaYzOJN9aV5BWqK4b9bA dispatchers;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* systemModule;
	tyArray__EOkbZZXacNOZHC8p7xc7hw sysTypes;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg compilerprocs;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg exposed;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg packageTypes;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* emptyNode;
	tyObject_Table__9bmd0cvHWe1s4FTDn5BPmfw canonTypes;
	tyObject_Table__GhjCMuklnRqwdX9bZo9bCoNg symBodyHashes;
	tyProc__QieBhPPkGvcmpFg89a4ftcA importModuleCallback;
	tyProc__F2ahyGAjs3aNLJYEXzu07g includeFileCallback;
	tyObject_Table__pI3mJh4Ap2XujSCfcSeUvQ cacheSeqs;
	tyObject_Table__MsPmCuYz1KcEw6lr7P9cGkw cacheCounters;
	tyObject_Table__1HJsK7ponJ4Vb1lJgVFVTQ cacheTables;
	tySequence__WbW5Q8QVks0bQpUJSGmuVg passes;
	tyEnum_PipelinePass__kO50VlNfBJZtrNuD4VL9aTg pipelinePass;
	tyProc__c9a5q9aZQWYYOu1vHoRoq9bVQ onDefinition;
	tyProc__c9a5q9aZQWYYOu1vHoRoq9bVQ onDefinitionResolveForward;
	tyProc__c9a5q9aZQWYYOu1vHoRoq9bVQ onUsage;
	tySequence__9ahcSjIErJohSBBFLwuF56Q globalDestructors;
	tyProc__kj3TYePLaHBuXxhRznQQNQ strongSemCheck;
	tyProc__D3Q9bYoPIpHZVLfEIxpBssA compatibleProps;
	tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen;
	tyObject_Operators__yrAfvKhiysDamJlcGNgVfQ operators;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* cachedFiles;
	tySequence__9ahcSjIErJohSBBFLwuF56Q procGlobals;
};
typedef 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__PBlYIBD9bHKBu5FQE5lPn7A 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__4CaO62Zp2vRXWqMPzLEOAw[13];
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
typedef NU8 tySet_tyEnum_StdOrrKind__so1PI9cHP1cN622ePtqa0yw;
struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q {
  NI len; tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content* p;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* result_p0, void* ClE_0);
void* ClE_0;
} tyProc__QQyR5yGA47tr5TwLxcC4Gw;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringV2 output_p0, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__mHEDvws7FmOtnFhcQsM8UA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, NimStringV2 msg_p2, tyEnum_Severity__mHEDvws7FmOtnFhcQsM8UA severity_p3, void* ClE_0);
void* ClE_0;
} tyProc__DA9aR62IikoxFqfC5rIT9cuw;
struct tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg {
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw backend;
	tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA target;
	NI linesCompiled;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A globalOptions;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* macrosToExpand;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* arcToExpand;
	tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw m;
	tyEnum_FilenameOption__o3jmnnVs6HdBg5KcNAzYiQ filenameOption;
	NimStringV2 unitSep;
	NI evalTemplateCounter;
	NI evalMacroCounter;
	NI8 exitcode;
	tyEnum_Command__juUdcDlEGhwCRcct3jVHmQ cmd;
	NimStringV2 cmdInput;
	NIM_BOOL projectIsCmd;
	NIM_BOOL implicitCmd;
	tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg selectedGC;
	tyEnum_ExceptionSystem__dJ6sXW7k8NDYNNBUjVZmnw exc;
	NIM_BOOL hintProcessingDots;
	NI verbosity;
	NI numberOfProcessors;
	NF lastCmdTime;
	tyEnum_SymbolFilesOption__2eyIIreuRXhYT9buPPZbBYA symbolFiles;
	NI spellSuggestMax;
	tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw cppDefines;
	NimStringV2 headerFile;
	NimStringV2 nimbasePattern;
	tySet_tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ features;
	tySet_tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA legacyFeatures;
	NimStringV2 arguments;
	tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng ideCmd;
	tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA cCompiler;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw modifiedyNotes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw cmdlineNotes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw foreignPackageNotes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw notes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw warningAsErrors;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw mainPackageNotes;
	NI mainPackageId;
	NI errorCounter;
	NI hintCounter;
	NI warnCounter;
	NI errorMax;
	NI maxLoopIterationsVM;
	NI maxCallDepthVM;
	NIM_BOOL isVmTrace;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* configVars;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* symbols;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* packageCache;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ nimblePaths;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ searchPaths;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ lazyPaths;
	NimStringV2 outFile;
	NimStringV2 outDir;
	NimStringV2 jsonBuildFile;
	NimStringV2 prefixDir;
	NimStringV2 libpath;
	NimStringV2 nimcacheDir;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* dllOverrides;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* moduleOverrides;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* cfileSpecificOptions;
	NimStringV2 projectName;
	NimStringV2 projectPath;
	NimStringV2 projectFull;
	NIM_BOOL projectIsStdin;
	NimStringV2 stdinFile;
	tySet_tyEnum_StdOrrKind__so1PI9cHP1cN622ePtqa0yw lastMsgWasDot;
	NI32 projectMainIdx;
	NI32 projectMainIdx2;
	NimStringV2 command;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ commandArgs;
	NimStringV2 commandLine;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ extraCmds;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ implicitImports;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ implicitIncludes;
	NimStringV2 docSeeSrcUrl;
	NimStringV2 docRoot;
	NimStringV2 docCmd;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ configFiles;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cIncludes;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cLibs;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cLinkedLibs;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ externalToLink;
	NimStringV2 linkOptionsCmd;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ compileOptionsCmd;
	NimStringV2 linkOptions;
	NimStringV2 compileOptions;
	NimStringV2 cCompilerPath;
	tySequence__xOJ2kx2lq9bBfIm3IXnde3Q toCompile;
	tyProc__QQyR5yGA47tr5TwLxcC4Gw suggestionResultHook;
	NI suggestVersion;
	NI suggestMaxResults;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA lastLineInfo;
	tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
	tyProc__DA9aR62IikoxFqfC5rIT9cuw structuredErrorHook;
	NimStringV2 cppCustomNamespace;
	NimStringV2 nimMainPrefix;
	tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ* vmProfileData;
	NIM_BOOL expandProgress;
	NI expandLevels;
	NimStringV2 expandNodeResult;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA expandPosition;
	NimStringV2 currentConfigDir;
	NI clientProcessId;
};
typedef 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;
	NI optionStackLen;
};
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__7OXYQ6bHRkhJpRaiS7kiwQ {
  NI len; tySequence__7OXYQ6bHRkhJpRaiS7kiwQ_Content* p;
};
struct tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA {
	NI counter;
	tySequence__7OXYQ6bHRkhJpRaiS7kiwQ data;
};
struct tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A {
	tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA topLayer;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* nextLayer;
	NI previousLen;
};
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 iteratorPreference;
	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__PPSU5X9aizf5OJq0lL4Og7A[4];
struct tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg {
	tyArray__PPSU5X9aizf5OJq0lL4Og7A 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__TAsXwXSUBvAawE1kIQ5ziQ[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__dyW7vpmfeTYw8kX3EXuaJA[3];
typedef NU8 tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw;
typedef NI tyArray__9amfx9bz9cceXzfkb1XgPls3w[2];
typedef NU8 tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw;
typedef N_CLOSURE_PTR(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, TM__EV5hHJmjIY9cla9b9be7fSVJQ_111) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* prc_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3);
typedef NimStringV2 tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ[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_124) (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* x_p0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* y_p1, void* ClE_0);
typedef N_CLOSURE_PTR(void, TM__EV5hHJmjIY9cla9b9be7fSVJQ_125) (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;
};
struct tyObject_ImportContext__lQXKzA0w9aSWy9bwygXJvlHQ {
	NIM_BOOL isMultiImport;
	NimStringV2 baseDir;
	NimStringV2 partialModule;
};
struct tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg {
	RootObj Sup;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n0;
	NimStringV2 partialPath1;
	tySequence__nSO1ltijM4vhc0UrrXKEqA suggestions2;
};
struct tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg {
	RootObj Sup;
	NimStringV2 partialPath0;
};
typedef NU8 tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ;
typedef NIM_CHAR tyArray__bErjiHmvISNmC2iIqkq21Q[256];
struct tyTuple__wjbnfGBIEcH6aaevyJWrgw {
	tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ Field0;
	NIM_BOOL Field1;
};
struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg {
	NimStringV2 Field0;
	NimStringV2 Field1;
	NimStringV2 Field2;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringV2 dir_p0, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result_p1, void* ClE_0);
void* ClE_0;
} tyProc__fqH7gDb9aREzeNgiBSaidPg;
typedef N_CLOSURE_PTR(void, TM__EV5hHJmjIY9cla9b9be7fSVJQ_159) (NimStringV2 dir_p0, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result_p1);
typedef N_CLOSURE_PTR(void, TM__EV5hHJmjIY9cla9b9be7fSVJQ_160) (NimStringV2 dir_p0, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result_p1);
typedef N_CLOSURE_PTR(void, TM__EV5hHJmjIY9cla9b9be7fSVJQ_162) (NimStringV2 path_p0);
typedef N_CLOSURE_PTR(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, TM__EV5hHJmjIY9cla9b9be7fSVJQ_170) (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__uaQEKxLZNO5fpFluyxnhTg {
	tySequence__9cnx3zXnWzeclW8Ko4oUgAQ data;
	NI counter;
};
struct tyObject_PackedEncoder__FGa18gE2dyYyuq9ckHprjTQ {
	NI32 thisModule;
	NI32 lastFile;
	NU32 lastLit;
	tyObject_Table__uaQEKxLZNO5fpFluyxnhTg filenames;
	tySequence__d8ZV4IMgHt9biik9cS9a0hrmg pendingTypes;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA pendingSyms;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA typeMarker;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA symMarker;
	tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config;
};
struct tySequence__dtr79aXjHrgHuH79ac55I2aw_Content { NI cap; tyObject_PackedEncoder__FGa18gE2dyYyuq9ckHprjTQ data[SEQ_DECL_SIZE]; };
struct tySequence__vb3AGHvMJTxdOSSwMmBmTQ {
  NI len; tySequence__vb3AGHvMJTxdOSSwMmBmTQ_Content* p;
};
struct tyTuple__7TXOq9czx9cn1FWKG5gXNK8Q {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__vb3AGHvMJTxdOSSwMmBmTQ Field2;
};
struct tySequence__8y0Gi4GwtXi2wk2mK1IOzw_Content { NI cap; tyTuple__7TXOq9czx9cn1FWKG5gXNK8Q data[SEQ_DECL_SIZE]; };
struct tySequence__apM9bRAO19cVjhWlxqd1PGeA {
  NI len; tySequence__apM9bRAO19cVjhWlxqd1PGeA_Content* p;
};
struct tyTuple__F1mMODXmKFMNQ5rLCtcv0Q {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__apM9bRAO19cVjhWlxqd1PGeA Field2;
};
struct tySequence__C2ivDnhTZ6IxAdui1rfuqw_Content { NI cap; tyTuple__F1mMODXmKFMNQ5rLCtcv0Q data[SEQ_DECL_SIZE]; };
struct tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig {
	NU32 module;
	NI32 item;
};
struct tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ {
	NI module;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig packed_0;
};
struct tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA {
	tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ id;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym;
};
struct tyTuple__vHfXSpEC1R9b9cKgfFB9a58gw {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA Field2;
};
struct tySequence__3vEEVfBECLN6NIRA3FIp5g_Content { NI cap; tyTuple__vHfXSpEC1R9b9cKgfFB9a58gw data[SEQ_DECL_SIZE]; };
struct tySequence__9bW2eTK9b7vXE70Sx5VPH1mw {
  NI len; tySequence__9bW2eTK9b7vXE70Sx5VPH1mw_Content* p;
};
struct tyTuple__4iq9bD09amB7Ah0r9cBB0nSPQ {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__9bW2eTK9b7vXE70Sx5VPH1mw Field2;
};
struct tySequence__9aSa87aKMiolq9a7z3kC0jTw_Content { NI cap; tyTuple__4iq9bD09amB7Ah0r9cBB0nSPQ data[SEQ_DECL_SIZE]; };
struct tyTuple__bnJwOH0eJlAwCAMbr1inhw {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA Field2;
};
struct tySequence__N589c2UsUgqqOITU2JfIuAQ_Content { NI cap; tyTuple__bnJwOH0eJlAwCAMbr1inhw data[SEQ_DECL_SIZE]; };
struct tyTuple__YG7h1OUHzgfgTeH9cl0U0dw {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* Field2;
};
struct tySequence__GYDW6wGgERshoSd16jJ3eQ_Content { NI cap; tyTuple__YG7h1OUHzgfgTeH9cl0U0dw data[SEQ_DECL_SIZE]; };
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
	NI Field0;
	NimStringV2 Field1;
	NI32 Field2;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content { NI cap; tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE]; };
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
	NI Field0;
	NI32 Field1;
	tySequence__48JTohSgTy339bRxHzUD8KA Field2;
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg_Content { NI cap; tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE]; };
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
	NI Field0;
	NI32 Field1;
	NI32 Field2;
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg_Content { NI cap; tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE]; };
struct tySequence__48JTohSgTy339bRxHzUD8KA_Content { NI cap; NI32 data[SEQ_DECL_SIZE]; };
struct tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg {
  NI len; tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg_Content* p;
};
struct tySequence__yUWoZehF86MIc40opFgacw {
  NI len; tySequence__yUWoZehF86MIc40opFgacw_Content* p;
};
struct tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw {
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA s;
	NI len;
};
struct tyObject_SuggestFileSymbolDatabase__o0ahEzaLn5a7TdNqH4OVqQ {
	tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg lineInfo;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA sym;
	tySequence__yUWoZehF86MIc40opFgacw caughtExceptions;
	tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw caughtExceptionsSet;
	tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw isDecl;
	tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw isGenericInstance;
	NI32 fileIndex;
	NIM_BOOL trackCaughtExceptions;
	NIM_BOOL isSorted;
};
struct tyTuple__tG5yYi8DnD7bl00aT9cgctQ {
	NI Field0;
	NI32 Field1;
	tyObject_SuggestFileSymbolDatabase__o0ahEzaLn5a7TdNqH4OVqQ Field2;
};
struct tySequence__fz0REU1l0nYmKHXgMLRrIg_Content { NI cap; tyTuple__tG5yYi8DnD7bl00aT9cgctQ data[SEQ_DECL_SIZE]; };
struct tyTuple__gnRkA1L4XiR4uByriyHW8Q {
	NI Field0;
	NI32 Field1;
	tySequence__nSO1ltijM4vhc0UrrXKEqA Field2;
};
struct tySequence__Ip9aV1IKO2gVdheNOM31DCQ_Content { NI cap; tyTuple__gnRkA1L4XiR4uByriyHW8Q data[SEQ_DECL_SIZE]; };
struct tyTuple__CvjVmQeIfivirDme2r5MRw {
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA Field0;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field1;
};
struct tySequence__kHjIdgrpmuSn9cUIIKpSiDg_Content { NI cap; tyTuple__CvjVmQeIfivirDme2r5MRw data[SEQ_DECL_SIZE]; };
struct tyTuple__2QDyOgS51ZMPO0W1pWCY6g {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field0;
	NI Field1;
};
struct tySequence__Wd0Vle6gxRCPPoSlNEvfTA_Content { NI cap; tyTuple__2QDyOgS51ZMPO0W1pWCY6g data[SEQ_DECL_SIZE]; };
struct tySequence__juxPMVNF1FoR2ltzeQu8NQ {
  NI len; tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content* p;
};
struct tyTuple__UbCNQED4XJUgxOgPHJUcAQ {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__juxPMVNF1FoR2ltzeQu8NQ Field2;
};
struct tySequence__T7nNEWoEbKBa0G5Htr45Xw_Content { NI cap; tyTuple__UbCNQED4XJUgxOgPHJUcAQ data[SEQ_DECL_SIZE]; };
struct tyTuple__zExIg9bDTcVf2FHROUpzoow {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__olFOFaYzOJN9aV5BWqK4b9bA Field2;
};
struct tySequence__q9cHvMDDxYU1hSCdG4YwIhA_Content { NI cap; tyTuple__zExIg9bDTcVf2FHROUpzoow data[SEQ_DECL_SIZE]; };
struct tySequence__olFOFaYzOJN9aV5BWqK4b9bA_Content { NI cap; tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA data[SEQ_DECL_SIZE]; };
typedef NU8 tyArray__dnD8kjh6rJ1Yy5jHvid0Ow[16];
struct tyTuple__XrHNJHOzS3O7uwF9bvCySiA {
	NI Field0;
	tyArray__dnD8kjh6rJ1Yy5jHvid0Ow Field1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* Field2;
};
struct tySequence__vJcM7B74R2U5db9cxyXT9coA_Content { NI cap; tyTuple__XrHNJHOzS3O7uwF9bvCySiA data[SEQ_DECL_SIZE]; };
struct tyTuple__EdLY4EJQ37VFgbAn5g5rXQ {
	NI Field0;
	NI Field1;
	tyArray__dnD8kjh6rJ1Yy5jHvid0Ow Field2;
};
struct tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg_Content { NI cap; tyTuple__EdLY4EJQ37VFgbAn5g5rXQ data[SEQ_DECL_SIZE]; };
struct tyTuple__OtlgAx3kBps9cOSMNDZSzBA {
	NI Field0;
	NimStringV2 Field1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* Field2;
};
struct tySequence__R9c39btP6BwOBBPnbaNUtMQg_Content { NI cap; tyTuple__OtlgAx3kBps9cOSMNDZSzBA data[SEQ_DECL_SIZE]; };
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
	NI Field0;
	NimStringV2 Field1;
	NI64 Field2;
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA_Content { NI cap; tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE]; };
struct tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw {
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* root;
	NI entries;
};
struct tyTuple__RFOJ4fF7D9bpvmh9birH1JhQ {
	NI Field0;
	NimStringV2 Field1;
	tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw Field2;
};
struct tySequence__3nALyQgqjnfK2Qjc6ny2Uw_Content { NI cap; tyTuple__RFOJ4fF7D9bpvmh9birH1JhQ data[SEQ_DECL_SIZE]; };
typedef N_NIMCALL_PTR(tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ*, tyProc__TVHQTM3bKm4Mi6Ul6zgzuQ) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* module_p1, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p2);
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__74nHWc2UIRu3iSR9akqDDBg) (tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ* p_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* topLevelStmt_p1);
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__S9bLWKf8jgjzoiotAmEyFSw) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ* p_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2);
struct tyTuple__O3g9a8zTXSX36ljWponcAoA {
	tyProc__TVHQTM3bKm4Mi6Ul6zgzuQ Field0;
	tyProc__74nHWc2UIRu3iSR9akqDDBg Field1;
	tyProc__S9bLWKf8jgjzoiotAmEyFSw Field2;
	NIM_BOOL Field3;
};
struct tySequence__WbW5Q8QVks0bQpUJSGmuVg_Content { NI cap; tyTuple__O3g9a8zTXSX36ljWponcAoA data[SEQ_DECL_SIZE]; };
struct tyTuple__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 tyObject_TIdPair__jFcUgE4X1tLOqan9b4YIIeg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* val;
};
struct tySequence__7OXYQ6bHRkhJpRaiS7kiwQ_Content { NI cap; tyObject_TIdPair__jFcUgE4X1tLOqan9b4YIIeg data[SEQ_DECL_SIZE]; };
struct 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_u1107)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA a_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA b_p1);
N_LIB_PRIVATE N_NIMCALL(void, suggestExprNoCheck__sigmatch_u7648)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_u11761)(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_u7396)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, safeSemExpr__sigmatch_u7390)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3252)(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_u3255)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
static N_INLINE(void, popCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u3664)(Exception** dest_p0, Exception* src_p1, NIM_BOOL cyclic_p2);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
static N_INLINE(NI, len__ast_u3190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, suggestFieldAccess__sigmatch_u6466)(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_u3381)(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__system_u2172)(void* a_p0, int v_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, initTabIter__astalgo_u3137)(tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw* ti_p0, tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg tab_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u4583)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** dest_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___ast_u4571)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** dest_p0);
static N_INLINE(NIM_BOOL, filterSym__sigmatch_u6127)(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_u6132)(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_u6266)(tySequence__nSO1ltijM4vhc0UrrXKEqA* x_p0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* y_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA*, symToSuggest__sigmatch_u5557)(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_u5518)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* dest_p0, tySequence__sM4lkSb7zS6F7OVMvW9cffQ src_p1);
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6254)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u4577)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** dest_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__stdZenumutils_u71)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x_p0, NimStringV2 y_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, eqdup___system_u2697)(NimStringV2 src_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u4574)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dest_p0);
static N_INLINE(NIM_BOOL, contains__pureZtimes_u3356)(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_u1742)(void* dest_p0, void* source_p1, NI size_p2);
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rawNewString)(NI space_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___system_u2700)(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_u2691)(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_u5439)(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_u8092)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u8027)(tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, sourceLine__msgs_u1210)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA i_p1);
N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, isOpeningBacktick__sigmatch_u5447)(NI col_p0, void* ClE_0);
static N_INLINE(NI, skipUntil__pureZparseutils_u936)(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_u1286)(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_u2430)(NimStringV2* s_p0);
static N_INLINE(NIM_CHAR, X5BX5D___system_u8069)(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_u5421)(NimStringV2 line_p0, NI start_p1);
static N_INLINE(NI, parseWhile__pureZparseutils_u964)(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_u1750)(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_u8053)(tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ* dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicStatic)(void* p_p0, TNimTypeV2* desc_p1);
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NOINLINE(void, rememberCycle__system_u3500)(NIM_BOOL isDestroyAction_p0, tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* s_p1, TNimTypeV2* desc_p2);
N_LIB_PRIVATE N_NIMCALL(void, nimRawDispose)(void* p_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(NI, getQuality__sigmatch_u6235)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0);
static N_INLINE(NI, paramsLen__ast_u5616)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipTypes__ast_u5379)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kinds_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, firstParamType__ast_u5363)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u3387)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elemType__types_u254)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3378)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_u11905)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, nextIter__astalgo_u3121)(tyObject_TTabIter__tBHHtIwJDg4f2qPThAL9ctw* ti_p0, tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg tab_p1);
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_u3008)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* m_p1);
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_u2997)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, NI module_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, initRodIterAllSyms__icZic_u21632)(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_u21968)(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ* it_p0, tyObject_PackedModuleGraph__vzv9a6xTiz616FotDgUeo9bg* g_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_u3288)(tyObject_RodIter__6N3dhucH9ae3pEqcrhPOBMQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u4851)(tySequence__ZCZaCk14bTmSb6LMW9aWPVA* dest_p0, tySequence__ZCZaCk14bTmSb6LMW9aWPVA src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u4848)(tySequence__ZCZaCk14bTmSb6LMW9aWPVA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, suggestEverything__sigmatch_u6449)(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_u805)(NI initialSize_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___lookups_u77)(tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww** dest_p0, tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___lookups_u775)(tyTuple__WIyQ4Cfp4shlBOyEpagHMw* dest_p0, tyTuple__WIyQ4Cfp4shlBOyEpagHMw src_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__lookups_u989)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u74)(tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u766)(tyTuple__WIyQ4Cfp4shlBOyEpagHMw dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u952)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___ast_u3375)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, suggestSymList__sigmatch_u6289)(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_u6255)(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_u6167)(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_u7299)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, baseClass__ast_u5348)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, suggestObject__sigmatch_u6304)(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_u5208)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**, X5BX5D___ast_u5211)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** s_p0, NI s_p0Len_0, NI i_p1);
static N_INLINE(NI, safeLen__ast_u3197)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, suggestOperations__sigmatch_u6422)(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_u6158)(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_u6387)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* firstArg_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, argtypeMatches__sigmatch_u5224)(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_u456)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* callee_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result);
N_LIB_PRIVATE N_NIMCALL(void, initCandidate__sigmatch_u245)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* callee_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result);
static N_INLINE(void, initCandidateAux__sigmatch_u109)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* callee_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw*, eqdup___semdata_u4222)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* src_p0, NIM_BOOL cyclic_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, eqdup___ast_u3384)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___layeredtable_u242)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* dest_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, initLayeredTypeMap__layeredtable_u9)(tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA pt_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA, initIdTable__layeredtable_u16)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___layeredtable_u149)(tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, paramTypesMatch__sigmatch_u4323)(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_u3920)(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_u4218)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw** dest_p0, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* src_p1, NIM_BOOL cyclic_p2);
N_LIB_PRIVATE N_NIMCALL(void, assignType__ast_u6138)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___semdata_u4215)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newNodeIT__ast_u4112)(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_u4430)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, newTypeS__semdata_u4368)(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind_p0, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u3261)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___ast_u3249)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, copyTree__ast_u6891)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, typeRel__sigmatch_u253)(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_u249)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* val_p2);
static N_INLINE(void, put__layeredtable_u734)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* value_p2);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___layeredtable_u742)(tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA* t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* val_p2);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipIntLit__magicsys_u120)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* id_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, copyType__ast_u6238)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p2);
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6246)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* s_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, last__ast_u5278)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**, X5BX5D___ast_u5281)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** s_p0, NI s_p0Len_0, NI i_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, lookup__layeredtable_u711)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, getOrDefault__layeredtable_u519)(tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, lookup__layeredtable_u506)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tryResolvingStaticExpr__sigmatch_u1815)(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_u1635)(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_u5351)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_u3891)(tySequence__d8ZV4IMgHt9biik9cS9a0hrmg* x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_u3881)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* father_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, maybeSkipDistinct__sigmatch_u1798)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* callee_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldSkipDistinct__sigmatch_u1787)(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_u5338)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elementType__ast_u5331)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(NIM_BOOL, sameEnumTypes__types_u2071)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NOINLINE(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, typeRangeRel__sigmatch_u1287)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__types_u283)(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_u1182)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, lastOrd__types_u1304)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int128_u408)(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg a_p0, tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg b_p1);
N_LIB_PRIVATE N_NIMCALL(NF, firstFloat__types_u1274)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NF, lastFloat__types_u1414)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConvertibleToRange__sigmatch_u855)(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_u757)(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_u1300)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg k_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg, getInt__ast_u7046)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg, targetSizeSignedToKind__types_u1294)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg, targetSizeUnsignedToKind__types_u1297)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0);
N_LIB_PRIVATE N_NIMCALL(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_u908)(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_u7655)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, reduceToBase__types_u4300)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, indexType__ast_u5345)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCovariantPtr__sigmatch_u1961)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2);
static N_INLINE(NI, len__ast_u5502)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, inferStaticsInRange__sigmatch_u1928)(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_u1505)(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_u1829)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* lhs_p1, NI64 rhs_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newIntNode__ast_u5200)(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_u1919)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, findUnresolvedStatic__ast_u7354)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u2694)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_u1227)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA msg_p2, NimStringV2 arg_p3, tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w eh_p4, tyTuple__kN8up2W6YKc5YA9avn5mV5w* info2_p5, NIM_BOOL isRaw_p6, NIM_BOOL ignoreError_p7);
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_u732)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p2);
static N_INLINE(NIM_BOOL, hasElementType__ast_u5660)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, recordRel__sigmatch_u1126)(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_u1826)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1, tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ flags_p2);
static N_INLINE(NIM_BOOL, sameTupleLengths__ast_u5508)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, minRel__sigmatch_u1118)(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ a_p0, tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectTypes__types_u2018)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NIMCALL(NI, isObjectSubtype__sigmatch_u977)(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_u956)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericRoot__types_u4285)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, genericParamPut__sigmatch_u934)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* last_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fGenericOrigin_p2);
static N_INLINE(NI, kidsLen__ast_u5648)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(NIM_BOOL, sameDistinctTypes__types_u2067)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
static N_INLINE(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, allowsNil__sigmatch_u1184)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, procTypeRel__sigmatch_u1236)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2);
N_LIB_PRIVATE N_NIMCALL(void, copyingEraseVoidParams__sigmatch_u376)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** t_p1);
static N_INLINE(void, setSonsLen__ast_u6013)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0, NI len_p1);
N_LIB_PRIVATE N_NIMCALL(void, setLen__ast_u3333)(tySequence__d8ZV4IMgHt9biik9cS9a0hrmg* s_p0, NI newlen_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, copyNode__ast_u6736)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3699)(tySequence__9ahcSjIErJohSBBFLwuF56Q* dest_p0, tySequence__9ahcSjIErJohSBBFLwuF56Q src_p1);
N_LIB_PRIVATE N_NIMCALL(void, setLen__ast_u3718)(tySequence__9ahcSjIErJohSBBFLwuF56Q* s_p0, NI newlen_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_u3215)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* father_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* son_p1);
static N_INLINE(NI, signatureLen__ast_u5610)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, procParamTypeRel__sigmatch_u1207)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMetaType__ast_u4607)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, generateTypeInstance__semtypinst_u1682)(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_u1191)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p1);
N_LIB_PRIVATE N_NIMCALL(tyTuple__7xZyzV9bi4zRvtJda9aONodA, getProcConvMismatch__types_u3811)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2, tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ rel_p3);
N_LIB_PRIVATE N_NIMCALL(tyEnum_EffectsCompat__kgTSaXQprmltQ9a5JxdqZQQ, compatibleEffects__types_u3568)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__options_u959)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, NimStringV2 symbol_p1);
N_LIB_PRIVATE N_NIMCALL(NI, genericAliasDepth__types_u2153)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipGenericAlias__types_u2162)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConcept__types_u3423)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, enterConceptMatch__sigmatch_u2001)(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_u1475)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concpt_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* arg_p2, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* bindings_p3, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* invocation_p4, tySet_tyEnum_MatchFlags__te9cp1iI7j4FnZSmB5ytuQw flags_p5);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, prepareMetatypeForSigmatch__semtypinst_u1696)(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_u1598)(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_u1021)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA* skipped_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericHead__ast_u5376)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, typeBodyImpl__ast_u5369)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericSubtype__sigmatch_u1064)(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_u3751)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, matchUserTypeClass__sigmatch_u1299)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p2);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__sigmatch_u8593)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u8485)(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u5509)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimDestroyAndDispose)(void* p_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, unregisterCycle__system_u3130)(tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3288)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___sigmatch_u8497)(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_u3021)(tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg* s_p0, void** c_p1, TNimTypeV2* t_p2);
N_LIB_PRIVATE N_NIMCALL(void, resize__system_u3029)(tyObject_CellSeq__gW9aeWLFbrNaeUKXqxYBXhg* s_p0);
static N_INLINE(NI, pluspercent___system_u785)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___renderer_u2166)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u1463)(tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u8532)(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_u4205)(tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q symKind_p0, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* name_p1, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p2, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p3, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p4, tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options_p5);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, exactReplica__ast_u6243)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, makeTypeDesc__semdata_u4621)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__sigmatch_u1382)(tySequence__GVxMaHC0xtgqjBZ8ubUwnA* x_p0, tyTuple__7SDQCf3TbPJf09bOXiapRgg y_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, eqdup___ast_u4580)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p0);
static N_INLINE(void, addDecl__lookups_u3789)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p1);
static N_INLINE(void, addDeclAt__lookups_u3781)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p2);
N_LIB_PRIVATE N_NIMCALL(void, addDeclAt__lookups_u3253)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p2, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___sigmatch_u1748)(tyProc__k2HFjxisIgDALbEUFojxaQ* dest_p0, tyProc__k2HFjxisIgDALbEUFojxaQ src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___sigmatch_u1740)(tyProc__k2HFjxisIgDALbEUFojxaQ* dest_p0, tyProc__k2HFjxisIgDALbEUFojxaQ src_p1, NIM_BOOL cyclic_p2);
N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___sigmatch_u1428)(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_u8539)(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_u1509)(tySequence__GVxMaHC0xtgqjBZ8ubUwnA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, closeScope__lookups_u102)(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_u6843)(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_u3481)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, prepareTypesInBody__semtypinst_u1646)(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_u4441)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, incMatches__sigmatch_u3884)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ r_p1, NI convMatch_p2);
N_LIB_PRIVATE N_NIMCALL(NI, currentLen__layeredtable_u269)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newSymNode__ast_u5171)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericType__types_u3462)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, getInstantiatedType__sigmatch_u3586)(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_u4564)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, convertLiteral__sigmatch_u3628)(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_u1851)(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_u1434)(NF x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, implicitConv__sigmatch_u3600)(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_u4091)(tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, toVar__ast_u7268)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind_p1, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p2);
N_LIB_PRIVATE N_NIMCALL(NI, cmpInheritancePenalty__sigmatch_u583)(NI a_p0, NI b_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, returnType__ast_u5354)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___modulegraphs_u14756)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw** dest_p0, tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newProcNode__ast_u5430)(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_u4170)(tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** children_p1, NI children_p1Len_0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_u14753)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, userConvMatch__sigmatch_u3759)(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_u162)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZosproc_u474)(tySequence__qwqHTkRvwhrRyENtudHQ7g dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3469)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3311)(tySequence__d8ZV4IMgHt9biik9cS9a0hrmg dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___layeredtable_u233)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___layeredtable_u168)(tySequence__7OXYQ6bHRkhJpRaiS7kiwQ dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3270)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchNodeKinds__parampatterns_u498)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* p_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
static N_INLINE(NIM_BOOL, isLValue__sigmatch_u3740)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, NIM_BOOL isOutParam_p2);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__3ybZZK771F9azx9ccTLKswSA, isAssignable__parampatterns_u315)(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_u106)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1);
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__sigmatch_u6826)(tyObject_Table__nBRoNCTSfpfbfAeK9bNW1qw t_p0, NI key_p1, NI def_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__sigmatch_u6972)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ s_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1);
N_LIB_PRIVATE N_NIMCALL(void, del__sigmatch_u7268)(tySequence__9bffTLF0HkxjFCzZL8og4GA* x_p0, NI i_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newSymNode__ast_u5168)(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_u3835)(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_u6769)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyEnum_TNodeKind__fgQOep3rrztw9aeZI9aS2Ltg kind_p1);
N_LIB_PRIVATE N_NIMCALL(NI, cmpScopes__lookups_u2555)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1);
N_LIB_PRIVATE N_NIMCALL(void, shallowCopyCandidate__sigmatch_u460)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* dest_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* src_p1);
static N_INLINE(void, shallowCopy__layeredtable_u266)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA, eqdup___layeredtable_u155)(tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA src_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A*, eqdup___layeredtable_u221)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* src_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, newType__ast_u5900)(tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind_p0, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_p3);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__magicsys_u135)(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_u4309)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** arg_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___sigmatch_u165)(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_u171)(tySequence__7OXYQ6bHRkhJpRaiS7kiwQ* dest_p0, tySequence__7OXYQ6bHRkhJpRaiS7kiwQ src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3314)(tySequence__d8ZV4IMgHt9biik9cS9a0hrmg* dest_p0, tySequence__d8ZV4IMgHt9biik9cS9a0hrmg src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u5512)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* dest_p0, tySequence__sM4lkSb7zS6F7OVMvW9cffQ src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___pureZosproc_u477)(tySequence__qwqHTkRvwhrRyENtudHQ7g* dest_p0, tySequence__qwqHTkRvwhrRyENtudHQ7g src_p1);
N_LIB_PRIVATE N_NIMCALL(NI, cmpCandidates__sigmatch_u589)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* a_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* b_p1, NIM_BOOL isFormal_p2);
N_LIB_PRIVATE N_NIMCALL(NI, checkGeneric__sigmatch_u463)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* a_p0, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* b_p1);
N_LIB_PRIVATE N_NIMCALL(NI, complexDisambiguation__sigmatch_u572)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NIMCALL(NI, sumGeneric__sigmatch_u493)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, conceptBody__concepts_u192)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, markUsed__sigmatch_u100)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p2, NIM_BOOL checkStyle_p3, NIM_BOOL isGenericInstance_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___options_u2138)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg** dest_p0, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, warnAboutDeprecated__sigmatch_u6651)(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_u4008)(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_u6688)(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_u707)(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(void, eqdestroy___options_u2135)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* dest_p0);
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_u14809)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, NI32 fileIdx_p1);
N_LIB_PRIVATE N_NIMCALL(void, styleCheckUseImpl__linter_u198)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p2);
static N_INLINE(NIM_BOOL, contains__sigmatch_u5284)(NI* a_p0, NI a_p0Len_0, NI item_p1);
static N_INLINE(NI, find__sigmatch_u5289)(NI* a_p0, NI a_p0Len_0, NI item_p1);
N_LIB_PRIVATE N_NIMCALL(void, suggestCall__sigmatch_u6350)(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_u6320)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, argsFit__sigmatch_u6339)(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_u450)(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_u415)(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_u332)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* binding_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* callee_p2);
N_LIB_PRIVATE N_NIMCALL(void, matchGenericParam__sigmatch_u258)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2);
static N_INLINE(NIM_BOOL, genericParamHasConstraints__ast_u5654)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericConstraint__ast_u5678)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, partialMatch__sigmatch_u5081)(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_u4588)(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_u144)(tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg* dest_p0, tyObject_MismatchInfo__cZtjSeBU42Tc8gk2KTbArg src_p1);
N_LIB_PRIVATE N_NIMCALL(NI, findFirstArgBlock__sigmatch_u4557)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, openShadowScope__lookups_u3850)(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_u79)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, setSon__sigmatch_u4432)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* father_p0, NI at_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* son_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, arrayConstr__sigmatch_u4535)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSon__ast_u6706)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* father_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_p1, NIM_BOOL propagateHasAsgn_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, makeRangeType__semdata_u4597)(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_u4539)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, prepareNamedParam__sigmatch_u4523)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0, tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newIdentNode__ast_u5164)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* ident_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(void, mergeShadowScope__lookups_u3854)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0);
N_LIB_PRIVATE N_NIMCALL(void, closeShadowScope__lookups_u3852)(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_u4441)(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_u2285)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__varpartitions_u1538)(tySequence__qwqHTkRvwhrRyENtudHQ7g* x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, arrayConstr__sigmatch_u4531)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, prepareOperand__sigmatch_u4513)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p1, NIM_BOOL* newlyTyped_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, getSysType__magicsys_u55)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZcollectionsZintsets_u230)(tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, suggestVar__sigmatch_u6369)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tySequence__nSO1ltijM4vhc0UrrXKEqA* outputs_p2);
N_LIB_PRIVATE N_NIMCALL(void, produceOutput__sigmatch_u5890)(tySequence__nSO1ltijM4vhc0UrrXKEqA* a_p0, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p1);
N_LIB_PRIVATE N_NIMCALL(void, sort__sigmatch_u5899)(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_u5396)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* a_p0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* b_p1);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_u1563)(NimStringV2 x_p0, NimStringV2 y_p1);
N_LIB_PRIVATE N_NIMCALL(void, setLen__modulegraphs_u11860)(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_u5754)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* suggest_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___sigmatch_u5748)(tyObject_SuggestInlayHintcolonObjectType___zpydc9br7HBXeBRDNSH9cTMw* suggest_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___options_u346)(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_u4316)(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_u4034)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p3, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p4);
N_LIB_PRIVATE N_NIMCALL(void, popInfoContext__msgs_u593)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0);
N_LIB_PRIVATE N_NIMCALL(void, newSons__ast_u6115)(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_u594)(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_u7722)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, findImportStmtOnLine__sigmatch_u7626)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, NU16 line_p1);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__sigmatch_u8972)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u8898)(tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___modulegraphs_u11770)(tySequence__nSO1ltijM4vhc0UrrXKEqA* dest_p0, tySequence__nSO1ltijM4vhc0UrrXKEqA src_p1);
N_LIB_PRIVATE N_NIMCALL(void, extractImportContextFromAst__sigmatch_u7426)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, NI cursorCol_p1, tyObject_ImportContext__lQXKzA0w9aSWy9bwygXJvlHQ* Result);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___system_u2688)(NimStringV2* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ, findModuleFile__sigmatch_u7476)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, NimStringV2 partialPath_p1);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__sigmatch_u9143)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u9073)(tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nosparentDir)(NimStringV2 path_p0);
static N_INLINE(NIM_BOOL, contains__stdZprivateZospaths2_u383)(NIM_CHAR* a_p0, NI a_p0Len_0, NIM_CHAR item_p1);
static N_INLINE(NI, find__stdZprivateZospaths2_u388)(NIM_CHAR* a_p0, NI a_p0Len_0, NIM_CHAR item_p1);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ, nsuSplitChar)(NimStringV2 s_p0, NIM_CHAR sep_p1, NI maxsplit_p2);
N_LIB_PRIVATE N_NIMCALL(void, addModulesFromDir__sigmatch_u7492)(NimStringV2 dir_p0, NimStringV2 file_p1, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result_p2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosdirExists)(NimStringV2 dir_p0);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s_p0);
N_LIB_PRIVATE N_NOINLINE(void, raiseOSError__stdZoserrors_u119)(NI32 errorCode_p0, NimStringV2 additionalInfo_p1);
N_LIB_PRIVATE N_NIMCALL(NI32, osLastError__stdZoserrors_u122)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, cstrToNimstr)(NCSTRING str_p0);
static N_INLINE(NimStringV2, slash___stdZprivateZospaths2_u91)(NimStringV2 head_p0, NimStringV2 tail_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nosjoinPath)(NimStringV2 head_p0, NimStringV2 tail_p1);
N_LIB_PRIVATE N_NIMCALL(tyTuple__wjbnfGBIEcH6aaevyJWrgw, getSymlinkFileKind__stdZprivateZoscommon_u20)(NimStringV2 path_p0);
N_LIB_PRIVATE N_NIMCALL(void, nossplitFile)(NimStringV2 path_p0, tyTuple__7q7q3E6Oj24ZNVJb9aonhAg* Result);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringV2 s_p0, NimStringV2 prefix_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZos_u236)(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg* dest_p0);
N_LIB_PRIVATE N_CLOSURE(void, collectImportModulesFromDir__sigmatch_u7513)(NimStringV2 dir_p0, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result_p1, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u9099)(tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg* dest_p0);
N_LIB_PRIVATE N_CLOSURE(void, addModuleSuggestion__sigmatch_u7566)(NimStringV2 path_p0, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u7456)(tyObject_ImportContext__lQXKzA0w9aSWy9bwygXJvlHQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u8933)(tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg* dest_p0);
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, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_76 = {
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[12+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_77 = { 12 | NIM_STRLIT_FLAG, "implicitConv" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_78 = {12, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_77};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_80 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const struct {
  NI cap; NIM_CHAR data[22+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_82 = { 22 | NIM_STRLIT_FLAG, "x.state is not csMatch" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_83 = {22, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_82};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_85 = { 6 | NIM_STRLIT_FLAG, "enum \'" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_86 = {6, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_85};
static const struct {
  NI cap; NIM_CHAR data[24+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_87 = { 24 | NIM_STRLIT_FLAG, "\' which contains field \'" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_88 = {24, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_87};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_89 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_28};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_90 = { 2 | NIM_STRLIT_FLAG, "; " };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_91 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_90};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_92 = { 14 | NIM_STRLIT_FLAG, " is deprecated" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_93 = {14, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_92};
static const struct {
  NI cap; NIM_CHAR data[62+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_95 = { 62 | NIM_STRLIT_FLAG, "/home/runner/work/nightlies/nightlies/nim/compiler/suggest.nim" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_96 = {14, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_92};
static const struct {
  NI cap; NIM_CHAR data[45+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_98 = { 45 | NIM_STRLIT_FLAG, "$1usage of \'$2\' is an {.error.} defined at $3" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_99 = {45, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_98};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_100 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_90};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_101 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_102 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_57};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_103 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_59};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_104 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_61};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_106 = {45, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_98};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_107 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_110 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[91+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_112 = { 91 | NIM_STRLIT_FLAG, "sigmatch.nim(2888, 9) `n[a][0].kind == nkEmpty and n[a][1].kind in {nkBracket, nkArgList}` " };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_113 = {91, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_112};
static const struct {
  NI cap; NIM_CHAR data[39+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_114 = { 39 | NIM_STRLIT_FLAG, "named parameter has to be an identifier" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_115 = {39, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_114};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__EV5hHJmjIY9cla9b9be7fSVJQ_117 = {
0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_118 = { 7 | NIM_STRLIT_FLAG, "matches" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_119 = {7, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_118};
static const struct {
  NI cap; NIM_CHAR data[23+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_121 = { 23 | NIM_STRLIT_FLAG, "cannot convert $1 to $2" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_122 = {23, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_121};
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_126 = { 11 | NIM_STRLIT_FLAG, "skGlobalVar" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_127 = {11, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_126};
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_128 = { 11 | NIM_STRLIT_FLAG, "skGlobalLet" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_129 = {11, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_128};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_130 = { 1 | NIM_STRLIT_FLAG, "." };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_131 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_130};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_132 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_133 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_134 = { 2 | NIM_STRLIT_FLAG, ": " };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_135 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_134};
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_136 = { 3 | NIM_STRLIT_FLAG, " | " };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_137 = {3, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_136};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_138 = { 4 | NIM_STRLIT_FLAG, "void" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_139 = {4, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_138};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_140 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_59};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_141 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_142 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_134};
N_LIB_PRIVATE TNimTypeV2 NTIv2__WqHOzqbAD0g9ciG6qFK7azg_;
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_144 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_145 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_146 = { 1 | NIM_STRLIT_FLAG, "/" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_147 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_146};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_148 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_149 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_146};
N_LIB_PRIVATE TNimTypeV2 NTIv2__MVxtsdn59a4GHWQVcqSgR9cg_;
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_151 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_130};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_152 = { 2 | NIM_STRLIT_FLAG, ".." };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_153 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_152};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_154 = { 4 | NIM_STRLIT_FLAG, ".nim" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_155 = {4, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_154};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_156 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_130};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_157 = {2, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_152};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_158 = {4, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_154};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_161 = {0, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_3};
static const struct {
  NI cap; NIM_CHAR data[21+1];
} TM__EV5hHJmjIY9cla9b9be7fSVJQ_163 = { 21 | NIM_STRLIT_FLAG, "cannot instantiate: \'" };
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_164 = {21, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_163};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_165 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_28};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_167 = {21, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_163};
static const NimStringV2 TM__EV5hHJmjIY9cla9b9be7fSVJQ_168 = {1, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_28};
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_30 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)1087),
((NI)12)}
;
extern NIM_CONST tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA unknownLineInfo__lineinfos_u364;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_41 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)1782),
((NI)23)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_43 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)1812),
((NI)25)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_49 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)866),
((NI)16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_63 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)1958),
((NI)12)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_66 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2154),
((NI)4)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_72 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2181),
((NI)17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_79 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2202),
((NI)37)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_81 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2586),
((NI)13)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_84 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2728),
((NI)23)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_94 = {{62, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_95},
((NI)675),
((NI)15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_97 = {{62, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_95},
((NI)677),
((NI)9)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_105 = {{62, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_95},
((NI)688),
((NI)12)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_108 = {{62, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_95},
((NI)690),
((NI)6)}
;
static NIM_CONST tyArray__9amfx9bz9cceXzfkb1XgPls3w TM__EV5hHJmjIY9cla9b9be7fSVJQ_109 = {((NI)0),
((NI)256)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_116 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2905),
((NI)18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_120 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)2979),
((NI)23)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_123 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)3041),
((NI)22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_166 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)3142),
((NI)14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_169 = {{63, (NimStrPayload*)&TM__EV5hHJmjIY9cla9b9be7fSVJQ_31},
((NI)3152),
((NI)14)}
;
extern Exception* currException__system_u3631;
extern NIM_BOOL nimInErrorMode__system_u4146;
static NIM_CONST NU32 TM__EV5hHJmjIY9cla9b9be7fSVJQ_5[2] = {3701606400, 2131654144};
N_LIB_PRIVATE TNimTypeV2 NTIv2__638OdlkJyJmH3yP0ii2UmQ_ = {.destructor = (void*)rttiDestroy__sigmatch_u8092, .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_u8593, .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_u8497, .flags = 0};
static NIM_CONST NU32 TM__EV5hHJmjIY9cla9b9be7fSVJQ_143[2] = {3701606400, 2714684928};
N_LIB_PRIVATE TNimTypeV2 NTIv2__WqHOzqbAD0g9ciG6qFK7azg_ = {.destructor = (void*)rttiDestroy__sigmatch_u8972, .size = sizeof(tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg), .align = (NI16) NIM_ALIGNOF(tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg), .depth = 1, .display = TM__EV5hHJmjIY9cla9b9be7fSVJQ_143, .traceImpl = (void*)NIM_NIL, .flags = 0};
static NIM_CONST NU32 TM__EV5hHJmjIY9cla9b9be7fSVJQ_150[2] = {3701606400, 1550692608};
N_LIB_PRIVATE TNimTypeV2 NTIv2__MVxtsdn59a4GHWQVcqSgR9cg_ = {.destructor = (void*)rttiDestroy__sigmatch_u9143, .size = sizeof(tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg), .align = (NI16) NIM_ALIGNOF(tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg), .depth = 1, .display = TM__EV5hHJmjIY9cla9b9be7fSVJQ_150, .traceImpl = (void*)NIM_NIL, .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_u3631;
	return result;
}
static N_INLINE(void, popCurrentException)(void) {
	eqcopy___system_u3664(&currException__system_u3631, (*currException__system_u3631).up, NIM_FALSE);
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4146);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, safeSemExpr__sigmatch_u7390)(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_u3252(T3_); goto LA1_;}
	result = T3_;
	if (NIM_UNLIKELY(*nimErr_)) {
		LA1_:;
		if (isObjDisplayCheck(nimBorrowCurrentException()->Sup.m_type, 4, 4171512832)) {
			*nimErr_ = NIM_FALSE;
			eqcopy___ast_u3255(&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_u3190)(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__system_u2172)(void* a_p0, int v_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
	nimSetMem__system_u2172(p_p0, ((int)0), size_p1);
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g, prefixMatch__sigmatch_u6132)(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_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI)0) < T6_)) goto LA7_;
			result = prefixMatch__sigmatch_u6132(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_u6127)(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_u6132(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_u6254)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u4577(&result, (*s_p0).ownerField);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__pureZtimes_u3356)(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_u1742)(void* dest_p0, void* source_p1, NI size_p2) {
	nimCopyMem(dest_p0, source_p1, size_p2);
}
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1) {
	{
		if (!(((NI)0) < src_p1.len)) goto LA3_;
		copyMem__system_u1742(((void*) ((&(*(*dest_p0).p).data[(*dest_p0).len]))), ((void*) ((&(*src_p1.p).data[((NI)0)]))), (src_p1.len));
		(*dest_p0).len += src_p1.len;
		(*(*dest_p0).p).data[(*dest_p0).len] = 0;
	}
LA3_: ;
}
static N_INLINE(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_u8027)(tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ* dest_p0) {
	eqdestroy___system_u2691((*dest_p0).line0);
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__sigmatch_u8092)(void* dest_p0) {
	eqdestroy___sigmatch_u8027((&(*((tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ*) (dest_p0)))));
}
N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, isOpeningBacktick__sigmatch_u5447)(NI col_p0, void* ClE_0) {
	NIM_BOOL result;
	tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ* colonenvP__1;
	NIM_BOOL T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	colonenvP__1 = (tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ*) ClE_0;
	T1_ = (NIM_BOOL)0;
	{
		NIM_BOOL T4_;
		NIM_BOOL colontmpD_;
		NIM_BOOL colontmpD__2;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI)0) <= col_p0);
		if (!(T4_)) goto LA5_;
		T4_ = (col_p0 < (*colonenvP__1).line0.len);
LA5_: ;
		if (!T4_) goto LA6_;
		colontmpD_ = (NIM_BOOL)0;
		colontmpD__2 = (NIM_BOOL)0;
		{
			tyProc__cOOsXj9cY0bKt2oqNqLbhZw T12_;
			NIM_BOOL T13_;
			if (!((NU8)((*colonenvP__1).line0.p->data[col_p0]) == (NU8)(96))) goto LA10_;
			nimZeroMem((void*)(&T12_), sizeof(tyProc__cOOsXj9cY0bKt2oqNqLbhZw));
			T12_.ClP_0 = isOpeningBacktick__sigmatch_u5447; T12_.ClE_0 = colonenvP__1;
			T13_ = (NIM_BOOL)0;
			T13_ = T12_.ClE_0? T12_.ClP_0((NI)(col_p0 - ((NI)1)), T12_.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_6)(T12_.ClP_0))((NI)(col_p0 - ((NI)1)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmpD_ = !(T13_);
			result = colontmpD_;
		}
		goto LA8_;
LA10_: ;
		{
			tyProc__cOOsXj9cY0bKt2oqNqLbhZw T15_;
			nimZeroMem((void*)(&T15_), sizeof(tyProc__cOOsXj9cY0bKt2oqNqLbhZw));
			T15_.ClP_0 = isOpeningBacktick__sigmatch_u5447; T15_.ClE_0 = colonenvP__1;
			colontmpD__2 = T15_.ClE_0? T15_.ClP_0((NI)(col_p0 - ((NI)1)), T15_.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_7)(T15_.ClP_0))((NI)(col_p0 - ((NI)1)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = colontmpD__2;
		}
LA8_: ;
	}
	goto LA2_;
LA6_: ;
	{
		result = NIM_FALSE;
	}
LA2_: ;
	}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_u936)(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)IL64(4611686018427387904))) == ((NI)IL64(4611686018427387904)));
LA4_: ;
		if (!T3_) goto LA5_;
		nimPrepareStrMutationImpl__system_u2430(s_p0);
	}
LA5_: ;
}
static N_INLINE(NimStringV2, X5BX5D___pureZstrutils_u1286)(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_u8069)(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_u5421)(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_u964)(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_u1750)(void* a_p0, void* b_p1, NI size_p2) {
	NIM_BOOL result;
	int T1_;
	T1_ = (int)0;
	T1_ = nimCmpMem(a_p0, b_p1, size_p2);
	result = (T1_ == ((NI32)0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a_p0, NimStringV2 b_p1) {
	NIM_BOOL result;
	NI alen_1;
	NI blen_1;
{	result = NIM_FALSE;
	alen_1 = a_p0.len;
	blen_1 = b_p1.len;
	{
		if (!(alen_1 == blen_1)) goto LA3_;
		{
			if (!(alen_1 == ((NI)0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
LA7_: ;
		result = equalMem__system_u1750(((void*) ((&a_p0.p->data[((NI)0)]))), ((void*) ((&b_p1.p->data[((NI)0)]))), (alen_1));
		goto BeforeRet_;
	}
LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU64)(((NU) (x_p0))) - (NU64)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicStatic)(void* p_p0, TNimTypeV2* desc_p1) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
		cell_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T5_));
		{
			if (!((NI)((*cell_1).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc = minuspercent___system_u805((*cell_1).rc, ((NI)16));
		}
LA6_: ;
		rememberCycle__system_u3500(result, cell_1, desc_p1);
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u8053)(tyObject_Env_suggestdotnim_getTokenLenFromSource___638OdlkJyJmH3yP0ii2UmQ* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicStatic(dest_p0, ((TNimTypeV2*) ((&NTIv2__638OdlkJyJmH3yP0ii2UmQ_))));
		if (!T3_) goto LA4_;
		eqdestroy___sigmatch_u8027((&(*dest_p0)));
		nimRawDispose(dest_p0, ((NI)8));
	}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, getTokenLenFromSource__sigmatch_u5439)(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_u1210(conf_p0, info_p2);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___system_u2691(T2_); goto BeforeRet_;}
	eqsink___system_u2700((&(*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_u5447; 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_u936((*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_u1286((*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_u2691(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_u5447; 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_u936((*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_u1286((*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_u2691(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_u8069(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_u1286((*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_u1286(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_u5421((*colonenv__1).line0, (NI)(column_1 + result));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result += T55_;
		}
LA53_: ;
		eqdestroy___system_u2691(colontmpD__4);
		eqdestroy___system_u2691(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_u964((*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_u8069(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_u1286(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_u2691(colontmpD__5);
		eqdestroy___system_u2691(sourceIdent_1);
	}
LA3_: ;
	eqdestroy___sigmatch_u8053(colonenv__1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA*, symToSuggest__sigmatch_u5557)(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)34)))&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_u5518((&(*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_u6254(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_u6254(ow_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T15_ = !((colontmpD_ == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA18_: ;
				if (!T15_) goto LA19_;
				ow2_1 = NIM_NIL;
				ow2_1 = owner__ast_u6254(ow_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				colontmpD__2 = eqdup___system_u2697((*(*ow2_1).name).s);
				add__stdZenumutils_u71((&(*result).qualifiedPath), colontmpD__2);
				eqdestroy___ast_u4574(ow2_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
LA19_: ;
			{
				NimStringV2 colontmpD__3;
				if (!!((ow_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA23_;
				colontmpD__3 = eqdup___system_u2697((*(*ow_1).name).s);
				add__stdZenumutils_u71((&(*result).qualifiedPath), colontmpD__3);
			}
LA23_: ;
			eqdestroy___ast_u4574(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u4574(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_u3356(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 = eqdup___system_u2697((*(*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_u2691(T42_); goto BeforeRet_;}
				eqsink___system_u2700((&(*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_u2691(T44_); goto BeforeRet_;}
				eqsink___system_u2700((&(*result).forth), T44_);
			}
LA38_: ;
		}
		goto LA34_;
LA36_: ;
		{
			eqsink___system_u2700((&(*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_u3190((*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_u2691(T55_); goto BeforeRet_;}
		eqsink___system_u2700((&(*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;
		tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA infox_1;
		NimStringV2 T64_;
		NI T65_;
		NI T66_;
		NI T67_;
		nimZeroMem((void*)(&colontmpD__5), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
		nimZeroMem((void*)(&colontmpD__6), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
		{
			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_u2691(T64_); goto BeforeRet_;}
		eqsink___system_u2700((&(*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_;
		T67_ = (NI)0;
		{
			if (!!((section_p3 == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)9) || section_p3 == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)20)))) goto LA70_;
			(*result).tokenLen = (*(*s_p1).name).s.len;
		}
		goto LA68_;
LA70_: ;
		{
			NI T73_;
			T73_ = (NI)0;
			T73_ = getTokenLenFromSource__sigmatch_u5439((*g_p0).config, (*(*s_p1).name).s, infox_1, (section_p3 == ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)20)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).tokenLen = T73_;
		}
LA68_: ;
	}
LA46_: ;
	(*result).version = (*(*g_p0).config).suggestVersion;
	(*result).endLine = endLine_p10;
	(*result).endCol = endCol_p11;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, paramsLen__ast_u5616)(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_u5363)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)1)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getQuality__sigmatch_u6235)(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_u5616((*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_u5363((*s_p0).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		exp_1 = skipTypes__ast_u5379(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_u254(exp_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T12_); goto BeforeRet_;}
			eqsink___ast_u3387(&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_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(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_u2997)(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_u3008)(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_u2997(g_p0, (*m_p1).position);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestEverything__sigmatch_u6449)(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_u805(((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_u77(&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_u77(&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_u3137((&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_u4583(&item_1, s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									eqwasMoved___ast_u4571(&s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									nimZeroMem((void*)(&T17_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
									blitTmp_1 = item_1;
									eqwasMoved___ast_u4571(&item_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									T17_.Field0 = blitTmp_1;
									T17_.Field1 = scopeN_2;
									T17_.Field2 = isLocal_2;
									eqsink___lookups_u775((&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_u989((&seen_1), T20_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
										if (!!(T21_)) goto LA22_;
										eqsink___ast_u4583(&it_1, res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
										eqwasMoved___ast_u4571(&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_u6127(it_1, f_p2, (&pm_1));
											if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
											if (!T26_) goto LA27_;
											T29_ = (NI)0;
											T29_ = getQuality__sigmatch_u6235(it_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
											T30_ = NIM_NIL;
											T30_ = symToSuggest__sigmatch_u5557((*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_u11905(T30_); goto LA14_;}
											add__sigmatch_u6266((&(*outputs_p3)), T30_);
										}
LA27_: ;
									}
LA22_: ;
									T31_ = NIM_NIL;
									T31_ = nextIter__astalgo_u3121((&it_2), (*scope_1).symbols);
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T31_); goto LA14_;}
									eqsink___ast_u4583(&s_1, T31_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
								} LA16: ;
							}
							{
								LA14_:;
							}
							{
								oldNimErrFin14_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4574(s_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								eqdestroy___ast_u4574(item_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								*nimErr_ = oldNimErrFin14_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						}
						eqcopy___lookups_u77(&current_1, (*current_1).parent);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					} LA8: ;
				}
				{
					LA6_:;
				}
				{
					oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___lookups_u74(current_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					eqdestroy___lookups_u74(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_u3008((*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_u21632((&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_u4583(&s_2, r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
										eqwasMoved___ast_u4571(&r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
										nimZeroMem((void*)(&T52_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
										blitTmp_2 = s_2;
										eqwasMoved___ast_u4571(&s_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
										T52_.Field0 = blitTmp_2;
										T52_.Field1 = scopeN_2;
										T52_.Field2 = isLocal_2;
										eqsink___lookups_u775((&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_u989((&seen_1), T55_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
											if (!!(T56_)) goto LA57_;
											eqsink___ast_u4583(&it_1, res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
											eqwasMoved___ast_u4571(&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_u6127(it_1, f_p2, (&pm_2));
												if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
												if (!T61_) goto LA62_;
												T64_ = (NI)0;
												T64_ = getQuality__sigmatch_u6235(it_1);
												if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
												T65_ = NIM_NIL;
												T65_ = symToSuggest__sigmatch_u5557((*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_u11905(T65_); goto LA47_;}
												add__sigmatch_u6266((&(*outputs_p3)), T65_);
											}
LA62_: ;
										}
LA57_: ;
										T66_ = NIM_NIL;
										T66_ = nextRodIter__icZic_u21968((&rodIt_1), (&(*(*c_p0).graph).packed_0));
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T66_); goto LA47_;}
										eqsink___ast_u4583(&r_1, T66_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
									} LA51: ;
								}
								{
									LA47_:;
								}
								{
									oldNimErrFin47_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4574(r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
									eqdestroy___modulegraphs_u3288((&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_u4851((&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_u4577(&s_2, (*s_3));
												if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
												nimZeroMem((void*)(&T83_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
												blitTmp_3 = s_2;
												eqwasMoved___ast_u4571(&s_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
												T83_.Field0 = blitTmp_3;
												T83_.Field1 = scopeN_2;
												T83_.Field2 = isLocal_2;
												eqsink___lookups_u775((&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_u989((&seen_1), T86_);
													if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
													if (!!(T87_)) goto LA88_;
													eqsink___ast_u4583(&it_1, res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
													eqwasMoved___ast_u4571(&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_u6127(it_1, f_p2, (&pm_3));
														if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
														if (!T92_) goto LA93_;
														T95_ = (NI)0;
														T95_ = getQuality__sigmatch_u6235(it_1);
														if (NIM_UNLIKELY(*nimErr_)) goto LA71_;
														T96_ = NIM_NIL;
														T96_ = symToSuggest__sigmatch_u5557((*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_u11905(T96_); goto LA71_;}
														add__sigmatch_u6266((&(*outputs_p3)), T96_);
													}
LA93_: ;
												}
LA88_: ;
											}
LA81_: ;
											i_2 += ((NI)1);
										} LA78: ;
									}
									{
										LA71_:;
									}
									{
										oldNimErrFin71_ = *nimErr_; *nimErr_ = NIM_FALSE;
										eqdestroy___ast_u4848(colontmp_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
										*nimErr_ = oldNimErrFin71_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
								}
							}
LA42_: ;
							{
								LA41_:;
							}
							{
								oldNimErrFin41_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4574(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_u766(res_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				*nimErr_ = oldNimErrFin4_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		}
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___lookups_u952(seen_1);
			eqdestroy___ast_u4574(it_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin2_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, fieldVisible__sigmatch_u6167)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* f_p1) {
	NIM_BOOL result;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
	NI fmoduleId_1;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym1145__1;
	NIM_BOOL T2_;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym1148__1;
NIM_BOOL oldNimErrFin22_;
NIM_BOOL oldNimErrFin20_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	colontmpD_ = NIM_NIL;
	colontmpD_ = getModule__astalgo_u156(f_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	xX60gensym1145__1 = (*colontmpD_).itemId;
	fmoduleId_1 = (NI)((NI)((NU64)(((NI) (xX60gensym1145__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym1145__1.item)));
	T2_ = (NIM_BOOL)0;
	T2_ = (((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)1)))&63U)))!=0);
	if (T2_) goto LA3_;
	xX60gensym1148__1 = (*(*c_p0).module).itemId;
	T2_ = (fmoduleId_1 == (NI)((NI)((NU64)(((NI) (xX60gensym1148__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym1148__1.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) {
					if (!(i_1 < L_1)) goto LA11;
					module_1 = &(*c_p0).friendModules.p->data[i_1];
					{
						tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym1150__1;
						xX60gensym1150__1 = (*(*module_1)).itemId;
						if (!(fmoduleId_1 == (NI)((NI)((NU64)(((NI) (xX60gensym1150__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym1150__1.item))))) goto LA14_;
						result = NIM_TRUE;
						eqdestroy___ast_u4574(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA14_: ;
					i_1 += ((NI)1);
				} LA11: ;
			}
		}
		{
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* symObj_1;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__2;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
			if (!((*f_p1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)19))) goto LA18_;
			symObj_1 = NIM_NIL;
			colontmpD__2 = NIM_NIL;
			colontmpD__3 = NIM_NIL;
			colontmpD__2 = owner__ast_u6254(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
			colontmpD__3 = toObjectFromRefPtrGeneric__ast_u7299((*colontmpD__2).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
			eqcopy___ast_u4577(&symObj_1, (*colontmpD__3).sym);
			if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
			{
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_1;
				tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* current_1;
				scope_1 = NIM_NIL;
				current_1 = NIM_NIL;
				eqcopy___lookups_u77(&current_1, (*c_p0).currentScope);
				if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
				{
					while (1) {
						if (!!((current_1 == ((tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww*) NIM_NIL)))) goto LA24;
						eqcopy___lookups_u77(&scope_1, current_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						{
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** sym_1;
							NI i_2;
							NI L_2;
							NI T26_;
							sym_1 = (tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg**)0;
							i_2 = ((NI)0);
							T26_ = (*scope_1).allowPrivateAccess.len;
							L_2 = T26_;
							{
								while (1) {
									if (!(i_2 < L_2)) goto LA28;
									sym_1 = &(*scope_1).allowPrivateAccess.p->data[i_2];
									{
										tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym1155__1;
										tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym1157__1;
										xX60gensym1155__1 = (*symObj_1).itemId;
										xX60gensym1157__1 = (*(*sym_1)).itemId;
										if (!((NI)((NI)((NU64)(((NI) (xX60gensym1155__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym1155__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym1157__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym1157__1.item))))) goto LA31_;
										result = NIM_TRUE;
										eqdestroy___lookups_u74(current_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
										eqdestroy___lookups_u74(scope_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
										eqdestroy___ast_u3378(colontmpD__3);
										if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
										eqdestroy___ast_u4574(colontmpD__2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
										eqdestroy___ast_u4574(symObj_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
										eqdestroy___ast_u4574(colontmpD_);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										goto BeforeRet_;
									}
LA31_: ;
									i_2 += ((NI)1);
								} LA28: ;
							}
						}
						eqcopy___lookups_u77(&current_1, (*current_1).parent);
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
					} LA24: ;
				}
				{
					LA22_:;
				}
				{
					oldNimErrFin22_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___lookups_u74(current_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
					eqdestroy___lookups_u74(scope_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
					*nimErr_ = oldNimErrFin22_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
			}
			{
				LA20_:;
			}
			{
				oldNimErrFin20_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(symObj_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin20_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA18_: ;
	}
LA6_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u4574(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestField__sigmatch_u6255)(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_u6127(s_p1, f_p2, (&pm_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_)) goto LA4_;
		T3_ = fieldVisible__sigmatch_u6167(c_p0, s_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NI)0;
		T7_ = getQuality__sigmatch_u6235(s_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T8_ = NIM_NIL;
		T8_ = symToSuggest__sigmatch_u5557((*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_u11905(T8_); goto BeforeRet_;}
		add__sigmatch_u6266((&(*outputs_p4)), T8_);
	}
LA5_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestSymList__sigmatch_u6289)(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_u3190(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_u6255(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_u5348)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**, X5BX5D___ast_u5211)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** s_p0, NI s_p0Len_0, NI i_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** result;
	result = &s_p0[(NI)(s_p0Len_0 - i_p1)];
	return result;
}
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, lastSon__ast_u5208)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**)0;
	T1_ = X5BX5D___ast_u5211((((*n_p0)._kind_6.sons).p) ? ((*n_p0)._kind_6.sons.p->data) : NIM_NIL, (*n_p0)._kind_6.sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3255(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestObject__sigmatch_u6304)(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_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i_1 = i_2;
					suggestObject__sigmatch_u6304(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_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI)0) < T8_)) goto LA9_;
			suggestObject__sigmatch_u6304(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_u3190(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_u5208((*n_p1)._kind_6.sons.p->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
						suggestObject__sigmatch_u6304(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_u3252(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_u6255(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_u3197)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		if (!((*n_p0).kind >= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)0) && (*n_p0).kind <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23))) goto LA3_;
		result = ((NI)0);
	}
	goto LA1_;
LA3_: ;
	{
		result = len__ast_u3190(n_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, filterSymNoOpr__sigmatch_u6158)(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_u6127(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_u109)(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));
	nimZeroMem((void*)Result, sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
	colontmpD_ = eqdup___semdata_u4222(ctx_p0, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).c = colontmpD_;
	(*Result).exactMatches = ((NI)0);
	(*Result).subtypeMatches = ((NI)0);
	(*Result).iteratorPreference = ((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_u3384(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_u245)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* ctx_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* callee_p1, tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* Result) {
	tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA T1_;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
	initCandidateAux__sigmatch_u109(ctx_p0, callee_p1, Result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqsink___ast_u4583(&(*Result).calleeSym, ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = initIdTable__layeredtable_u16();
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___layeredtable_u149(T1_); goto BeforeRet_;}
	nimZeroMem((void*)(&T2_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	initLayeredTypeMap__layeredtable_u9(T1_, (&T2_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqsink___layeredtable_u242((&(*Result).bindings), (&T2_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, newCandidate__sigmatch_u456)(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_u245(ctx_p0, callee_p1, Result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, put__layeredtable_u734)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* value_p2) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	X5BX5Deq___layeredtable_u742((&(*typeMap_p0).topLayer), key_p1, value_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6246)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* s_p0) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u4577(&result, (*s_p0).ownerField);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipIntLit__magicsys_u120)(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_u6246(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = copyType__ast_u6238(t_p0, id_p1, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqsink___ast_u3261(&(*result).n, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u4574(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA5_: ;
	{
		eqcopy___ast_u3381(&result, t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, put__sigmatch_u249)(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_u120(val_p2, (*(*c_p0).c).Sup.idgen);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	put__layeredtable_u734((&(*c_p0).bindings), (*key_p1).itemId, colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3378(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**, X5BX5D___ast_u5281)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** s_p0, NI s_p0Len_0, NI i_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** result;
	result = &s_p0[(NI)(s_p0Len_0 - i_p1)];
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, last__ast_u5278)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5281((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3381(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, lookup__layeredtable_u711)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = getOrDefault__layeredtable_u519((*typeMap_p0).topLayer, key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = (result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*typeMap_p0).nextLayer == ((tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A*) NIM_NIL)));
LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = NIM_NIL;
		T7_ = lookup__layeredtable_u506((*typeMap_p0).nextLayer, key_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T7_); goto BeforeRet_;}
		eqsink___ast_u3387(&result, T7_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tryResolvingStaticExpr__sigmatch_u1815)(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_u1635((*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_u3252(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_u3252(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_u5351)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*t_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(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_u1787)(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_u3197(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_u3255(&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_u3252(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_u3252(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_u3197(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_u3255(&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_u3252(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_u3252(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_u1798)(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_u1787(m_p0, (*t_p1).n, (*callee_p2).name);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA8_: ;
		if (!T3_) goto LA9_;
		result = base__ast_u5351(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA9_: ;
	{
		eqcopy___ast_u3381(&result, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipModifier__ast_u5338)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5281((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3381(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elementType__ast_u5331)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5281((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3381(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, sameEnumTypes__types_u2071)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	NIM_BOOL result;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym262__1;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym264__1;
	xX60gensym262__1 = (*a_p0).itemId;
	xX60gensym264__1 = (*b_p1).itemId;
	result = ((NI)((NI)((NU64)(((NI) (xX60gensym262__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym262__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym264__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym264__1.item))));
	return result;
}
N_LIB_PRIVATE N_NOINLINE(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, typeRangeRel__sigmatch_u1287)(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_u283(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_u1182(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T11_ = firstOrd__types_u1182(((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_u1304(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T14_ = lastOrd__types_u1304(((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_u1182(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T20_ = firstOrd__types_u1182(((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_u1304(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T23_ = lastOrd__types_u1304(((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_u1182(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T29_ = lastOrd__types_u1304(((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_u1182(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T32_ = lastOrd__types_u1304(((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_u1274(a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T44_ = (NF)0;
			T44_ = firstFloat__types_u1274(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T42_ = (T43_ == T44_);
			if (!(T42_)) goto LA45_;
			T46_ = (NF)0;
			T46_ = lastFloat__types_u1414(a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T47_ = (NF)0;
			T47_ = lastFloat__types_u1414(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_u1274(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T53_ = (NF)0;
			T53_ = firstFloat__types_u1274(a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T51_ = (T52_ <= T53_);
			if (!(T51_)) goto LA54_;
			T55_ = (NF)0;
			T55_ = lastFloat__types_u1414(a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T56_ = (NF)0;
			T56_ = lastFloat__types_u1414(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_u1274(a_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T62_ = (NF)0;
			T62_ = lastFloat__types_u1414(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T60_ = (T61_ <= T62_);
			if (!(T60_)) goto LA63_;
			T64_ = (NF)0;
			T64_ = firstFloat__types_u1274(f_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T65_ = (NF)0;
			T65_ = lastFloat__types_u1414(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_u855)(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_u757)(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_u5379(a_p2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		k_1 = (*ab_1).kind;
		nf_1 = normalizeKind__types_u1300((*(*c_p0).graph).config, (*f_p1).kind);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		na_1 = normalizeKind__types_u1300((*(*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_u1182(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T26_ = getInt__ast_u7046((*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_u7046((*ab_1).n);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T29_ = lastOrd__types_u1304(((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_u1294((*(*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_u1297((*(*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_u1294((*(*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_u1297((*(*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_u1182(((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_u1304(((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_u3378(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_u908)(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_u5379(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_u3378(ab_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isOutParam__ast_u7655)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	result = (((*t_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)45)))&63U)))!=0);
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, indexType__ast_u5345)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, len__ast_u5502)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	NI result;
	NI T1_;
	T1_ = (*n_p0).sons.len;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCovariantPtr__sigmatch_u1961)(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_u5351(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_u5351(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		colontmpD__3 = base__ast_u5351(a_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		T5_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
		T5_ = typeRel__sigmatch_u253(c_p0, colontmpD__2, colontmpD__3, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		T3_ = (T5_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3));
LA4_: ;
		result = T3_;
		eqdestroy___ast_u3378(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*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_u5351(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T11_ = (NIM_BOOL)0;
		T12_ = (NIM_BOOL)0;
		colontmpD__4 = base__ast_u5351(a_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		T12_ = (body_1 == colontmpD__4);
		if (!(T12_)) goto LA13_;
		T14_ = (NI)0;
		T14_ = len__ast_u5502(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_u253(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_u3378(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(body_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA9_:;
		}
		{
			oldNimErrFin9_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(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_u1829)(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_u1829(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_u3378(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_u1829(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_u3378(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_u1829(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_u3378(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_u1829(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_u3378(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_u1829(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_u3378(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_u1829(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_u3378(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_u1829(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_u3378(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_u1829(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_u3378(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_u1829(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 & (64 - 1))));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(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_u1829(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 & (64 - 1))));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(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_u1829(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 & (64 - 1))));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA65_: ;
		}
		break;
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)93):
		{
			result = inferStaticParam__sigmatch_u1829(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)1)], -(rhs_p2));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)97):
		{
			result = inferStaticParam__sigmatch_u1829(c_p0, (*lhs_p1)._kind_6.sons.p->data[((NI)1)], rhs_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(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_u711((&(*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_u5331((*lhs_p1).typField);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T80_); goto LA79_;}
		inferred_1 = newTypeS__semdata_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60), (*c_p0).c, T80_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
		T81_ = NIM_NIL;
		T81_ = newIntNode__ast_u5200(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6), rhs_p2);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T81_); goto LA79_;}
		eqsink___ast_u3261(&(*inferred_1).n, T81_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
		put__sigmatch_u249(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_u3255(&(*(*lhs_p1).typField).n, (*inferred_1).n);
			if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
		}
LA84_: ;
		result = NIM_TRUE;
		eqdestroy___ast_u3378(inferred_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA79_:;
		}
		{
			oldNimErrFin79_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(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_u3378(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, failureToInferStaticParam__sigmatch_u1919)(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_u7354(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_u2694((&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_u1227(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_u2691(colontmpD_);
		eqdestroy___system_u2691(name_1);
		eqdestroy___ast_u3252(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_u1928)(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_u1815(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_u1815(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* expX60gensym306__1;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg rhsX60gensym306__1;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T18_;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T19_;
		if (!((*lowerBound_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA4_;
		expX60gensym306__1 = NIM_NIL;
		{
			if (!((*upperBound_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA9_;
			{
				tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T13_;
				NIM_BOOL T14_;
				T13_ = lengthOrd__types_u1505((*(*(*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_u3252(expX60gensym306__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(upperBound_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3252(lowerBound_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA11_;
LA15_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3252(expX60gensym306__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(upperBound_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3252(lowerBound_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA11_: ;
		}
LA9_: ;
		expX60gensym306__1 = upperBound_1;
		eqwasMoved___ast_u3249(&upperBound_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		T18_ = lengthOrd__types_u1505((*(*(*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_;
		rhsX60gensym306__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(rhsX60gensym306__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T23_ = (NIM_BOOL)0;
			T23_ = inferStaticParam__sigmatch_u1829(c_p0, expX60gensym306__1, T22_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			if (!T23_) goto LA24_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			eqdestroy___ast_u3252(expX60gensym306__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3252(upperBound_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(lowerBound_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA20_;
LA24_: ;
		{
			failureToInferStaticParam__sigmatch_u1919((*(*(*c_p0).c).graph).config, expX60gensym306__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		}
LA20_: ;
		{
			LA6_:;
		}
		{
			oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(expX60gensym306__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin6_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA2_;
LA4_: ;
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* expX60gensym309__1;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg rhsX60gensym309__1;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T33_;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T34_;
		tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T35_;
		if (!((*upperBound_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA30_;
		expX60gensym309__1 = NIM_NIL;
		expX60gensym309__1 = lowerBound_1;
		eqwasMoved___ast_u3249(&lowerBound_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		T33_ = getInt__ast_u7046(upperBound_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		T34_ = plus___int128_u1015(T33_, IL64(1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		T35_ = lengthOrd__types_u1505((*(*(*c_p0).c).graph).config, concrete_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		rhsX60gensym309__1 = minus___int128_u641(T34_, T35_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		{
			NI64 T38_;
			NIM_BOOL T39_;
			T38_ = (NI64)0;
			T38_ = toInt64__int128_u53(rhsX60gensym309__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
			T39_ = (NIM_BOOL)0;
			T39_ = inferStaticParam__sigmatch_u1829(c_p0, expX60gensym309__1, T38_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
			if (!T39_) goto LA40_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			eqdestroy___ast_u3252(expX60gensym309__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3252(upperBound_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(lowerBound_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA36_;
LA40_: ;
		{
			failureToInferStaticParam__sigmatch_u1919((*(*(*c_p0).c).graph).config, expX60gensym309__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		}
LA36_: ;
		{
			LA32_:;
		}
		{
			oldNimErrFin32_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(expX60gensym309__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_u3252(upperBound_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(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_u5660)(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_u732)(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_u3381(&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_u5331(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_u3381(&result, t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA8_: ;
		eqdestroy___ast_u3378(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_u3381(&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_u711((&(*c_p0).bindings), (*t_p1).itemId);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T20_); goto BeforeRet_;}
				eqsink___ast_u3387(&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_u5660(f_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA35_: ;
			T33_ = T34_;
			if (!(T33_)) goto LA36_;
			colontmpD__2 = elementType__ast_u5331(f_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmpD__3 = skipTypes__ast_u5379(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_u5338(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA31_;
LA37_: ;
		{
			eqcopy___ast_u3381(&result, t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA31_: ;
		eqdestroy___ast_u3378(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		eqcopy___ast_u3381(&result, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, sameTupleLengths__ast_u5508)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	NIM_BOOL result;
	NI T1_;
	NI T2_;
	T1_ = (*a_p0).sons.len;
	T2_ = (*b_p1).sons.len;
	result = (T1_ == T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, minRel__sigmatch_u1118)(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_u1126)(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_u1826(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_u5508(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_u3381(&ff_1, (*f_p1).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						eqcopy___ast_u3381(&aa_1, (*a_p2).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						m_1 = typeRel__sigmatch_u253(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_u3378(aa_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(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_u3378(aa_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(ff_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA32_: ;
						result = minRel__sigmatch_u1118(result, m_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						i_2 += ((NI)1);
					} LA21: ;
				}
			}
			{
				LA17_:;
			}
			{
				oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(aa_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(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_u3190((*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_u4577(&x_1, (*(*(*f_p1).n)._kind_6.sons.p->data[i_3])._kind_4.sym);
							if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
							eqcopy___ast_u4577(&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_u253(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_u4574(y_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u4574(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_u4574(y_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u4574(x_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA63_: ;
							{
								LA53_:;
							}
							{
								oldNimErrFin53_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4574(y_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u4574(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_u956)(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_u3378(aRoot_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA6_: ;
	aRoot_1 = genericRoot__types_u4285(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_u3378(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_u5648)(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_u934)(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_u5648(last_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T8_ = (NI)0;
		T8_ = kidsLen__ast_u5648(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_u5648(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_u711((&(*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_u249(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_u3378(x_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA13: ;
			}
		}
	}
LA9_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, isObjectSubtype__sigmatch_u977)(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_u3381(&t_1, a_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	depth_1 = ((NI)0);
	eqcopy___ast_u3381(&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_u2018(f_p2, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (T6_) goto LA7_;
			T6_ = isGenericObjectOf__sigmatch_u956(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_u3378(last_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(t_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA10_: ;
			T12_ = NIM_NIL;
			T12_ = baseClass__ast_u5348(t_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T12_); goto LA1_;}
			eqsink___ast_u3387(&t_1, T12_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				if (!(t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA15_;
				goto LA2;
			}
LA15_: ;
			eqcopy___ast_u3381(&last_1, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T17_ = NIM_NIL;
			T17_ = skipTypes__ast_u5379(t_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T17_); goto LA1_;}
			eqsink___ast_u3387(&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_u934(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_u3378(last_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, sameDistinctTypes__types_u2067)(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_u2018(a_p0, b_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, allowsNil__sigmatch_u1184)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_p0) {
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ result;
	tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T1_;
	T1_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
	{
		if (!!((((*f_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0))) goto LA4_;
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
	}
	goto LA2_;
LA4_: ;
	{
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
	}
LA2_: ;
	return result;
}
static N_INLINE(void, setSonsLen__ast_u6013)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0, NI len_p1) {
	setLen__ast_u3333((&(*dest_p0).sons), (len_p1));
}
N_LIB_PRIVATE N_NIMCALL(void, copyingEraseVoidParams__sigmatch_u376)(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_u3381(&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_u5502(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_u3381(&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_u711((&(*m_p0).bindings), (*f_1).itemId);
					if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
					{
						if (!!((prev_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA12_;
						eqsink___ast_u3387(&f_1, prev_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
						eqwasMoved___ast_u3375(&prev_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
					}
LA12_: ;
					isVoidParam_1 = ((*f_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63));
					eqdestroy___ast_u3378(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_u6246((*t_p1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						T23_ = NIM_NIL;
						T23_ = copyType__ast_u6238(original_1, (*(*m_p0).c).Sup.idgen, colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T23_); goto LA22_;}
						eqsink___ast_u3387(&(*t_p1), T23_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						setSonsLen__ast_u6013((*t_p1), i_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						T24_ = NIM_NIL;
						T24_ = copyNode__ast_u6736((*original_1).n);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T24_); goto LA22_;}
						eqsink___ast_u3261(&(*(*t_p1)).n, T24_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						eqcopy___ast_u3699((&(*(*(*t_p1)).n)._kind_6.sons), (*(*original_1).n)._kind_6.sons);
						if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						setLen__ast_u3718((&(*(*(*t_p1)).n)._kind_6.sons), (i_1));
						copied_1 = NIM_TRUE;
						{
							LA22_:;
						}
						{
							oldNimErrFin22_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u4574(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_u3881((*t_p1), f_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
					add__ast_u3215((*(*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_u3378(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_u3378(original_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NI, signatureLen__ast_u5610)(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_u1191)(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_u7655(f_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T8_ = (NIM_BOOL)0;
	T8_ = isOutParam__ast_u7655(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_u1207)(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_u3381(&f_2, f_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&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_u4607(a_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T4_) goto LA5_;
		aResolved_1 = NIM_NIL;
		aResolved_1 = lookup__layeredtable_u711((&(*c_p0).bindings), (*a_2).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			if (!!((aResolved_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA9_;
			eqsink___ast_u3387(&a_2, aResolved_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3375(&aResolved_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA9_: ;
		eqdestroy___ast_u3378(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_u4607(a_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T13_) goto LA14_;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = isMetaType__ast_u4607(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_u1682((*c_p0).c, (&(*c_p0).bindings), (*(*c_p0).call).info, f_2);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T25_); goto LA1_;}
				eqsink___ast_u3387(&f_2, T25_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			goto LA21_;
LA23_: ;
			{
				eqsink___ast_u3387(&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_u4607(f_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA30_: ;
				if (!T29_) goto LA31_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)5);
				eqdestroy___ast_u3378(a_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(f_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA31_: ;
		}
LA19_: ;
		T33_ = 0;
		reverseRel_1 = typeRel__sigmatch_u253(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_u253(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_u1191(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_u3378(a_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(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_u1236)(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_u3381(&f_2, f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		copyingEraseVoidParams__sigmatch_u376((&(*c_p0)), &f_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		{
			NI T5_;
			NI T6_;
			T5_ = (NI)0;
			T5_ = signatureLen__ast_u5610(f_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
			T6_ = (NI)0;
			T6_ = signatureLen__ast_u5610(a_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
			if (!!((T5_ == T6_))) goto LA7_;
			eqdestroy___ast_u3378(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_u3378(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_u5502(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_u1207(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_u1118(result, T16_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
					{
						if (!(result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA19_;
						eqdestroy___ast_u3378(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_u1207(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_u1118(result, T29_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				{
					if (!(result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA32_;
					eqdestroy___ast_u3378(f_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA32_: ;
			}
			goto LA25_;
LA27_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3378(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_u3378(f_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA21_;
LA36_: ;
LA21_: ;
		T38_ = getProcConvMismatch__types_u3811((*(*(*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_u3568(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_u3378(f_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA42_: ;
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(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_u1184(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_u2001)(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_u3381(&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_u3387(&container_1, concpt_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqwasMoved___ast_u3375(&concpt_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T6_ = NIM_NIL;
		T6_ = reduceToBase__types_u4300(container_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T6_); goto LA1_;}
		eqsink___ast_u3387(&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_u1475(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_u3378(concpt_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(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_u5376)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, typeBodyImpl__ast_u5369)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5281((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3381(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipToObject__sigmatch_u1021)(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_u3381(&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_u5376(r_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T5_); goto LA1_;}
				eqsink___ast_u3387(&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_u5331(r_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T7_); goto LA1_;}
				eqsink___ast_u3387(&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_u5331(r_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T9_); goto LA1_;}
				eqsink___ast_u3387(&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_u5331(r_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T11_); goto LA1_;}
				eqsink___ast_u3387(&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_u5369(r_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T13_); goto LA1_;}
				eqsink___ast_u3387(&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_u3375(&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_u3378(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_u1064)(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_u1021(a_p1, (&askip_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	r_1 = skipToObject__sigmatch_u1021(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_u3378(last_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(r_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	depth_1 = ((NI)0);
	eqcopy___ast_u3381(&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_u5348(t_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T12_); goto LA1_;}
			eqsink___ast_u3387(&t_1, T12_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				if (!(t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA15_;
				goto LA6;
			}
LA15_: ;
			eqcopy___ast_u3381(&last_1, t_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T17_ = NIM_NIL;
			T17_ = skipToObject__sigmatch_u1021(t_1, (&askip_1));
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T17_); goto LA1_;}
			eqsink___ast_u3387(&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_u934(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_u3378(last_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(r_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p_p0) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
		cell_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T5_));
		{
			if (!((NI)((*cell_1).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc = minuspercent___system_u805((*cell_1).rc, ((NI)16));
		}
LA6_: ;
		rememberCycle__system_u3500(result, cell_1, (*((TNimTypeV2**) (p_p0))));
	}
LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
		cell_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T5_));
		{
			if (!((NI)((*cell_1).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc = minuspercent___system_u805((*cell_1).rc, ((NI)16));
		}
LA6_: ;
		{
			if (!result) goto LA13_;
			{
				if (!(((NI)0) < (*cell_1).rootIdx)) goto LA17_;
				unregisterCycle__system_u3130(cell_1);
			}
LA17_: ;
		}
LA13_: ;
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u8485)(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* dest_p0) {
	eqdestroy___system_u5509((*dest_p0).diagnostics3);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicDyn((*dest_p0).oldWriteHook2.ClE_0);
		if (!T3_) goto LA4_;
		nimDestroyAndDispose((*dest_p0).oldWriteHook2.ClE_0);
	}
LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = nimDecRefIsLastDyn((*dest_p0).typeClass1);
		if (!T8_) goto LA9_;
		eqdestroy___ast_u3288((&(*(*dest_p0).typeClass1)));
		nimRawDispose((*dest_p0).typeClass1, ((NI)8));
	}
LA9_: ;
	eqdestroy___system_u2691((*dest_p0).errorPrefix0);
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__sigmatch_u8593)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	eqdestroy___sigmatch_u8485((&(*((tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ*) (dest_p0)))));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NI, pluspercent___system_u785)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU64)(((NU) (x_p0))) + (NU64)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(void, add__system_u3021)(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_u3029(s_p0);
	}
LA3_: ;
	colontmp_ = c_p1;
	colontmp__2 = t_p2;
	(*s_p0).d[(*s_p0).len].Field0 = colontmp_;
	(*s_p0).d[(*s_p0).len].Field1 = colontmp__2;
	(*s_p0).len = pluspercent___system_u785((*s_p0).len, ((NI)1));
}
static N_INLINE(void, nimTraceRefDyn)(void* q_p0, void* env_p1) {
	void** p_1;
	p_1 = ((void**) (q_p0));
	{
		tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w* j_1;
		if (!!(((*p_1) == NIM_NIL))) goto LA3_;
		j_1 = ((tyObject_GcEnv__HccVszwojlCZRN46BE9cG8w*) (env_p1));
		add__system_u3021((&(*j_1).traceStack), p_1, (*((TNimTypeV2**) ((*p_1)))));
	}
LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___sigmatch_u8497)(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_u8532)(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicStatic(dest_p0, ((TNimTypeV2*) ((&NTIv2__BMJLEodSR6ezL3E3W72BoQ_))));
		if (!T3_) goto LA4_;
		eqdestroy___sigmatch_u8485((&(*dest_p0)));
		nimRawDispose(dest_p0, ((NI)8));
	}
LA4_: ;
}
static N_INLINE(void, addDeclAt__lookups_u3781)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TScope__x7gU4GnNOGxq5tpoU40Lww* scope_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p2) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	addDeclAt__lookups_u3253(c_p0, scope_p1, sym_p2, (*sym_p2).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, addDecl__lookups_u3789)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	addDeclAt__lookups_u3781(c_p0, (*c_p0).currentScope, sym_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___sigmatch_u1428)(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_u2700((&(*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)16));
	h_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T1_));
	(*h_1).rc = pluspercent___system_u785((*h_1).rc, ((NI)16));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ*, eqdup___sigmatch_u8539)(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_u1299)(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 oldNimErrFin26_;
	tyProc__k2HFjxisIgDALbEUFojxaQ T70_;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ T71_;
	tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_1;
	NIM_BOOL collectDiagnostics_1;
	NIM_BOOL T72_;
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_u4218(&c_1, (*m_p0).c, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T3_ = NIM_NIL;
	T3_ = skipTypes__ast_u5379(ff_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_46);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T3_); goto LA1_;}
	eqsink___ast_u3387(&(*colonenv__1).typeClass1, T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3255(&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_u3381(&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_u2166(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_u1227((*(*(*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_u2691(colontmpD__3);
			eqdestroy___system_u2691(colontmpD__2);
			eqdestroy___lookups_u74(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(prevCandidateType_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___sigmatch_u1463(matchedConceptContext_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(body_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___semdata_u4215(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___sigmatch_u8532(colonenv__1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA12_:;
			}
			{
				eqdestroy___system_u2691(colontmpD__3);
				eqdestroy___system_u2691(colontmpD__2);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA10_: ;
	}
LA6_: ;
	colontmpD_ = openScope__lookups_u65(c_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&matchedConceptContext_1.candidateType, a_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&(*(*(*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_u5502(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_u5351(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_u3381(&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_u711((&(*m_p0).bindings), (*typ_1).itemId);
					if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
					{
						if (!!((alreadyBound_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA29_;
						eqsink___ast_u3387(&typ_1, alreadyBound_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
						eqwasMoved___ast_u3375(&alreadyBound_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
					}
LA29_: ;
					{
						tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__6;
						tyTuple__7SDQCf3TbPJf09bOXiapRgg T67_;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* blitTmp_1;
						{
							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) {
									if (!(i_3 < L_1)) goto LA35;
									prev_1 = (&typeParams_1.p->data[i_3]);
									{
										tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym234__1;
										tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym236__1;
										tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ T40_;
										tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T41_;
										xX60gensym234__1 = (*(*prev_1).Field1).itemId;
										xX60gensym236__1 = (*typ_1).itemId;
										if (!((NI)((NI)((NU64)(((NI) (xX60gensym234__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym234__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym236__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym236__1.item))))) goto LA38_;
										T40_ = 0;
										T41_ = NIM_NIL;
										T41_ = newSym__ast_u4205((*(*prev_1).Field0).kind, typeParamName_1, (*c_1).Sup.idgen, (*(*colonenv__1).typeClass1).sym, (*(*(*colonenv__1).typeClass1).sym).info, T40_);
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T41_); goto LA26_;}
										eqsink___ast_u4583(&param_1, T41_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
										eqcopy___ast_u3381(&(*param_1).typ, (*(*prev_1).Field0).typ);
										if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
										goto LA31;
									}
LA38_: ;
									i_3 += ((NI)1);
								} LA35: ;
							}
						}
						switch ((*typ_1).kind) {
						case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
						{
							tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ T43_;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T44_;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T45_;
							T43_ = 0;
							T44_ = NIM_NIL;
							T44_ = newSym__ast_u4205(((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)10), typeParamName_1, (*c_1).Sup.idgen, (*(*colonenv__1).typeClass1).sym, (*(*(*colonenv__1).typeClass1).sym).info, T43_);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T44_); goto LA26_;}
							eqsink___ast_u4583(&param_1, T44_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							T45_ = NIM_NIL;
							T45_ = exactReplica__ast_u6243(typ_1);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T45_); goto LA26_;}
							eqsink___ast_u3387(&(*param_1).typ, T45_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							{
								if (!((*typ_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA48_;
								(*(*param_1).typ).flags |= ((NU64)1)<<(((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)27))) & 63);
							}
							goto LA46_;
LA48_: ;
							{
								eqcopy___ast_u3255(&(*param_1).ast, (*typ_1).n);
								if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							}
LA46_: ;
						}
						break;
						case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61):
						{
							tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ T52_;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T53_;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T54_;
							T52_ = 0;
							T53_ = NIM_NIL;
							T53_ = newSym__ast_u4205(((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8), typeParamName_1, (*c_1).Sup.idgen, (*(*colonenv__1).typeClass1).sym, (*(*(*colonenv__1).typeClass1).sym).info, T52_);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T53_); goto LA26_;}
							eqsink___ast_u4583(&param_1, T53_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							T54_ = NIM_NIL;
							T54_ = exactReplica__ast_u6243(typ_1);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T54_); goto LA26_;}
							eqsink___ast_u3387(&(*param_1).typ, T54_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
						}
						break;
						default:
						{
							tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ T56_;
							tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T57_;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T58_;
							T56_ = 0;
							T57_ = NIM_NIL;
							T57_ = newSym__ast_u4205(((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)7), typeParamName_1, (*c_1).Sup.idgen, (*(*colonenv__1).typeClass1).sym, (*(*(*colonenv__1).typeClass1).sym).info, T56_);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T57_); goto LA26_;}
							eqsink___ast_u4583(&param_1, T57_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							T58_ = NIM_NIL;
							{
								NIM_BOOL T61_;
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T64_;
								T61_ = (NIM_BOOL)0;
								T61_ = isMetaType__ast_u4607(typ_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
								if (!T61_) goto LA62_;
								colontmpD__7 = eqdup___ast_u3384(typ_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
								T64_ = NIM_NIL;
								T64_ = newTypeS__semdata_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55), c_1, colontmpD__7);
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T64_); goto LA26_;}
								eqsink___ast_u3387(&(*param_1).typ, T64_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							}
							goto LA59_;
LA62_: ;
							{
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T66_;
								T66_ = NIM_NIL;
								T66_ = makeTypeDesc__semdata_u4621(c_1, typ_1);
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T66_); goto LA26_;}
								eqsink___ast_u3387(&(*param_1).typ, T66_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
							}
LA59_: ;
						}
						break;
						}
						nimZeroMem((void*)(&T67_), sizeof(tyTuple__7SDQCf3TbPJf09bOXiapRgg));
						colontmpD__6 = eqdup___ast_u4580(param_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
						T67_.Field0 = colontmpD__6;
						blitTmp_1 = typ_1;
						eqwasMoved___ast_u3375(&typ_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
						T67_.Field1 = blitTmp_1;
						add__sigmatch_u1382((&typeParams_1), T67_);
					} LA31: ;
					addDecl__lookups_u3789(c_1, param_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
					i_2 += ((NI)1);
					{
						LA26_:;
					}
					{
						oldNimErrFin26_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(alreadyBound_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						eqdestroy___ast_u4574(param_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						eqdestroy___ast_u3378(typ_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						eqdestroy___ast_u3378(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*)(&T70_), sizeof(tyProc__k2HFjxisIgDALbEUFojxaQ));
	eqsink___sigmatch_u1748((&(*colonenv__1).oldWriteHook2), T70_);
	T71_.len = 0; T71_.p = NIM_NIL;
	T71_.len = 0; T71_.p = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content*) newSeqPayload(0, sizeof(NimStringV2), NIM_ALIGNOF(NimStringV2));
	eqsink___system_u5518((&(*colonenv__1).diagnostics3), T71_);
	flags_1 = 0;
	T72_ = (NIM_BOOL)0;
	T72_ = (*m_p0).diagnosticsEnabled;
	if (T72_) goto LA73_;
	T72_ = (((*(*(*colonenv__1).typeClass1).sym).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)23)))&63U)))!=0);
LA73_: ;
	collectDiagnostics_1 = T72_;
	{
		tyObject_Env_sigmatchdotnim_matchUserTypeClass___BMJLEodSR6ezL3E3W72BoQ* colontmpD__8;
		tySequence__sM4lkSb7zS6F7OVMvW9cffQ T78_;
		tyProc__k2HFjxisIgDALbEUFojxaQ T79_;
		if (!collectDiagnostics_1) goto LA76_;
		eqcopy___sigmatch_u1740((&(*colonenv__1).oldWriteHook2), (*(*(*(*m_p0).c).graph).config).writelnHook, NIM_TRUE);
		T78_.len = 0; T78_.p = NIM_NIL;
		T78_.len = 0; T78_.p = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content*) newSeqPayload(0, sizeof(NimStringV2), NIM_ALIGNOF(NimStringV2));
		eqsink___system_u5518((&(*colonenv__1).diagnostics3), T78_);
		flags_1 = 2048;
		colontmpD__8 = eqdup___sigmatch_u8539(colonenv__1, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		nimZeroMem((void*)(&T79_), sizeof(tyProc__k2HFjxisIgDALbEUFojxaQ));
		T79_.ClP_0 = colonanonymous___sigmatch_u1428; T79_.ClE_0 = colontmpD__8;
		eqsink___sigmatch_u1748((&(*(*(*(*m_p0).c).graph).config).writelnHook), T79_);
	}
LA76_: ;
	colontmpD__4 = copyTree__ast_u6891(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 LA82_;
		eqcopy___sigmatch_u1740((&(*(*(*(*m_p0).c).graph).config).writelnHook), (*colonenv__1).oldWriteHook2, NIM_TRUE);
		{
			NimStringV2* msg_1;
			NI i_4;
			NI L_2;
			NI T85_;
			msg_1 = (NimStringV2*)0;
			i_4 = ((NI)0);
			T85_ = (*colonenv__1).diagnostics3.len;
			L_2 = T85_;
			{
				while (1) {
					NimStringV2 colontmpD__9;
					if (!(i_4 < L_2)) goto LA87;
					msg_1 = (&(*colonenv__1).diagnostics3.p->data[i_4]);
					colontmpD__9 = eqdup___system_u2697((*msg_1));
					add__stdZenumutils_u71((&(*m_p0).diagnostics), colontmpD__9);
					(*m_p0).diagnosticsEnabled = NIM_TRUE;
					i_4 += ((NI)1);
				} LA87: ;
			}
		}
	}
LA82_: ;
	{
		if (!(checkedBody_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA90_;
		result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
		eqdestroy___ast_u3252(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
		eqdestroy___ast_u3252(checkedBody_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
		eqdestroy___sigmatch_u1509(typeParams_1);
		(*c_1).matchedConcept = prevMatchedConcept_1;
		eqsink___ast_u3387(&(*(*(*colonenv__1).typeClass1).sons.p->data[((NI)0)]).sons.p->data[((NI)0)], prevCandidateType_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqwasMoved___ast_u3375(&prevCandidateType_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		closeScope__lookups_u102(c_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___lookups_u74(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(prevCandidateType_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u1463(matchedConceptContext_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(body_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___semdata_u4215(c_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u8532(colonenv__1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA90_: ;
	{
		tyTuple__7SDQCf3TbPJf09bOXiapRgg* p_1;
		NI i_5;
		NI L_3;
		NI T93_;
		p_1 = (tyTuple__7SDQCf3TbPJf09bOXiapRgg*)0;
		i_5 = ((NI)0);
		T93_ = typeParams_1.len;
		L_3 = T93_;
		{
			while (1) {
				if (!(i_5 < L_3)) goto LA95;
				p_1 = (&typeParams_1.p->data[i_5]);
				put__sigmatch_u249(m_p0, (*p_1).Field1, (*(*p_1).Field0).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
				i_5 += ((NI)1);
			} LA95: ;
		}
	}
	{
		if (!((*ff_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53))) goto LA98_;
		result = generateTypeInstance__semtypinst_u1682(c_1, (&(*m_p0).bindings), (*(*(*colonenv__1).typeClass1).sym).info, ff_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
	}
	goto LA96_;
LA98_: ;
	{
		result = exactReplica__ast_u6243(ff_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
	}
LA96_: ;
	eqsink___ast_u3261(&(*result).n, checkedBody_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
	eqwasMoved___ast_u3249(&checkedBody_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
	{
		LA17_:;
	}
	{
		oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3252(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
		eqdestroy___ast_u3252(checkedBody_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
		eqdestroy___sigmatch_u1509(typeParams_1);
		*nimErr_ = oldNimErrFin17_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto LA16_;
	{
		LA16_:;
	}
	{
		oldNimErrFin16_ = *nimErr_; *nimErr_ = NIM_FALSE;
		(*c_1).matchedConcept = prevMatchedConcept_1;
		eqsink___ast_u3387(&(*(*(*colonenv__1).typeClass1).sons.p->data[((NI)0)]).sons.p->data[((NI)0)], prevCandidateType_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqwasMoved___ast_u3375(&prevCandidateType_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		closeScope__lookups_u102(c_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		*nimErr_ = oldNimErrFin16_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___lookups_u74(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(prevCandidateType_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u1463(matchedConceptContext_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(body_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___semdata_u4215(c_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u8532(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_u253)(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 oldNimErrFin140_;
NIM_BOOL oldNimErrFin219_;
NIM_BOOL oldNimErrFin211_;
NIM_BOOL oldNimErrFin202_;
NIM_BOOL oldNimErrFin274_;
NIM_BOOL oldNimErrFin278_;
NIM_BOOL oldNimErrFin299_;
NIM_BOOL oldNimErrFin303_;
NIM_BOOL oldNimErrFin335_;
NIM_BOOL oldNimErrFin330_;
NIM_BOOL oldNimErrFin373_;
NIM_BOOL oldNimErrFin325_;
NIM_BOOL oldNimErrFin415_;
NIM_BOOL oldNimErrFin423_;
NIM_BOOL oldNimErrFin431_;
NIM_BOOL oldNimErrFin454_;
NIM_BOOL oldNimErrFin481_;
NIM_BOOL oldNimErrFin511_;
NIM_BOOL oldNimErrFin503_;
NIM_BOOL oldNimErrFin540_;
NIM_BOOL oldNimErrFin578_;
NIM_BOOL oldNimErrFin621_;
NIM_BOOL oldNimErrFin627_;
NIM_BOOL oldNimErrFin662_;
NIM_BOOL oldNimErrFin722_;
NIM_BOOL oldNimErrFin788_;
NIM_BOOL oldNimErrFin817_;
NIM_BOOL oldNimErrFin830_;
NIM_BOOL oldNimErrFin902_;
NIM_BOOL oldNimErrFin885_;
NIM_BOOL oldNimErrFin947_;
NIM_BOOL oldNimErrFin972_;
NIM_BOOL oldNimErrFin875_;
NIM_BOOL oldNimErrFin992_;
NIM_BOOL oldNimErrFin836_;
NIM_BOOL oldNimErrFin1009_;
NIM_BOOL oldNimErrFin1004_;
NIM_BOOL oldNimErrFin1060_;
NIM_BOOL oldNimErrFin1071_;
NIM_BOOL oldNimErrFin1139_;
NIM_BOOL oldNimErrFin1130_;
NIM_BOOL oldNimErrFin1120_;
NIM_BOOL oldNimErrFin1032_;
NIM_BOOL oldNimErrFin1199_;
NIM_BOOL oldNimErrFin1193_;
NIM_BOOL oldNimErrFin1232_;
NIM_BOOL oldNimErrFin1226_;
NIM_BOOL oldNimErrFin1273_;
NIM_BOOL oldNimErrFin1268_;
NIM_BOOL oldNimErrFin1294_;
NIM_BOOL oldNimErrFin1289_;
NIM_BOOL oldNimErrFin1312_;
NIM_BOOL oldNimErrFin1307_;
NIM_BOOL oldNimErrFin1353_;
NIM_BOOL oldNimErrFin1362_;
NIM_BOOL oldNimErrFin1357_;
NIM_BOOL oldNimErrFin1405_;
NIM_BOOL oldNimErrFin1419_;
NIM_BOOL oldNimErrFin1394_;
NIM_BOOL oldNimErrFin1389_;
NIM_BOOL oldNimErrFin1458_;
NIM_BOOL oldNimErrFin1490_;
NIM_BOOL oldNimErrFin1512_;
NIM_BOOL oldNimErrFin1531_;
NIM_BOOL oldNimErrFin1432_;
NIM_BOOL oldNimErrFin1595_;
NIM_BOOL oldNimErrFin1588_;
NIM_BOOL oldNimErrFin1624_;
NIM_BOOL oldNimErrFin1633_;
NIM_BOOL oldNimErrFin1618_;
NIM_BOOL oldNimErrFin1576_;
NIM_BOOL oldNimErrFin1656_;
NIM_BOOL oldNimErrFin1650_;
NIM_BOOL oldNimErrFin1674_;
NIM_BOOL oldNimErrFin1567_;
NIM_BOOL oldNimErrFin1706_;
NIM_BOOL oldNimErrFin1693_;
NIM_BOOL oldNimErrFin1742_;
NIM_BOOL oldNimErrFin1721_;
NIM_BOOL oldNimErrFin1756_;
NIM_BOOL oldNimErrFin1762_;
NIM_BOOL oldNimErrFin1716_;
NIM_BOOL oldNimErrFin1789_;
NIM_BOOL oldNimErrFin1793_;
NIM_BOOL oldNimErrFin1775_;
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_u249(c_p0, f_p1, aOrig_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA8_: ;
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(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_u5379(aOrig_p2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_18);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA19_;
LA21_: ;
	{
		eqcopy___ast_u3381(&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_u5278(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_u253(c_p0, f_p1, prev_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			eqdestroy___ast_u3378(prev_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(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_u3381(&candidate_1, f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			fType_1 = skipTypes__ast_u5379(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_u711((&(*c_p0).bindings), (*fType_1).itemId);
				if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
				{
					if (!!((prev_2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA45_;
					eqsink___ast_u3387(&candidate_1, prev_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
					eqwasMoved___ast_u3375(&prev_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
				}
LA45_: ;
				eqdestroy___ast_u3378(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_u1815(c_p0, (*f_p1).n, NIM_FALSE, NIM_FALSE, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
				eqcopy___ast_u3381(&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_u5351(computedType_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T50_); goto LA48_;}
					eqsink___ast_u3387(&candidate_1, T50_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
				}
				break;
				case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
				{
					eqsink___ast_u3387(&candidate_1, computedType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
					eqwasMoved___ast_u3375(&computedType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
				}
				break;
				default:
				{
				}
				break;
				}
				{
					LA48_:;
				}
				{
					oldNimErrFin48_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3252(colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
					eqdestroy___ast_u3378(computedType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
					*nimErr_ = oldNimErrFin48_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			}
			break;
			default:
			{
			}
			break;
			}
			colontmpD__3 = base__ast_u5351(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			result = typeRel__sigmatch_u253(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 = eqdup___ast_u3384(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
				add__ast_u3891((&(*c_p0).inferredTypes), colontmpD__5);
				add__ast_u3881(aOrig_2, candidate_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			}
LA58_: ;
			eqdestroy___ast_u3378(colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			eqdestroy___ast_u3378(fType_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			eqdestroy___ast_u3378(candidate_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			eqdestroy___ast_u3378(prev_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA41_:;
			}
			{
				oldNimErrFin41_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
				eqdestroy___ast_u3378(fType_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
				eqdestroy___ast_u3378(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_u3378(prev_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin28_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA26_: ;
	colontmpD_ = skipTypes__ast_u5379(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_20);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	a_1 = maybeSkipDistinct__sigmatch_u1798((&(*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_u5338(aOrig_2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA68_;
		result = typeRel__sigmatch_u253(c_p0, f_p1, colontmpD__6, flags_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA68_;
		eqdestroy___ast_u3378(colontmpD__6);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(aOrig_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA68_:;
		}
		{
			oldNimErrFin68_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(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_u5379(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_u5338(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
		result = typeRel__sigmatch_u253(c_p0, f_p1, colontmpD__7, flags_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
		eqdestroy___ast_u3378(colontmpD__7);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(aOrig_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA77_:;
		}
		{
			oldNimErrFin77_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(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_u5338(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
		result = typeRel__sigmatch_u253(c_p0, f_p1, colontmpD__8, flags_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
		eqdestroy___ast_u3378(colontmpD__8);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(aOrig_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA84_:;
		}
		{
			oldNimErrFin84_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(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_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(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_u3381(&branch_1, (*a_1).sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
						x_1 = typeRel__sigmatch_u253(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_u3378(branch_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(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_u3378(branch_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin99_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(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_u3381(&branch_2, (*a_1).sons.p->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA116_;
						x_2 = typeRel__sigmatch_u253(c_p0, f_p1, branch_2, (flags_p3 | 1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA116_;
						{
							tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T125_;
							if (!!((x_2 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA123_;
							T125_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
							{
								if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) <= x_2)) goto LA128_;
								result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
							}
							goto LA126_;
LA128_: ;
							{
								result = x_2;
							}
LA126_: ;
							eqdestroy___ast_u3378(branch_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(aOrig_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA123_: ;
						i_4 += ((NI)1);
					} LA120: ;
				}
			}
			{
				LA116_:;
			}
			{
				oldNimErrFin116_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(branch_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin116_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(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 LA136_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA136_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)58):
	{
		switch ((*f_p1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)58):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__9;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__10;
			colontmpD__9 = NIM_NIL;
			colontmpD__10 = NIM_NIL;
			colontmpD__9 = elementType__ast_u5331(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA140_;
			colontmpD__10 = elementType__ast_u5331(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA140_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__9, colontmpD__10, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA140_;
			eqdestroy___ast_u3378(colontmpD__10);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__9);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA140_:;
			}
			{
				oldNimErrFin140_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__10);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__9);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin140_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		default:
		{
			tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T144_;
			T144_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
			{
				if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59))) goto LA147_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
			goto LA145_;
LA147_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA145_: ;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(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 LA153_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA151_;
LA153_: ;
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA151_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53):
	{
		{
			NIM_BOOL T159_;
			tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ x_3;
			T159_ = (NIM_BOOL)0;
			T159_ = !(((*(*c_p0).c).matchedConcept == ((tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg*) NIM_NIL)));
			if (!(T159_)) goto LA160_;
			T159_ = ((*(*(*c_p0).c).matchedConcept).depth <= ((NI)4));
LA160_: ;
			if (!T159_) goto LA161_;
			(*(*(*c_p0).c).matchedConcept).depth += ((NI)1);
			x_3 = typeRel__sigmatch_u253(c_p0, a_1, f_p1, (flags_p3 | 1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) <= x_3)) goto LA165_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA165_: ;
		}
LA161_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61):
	{
		{
			if (!(((NI)0) < (*(*c_p0).c).inGenericContext)) goto LA170_;
			{
				if (!!((*c_p0).isNoCall)) goto LA174_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA172_;
LA174_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA172_: ;
		}
LA170_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	switch ((*f_p1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__11;
		colontmpD__11 = NIM_NIL;
		{
			NIM_BOOL T181_;
			T181_ = (NIM_BOOL)0;
			T181_ = ((*a_1).kind == (*f_p1).kind);
			if (!(T181_)) goto LA182_;
			T181_ = sameEnumTypes__types_u2071(f_p1, a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA182_: ;
			if (!T181_) goto LA183_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
		}
		goto LA179_;
LA183_: ;
		{
			NIM_BOOL T186_;
			colontmpD__11 = skipTypes__ast_u5379(a_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T186_ = (NIM_BOOL)0;
			T186_ = sameEnumTypes__types_u2071(f_p1, colontmpD__11);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T186_) goto LA187_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
		}
		goto LA179_;
LA187_: ;
LA179_: ;
		eqdestroy___ast_u3378(colontmpD__11);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)1):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__12;
		colontmpD__12 = NIM_NIL;
		{
			if (!((*a_1).kind == (*f_p1).kind)) goto LA192_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
		}
		goto LA190_;
LA192_: ;
		{
			colontmpD__12 = skipTypes__ast_u5379(a_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!((*colontmpD__12).kind == (*f_p1).kind)) goto LA195_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
		}
		goto LA190_;
LA195_: ;
LA190_: ;
		eqdestroy___ast_u3378(colontmpD__12);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__13;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__14;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__15;
			if (!((*a_1).kind == (*f_p1).kind)) goto LA200_;
			colontmpD__13 = NIM_NIL;
			colontmpD__14 = NIM_NIL;
			colontmpD__15 = NIM_NIL;
			{
				colontmpD__13 = base__ast_u5351(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA202_;
				if (!((*colontmpD__13).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0))) goto LA205_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				eqdestroy___ast_u3378(colontmpD__15);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__14);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__13);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA205_: ;
			colontmpD__14 = base__ast_u5351(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA202_;
			colontmpD__15 = base__ast_u5351(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA202_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__14, colontmpD__15, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA202_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_1;
				if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0) || result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8)))) goto LA209_;
				expectedType_1 = NIM_NIL;
				expectedType_1 = base__ast_u5351(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA211_;
				{
					NI i_5;
					NI res_1;
					i_5 = (NI)0;
					res_1 = ((NI)0);
					{
						while (1) {
							if (!(res_1 <= ((NI)1))) goto LA214;
							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 LA217_;
								r_1 = NIM_NIL;
								r_1 = tryResolvingStaticExpr__sigmatch_u1815(c_p0, (*(*f_p1).n)._kind_6.sons.p->data[i_5], NIM_FALSE, NIM_FALSE, expectedType_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA219_;
								{
									if (!!((r_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA222_;
									eqsink___ast_u3261(&(*(*f_p1).n)._kind_6.sons.p->data[i_5], r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA219_;
									eqwasMoved___ast_u3249(&r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA219_;
								}
LA222_: ;
								{
									LA219_:;
								}
								{
									oldNimErrFin219_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3252(r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA211_;
									*nimErr_ = oldNimErrFin219_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA211_;
							}
LA217_: ;
							res_1 += ((NI)1);
						} LA214: ;
					}
				}
				result = typeRangeRel__sigmatch_u1287(f_p1, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA211_;
				{
					LA211_:;
				}
				{
					oldNimErrFin211_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(expectedType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA202_;
					*nimErr_ = oldNimErrFin211_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA202_;
			}
LA209_: ;
			{
				LA202_:;
			}
			{
				oldNimErrFin202_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__15);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__14);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__13);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin202_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA198_;
LA200_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* f_2;
			f_2 = NIM_NIL;
			f_2 = skipTypes__ast_u5379(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				NIM_BOOL T233_;
				NIM_BOOL T235_;
				T233_ = (NIM_BOOL)0;
				T233_ = ((*f_2).kind == (*a_1).kind);
				if (!(T233_)) goto LA234_;
				T235_ = (NIM_BOOL)0;
				T235_ = !(((*f_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)14)));
				if (T235_) goto LA236_;
				T235_ = sameEnumTypes__types_u2071(f_2, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA236_: ;
				T233_ = T235_;
LA234_: ;
				if (!T233_) goto LA237_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2);
			}
			goto LA231_;
LA237_: ;
			{
				NIM_BOOL T240_;
				T240_ = (NIM_BOOL)0;
				T240_ = isConvertibleToRange__sigmatch_u855((*c_p0).c, f_2, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T240_) goto LA241_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA231_;
LA241_: ;
LA231_: ;
			eqdestroy___ast_u3378(f_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA198_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31):
	{
		tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg T244_;
		T244_ = (tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0;
		T244_ = targetSizeSignedToKind__types_u1294((*(*(*c_p0).c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		result = handleRange__sigmatch_u757((*c_p0).c, f_p1, a_1, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32), T244_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)32):
	{
		result = handleRange__sigmatch_u757((*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_u757((*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_u757((*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_u757((*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 T250_;
		T250_ = (tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0;
		T250_ = targetSizeUnsignedToKind__types_u1297((*(*(*c_p0).c).graph).config);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		result = handleRange__sigmatch_u757((*c_p0).c, f_p1, a_1, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41), T250_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)41):
	{
		result = handleRange__sigmatch_u757((*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_u757((*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_u757((*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_u757((*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_u908(f_p1, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)37):
	{
		result = handleFloatRange__sigmatch_u908(f_p1, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)38):
	{
		result = handleFloatRange__sigmatch_u908(f_p1, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)39):
	{
		result = handleFloatRange__sigmatch_u908(f_p1, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23):
	{
		tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw colontmpD__16;
		tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw colontmpD__17;
		tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw flags_2;
		nimZeroMem((void*)(&colontmpD__16), sizeof(tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw));
		nimZeroMem((void*)(&colontmpD__17), sizeof(tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw));
		{
			NIM_BOOL T262_;
			T262_ = (NIM_BOOL)0;
			T262_ = isOutParam__ast_u7655(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T262_) goto LA263_;
			colontmpD__16 = (flags_p3 | 8);
			flags_2 = colontmpD__16;
		}
		goto LA260_;
LA263_: ;
		{
			colontmpD__17 = flags_p3;
			flags_2 = colontmpD__17;
		}
LA260_: ;
		{
			NIM_BOOL T268_;
			NIM_BOOL T270_;
			NIM_BOOL T271_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__18;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__19;
			T268_ = (NIM_BOOL)0;
			T268_ = ((*aOrig_2).kind == (*f_p1).kind);
			if (!(T268_)) goto LA269_;
			T270_ = (NIM_BOOL)0;
			T270_ = isOutParam__ast_u7655(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T271_ = (NIM_BOOL)0;
			T271_ = isOutParam__ast_u7655(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T268_ = (T270_ == T271_);
LA269_: ;
			if (!T268_) goto LA272_;
			colontmpD__18 = NIM_NIL;
			colontmpD__19 = NIM_NIL;
			colontmpD__18 = base__ast_u5351(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA274_;
			colontmpD__19 = base__ast_u5351(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA274_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__18, colontmpD__19, flags_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA274_;
			{
				LA274_:;
			}
			{
				oldNimErrFin274_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__19);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__18);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin274_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA266_;
LA272_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__20;
			colontmpD__20 = NIM_NIL;
			colontmpD__20 = base__ast_u5351(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA278_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__20, aOrig_2, (flags_2 | 2));
			if (NIM_UNLIKELY(*nimErr_)) goto LA278_;
			{
				LA278_:;
			}
			{
				oldNimErrFin278_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__20);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin278_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA266_: ;
		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__21;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__22;
			colontmpD__21 = NIM_NIL;
			colontmpD__22 = NIM_NIL;
			{
				colontmpD__21 = last__ast_u5278(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				colontmpD__22 = skipTypes__ast_u5379(colontmpD__21, TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!!(((*colontmpD__22).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27)))) goto LA286_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA286_: ;
			eqdestroy___ast_u3378(colontmpD__22);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__21);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__23;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__24;
			colontmpD__23 = NIM_NIL;
			colontmpD__24 = NIM_NIL;
			{
				colontmpD__23 = last__ast_u5278(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				colontmpD__24 = skipTypes__ast_u5379(colontmpD__23, TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!((*colontmpD__24).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*colontmpD__24).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21) || (*colontmpD__24).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*colontmpD__24).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47) || (*colontmpD__24).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45))) goto LA291_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA291_: ;
			eqdestroy___ast_u3378(colontmpD__24);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__23);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__25;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__26;
			if (!((*aOrig_2).kind == (*f_p1).kind)) goto LA297_;
			colontmpD__25 = NIM_NIL;
			colontmpD__26 = NIM_NIL;
			colontmpD__25 = base__ast_u5351(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA299_;
			colontmpD__26 = base__ast_u5351(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA299_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__25, colontmpD__26, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA299_;
			{
				LA299_:;
			}
			{
				oldNimErrFin299_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__26);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__25);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin299_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA295_;
LA297_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__27;
			colontmpD__27 = NIM_NIL;
			colontmpD__27 = base__ast_u5351(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA303_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__27, aOrig_2, (flags_p3 | 2));
			if (NIM_UNLIKELY(*nimErr_)) goto LA303_;
			{
				LA303_:;
			}
			{
				oldNimErrFin303_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__27);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin303_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA295_: ;
		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__28;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__29;
			colontmpD__28 = NIM_NIL;
			colontmpD__29 = NIM_NIL;
			{
				colontmpD__28 = last__ast_u5278(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				colontmpD__29 = skipTypes__ast_u5379(colontmpD__28, TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!!(((*colontmpD__29).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27)))) goto LA311_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA311_: ;
			eqdestroy___ast_u3378(colontmpD__29);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__28);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__30;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__31;
			colontmpD__30 = NIM_NIL;
			colontmpD__31 = NIM_NIL;
			{
				colontmpD__30 = last__ast_u5278(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				colontmpD__31 = skipTypes__ast_u5379(colontmpD__30, TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!((*colontmpD__31).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*colontmpD__31).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21) || (*colontmpD__31).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*colontmpD__31).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47) || (*colontmpD__31).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45))) goto LA316_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA316_: ;
			eqdestroy___ast_u3378(colontmpD__31);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__30);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T320_;
		T320_ = NIM_NIL;
		T320_ = reduceToBase__types_u4300(a_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T320_); goto LA1_;}
		eqsink___ast_u3387(&a_1, T320_);
		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__32;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__33;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16))) goto LA323_;
			fRange_1 = NIM_NIL;
			aRange_1 = NIM_NIL;
			ff_1 = NIM_NIL;
			aa_1 = NIM_NIL;
			colontmpD__32 = NIM_NIL;
			colontmpD__33 = NIM_NIL;
			fRange_1 = indexType__ast_u5345(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
			aRange_1 = indexType__ast_u5345(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prev_3;
				if (!((*fRange_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12) || (*fRange_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59))) goto LA328_;
				prev_3 = NIM_NIL;
				prev_3 = lookup__layeredtable_u711((&(*c_p0).bindings), (*fRange_1).itemId);
				if (NIM_UNLIKELY(*nimErr_)) goto LA330_;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__34;
					if (!(prev_3 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA333_;
					colontmpD__34 = NIM_NIL;
					{
						tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw T338_;
						tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T339_;
						T338_ = 0;
						T339_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
						T339_ = typeRel__sigmatch_u253(c_p0, fRange_1, aRange_1, T338_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA335_;
						if (!(T339_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA340_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
						eqdestroy___ast_u3378(colontmpD__34);
						if (NIM_UNLIKELY(*nimErr_)) goto LA330_;
						eqdestroy___ast_u3378(prev_3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
						eqdestroy___ast_u3378(colontmpD__33);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(colontmpD__32);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(aa_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(ff_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(aRange_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(fRange_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(aOrig_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA340_: ;
					colontmpD__34 = indexType__ast_u5345(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA335_;
					put__sigmatch_u249(c_p0, fRange_1, colontmpD__34);
					if (NIM_UNLIKELY(*nimErr_)) goto LA335_;
					eqcopy___ast_u3381(&fRange_1, a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA335_;
					{
						LA335_:;
					}
					{
						oldNimErrFin335_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(colontmpD__34);
						if (NIM_UNLIKELY(*nimErr_)) goto LA330_;
						*nimErr_ = oldNimErrFin335_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA330_;
				}
				goto LA331_;
LA333_: ;
				{
					eqsink___ast_u3387(&fRange_1, prev_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA330_;
					eqwasMoved___ast_u3375(&prev_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA330_;
				}
LA331_: ;
				{
					LA330_:;
				}
				{
					oldNimErrFin330_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(prev_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
					*nimErr_ = oldNimErrFin330_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
			}
LA328_: ;
			ff_1 = skipTypes__ast_u5379((*f_p1).sons.p->data[((NI)1)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_18);
			if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
			eqcopy___ast_u3381(&aa_1, (*a_1).sons.p->data[((NI)1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
			{
				NIM_BOOL T349_;
				T349_ = (NIM_BOOL)0;
				colontmpD__32 = indexType__ast_u5345(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
				T349_ = !(((*colontmpD__32).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12)));
				if (!(T349_)) goto LA350_;
				T349_ = ((*aa_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3));
LA350_: ;
				if (!T349_) goto LA351_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
			goto LA347_;
LA351_: ;
			{
				result = typeRel__sigmatch_u253(c_p0, ff_1, aa_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
			}
LA347_: ;
			{
				if (!(result < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA356_;
				{
					NIM_BOOL T360_;
					NIM_BOOL T361_;
					NIM_BOOL T362_;
					T360_ = (NIM_BOOL)0;
					T361_ = (NIM_BOOL)0;
					T362_ = (NIM_BOOL)0;
					T362_ = NIM_FALSE;
					if (!(T362_)) goto LA363_;
					T362_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)1)))&7U)))!=0));
LA363_: ;
					T361_ = T362_;
					if (!(T361_)) goto LA364_;
					T361_ = ((*ff_1).kind == (*aa_1).kind);
LA364_: ;
					T360_ = T361_;
					if (!(T360_)) goto LA365_;
					T360_ = isCovariantPtr__sigmatch_u1961(c_p0, ff_1, aa_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
LA365_: ;
					if (!T360_) goto LA366_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
				}
				goto LA358_;
LA366_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
					eqdestroy___ast_u3378(colontmpD__33);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__32);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(aa_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(ff_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(aRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(fRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA358_: ;
			}
LA356_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__35;
				if (!(((*fRange_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0)) goto LA371_;
				colontmpD__35 = NIM_NIL;
				{
					NIM_BOOL T376_;
					NIM_BOOL T377_;
					NIM_BOOL T380_;
					T376_ = (NIM_BOOL)0;
					T377_ = (NIM_BOOL)0;
					T377_ = ((*aRange_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
					if (!(T377_)) goto LA378_;
					colontmpD__35 = reduceToBase__types_u4300(aRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA373_;
					T377_ = (colontmpD__35 == aRange_1);
LA378_: ;
					T376_ = T377_;
					if (T376_) goto LA379_;
					T380_ = (NIM_BOOL)0;
					T380_ = ((*aRange_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20));
					if (!(T380_)) goto LA381_;
					T380_ = (((*aRange_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0);
LA381_: ;
					T376_ = T380_;
LA379_: ;
					if (!T376_) goto LA382_;
					eqdestroy___ast_u3378(colontmpD__35);
					if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
					eqdestroy___ast_u3378(colontmpD__33);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__32);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(aa_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(ff_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(aRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(fRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA382_: ;
				result = inferStaticsInRange__sigmatch_u1928(c_p0, fRange_1, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA373_;
				eqdestroy___ast_u3378(colontmpD__35);
				if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
				eqdestroy___ast_u3378(colontmpD__33);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__32);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(aa_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(ff_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(aRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(fRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
				{
					LA373_:;
				}
				{
					oldNimErrFin373_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__35);
					if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
					*nimErr_ = oldNimErrFin373_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
			}
			goto LA369_;
LA371_: ;
			{
				NIM_BOOL T387_;
				T387_ = (NIM_BOOL)0;
				T387_ = !(((*(*c_p0).c).matchedConcept == ((tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg*) NIM_NIL)));
				if (!(T387_)) goto LA388_;
				T387_ = (((*aRange_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0);
LA388_: ;
				if (!T387_) goto LA389_;
				result = inferStaticsInRange__sigmatch_u1928(c_p0, aRange_1, f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
				eqdestroy___ast_u3378(colontmpD__33);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__32);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(aa_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(ff_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(aRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(fRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA369_;
LA389_: ;
			{
				NIM_BOOL T392_;
				T392_ = (NIM_BOOL)0;
				T392_ = (result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8));
				if (!(T392_)) goto LA393_;
				colontmpD__33 = concreteType__sigmatch_u732((&(*c_p0)), aa_1, ff_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
				T392_ = (colontmpD__33 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
LA393_: ;
				if (!T392_) goto LA394_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3378(colontmpD__33);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__32);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(aa_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(ff_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(aRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(fRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA369_;
LA394_: ;
			{
				{
					tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T399_;
					tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T400_;
					NIM_BOOL T401_;
					T399_ = lengthOrd__types_u1505((*(*(*c_p0).c).graph).config, fRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
					T400_ = lengthOrd__types_u1505((*(*(*c_p0).c).graph).config, aRange_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
					T401_ = (NIM_BOOL)0;
					T401_ = eqeq___int128_u412(T399_, T400_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA325_;
					if (!!(T401_)) goto LA402_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA402_: ;
			}
LA369_: ;
			{
				LA325_:;
			}
			{
				oldNimErrFin325_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__33);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__32);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(aa_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(ff_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(aRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(fRange_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin325_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA323_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48):
	{
		{
			if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48))) goto LA409_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__36;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__37;
				if (!(((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)0)))&63U)))!=0)) goto LA413_;
				colontmpD__36 = NIM_NIL;
				colontmpD__37 = NIM_NIL;
				colontmpD__36 = base__ast_u5351(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA415_;
				colontmpD__37 = elementType__ast_u5331(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA415_;
				result = typeRel__sigmatch_u253(c_p0, colontmpD__36, colontmpD__37, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA415_;
				eqdestroy___ast_u3378(colontmpD__37);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__36);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
				{
					LA415_:;
				}
				{
					oldNimErrFin415_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__37);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__36);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin415_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA413_: ;
			{
				if (!((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7))) goto LA420_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA420_: ;
		}
LA409_: ;
		switch ((*a_1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27):
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__38;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__39;
			colontmpD__38 = NIM_NIL;
			colontmpD__39 = NIM_NIL;
			colontmpD__38 = base__ast_u5351(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA423_;
			colontmpD__39 = base__ast_u5351(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA423_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__38, colontmpD__39, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA423_;
			{
				if (!(result < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA426_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA426_: ;
			{
				LA423_:;
			}
			{
				oldNimErrFin423_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__39);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__38);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin423_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__40;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ffX60gensym390__1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aaX60gensym390__1;
			tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ baseRelX60gensym390__1;
			colontmpD__40 = NIM_NIL;
			ffX60gensym390__1 = NIM_NIL;
			aaX60gensym390__1 = NIM_NIL;
			{
				NIM_BOOL T434_;
				T434_ = (NIM_BOOL)0;
				T434_ = !(((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12)));
				if (!(T434_)) goto LA435_;
				colontmpD__40 = elementType__ast_u5331(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA431_;
				T434_ = ((*colontmpD__40).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3));
LA435_: ;
				if (!T434_) goto LA436_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
				eqdestroy___ast_u3378(aaX60gensym390__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(ffX60gensym390__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__40);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA436_: ;
			ffX60gensym390__1 = base__ast_u5351(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA431_;
			aaX60gensym390__1 = elementType__ast_u5331(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA431_;
			baseRelX60gensym390__1 = typeRel__sigmatch_u253(c_p0, ffX60gensym390__1, aaX60gensym390__1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA431_;
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) <= baseRelX60gensym390__1)) goto LA440_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA438_;
LA440_: ;
			{
				NIM_BOOL T443_;
				NIM_BOOL T444_;
				NIM_BOOL T445_;
				T443_ = (NIM_BOOL)0;
				T444_ = (NIM_BOOL)0;
				T445_ = (NIM_BOOL)0;
				T445_ = NIM_FALSE;
				if (!(T445_)) goto LA446_;
				T445_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)1)))&7U)))!=0));
LA446_: ;
				T444_ = T445_;
				if (!(T444_)) goto LA447_;
				T444_ = ((*ffX60gensym390__1).kind == (*aaX60gensym390__1).kind);
LA447_: ;
				T443_ = T444_;
				if (!(T443_)) goto LA448_;
				T443_ = isCovariantPtr__sigmatch_u1961(c_p0, ffX60gensym390__1, aaX60gensym390__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA431_;
LA448_: ;
				if (!T443_) goto LA449_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA438_;
LA449_: ;
LA438_: ;
			{
				LA431_:;
			}
			{
				oldNimErrFin431_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(aaX60gensym390__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(ffX60gensym390__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__40);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin431_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__41;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ffX60gensym395__1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aaX60gensym395__1;
			tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ baseRelX60gensym395__1;
			colontmpD__41 = NIM_NIL;
			ffX60gensym395__1 = NIM_NIL;
			aaX60gensym395__1 = NIM_NIL;
			{
				NIM_BOOL T457_;
				T457_ = (NIM_BOOL)0;
				T457_ = !(((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12)));
				if (!(T457_)) goto LA458_;
				colontmpD__41 = elementType__ast_u5331(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA454_;
				T457_ = ((*colontmpD__41).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3));
LA458_: ;
				if (!T457_) goto LA459_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
				eqdestroy___ast_u3378(aaX60gensym395__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(ffX60gensym395__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__41);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA459_: ;
			ffX60gensym395__1 = base__ast_u5351(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA454_;
			aaX60gensym395__1 = elementType__ast_u5331(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA454_;
			baseRelX60gensym395__1 = typeRel__sigmatch_u253(c_p0, ffX60gensym395__1, aaX60gensym395__1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA454_;
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) <= baseRelX60gensym395__1)) goto LA463_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA461_;
LA463_: ;
			{
				NIM_BOOL T466_;
				NIM_BOOL T467_;
				NIM_BOOL T468_;
				T466_ = (NIM_BOOL)0;
				T467_ = (NIM_BOOL)0;
				T468_ = (NIM_BOOL)0;
				T468_ = NIM_FALSE;
				if (!(T468_)) goto LA469_;
				T468_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)1)))&7U)))!=0));
LA469_: ;
				T467_ = T468_;
				if (!(T467_)) goto LA470_;
				T467_ = ((*ffX60gensym395__1).kind == (*aaX60gensym395__1).kind);
LA470_: ;
				T466_ = T467_;
				if (!(T466_)) goto LA471_;
				T466_ = isCovariantPtr__sigmatch_u1961(c_p0, ffX60gensym395__1, aaX60gensym395__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA454_;
LA471_: ;
				if (!T466_) goto LA472_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA461_;
LA472_: ;
LA461_: ;
			{
				LA454_:;
			}
			{
				oldNimErrFin454_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(aaX60gensym395__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(ffX60gensym395__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__41);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin454_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28):
		{
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__42;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__43;
				if (!((*f_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27))) goto LA479_;
				colontmpD__42 = NIM_NIL;
				colontmpD__43 = NIM_NIL;
				{
					if (!((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2))) goto LA484_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
				}
				goto LA482_;
LA484_: ;
				{
					NIM_BOOL T487_;
					NIM_BOOL T488_;
					NI T490_;
					tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T492_;
					T487_ = (NIM_BOOL)0;
					T488_ = (NIM_BOOL)0;
					T488_ = ((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
					if (!(T488_)) goto LA489_;
					T490_ = (NI)0;
					T490_ = len__ast_u5502(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA481_;
					T488_ = (((NI)0) < T490_);
LA489_: ;
					T487_ = T488_;
					if (!(T487_)) goto LA491_;
					colontmpD__42 = base__ast_u5351(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA481_;
					colontmpD__43 = base__ast_u5351(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA481_;
					T492_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
					T492_ = typeRel__sigmatch_u253(c_p0, colontmpD__42, colontmpD__43, flags_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA481_;
					T487_ = (((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) <= T492_);
LA491_: ;
					if (!T487_) goto LA493_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
				}
				goto LA482_;
LA493_: ;
LA482_: ;
				{
					LA481_:;
				}
				{
					oldNimErrFin481_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__43);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__42);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin481_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA479_: ;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)24):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__44;
			if (!((*a_1).kind == (*f_p1).kind)) goto LA501_;
			colontmpD__44 = NIM_NIL;
			{
				NIM_BOOL T506_;
				T506_ = (NIM_BOOL)0;
				T506_ = !(((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12)));
				if (!(T506_)) goto LA507_;
				colontmpD__44 = elementType__ast_u5331(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA503_;
				T506_ = ((*colontmpD__44).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3));
LA507_: ;
				if (!T506_) goto LA508_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
			}
			goto LA504_;
LA508_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_2;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_2;
				ff_2 = NIM_NIL;
				aa_2 = NIM_NIL;
				eqcopy___ast_u3381(&ff_2, (*f_p1).sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA511_;
				aa_2 = elementType__ast_u5331(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA511_;
				result = typeRel__sigmatch_u253(c_p0, ff_2, aa_2, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA511_;
				{
					if (!(result < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA514_;
					{
						NIM_BOOL T518_;
						NIM_BOOL T519_;
						NIM_BOOL T520_;
						T518_ = (NIM_BOOL)0;
						T519_ = (NIM_BOOL)0;
						T520_ = (NIM_BOOL)0;
						T520_ = NIM_FALSE;
						if (!(T520_)) goto LA521_;
						T520_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)1)))&7U)))!=0));
LA521_: ;
						T519_ = T520_;
						if (!(T519_)) goto LA522_;
						T519_ = ((*ff_2).kind == (*aa_2).kind);
LA522_: ;
						T518_ = T519_;
						if (!(T518_)) goto LA523_;
						T518_ = isCovariantPtr__sigmatch_u1961(c_p0, ff_2, aa_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA511_;
LA523_: ;
						if (!T518_) goto LA524_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
					}
					goto LA516_;
LA524_: ;
					{
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
					}
LA516_: ;
				}
LA514_: ;
				{
					LA511_:;
				}
				{
					oldNimErrFin511_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(aa_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA503_;
					eqdestroy___ast_u3378(ff_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA503_;
					*nimErr_ = oldNimErrFin511_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA503_;
			}
LA504_: ;
			{
				LA503_:;
			}
			{
				oldNimErrFin503_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__44);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin503_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA499_;
LA501_: ;
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5))) goto LA532_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		}
		goto LA499_;
LA532_: ;
LA499_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15):
	{
		{
			NIM_BOOL T537_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_4;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T541_;
			T537_ = (NIM_BOOL)0;
			T537_ = isOrdinalType__types_u283(a_1, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!T537_) goto LA538_;
			x_4 = NIM_NIL;
			T541_ = NIM_NIL;
			{
				if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)15))) goto LA544_;
				x_4 = elementType__ast_u5331(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA540_;
			}
			goto LA542_;
LA544_: ;
			{
				x_4 = a_1;
				eqwasMoved___ast_u3375(&a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA540_;
			}
LA542_: ;
			{
				if (!((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0))) goto LA549_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
			goto LA547_;
LA549_: ;
			{
				result = typeRel__sigmatch_u253(c_p0, (*f_p1).sons.p->data[((NI)0)], x_4, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA540_;
				{
					if (!(result < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA554_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA554_: ;
			}
LA547_: ;
			{
				LA540_:;
			}
			{
				oldNimErrFin540_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(x_4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin540_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA535_;
LA538_: ;
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA559_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
		}
		goto LA535_;
LA559_: ;
LA535_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)30):
	{
		result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T567_;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45))) goto LA565_;
			T567_ = NIM_NIL;
			T567_ = skipTypes__ast_u5379(a_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_33);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T567_); goto LA1_;}
			eqsink___ast_u3387(&a_1, T567_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA565_: ;
		{
			if (!((*a_1).kind == (*f_p1).kind)) goto LA570_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
		}
LA570_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
	{
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18))) goto LA575_;
			result = recordRel__sigmatch_u1126(c_p0, f_p1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA575_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* effectiveArgType_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T579_;
		effectiveArgType_1 = NIM_NIL;
		T579_ = NIM_NIL;
		{
			if (!useTypeLoweringRuleInTypeClass_1) goto LA582_;
			effectiveArgType_1 = a_1;
			eqwasMoved___ast_u3375(&a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA578_;
		}
		goto LA580_;
LA582_: ;
		{
			effectiveArgType_1 = reduceToBase__types_u4300(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA578_;
		}
LA580_: ;
		{
			if (!((*effectiveArgType_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17))) goto LA587_;
			{
				NIM_BOOL T591_;
				T591_ = (NIM_BOOL)0;
				T591_ = sameObjectTypes__types_u2018(f_p1, effectiveArgType_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA578_;
				if (!T591_) goto LA592_;
				{
					if (!!((((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)2)))&63U)))!=0))) goto LA596_;
					(*c_p0).inheritancePenalty += ((*c_p0).inheritancePenalty < ((NI)0));
				}
LA596_: ;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			}
			goto LA589_;
LA592_: ;
			{
				NI depth_1;
				if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)3)))&7U)))!=0))) goto LA599_;
				depth_1 = isObjectSubtype__sigmatch_u977(c_p0, effectiveArgType_1, f_p1, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto LA578_;
				{
					if (!(((NI)0) < depth_1)) goto LA603_;
					(*c_p0).inheritancePenalty += (NI)(depth_1 + ((*c_p0).inheritancePenalty < ((NI)0)));
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
				}
LA603_: ;
			}
			goto LA589_;
LA599_: ;
LA589_: ;
		}
LA587_: ;
		{
			LA578_:;
		}
		{
			oldNimErrFin578_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(effectiveArgType_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin578_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T608_;
		T608_ = NIM_NIL;
		T608_ = skipTypes__ast_u5379(a_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_34);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T608_); goto LA1_;}
		eqsink___ast_u3387(&a_1, T608_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13))) goto LA611_;
			{
				NIM_BOOL T615_;
				T615_ = (NIM_BOOL)0;
				T615_ = sameDistinctTypes__types_u2067(f_p1, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T615_) goto LA616_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			}
			goto LA613_;
LA616_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__45;
				if (!(*c_p0).coerceDistincts) goto LA619_;
				colontmpD__45 = NIM_NIL;
				colontmpD__45 = base__ast_u5351(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA621_;
				result = typeRel__sigmatch_u253(c_p0, colontmpD__45, a_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA621_;
				{
					LA621_:;
				}
				{
					oldNimErrFin621_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__45);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin621_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			goto LA613_;
LA619_: ;
LA613_: ;
		}
		goto LA609_;
LA611_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__46;
			if (!(*c_p0).coerceDistincts) goto LA625_;
			colontmpD__46 = NIM_NIL;
			colontmpD__46 = base__ast_u5351(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA627_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__46, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA627_;
			{
				LA627_:;
			}
			{
				oldNimErrFin627_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__46);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin627_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA609_;
LA625_: ;
LA609_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19):
	{
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)19))) goto LA633_;
			{
				NIM_BOOL T637_;
				T637_ = (NIM_BOOL)0;
				T637_ = !(((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12)));
				if (!(T637_)) goto LA638_;
				T637_ = ((*(*a_1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3));
LA638_: ;
				if (!T637_) goto LA639_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
			}
			goto LA635_;
LA639_: ;
			{
				result = typeRel__sigmatch_u253(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 LA644_;
					{
						if (!!((((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)43)))&63U)))!=0))) goto LA648_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
					}
					goto LA646_;
LA648_: ;
					{
						{
							if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1) <= result)) goto LA653_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
						}
						goto LA651_;
LA653_: ;
						{
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
						}
LA651_: ;
					}
LA646_: ;
				}
LA644_: ;
			}
LA635_: ;
		}
LA633_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T657_;
		T657_ = NIM_NIL;
		T657_ = reduceToBase__types_u4300(a_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T657_); goto LA1_;}
		eqsink___ast_u3387(&a_1, T657_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__47;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__48;
			if (!((*a_1).kind == (*f_p1).kind)) goto LA660_;
			colontmpD__47 = NIM_NIL;
			colontmpD__48 = NIM_NIL;
			{
				NI T665_;
				NI T666_;
				T665_ = (NI)0;
				T665_ = len__ast_u5502(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
				T666_ = (NI)0;
				T666_ = len__ast_u5502(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
				if (!(T665_ < T666_)) goto LA667_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3378(colontmpD__48);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__47);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA667_: ;
			{
				NI i_6;
				NI colontmp__3;
				NI T670_;
				NI i_7;
				i_6 = (NI)0;
				colontmp__3 = (NI)0;
				T670_ = (NI)0;
				T670_ = len__ast_u5502(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
				colontmp__3 = (NI)(T670_ - ((NI)1));
				i_7 = ((NI)0);
				{
					while (1) {
						if (!(i_7 < colontmp__3)) goto LA672;
						i_6 = i_7;
						{
							tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T675_;
							T675_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
							T675_ = typeRel__sigmatch_u253(c_p0, (*f_p1).sons.p->data[i_6], (*a_1).sons.p->data[i_6], flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
							if (!(T675_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA676_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
							eqdestroy___ast_u3378(colontmpD__48);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(colontmpD__47);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(aOrig_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA676_: ;
						i_7 += ((NI)1);
					} LA672: ;
				}
			}
			colontmpD__47 = elementType__ast_u5331(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
			colontmpD__48 = elementType__ast_u5331(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__47, colontmpD__48, (flags_p3 | 2));
			if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
			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__49;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__50;
				colontmpD__49 = NIM_NIL;
				colontmpD__50 = NIM_NIL;
				{
					colontmpD__49 = last__ast_u5278(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
					colontmpD__50 = skipTypes__ast_u5379(colontmpD__49, TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
					if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
					if (!!(((*colontmpD__50).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)27)))) goto LA683_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA683_: ;
				eqdestroy___ast_u3378(colontmpD__50);
				if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
				eqdestroy___ast_u3378(colontmpD__49);
				if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
			}
			break;
			case ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__51;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__52;
				colontmpD__51 = NIM_NIL;
				colontmpD__52 = NIM_NIL;
				{
					colontmpD__51 = last__ast_u5278(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
					colontmpD__52 = skipTypes__ast_u5379(colontmpD__51, TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
					if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
					if (!((*colontmpD__52).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*colontmpD__52).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21) || (*colontmpD__52).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*colontmpD__52).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47) || (*colontmpD__52).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45))) goto LA688_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA688_: ;
				eqdestroy___ast_u3378(colontmpD__52);
				if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
				eqdestroy___ast_u3378(colontmpD__51);
				if (NIM_UNLIKELY(*nimErr_)) goto LA662_;
			}
			break;
			default:
			{
			}
			break;
			}
			{
				if (!(result <= ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2))) goto LA693_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
			goto LA691_;
LA693_: ;
			{
				NIM_BOOL T696_;
				T696_ = (NIM_BOOL)0;
				T696_ = (((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0);
				if (!(T696_)) goto LA697_;
				T696_ = !((((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0));
LA697_: ;
				if (!T696_) goto LA698_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA691_;
LA698_: ;
LA691_: ;
			{
				LA662_:;
			}
			{
				oldNimErrFin662_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__48);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__47);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin662_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA658_;
LA660_: ;
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5))) goto LA703_;
			result = allowsNil__sigmatch_u1184(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA658_;
LA703_: ;
		{
		}
LA658_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T711_;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45))) goto LA709_;
			T711_ = NIM_NIL;
			T711_ = skipTypes__ast_u5379(a_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_33);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T711_); goto LA1_;}
			eqsink___ast_u3387(&a_1, T711_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA709_: ;
		result = procTypeRel__sigmatch_u1236(c_p0, f_p1, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			NIM_BOOL T714_;
			NIM_BOOL T715_;
			T714_ = (NIM_BOOL)0;
			T715_ = (NIM_BOOL)0;
			T715_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
			if (!(T715_)) goto LA716_;
			T715_ = (((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0);
LA716_: ;
			T714_ = T715_;
			if (!(T714_)) goto LA717_;
			T714_ = !((((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0));
LA717_: ;
			if (!T714_) goto LA718_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
		}
LA718_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
	{
		switch ((*a_1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__53;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__54;
			colontmpD__53 = NIM_NIL;
			colontmpD__54 = NIM_NIL;
			colontmpD__53 = skipModifier__ast_u5338(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA722_;
			colontmpD__54 = skipModifier__ast_u5338(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA722_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__53, colontmpD__54, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA722_;
			{
				LA722_:;
			}
			{
				oldNimErrFin722_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__54);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__53);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin722_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
		{
			result = allowsNil__sigmatch_u1184(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)26):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T732_;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45))) goto LA730_;
			T732_ = NIM_NIL;
			T732_ = skipTypes__ast_u5379(a_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_33);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T732_); goto LA1_;}
			eqsink___ast_u3387(&a_1, T732_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA730_: ;
		switch ((*a_1).kind) {
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)26):
		{
			{
				NIM_BOOL T736_;
				T736_ = (NIM_BOOL)0;
				T736_ = (((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0);
				if (!(T736_)) goto LA737_;
				T736_ = !((((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0));
LA737_: ;
				if (!T736_) goto LA738_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA734_;
LA738_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			}
LA734_: ;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
		{
			result = allowsNil__sigmatch_u1184(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
		{
			{
				NIM_BOOL T745_;
				T745_ = (NIM_BOOL)0;
				T745_ = isDefined__options_u959((*(*(*c_p0).c).graph).config, TM__EV5hHJmjIY9cla9b9be7fSVJQ_36);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T745_) goto LA746_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
			goto LA743_;
LA746_: ;
			{
				{
					if (!!(((*a_1).callConv == ((tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ)9)))) goto LA751_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
				}
LA751_: ;
			}
LA743_: ;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21):
		{
			{
				NI T756_;
				T756_ = (NI)0;
				T756_ = len__ast_u5502(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!(T756_ == ((NI)1))) goto LA757_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
LA757_: ;
		}
		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 T769_;
				T769_ = (NIM_BOOL)0;
				T769_ = (((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0);
				if (!(T769_)) goto LA770_;
				T769_ = !((((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)17)))&63U)))!=0));
LA770_: ;
				if (!T769_) goto LA771_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
			}
			goto LA767_;
LA771_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			}
LA767_: ;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5):
		{
			result = allowsNil__sigmatch_u1184(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 T779_;
				T779_ = (NIM_BOOL)0;
				T779_ = isDefined__options_u959((*(*(*c_p0).c).graph).config, TM__EV5hHJmjIY9cla9b9be7fSVJQ_38);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!T779_) goto LA780_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
			goto LA777_;
LA780_: ;
			{
				{
					NI T785_;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* pointsTo_1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__55;
					T785_ = (NI)0;
					T785_ = len__ast_u5502(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if (!(T785_ == ((NI)1))) goto LA786_;
					pointsTo_1 = NIM_NIL;
					colontmpD__55 = NIM_NIL;
					pointsTo_1 = skipTypes__ast_u5379((*a_1).sons.p->data[((NI)0)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
					if (NIM_UNLIKELY(*nimErr_)) goto LA788_;
					{
						if (!((*pointsTo_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2))) goto LA791_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
					}
					goto LA789_;
LA791_: ;
					{
						NIM_BOOL T794_;
						T794_ = (NIM_BOOL)0;
						T794_ = ((*pointsTo_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)49));
						if (!(T794_)) goto LA795_;
						T794_ = ((*(*pointsTo_1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2));
LA795_: ;
						if (!T794_) goto LA796_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
					}
					goto LA789_;
LA796_: ;
					{
						NIM_BOOL T799_;
						NIM_BOOL T800_;
						NIM_BOOL T801_;
						tyObject_Int128__Moyhy3H7f18q9axhPc7Yt9bg T803_;
						T799_ = (NIM_BOOL)0;
						T800_ = (NIM_BOOL)0;
						T801_ = (NIM_BOOL)0;
						T801_ = ((*pointsTo_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16));
						if (!(T801_)) goto LA802_;
						T803_ = firstOrd__types_u1182(((tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*) NIM_NIL), (*pointsTo_1).sons.p->data[((NI)0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA788_;
						T801_ = eqeq___int128_u980(T803_, IL64(0));
						if (NIM_UNLIKELY(*nimErr_)) goto LA788_;
LA802_: ;
						T800_ = T801_;
						if (!(T800_)) goto LA804_;
						colontmpD__55 = skipTypes__ast_u5379((*pointsTo_1).sons.p->data[((NI)0)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
						if (NIM_UNLIKELY(*nimErr_)) goto LA788_;
						T800_ = ((*colontmpD__55).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31) && (*colontmpD__55).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)35));
LA804_: ;
						T799_ = T800_;
						if (!(T799_)) goto LA805_;
						T799_ = ((*(*pointsTo_1).sons.p->data[((NI)1)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)2));
LA805_: ;
						if (!T799_) goto LA806_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1);
					}
					goto LA789_;
LA806_: ;
LA789_: ;
					{
						LA788_:;
					}
					{
						oldNimErrFin788_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(colontmpD__55);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(pointsTo_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin788_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA786_: ;
			}
LA777_: ;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63):
	{
		{
			if (!((*a_1).kind == (*f_p1).kind)) goto LA814_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
		}
LA814_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)4):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)46):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__56;
		colontmpD__56 = NIM_NIL;
		colontmpD__56 = skipModifier__ast_u5338(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA817_;
		result = typeRel__sigmatch_u253(c_p0, colontmpD__56, a_1, flags_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA817_;
		{
			LA817_:;
		}
		{
			oldNimErrFin817_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__56);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin817_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)64):
	{
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)64))) goto LA823_;
			{
				NI T827_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__57;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__58;
				T827_ = (NI)0;
				T827_ = len__ast_u5502(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!(T827_ == ((NI)1))) goto LA828_;
				colontmpD__57 = NIM_NIL;
				colontmpD__58 = NIM_NIL;
				colontmpD__57 = skipModifier__ast_u5338(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA830_;
				colontmpD__58 = skipModifier__ast_u5338(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA830_;
				result = typeRel__sigmatch_u253(c_p0, colontmpD__57, colontmpD__58, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA830_;
				{
					LA830_:;
				}
				{
					oldNimErrFin830_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__58);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__57);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin830_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			goto LA825_;
LA828_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
LA825_: ;
		}
		goto LA821_;
LA823_: ;
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		}
LA821_: ;
	}
	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__59;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__60;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* roota_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* rootf_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T837_;
		NI deptha_1;
		NI depthf_1;
		NIM_BOOL skipBoth_1;
		NIM_BOOL T843_;
		NIM_BOOL T845_;
		NIM_BOOL T846_;
		NI T847_;
		NI T849_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T851_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T859_;
		prev_4 = NIM_NIL;
		origF_1 = NIM_NIL;
		f_3 = NIM_NIL;
		colontmpD__59 = NIM_NIL;
		colontmpD__60 = NIM_NIL;
		roota_1 = NIM_NIL;
		rootf_1 = NIM_NIL;
		prev_4 = lookup__layeredtable_u711((&(*c_p0).bindings), (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		eqcopy___ast_u3381(&origF_1, f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		T837_ = NIM_NIL;
		{
			if (!(prev_4 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA840_;
			eqcopy___ast_u3381(&f_3, f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		}
		goto LA838_;
LA840_: ;
		{
			eqcopy___ast_u3381(&f_3, prev_4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		}
LA838_: ;
		deptha_1 = genericAliasDepth__types_u2153(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		depthf_1 = genericAliasDepth__types_u2153(f_3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		T843_ = (NIM_BOOL)0;
		T843_ = (deptha_1 == depthf_1);
		if (!(T843_)) goto LA844_;
		T845_ = (NIM_BOOL)0;
		T846_ = (NIM_BOOL)0;
		T847_ = (NI)0;
		T847_ = len__ast_u5502(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		T846_ = (((NI)0) < T847_);
		if (!(T846_)) goto LA848_;
		T849_ = (NI)0;
		T849_ = len__ast_u5502(f_3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		T846_ = (((NI)0) < T849_);
LA848_: ;
		T845_ = T846_;
		if (!(T845_)) goto LA850_;
		colontmpD__59 = base__ast_u5351(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		colontmpD__60 = base__ast_u5351(f_3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		T845_ = !((colontmpD__59 == colontmpD__60));
LA850_: ;
		T843_ = T845_;
LA844_: ;
		skipBoth_1 = T843_;
		T851_ = NIM_NIL;
		{
			NIM_BOOL T854_;
			T854_ = (NIM_BOOL)0;
			T854_ = skipBoth_1;
			if (T854_) goto LA855_;
			T854_ = (depthf_1 < deptha_1);
LA855_: ;
			if (!T854_) goto LA856_;
			roota_1 = skipGenericAlias__types_u2162(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		}
		goto LA852_;
LA856_: ;
		{
			eqcopy___ast_u3381(&roota_1, a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		}
LA852_: ;
		T859_ = NIM_NIL;
		{
			NIM_BOOL T862_;
			T862_ = (NIM_BOOL)0;
			T862_ = skipBoth_1;
			if (T862_) goto LA863_;
			T862_ = (deptha_1 < depthf_1);
LA863_: ;
			if (!T862_) goto LA864_;
			rootf_1 = skipGenericAlias__types_u2162(f_3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		}
		goto LA860_;
LA864_: ;
		{
			eqcopy___ast_u3381(&rootf_1, f_3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		}
LA860_: ;
		{
			NIM_BOOL T869_;
			T869_ = (NIM_BOOL)0;
			T869_ = isConcept__types_u3423(f_3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
			if (!T869_) goto LA870_;
			result = enterConceptMatch__sigmatch_u2001(c_p0, rootf_1, roota_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		}
		goto LA867_;
LA870_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__61;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__62;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__63;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aAsObject_1;
			tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg fKind_1;
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11))) goto LA873_;
			colontmpD__61 = NIM_NIL;
			colontmpD__62 = NIM_NIL;
			colontmpD__63 = NIM_NIL;
			aAsObject_1 = NIM_NIL;
			{
				tySet_tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw nextFlags_1;
				colontmpD__61 = base__ast_u5351(roota_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
				colontmpD__62 = base__ast_u5351(rootf_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
				if (!(colontmpD__61 == colontmpD__62)) goto LA878_;
				nextFlags_1 = (flags_p3 | 2);
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
				{
					NI i_8;
					NI colontmp__4;
					NI T881_;
					NI i_9;
					i_8 = (NI)0;
					colontmp__4 = (NI)0;
					T881_ = (NI)0;
					T881_ = len__ast_u5502(rootf_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
					colontmp__4 = (NI)(T881_ - ((NI)1));
					i_9 = ((NI)1);
					{
						while (1) {
							if (!(i_9 < colontmp__4)) goto LA883;
							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_u3381(&ff_3, (*rootf_1).sons.p->data[i_8]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA885_;
								eqcopy___ast_u3381(&aa_3, (*roota_1).sons.p->data[i_8]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA885_;
								res_2 = typeRel__sigmatch_u253(c_p0, ff_3, aa_3, nextFlags_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA885_;
								{
									NIM_BOOL T888_;
									T888_ = (NIM_BOOL)0;
									T888_ = !((res_2 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
									if (!(T888_)) goto LA889_;
									T888_ = !((res_2 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10)));
LA889_: ;
									if (!T888_) goto LA890_;
									result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
								}
LA890_: ;
								{
									if (!!((res_2 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10) || res_2 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8)))) goto LA894_;
									{
										NIM_BOOL T898_;
										tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__64;
										NIM_BOOL colontmpD__65;
										NIM_BOOL colontmpD__66;
										tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A paramFlags_1;
										NIM_BOOL hasCovariance_1;
										T898_ = (NIM_BOOL)0;
										T898_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)1)))&7U)))!=0));
										if (!(T898_)) goto LA899_;
										T898_ = ((*ff_3).kind == (*aa_3).kind);
LA899_: ;
										if (!T898_) goto LA900_;
										colontmpD__64 = NIM_NIL;
										colontmpD__65 = (NIM_BOOL)0;
										colontmpD__66 = (NIM_BOOL)0;
										colontmpD__64 = base__ast_u5351(rootf_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA902_;
										paramFlags_1 = (*(*colontmpD__64).sons.p->data[(NI)(i_8 - ((NI)1))]).flags;
										{
											NIM_BOOL colontmpD__67;
											NIM_BOOL colontmpD__68;
											if (!((paramFlags_1 &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)35)))&63U)))!=0)) goto LA905_;
											colontmpD__67 = (NIM_BOOL)0;
											colontmpD__68 = (NIM_BOOL)0;
											{
												if (!((paramFlags_1 &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)36)))&63U)))!=0)) goto LA910_;
												colontmpD__67 = isCovariantPtr__sigmatch_u1961(c_p0, ff_3, aa_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA912_;
												colontmpD__65 = colontmpD__67;
												{
													LA912_:;
												}
												{
												}
												if (NIM_UNLIKELY(*nimErr_)) goto LA907_;
											}
											goto LA908_;
LA910_: ;
											{
												NIM_BOOL T916_;
												T916_ = (NIM_BOOL)0;
												T916_ = !(((*ff_3).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || (*ff_3).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21)));
												if (!(T916_)) goto LA917_;
												T916_ = (res_2 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3));
LA917_: ;
												colontmpD__68 = T916_;
												colontmpD__65 = colontmpD__68;
											}
LA908_: ;
											hasCovariance_1 = colontmpD__65;
											{
												LA907_:;
											}
											{
											}
											if (NIM_UNLIKELY(*nimErr_)) goto LA902_;
										}
										goto LA903_;
LA905_: ;
										{
											NIM_BOOL T922_;
											tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T924_;
											T922_ = (NIM_BOOL)0;
											T922_ = ((paramFlags_1 &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)37)))&63U)))!=0);
											if (!(T922_)) goto LA923_;
											T924_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
											T924_ = typeRel__sigmatch_u253(c_p0, aa_3, ff_3, flags_p3);
											if (NIM_UNLIKELY(*nimErr_)) goto LA921_;
											T922_ = (T924_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3));
LA923_: ;
											colontmpD__66 = T922_;
											hasCovariance_1 = colontmpD__66;
											{
												LA921_:;
											}
											{
											}
											if (NIM_UNLIKELY(*nimErr_)) goto LA902_;
										}
LA903_: ;
										{
											if (!hasCovariance_1) goto LA929_;
											eqdestroy___ast_u3378(colontmpD__64);
											if (NIM_UNLIKELY(*nimErr_)) goto LA885_;
											eqdestroy___ast_u3378(aa_3);
											if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
											eqdestroy___ast_u3378(ff_3);
											if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
											goto LA884;
										}
LA929_: ;
										{
											LA902_:;
										}
										{
											oldNimErrFin902_ = *nimErr_; *nimErr_ = NIM_FALSE;
											eqdestroy___ast_u3378(colontmpD__64);
											if (NIM_UNLIKELY(*nimErr_)) goto LA885_;
											*nimErr_ = oldNimErrFin902_;
										}
										if (NIM_UNLIKELY(*nimErr_)) goto LA885_;
									}
LA900_: ;
									result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
									eqdestroy___ast_u3378(aa_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
									eqdestroy___ast_u3378(ff_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
									goto LA880;
								}
LA894_: ;
								{
									LA885_:;
								}
								{
									oldNimErrFin885_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3378(aa_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
									eqdestroy___ast_u3378(ff_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
									*nimErr_ = oldNimErrFin885_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
							} LA884: ;
							i_9 += ((NI)1);
						} LA883: ;
					}
				} LA880: ;
				{
					if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA937_;
					{
						if (!(prev_4 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA941_;
						put__sigmatch_u249(c_p0, f_3, a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
					}
LA941_: ;
					eqdestroy___ast_u3378(aAsObject_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
					eqdestroy___ast_u3378(colontmpD__63);
					if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
					eqdestroy___ast_u3378(colontmpD__62);
					if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
					eqdestroy___ast_u3378(colontmpD__61);
					if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
					eqdestroy___ast_u3378(rootf_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(roota_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__60);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__59);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(f_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(origF_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(prev_4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA937_: ;
			}
LA878_: ;
			colontmpD__63 = last__ast_u5278(rootf_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
			fKind_1 = (*colontmpD__63).kind;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__69;
				if (!(fKind_1 == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56) || fKind_1 == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)57))) goto LA945_;
				colontmpD__69 = NIM_NIL;
				colontmpD__69 = last__ast_u5278(f_3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA947_;
				result = typeRel__sigmatch_u253(c_p0, colontmpD__69, a_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA947_;
				{
					if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA950_;
					put__sigmatch_u249(c_p0, f_3, a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA947_;
				}
LA950_: ;
				eqdestroy___ast_u3378(colontmpD__69);
				if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
				eqdestroy___ast_u3378(aAsObject_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
				eqdestroy___ast_u3378(colontmpD__63);
				if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
				eqdestroy___ast_u3378(colontmpD__62);
				if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
				eqdestroy___ast_u3378(colontmpD__61);
				if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
				eqdestroy___ast_u3378(rootf_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(roota_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__60);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__59);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(f_3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(origF_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(prev_4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
				{
					LA947_:;
				}
				{
					oldNimErrFin947_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__69);
					if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
					*nimErr_ = oldNimErrFin947_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
			}
LA945_: ;
			aAsObject_1 = last__ast_u5278(roota_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
			{
				if (!(fKind_1 == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22) || fKind_1 == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21))) goto LA956_;
				{
					if (!((*aAsObject_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17))) goto LA960_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
					eqdestroy___ast_u3378(aAsObject_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
					eqdestroy___ast_u3378(colontmpD__63);
					if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
					eqdestroy___ast_u3378(colontmpD__62);
					if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
					eqdestroy___ast_u3378(colontmpD__61);
					if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
					eqdestroy___ast_u3378(rootf_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(roota_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__60);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__59);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(f_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(origF_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(prev_4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
				goto LA958_;
LA960_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T965_;
					if (!((*aAsObject_1).kind == fKind_1)) goto LA963_;
					T965_ = NIM_NIL;
					T965_ = base__ast_u5351(aAsObject_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T965_); goto LA875_;}
					eqsink___ast_u3387(&aAsObject_1, T965_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
				}
				goto LA958_;
LA963_: ;
LA958_: ;
			}
LA956_: ;
			{
				NIM_BOOL T968_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* baseType_1;
				T968_ = (NIM_BOOL)0;
				T968_ = ((*aAsObject_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
				if (!(T968_)) goto LA969_;
				T968_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)3)))&7U)))!=0));
LA969_: ;
				if (!T968_) goto LA970_;
				baseType_1 = NIM_NIL;
				baseType_1 = base__ast_u5351(aAsObject_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA972_;
				{
					tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ ret_1;
					tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T981_;
					if (!!((baseType_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA975_;
					{
						if (!!((((*aAsObject_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)2)))&63U)))!=0))) goto LA979_;
						(*c_p0).inheritancePenalty += (NI)(((NI)1) + ((NI) (((*c_p0).inheritancePenalty < ((NI)0)))));
					}
LA979_: ;
					ret_1 = typeRel__sigmatch_u253(c_p0, f_3, baseType_1, flags_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA972_;
					T981_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
					{
						if (!(ret_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10) || ret_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA984_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
					}
					goto LA982_;
LA984_: ;
					{
						result = ret_1;
					}
LA982_: ;
					eqdestroy___ast_u3378(baseType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
					eqdestroy___ast_u3378(aAsObject_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
					eqdestroy___ast_u3378(colontmpD__63);
					if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
					eqdestroy___ast_u3378(colontmpD__62);
					if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
					eqdestroy___ast_u3378(colontmpD__61);
					if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
					eqdestroy___ast_u3378(rootf_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(roota_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__60);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__59);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(f_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(origF_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(prev_4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA975_: ;
				{
					LA972_:;
				}
				{
					oldNimErrFin972_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(baseType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
					*nimErr_ = oldNimErrFin972_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA875_;
			}
LA970_: ;
			{
				LA875_:;
			}
			{
				oldNimErrFin875_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(aAsObject_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
				eqdestroy___ast_u3378(colontmpD__63);
				if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
				eqdestroy___ast_u3378(colontmpD__62);
				if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
				eqdestroy___ast_u3378(colontmpD__61);
				if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
				*nimErr_ = oldNimErrFin875_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		}
		goto LA867_;
LA873_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__70;
			colontmpD__70 = NIM_NIL;
			colontmpD__70 = last__ast_u5278(origF_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA992_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__70, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA992_;
			{
				NIM_BOOL T995_;
				T995_ = (NIM_BOOL)0;
				T995_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
				if (!(T995_)) goto LA996_;
				T995_ = !(((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)5)));
LA996_: ;
				if (!T995_) goto LA997_;
				put__sigmatch_u249(c_p0, f_3, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA992_;
			}
LA997_: ;
			{
				LA992_:;
			}
			{
				oldNimErrFin992_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__70);
				if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
				*nimErr_ = oldNimErrFin992_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA836_;
		}
LA867_: ;
		{
			LA836_:;
		}
		{
			oldNimErrFin836_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(rootf_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(roota_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__60);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__59);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(f_3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(origF_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(prev_4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin836_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym474__1;
		prevX60gensym474__1 = NIM_NIL;
		prevX60gensym474__1 = lookup__layeredtable_u711((&(*c_p0).bindings), (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1004_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__71;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_4;
			if (!(prevX60gensym474__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1007_;
			colontmpD__71 = NIM_NIL;
			ff_4 = NIM_NIL;
			{
				NIM_BOOL T1012_;
				NIM_BOOL T1014_;
				T1012_ = (NIM_BOOL)0;
				T1012_ = (a_1 == f_p1);
				if (T1012_) goto LA1013_;
				T1014_ = (NIM_BOOL)0;
				T1014_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11));
				if (!(T1014_)) goto LA1015_;
				colontmpD__71 = skipGenericAlias__types_u2162(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1009_;
				T1014_ = ((*colontmpD__71).sons.p->data[((NI)0)] == f_p1);
LA1015_: ;
				T1012_ = T1014_;
LA1013_: ;
				if (!T1012_) goto LA1016_;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* boundX60gensym477__1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__72;
					if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1020_;
					boundX60gensym477__1 = NIM_NIL;
					colontmpD__72 = NIM_NIL;
					colontmpD__72 = skipTypes__ast_u5379(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1009_;
					boundX60gensym477__1 = skipIntLit__magicsys_u120(colontmpD__72, (*(*c_p0).c).Sup.idgen);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1009_;
					put__sigmatch_u249(c_p0, f_p1, boundX60gensym477__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1009_;
					eqdestroy___ast_u3378(colontmpD__72);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1009_;
					eqdestroy___ast_u3378(boundX60gensym477__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1009_;
				}
LA1020_: ;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				eqdestroy___ast_u3378(ff_4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1004_;
				eqdestroy___ast_u3378(colontmpD__71);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1004_;
				eqdestroy___ast_u3378(prevX60gensym474__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA1016_: ;
			ff_4 = last__ast_u5278(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1009_;
			{
				if (!!((ff_4 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA1024_;
				result = typeRel__sigmatch_u253(c_p0, ff_4, a_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1009_;
			}
LA1024_: ;
			{
				LA1009_:;
			}
			{
				oldNimErrFin1009_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(ff_4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1004_;
				eqdestroy___ast_u3378(colontmpD__71);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1004_;
				*nimErr_ = oldNimErrFin1009_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1004_;
		}
		goto LA1005_;
LA1007_: ;
		{
			result = typeRel__sigmatch_u253(c_p0, prevX60gensym474__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1004_;
			eqdestroy___ast_u3378(prevX60gensym474__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1005_: ;
		{
			LA1004_:;
		}
		{
			oldNimErrFin1004_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(prevX60gensym474__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1004_;
		}
		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_u2162(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
		{
			NIM_BOOL T1035_;
			NI T1037_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T1040_;
			T1035_ = (NIM_BOOL)0;
			T1035_ = ((*x_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
			if (!(T1035_)) goto LA1036_;
			T1037_ = (NI)0;
			T1037_ = len__ast_u5502(x_5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
			T1035_ = (((NI)0) < T1037_);
LA1036_: ;
			if (!T1035_) goto LA1038_;
			T1040_ = NIM_NIL;
			T1040_ = last__ast_u5278(x_5);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T1040_); goto LA1032_;}
			eqsink___ast_u3387(&x_5, T1040_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
		}
LA1038_: ;
		concpt_1 = reduceToBase__types_u4300(f_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
		preventHack_1 = ((*concpt_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62));
		{
			NIM_BOOL T1043_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T1047_;
			T1043_ = (NIM_BOOL)0;
			T1043_ = ((*x_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45));
			if (!(T1043_)) goto LA1044_;
			T1043_ = !(((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)45)));
LA1044_: ;
			if (!T1043_) goto LA1045_;
			preventHack_1 = NIM_TRUE;
			T1047_ = NIM_NIL;
			T1047_ = last__ast_u5278(x_5);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T1047_); goto LA1032_;}
			eqsink___ast_u3387(&x_5, T1047_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
		}
LA1045_: ;
		{
			NIM_BOOL T1050_;
			NIM_BOOL T1051_;
			NIM_BOOL T1052_;
			NIM_BOOL T1053_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* inst_1;
			T1050_ = (NIM_BOOL)0;
			T1051_ = (NIM_BOOL)0;
			T1052_ = (NIM_BOOL)0;
			T1053_ = (NIM_BOOL)0;
			T1053_ = ((*x_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11) || (*x_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16));
			if (!(T1053_)) goto LA1054_;
			T1053_ = !(((*c_p0).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA1054_: ;
			T1052_ = T1053_;
			if (!(T1052_)) goto LA1055_;
			T1052_ = ((*(*c_p0).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) || (*(*c_p0).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)13));
LA1055_: ;
			T1051_ = T1052_;
			if (!(T1051_)) goto LA1056_;
			T1051_ = !(((*c_p0).call == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA1056_: ;
			T1050_ = T1051_;
			if (!(T1050_)) goto LA1057_;
			T1050_ = !(preventHack_1);
LA1057_: ;
			if (!T1050_) goto LA1058_;
			inst_1 = NIM_NIL;
			inst_1 = prepareMetatypeForSigmatch__semtypinst_u1696((*c_p0).c, (&(*c_p0).bindings), (*(*c_p0).call).info, f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1060_;
			result = typeRel__sigmatch_u253(c_p0, inst_1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1060_;
			eqdestroy___ast_u3378(inst_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
			eqdestroy___ast_u3378(concpt_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(x_5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA1060_:;
			}
			{
				oldNimErrFin1060_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(inst_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
				*nimErr_ = oldNimErrFin1060_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
		}
LA1058_: ;
		{
			if (!((*x_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9))) goto LA1065_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* impl_1;
				if (!((*f_p1).sons.p->data[((NI)0)] == (*x_5).sons.p->data[((NI)0)])) goto LA1069_;
				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_u5502(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1071_;
					i_11 = ((NI)1);
					{
						while (1) {
							tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ tr_1;
							if (!(i_11 < colontmp__5)) goto LA1074;
							i_10 = i_11;
							{
								NI T1077_;
								T1077_ = (NI)0;
								T1077_ = len__ast_u5502(x_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1071_;
								if (!(T1077_ <= i_10)) goto LA1078_;
								eqdestroy___ast_u3378(impl_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
								eqdestroy___ast_u3378(concpt_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3378(x_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3378(colontmpD__2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(aOrig_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA1078_: ;
							tr_1 = typeRel__sigmatch_u253(c_p0, (*f_p1).sons.p->data[i_10], (*x_5).sons.p->data[i_10], flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1071_;
							{
								if (!(tr_1 <= ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3))) goto LA1082_;
								eqdestroy___ast_u3378(impl_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
								eqdestroy___ast_u3378(concpt_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3378(x_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3378(colontmpD__2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(aOrig_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA1082_: ;
							i_11 += ((NI)1);
						} LA1074: ;
					}
				}
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				impl_1 = last__ast_u5278((*f_p1).sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1071_;
				{
					NIM_BOOL T1086_;
					T1086_ = (NIM_BOOL)0;
					T1086_ = ((*impl_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
					if (!(T1086_)) goto LA1087_;
					T1086_ = !((((*impl_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)2)))&63U)))!=0));
LA1087_: ;
					if (!T1086_) goto LA1088_;
					(*c_p0).inheritancePenalty += (NI)(((NI)0) + ((NI) (((*c_p0).inheritancePenalty < ((NI)0)))));
				}
LA1088_: ;
				{
					LA1071_:;
				}
				{
					oldNimErrFin1071_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(impl_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
					*nimErr_ = oldNimErrFin1071_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
			}
LA1069_: ;
		}
		goto LA1063_;
LA1065_: ;
		{
			NIM_BOOL T1093_;
			NIM_BOOL T1094_;
			NI T1097_;
			NI T1098_;
			T1093_ = (NIM_BOOL)0;
			T1094_ = (NIM_BOOL)0;
			T1094_ = ((*x_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11));
			if (!(T1094_)) goto LA1095_;
			T1094_ = ((*f_p1).sons.p->data[((NI)0)] == (*x_5).sons.p->data[((NI)0)]);
LA1095_: ;
			T1093_ = T1094_;
			if (!(T1093_)) goto LA1096_;
			T1097_ = (NI)0;
			T1097_ = len__ast_u5502(x_5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
			T1098_ = (NI)0;
			T1098_ = len__ast_u5502(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
			T1093_ = ((NI)(T1097_ - ((NI)1)) == T1098_);
LA1096_: ;
			if (!T1093_) goto LA1099_;
			{
				NI i_12;
				NI colontmp__6;
				NI i_13;
				i_12 = (NI)0;
				colontmp__6 = (NI)0;
				colontmp__6 = len__ast_u5502(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
				i_13 = ((NI)1);
				{
					while (1) {
						if (!(i_13 < colontmp__6)) goto LA1103;
						i_12 = i_13;
						{
							if (!((*(*x_5).sons.p->data[i_12]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA1106_;
							internalErrorImpl__msgs_u1598((*(*(*c_p0).c).graph).config, unknownLineInfo__lineinfos_u364, TM__EV5hHJmjIY9cla9b9be7fSVJQ_40, (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_41));
							if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
						}
						goto LA1104_;
LA1106_: ;
						{
							tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T1109_;
							T1109_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
							T1109_ = typeRel__sigmatch_u253(c_p0, (*f_p1).sons.p->data[i_12], (*x_5).sons.p->data[i_12], flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
							if (!(T1109_ <= ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3))) goto LA1110_;
							{
								if (!!(((*(*f_p1).sons.p->data[i_12]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8)))) goto LA1114_;
								eqdestroy___ast_u3378(concpt_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3378(x_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3378(colontmpD__2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(aOrig_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA1114_: ;
						}
						goto LA1104_;
LA1110_: ;
LA1104_: ;
						i_13 += ((NI)1);
					} LA1103: ;
				}
			}
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
		}
		goto LA1063_;
LA1099_: ;
		{
			if (!((*concpt_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62))) goto LA1117_;
			result = enterConceptMatch__sigmatch_u2001(c_p0, f_p1, x_5, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
		}
		goto LA1063_;
LA1117_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* genericBody_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aobj_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* fobj_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__73;
			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__73 = NIM_NIL;
			eqcopy___ast_u3381(&genericBody_1, (*f_p1).sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1120_;
			askip_1 = ((tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA)0);
			fskip_1 = ((tyEnum_SkippedPtr__crNmVns8i9aZv3k4V9cMRMuA)0);
			aobj_1 = skipToObject__sigmatch_u1021(x_5, (&askip_1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1120_;
			colontmpD__73 = last__ast_u5278(genericBody_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1120_;
			fobj_1 = skipToObject__sigmatch_u1021(colontmpD__73, (&fskip_1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1120_;
			result = typeRel__sigmatch_u253(c_p0, genericBody_1, x_5, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1120_;
			{
				NIM_BOOL T1123_;
				T1123_ = (NIM_BOOL)0;
				T1123_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
				if (!(T1123_)) goto LA1124_;
				T1123_ = !(((*concpt_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62)));
LA1124_: ;
				if (!T1123_) goto LA1125_;
				{
					NI i_14;
					NI colontmp__7;
					NI i_15;
					i_14 = (NI)0;
					colontmp__7 = (NI)0;
					colontmp__7 = len__ast_u5502(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1120_;
					i_15 = ((NI)1);
					{
						while (1) {
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_6;
							if (!(i_15 < colontmp__7)) goto LA1129;
							x_6 = NIM_NIL;
							i_14 = i_15;
							x_6 = lookup__layeredtable_u711((&(*c_p0).bindings), (*(*genericBody_1).sons.p->data[(NI)(i_14 - ((NI)1))]).itemId);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1130_;
							{
								if (!(x_6 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1133_;
							}
							goto LA1131_;
LA1133_: ;
							{
								if (!((*x_6).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9) || (*x_6).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA1136_;
								internalErrorImpl__msgs_u1598((*(*(*c_p0).c).graph).config, unknownLineInfo__lineinfos_u364, TM__EV5hHJmjIY9cla9b9be7fSVJQ_42, (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_43));
								if (NIM_UNLIKELY(*nimErr_)) goto LA1130_;
							}
							goto LA1131_;
LA1136_: ;
							{
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* key_1;
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* old_1;
								key_1 = NIM_NIL;
								old_1 = NIM_NIL;
								eqcopy___ast_u3381(&key_1, (*f_p1).sons.p->data[i_14]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1139_;
								old_1 = lookup__layeredtable_u711((&(*c_p0).bindings), (*key_1).itemId);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1139_;
								{
									if (!(old_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1142_;
									put__sigmatch_u249(c_p0, key_1, x_6);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1139_;
								}
								goto LA1140_;
LA1142_: ;
								{
									tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T1145_;
									T1145_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
									T1145_ = typeRel__sigmatch_u253(c_p0, old_1, x_6, (flags_p3 | 1));
									if (NIM_UNLIKELY(*nimErr_)) goto LA1139_;
									if (!(T1145_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA1146_;
									result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
									eqdestroy___ast_u3378(old_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1130_;
									eqdestroy___ast_u3378(key_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1130_;
									eqdestroy___ast_u3378(x_6);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1120_;
									eqdestroy___ast_u3378(colontmpD__73);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
									eqdestroy___ast_u3378(fobj_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
									eqdestroy___ast_u3378(aobj_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
									eqdestroy___ast_u3378(genericBody_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
									eqdestroy___ast_u3378(concpt_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3378(x_5);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3378(colontmpD__2);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3378(colontmpD_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3378(a_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3378(aOrig_2);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto BeforeRet_;
								}
								goto LA1140_;
LA1146_: ;
LA1140_: ;
								{
									LA1139_:;
								}
								{
									oldNimErrFin1139_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3378(old_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1130_;
									eqdestroy___ast_u3378(key_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1130_;
									*nimErr_ = oldNimErrFin1139_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA1130_;
							}
LA1131_: ;
							i_15 += ((NI)1);
							{
								LA1130_:;
							}
							{
								oldNimErrFin1130_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3378(x_6);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1120_;
								*nimErr_ = oldNimErrFin1130_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1120_;
						} LA1129: ;
					}
				}
			}
LA1125_: ;
			depth_2 = ((NI)-1);
			{
				NIM_BOOL T1154_;
				NIM_BOOL T1155_;
				T1154_ = (NIM_BOOL)0;
				T1155_ = (NIM_BOOL)0;
				T1155_ = !((fobj_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
				if (!(T1155_)) goto LA1156_;
				T1155_ = !((aobj_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
LA1156_: ;
				T1154_ = T1155_;
				if (!(T1154_)) goto LA1157_;
				T1154_ = (askip_1 == fskip_1);
LA1157_: ;
				if (!T1154_) goto LA1158_;
				depth_2 = isObjectSubtype__sigmatch_u977(c_p0, aobj_1, fobj_1, f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1120_;
			}
LA1158_: ;
			{
				NIM_BOOL genericSubtype_1;
				if (!(result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA1162_;
				genericSubtype_1 = isGenericSubtype__sigmatch_u1064(c_p0, x_5, f_p1, (&depth_2), f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1120_;
				{
					NIM_BOOL T1166_;
					NIM_BOOL T1167_;
					tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym518__1;
					tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym520__1;
					T1166_ = (NIM_BOOL)0;
					T1167_ = (NIM_BOOL)0;
					T1167_ = genericSubtype_1;
					if (!(T1167_)) goto LA1168_;
					xX60gensym518__1 = (*(*aobj_1).sym).itemId;
					xX60gensym520__1 = (*(*fobj_1).sym).itemId;
					T1167_ = !(((NI)((NI)((NU64)(((NI) (xX60gensym518__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym518__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym520__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym520__1.item)))));
LA1168_: ;
					T1166_ = !(T1167_);
					if (!(T1166_)) goto LA1169_;
					T1166_ = !(((*aOrig_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10)));
LA1169_: ;
					if (!T1166_) goto LA1170_;
					depth_2 = ((NI)-1);
				}
LA1170_: ;
			}
LA1162_: ;
			{
				tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T1182_;
				if (!(((NI)0) <= depth_2)) goto LA1174_;
				{
					NIM_BOOL T1178_;
					T1178_ = (NIM_BOOL)0;
					T1178_ = ((*aobj_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
					if (!(T1178_)) goto LA1179_;
					T1178_ = !((((*aobj_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)2)))&63U)))!=0));
LA1179_: ;
					if (!T1178_) goto LA1180_;
					(*c_p0).inheritancePenalty += (NI)(depth_2 + ((NI) (((*c_p0).inheritancePenalty < ((NI)0)))));
				}
LA1180_: ;
				T1182_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
				{
					if (!(depth_2 == ((NI)0))) goto LA1185_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
				goto LA1183_;
LA1185_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3);
				}
LA1183_: ;
			}
LA1174_: ;
			{
				LA1120_:;
			}
			{
				oldNimErrFin1120_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__73);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
				eqdestroy___ast_u3378(fobj_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
				eqdestroy___ast_u3378(aobj_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
				eqdestroy___ast_u3378(genericBody_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
				*nimErr_ = oldNimErrFin1120_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1032_;
		}
LA1063_: ;
		{
			LA1032_:;
		}
		{
			oldNimErrFin1032_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(concpt_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(x_5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1032_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym524__1;
		prevX60gensym524__1 = NIM_NIL;
		prevX60gensym524__1 = lookup__layeredtable_u711((&(*c_p0).bindings), (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1193_;
		{
			if (!(prevX60gensym524__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1196_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* branch_3;
				branch_3 = NIM_NIL;
				{
					NI i_16;
					NI colontmp__8;
					NI T1201_;
					NI i_17;
					i_16 = (NI)0;
					colontmp__8 = (NI)0;
					T1201_ = (*f_p1).sons.len;
					colontmp__8 = T1201_;
					i_17 = ((NI)0);
					{
						while (1) {
							tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ x_7;
							if (!(i_17 < colontmp__8)) goto LA1203;
							i_16 = i_17;
							eqcopy___ast_u3381(&branch_3, (*f_p1).sons.p->data[i_16]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1199_;
							x_7 = typeRel__sigmatch_u253(c_p0, branch_3, aOrig_2, flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1199_;
							{
								if (!(x_7 < ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3))) goto LA1206_;
								result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
								eqdestroy___ast_u3378(branch_3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1193_;
								eqdestroy___ast_u3378(prevX60gensym524__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3378(colontmpD__2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(aOrig_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA1206_: ;
							{
								if (!(x_7 < result)) goto LA1210_;
								result = x_7;
							}
LA1210_: ;
							i_17 += ((NI)1);
						} LA1203: ;
					}
				}
				{
					LA1199_:;
				}
				{
					oldNimErrFin1199_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(branch_3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1193_;
					*nimErr_ = oldNimErrFin1199_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1193_;
			}
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) < result)) goto LA1216_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
LA1216_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* boundX60gensym527__1;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__74;
				if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1220_;
				boundX60gensym527__1 = NIM_NIL;
				colontmpD__74 = NIM_NIL;
				colontmpD__74 = skipTypes__ast_u5379(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1193_;
				boundX60gensym527__1 = skipIntLit__magicsys_u120(colontmpD__74, (*(*c_p0).c).Sup.idgen);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1193_;
				put__sigmatch_u249(c_p0, f_p1, boundX60gensym527__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1193_;
				eqdestroy___ast_u3378(colontmpD__74);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1193_;
				eqdestroy___ast_u3378(boundX60gensym527__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1193_;
			}
LA1220_: ;
			eqdestroy___ast_u3378(prevX60gensym524__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA1194_;
LA1196_: ;
		{
			result = typeRel__sigmatch_u253(c_p0, prevX60gensym524__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1193_;
			eqdestroy___ast_u3378(prevX60gensym524__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1194_: ;
		{
			LA1193_:;
		}
		{
			oldNimErrFin1193_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(prevX60gensym524__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1193_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)57):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym530__1;
		prevX60gensym530__1 = NIM_NIL;
		prevX60gensym530__1 = lookup__layeredtable_u711((&(*c_p0).bindings), (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1226_;
		{
			NI oldInheritancePenalty_1;
			NI minInheritance_1;
			if (!(prevX60gensym530__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1229_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			oldInheritancePenalty_1 = (*c_p0).inheritancePenalty;
			minInheritance_1 = ((NI)IL64(4611686018427387903));
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* branch_4;
				branch_4 = NIM_NIL;
				{
					NI i_18;
					NI colontmp__9;
					NI T1234_;
					NI i_19;
					i_18 = (NI)0;
					colontmp__9 = (NI)0;
					T1234_ = (*f_p1).sons.len;
					colontmp__9 = T1234_;
					i_19 = ((NI)0);
					{
						while (1) {
							tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ x_8;
							if (!(i_19 < colontmp__9)) goto LA1236;
							i_18 = i_19;
							eqcopy___ast_u3381(&branch_4, (*f_p1).sons.p->data[i_18]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1232_;
							(*c_p0).inheritancePenalty = ((NI)-1);
							x_8 = typeRel__sigmatch_u253(c_p0, branch_4, aOrig_2, flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1232_;
							{
								if (!(result <= x_8)) goto LA1239_;
								{
									if (!(((NI)-1) < (*c_p0).inheritancePenalty)) goto LA1243_;
									minInheritance_1 = ((minInheritance_1 <= (*c_p0).inheritancePenalty) ? minInheritance_1 : (*c_p0).inheritancePenalty);
								}
LA1243_: ;
								result = x_8;
							}
LA1239_: ;
							i_19 += ((NI)1);
						} LA1236: ;
					}
				}
				{
					LA1232_:;
				}
				{
					oldNimErrFin1232_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(branch_4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1226_;
					*nimErr_ = oldNimErrFin1232_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1226_;
			}
			(*c_p0).inheritancePenalty = oldInheritancePenalty_1;
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)2) <= result)) goto LA1249_;
				{
					if (!(minInheritance_1 < ((NI)IL64(4611686018427387903)))) goto LA1253_;
					(*c_p0).inheritancePenalty += (NI)(minInheritance_1 + ((*c_p0).inheritancePenalty < ((NI)0)));
				}
LA1253_: ;
				{
					if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) < result)) goto LA1257_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
LA1257_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* boundX60gensym536__1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__75;
					if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1261_;
					boundX60gensym536__1 = NIM_NIL;
					colontmpD__75 = NIM_NIL;
					colontmpD__75 = skipTypes__ast_u5379(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1226_;
					boundX60gensym536__1 = skipIntLit__magicsys_u120(colontmpD__75, (*(*c_p0).c).Sup.idgen);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1226_;
					put__sigmatch_u249(c_p0, f_p1, boundX60gensym536__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1226_;
					eqdestroy___ast_u3378(colontmpD__75);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1226_;
					eqdestroy___ast_u3378(boundX60gensym536__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1226_;
				}
LA1261_: ;
				eqdestroy___ast_u3378(prevX60gensym530__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA1247_;
LA1249_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA1247_: ;
		}
		goto LA1227_;
LA1229_: ;
		{
			result = typeRel__sigmatch_u253(c_p0, prevX60gensym530__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1226_;
			eqdestroy___ast_u3378(prevX60gensym530__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1227_: ;
		{
			LA1226_:;
		}
		{
			oldNimErrFin1226_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(prevX60gensym530__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1226_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)58):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym539__1;
		prevX60gensym539__1 = NIM_NIL;
		prevX60gensym539__1 = lookup__layeredtable_u711((&(*c_p0).bindings), (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1268_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__76;
			if (!(prevX60gensym539__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1271_;
			colontmpD__76 = NIM_NIL;
			{
				tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T1276_;
				colontmpD__76 = elementType__ast_u5331(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1273_;
				T1276_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
				T1276_ = typeRel__sigmatch_u253(c_p0, colontmpD__76, aOrig_2, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1273_;
				if (!!((T1276_ == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA1277_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3378(colontmpD__76);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1268_;
				eqdestroy___ast_u3378(prevX60gensym539__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA1277_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* boundX60gensym542__1;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__77;
				if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1281_;
				boundX60gensym542__1 = NIM_NIL;
				colontmpD__77 = NIM_NIL;
				colontmpD__77 = skipTypes__ast_u5379(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1273_;
				boundX60gensym542__1 = skipIntLit__magicsys_u120(colontmpD__77, (*(*c_p0).c).Sup.idgen);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1273_;
				put__sigmatch_u249(c_p0, f_p1, boundX60gensym542__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1273_;
				eqdestroy___ast_u3378(colontmpD__77);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1273_;
				eqdestroy___ast_u3378(boundX60gensym542__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1273_;
			}
LA1281_: ;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			eqdestroy___ast_u3378(colontmpD__76);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1268_;
			eqdestroy___ast_u3378(prevX60gensym539__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA1273_:;
			}
			{
				oldNimErrFin1273_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__76);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1268_;
				*nimErr_ = oldNimErrFin1273_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1268_;
		}
		goto LA1269_;
LA1271_: ;
		{
			result = typeRel__sigmatch_u253(c_p0, prevX60gensym539__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1268_;
			eqdestroy___ast_u3378(prevX60gensym539__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1269_: ;
		{
			LA1268_:;
		}
		{
			oldNimErrFin1268_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(prevX60gensym539__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1268_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym545__1;
		prevX60gensym545__1 = NIM_NIL;
		prevX60gensym545__1 = lookup__layeredtable_u711((&(*c_p0).bindings), (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1289_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concrete_1;
			if (!(prevX60gensym545__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1292_;
			concrete_1 = NIM_NIL;
			concrete_1 = concreteType__sigmatch_u732((&(*c_p0)), a_1, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto LA1294_;
			{
				NIM_BOOL T1297_;
				T1297_ = (NIM_BOOL)0;
				T1297_ = !((concrete_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
				if (!(T1297_)) goto LA1298_;
				T1297_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0));
LA1298_: ;
				if (!T1297_) goto LA1299_;
				put__sigmatch_u249(c_p0, f_p1, concrete_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1294_;
			}
LA1299_: ;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			eqdestroy___ast_u3378(concrete_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1289_;
			eqdestroy___ast_u3378(prevX60gensym545__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA1294_:;
			}
			{
				oldNimErrFin1294_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(concrete_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1289_;
				*nimErr_ = oldNimErrFin1294_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1289_;
		}
		goto LA1290_;
LA1292_: ;
		{
			result = typeRel__sigmatch_u253(c_p0, prevX60gensym545__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1289_;
			eqdestroy___ast_u3378(prevX60gensym545__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1290_: ;
		{
			LA1289_:;
		}
		{
			oldNimErrFin1289_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(prevX60gensym545__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1289_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym550__1;
		prevX60gensym550__1 = NIM_NIL;
		prevX60gensym550__1 = lookup__layeredtable_u711((&(*c_p0).bindings), (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* target_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* effectiveArgType_2;
			tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg targetKind_1;
			NIM_BOOL typeClassArg_1;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T1313_;
			if (!(prevX60gensym550__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1310_;
			target_1 = NIM_NIL;
			effectiveArgType_2 = NIM_NIL;
			target_1 = genericHead__ast_u5376(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1312_;
			targetKind_1 = (*target_1).kind;
			effectiveArgType_2 = reduceToBase__types_u4300(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1312_;
			typeClassArg_1 = ((*effectiveArgType_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51));
			T1313_ = NIM_NIL;
			T1313_ = skipTypes__ast_u5379(effectiveArgType_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_44);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T1313_); goto LA1312_;}
			eqsink___ast_u3387(&effectiveArgType_2, T1313_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1312_;
			{
				if (!(targetKind_1 == (*effectiveArgType_2).kind)) goto LA1316_;
				{
					NIM_BOOL T1320_;
					T1320_ = (NIM_BOOL)0;
					T1320_ = !(typeClassArg_1);
					if (!(T1320_)) goto LA1321_;
					T1320_ = isEmptyContainer__types_u3751(effectiveArgType_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1312_;
LA1321_: ;
					if (!T1320_) goto LA1322_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
					eqdestroy___ast_u3378(effectiveArgType_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
					eqdestroy___ast_u3378(target_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
					eqdestroy___ast_u3378(prevX60gensym550__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA1322_: ;
				{
					if (!(targetKind_1 == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25))) goto LA1326_;
					{
						if (!!((((*target_1).flags & 32768) == ((*effectiveArgType_2).flags & 32768)))) goto LA1330_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
						eqdestroy___ast_u3378(effectiveArgType_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
						eqdestroy___ast_u3378(target_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
						eqdestroy___ast_u3378(prevX60gensym550__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(aOrig_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA1330_: ;
					{
						NIM_BOOL T1334_;
						T1334_ = (NIM_BOOL)0;
						T1334_ = (((*target_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)42)))&63U)))!=0);
						if (!(T1334_)) goto LA1335_;
						T1334_ = !(((*target_1).callConv == (*effectiveArgType_2).callConv));
LA1335_: ;
						if (!T1334_) goto LA1336_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
						eqdestroy___ast_u3378(effectiveArgType_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
						eqdestroy___ast_u3378(target_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
						eqdestroy___ast_u3378(prevX60gensym550__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(aOrig_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA1336_: ;
				}
LA1326_: ;
				{
					if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1340_;
					put__sigmatch_u249(c_p0, f_p1, a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1312_;
				}
LA1340_: ;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				eqdestroy___ast_u3378(effectiveArgType_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
				eqdestroy___ast_u3378(target_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
				eqdestroy___ast_u3378(prevX60gensym550__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA1314_;
LA1316_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				eqdestroy___ast_u3378(effectiveArgType_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
				eqdestroy___ast_u3378(target_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
				eqdestroy___ast_u3378(prevX60gensym550__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA1314_: ;
			{
				LA1312_:;
			}
			{
				oldNimErrFin1312_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(effectiveArgType_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
				eqdestroy___ast_u3378(target_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
				*nimErr_ = oldNimErrFin1312_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
		}
		goto LA1308_;
LA1310_: ;
		{
			result = typeRel__sigmatch_u253(c_p0, prevX60gensym550__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1307_;
			eqdestroy___ast_u3378(prevX60gensym550__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1308_: ;
		{
			LA1307_:;
		}
		{
			oldNimErrFin1307_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(prevX60gensym550__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1307_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52):
	{
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__78;
			if (!(((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)10)))&63U)))!=0)) goto LA1351_;
			colontmpD__78 = NIM_NIL;
			colontmpD__78 = last__ast_u5278(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1353_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__78, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1353_;
			{
				LA1353_:;
			}
			{
				oldNimErrFin1353_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__78);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin1353_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA1349_;
LA1351_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym559__1;
			prevX60gensym559__1 = NIM_NIL;
			prevX60gensym559__1 = lookup__layeredtable_u711((&(*c_p0).bindings), (*f_p1).itemId);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1357_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* matched_1;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__79;
				if (!(prevX60gensym559__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1360_;
				matched_1 = NIM_NIL;
				colontmpD__79 = NIM_NIL;
				{
					if (!(aOrig_2 == f_p1)) goto LA1365_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
					eqdestroy___ast_u3378(colontmpD__79);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1357_;
					eqdestroy___ast_u3378(matched_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1357_;
					eqdestroy___ast_u3378(prevX60gensym559__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA1365_: ;
				matched_1 = matchUserTypeClass__sigmatch_u1299(c_p0, f_p1, aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1362_;
				{
					if (!!((matched_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA1369_;
					add__ast_u3881(matched_1, a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1362_;
					(*matched_1).flags |= ((NU64)1)<<(((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)10))) & 63);
					{
						if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1373_;
						put__sigmatch_u249(c_p0, f_p1, matched_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1362_;
					}
LA1373_: ;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
				goto LA1367_;
LA1369_: ;
				{
					NIM_BOOL T1376_;
					NI T1377_;
					T1376_ = (NIM_BOOL)0;
					T1377_ = (NI)0;
					T1377_ = len__ast_u5502(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1362_;
					T1376_ = (((NI)0) < T1377_);
					if (!(T1376_)) goto LA1378_;
					colontmpD__79 = last__ast_u5278(a_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1362_;
					T1376_ = (colontmpD__79 == f_p1);
LA1378_: ;
					if (!T1376_) goto LA1379_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
				goto LA1367_;
LA1379_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA1367_: ;
				{
					LA1362_:;
				}
				{
					oldNimErrFin1362_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__79);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1357_;
					eqdestroy___ast_u3378(matched_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1357_;
					*nimErr_ = oldNimErrFin1362_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1357_;
			}
			goto LA1358_;
LA1360_: ;
			{
				result = typeRel__sigmatch_u253(c_p0, prevX60gensym559__1, a_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1357_;
				eqdestroy___ast_u3378(prevX60gensym559__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(aOrig_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA1358_: ;
			{
				LA1357_:;
			}
			{
				oldNimErrFin1357_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(prevX60gensym559__1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin1357_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA1349_: ;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62):
	{
		result = enterConceptMatch__sigmatch_u2001(c_p0, f_p1, a_1, flags_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prevX60gensym566__1;
		prevX60gensym566__1 = NIM_NIL;
		prevX60gensym566__1 = lookup__layeredtable_u711((&(*c_p0).bindings), (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* roota_2;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* rootf_2;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__80;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__81;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__82;
			if (!(prevX60gensym566__1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1392_;
			roota_2 = NIM_NIL;
			rootf_2 = NIM_NIL;
			colontmpD__80 = NIM_NIL;
			colontmpD__81 = NIM_NIL;
			colontmpD__82 = NIM_NIL;
			roota_2 = skipGenericAlias__types_u2162(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
			colontmpD__80 = last__ast_u5278(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
			rootf_2 = skipGenericAlias__types_u2162(colontmpD__80);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
			{
				NIM_BOOL T1397_;
				T1397_ = (NIM_BOOL)0;
				T1397_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11));
				if (!(T1397_)) goto LA1398_;
				colontmpD__81 = base__ast_u5351(roota_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
				colontmpD__82 = base__ast_u5351(rootf_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
				T1397_ = (colontmpD__81 == colontmpD__82);
LA1398_: ;
				if (!T1397_) goto LA1399_;
				{
					NI i_20;
					NI colontmp__10;
					NI T1402_;
					NI i_21;
					i_20 = (NI)0;
					colontmp__10 = (NI)0;
					T1402_ = (NI)0;
					T1402_ = len__ast_u5502(rootf_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
					colontmp__10 = (NI)(T1402_ - ((NI)1));
					i_21 = ((NI)1);
					{
						while (1) {
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* ff_5;
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_4;
							if (!(i_21 < colontmp__10)) goto LA1404;
							ff_5 = NIM_NIL;
							aa_4 = NIM_NIL;
							i_20 = i_21;
							eqcopy___ast_u3381(&ff_5, (*rootf_2).sons.p->data[i_20]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1405_;
							eqcopy___ast_u3381(&aa_4, (*roota_2).sons.p->data[i_20]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1405_;
							result = typeRel__sigmatch_u253(c_p0, ff_5, aa_4, flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1405_;
							{
								if (!(result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0))) goto LA1408_;
								eqdestroy___ast_u3378(aa_4);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
								eqdestroy___ast_u3378(ff_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
								eqdestroy___ast_u3378(colontmpD__82);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
								eqdestroy___ast_u3378(colontmpD__81);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
								eqdestroy___ast_u3378(colontmpD__80);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
								eqdestroy___ast_u3378(rootf_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
								eqdestroy___ast_u3378(roota_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
								eqdestroy___ast_u3378(prevX60gensym566__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3378(colontmpD__2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(aOrig_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA1408_: ;
							{
								NIM_BOOL T1412_;
								T1412_ = (NIM_BOOL)0;
								T1412_ = ((*ff_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20));
								if (!(T1412_)) goto LA1413_;
								T1412_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10)));
LA1413_: ;
								if (!T1412_) goto LA1414_;
								result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
								eqdestroy___ast_u3378(aa_4);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
								eqdestroy___ast_u3378(ff_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
								eqdestroy___ast_u3378(colontmpD__82);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
								eqdestroy___ast_u3378(colontmpD__81);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
								eqdestroy___ast_u3378(colontmpD__80);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
								eqdestroy___ast_u3378(rootf_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
								eqdestroy___ast_u3378(roota_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
								eqdestroy___ast_u3378(prevX60gensym566__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3378(colontmpD__2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(a_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(aOrig_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA1414_: ;
							i_21 += ((NI)1);
							{
								LA1405_:;
							}
							{
								oldNimErrFin1405_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3378(aa_4);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
								eqdestroy___ast_u3378(ff_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
								*nimErr_ = oldNimErrFin1405_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
						} LA1404: ;
					}
				}
			}
			goto LA1395_;
LA1399_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__83;
				colontmpD__83 = NIM_NIL;
				colontmpD__83 = last__ast_u5278(rootf_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1419_;
				result = typeRel__sigmatch_u253(c_p0, colontmpD__83, a_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1419_;
				{
					LA1419_:;
				}
				{
					oldNimErrFin1419_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__83);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
					*nimErr_ = oldNimErrFin1419_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
			}
LA1395_: ;
			{
				if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA1424_;
				put__sigmatch_u249(c_p0, f_p1, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1394_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
LA1424_: ;
			{
				LA1394_:;
			}
			{
				oldNimErrFin1394_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__82);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
				eqdestroy___ast_u3378(colontmpD__81);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
				eqdestroy___ast_u3378(colontmpD__80);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
				eqdestroy___ast_u3378(rootf_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
				eqdestroy___ast_u3378(roota_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
				*nimErr_ = oldNimErrFin1394_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
		}
		goto LA1390_;
LA1392_: ;
		{
			result = typeRel__sigmatch_u253(c_p0, prevX60gensym566__1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1389_;
			eqdestroy___ast_u3378(prevX60gensym566__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1390_: ;
		{
			LA1389_:;
		}
		{
			oldNimErrFin1389_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(prevX60gensym566__1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1389_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_9;
		NIM_BOOL doBindGP_1;
		NIM_BOOL T1433_;
		x_9 = NIM_NIL;
		T1433_ = (NIM_BOOL)0;
		T1433_ = !(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0));
		if (T1433_) goto LA1434_;
		T1433_ = ((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)2)))&7U)))!=0);
LA1434_: ;
		doBindGP_1 = T1433_;
		x_9 = lookup__layeredtable_u711((&(*c_p0).bindings), (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
		{
			if (!(x_9 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1437_;
			{
				NIM_BOOL T1441_;
				T1441_ = (NIM_BOOL)0;
				T1441_ = ((*(*c_p0).callee).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10));
				if (!(T1441_)) goto LA1442_;
				T1441_ = !((*c_p0).typedescMatched);
LA1442_: ;
				if (!T1441_) goto LA1443_;
				{
					if (!(((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)30)))&63U)))!=0)) goto LA1447_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
				goto LA1445_;
LA1447_: ;
				{
					if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA1450_;
					{
						NI T1454_;
						T1454_ = (NI)0;
						T1454_ = len__ast_u5502(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
						if (!(T1454_ == ((NI)0))) goto LA1455_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
					}
					goto LA1452_;
LA1455_: ;
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* aa_5;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__84;
						aa_5 = NIM_NIL;
						colontmpD__84 = NIM_NIL;
						{
							NI T1461_;
							NimStringV2 argX60gensym578__1;
							T1461_ = (NI)0;
							T1461_ = len__ast_u5502(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1458_;
							if (!!((((NI)0) < T1461_))) goto LA1462_;
							argX60gensym578__1.len = 0; argX60gensym578__1.p = NIM_NIL;
							argX60gensym578__1 = toFileLineCol__msgs_u701((&TM__EV5hHJmjIY9cla9b9be7fSVJQ_63));
							if (NIM_UNLIKELY(*nimErr_)) goto LA1464_;
							internalErrorImpl__msgs_u1598((*(*(*c_p0).c).graph).config, unknownLineInfo__lineinfos_u364, argX60gensym578__1, (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_63));
							if (NIM_UNLIKELY(*nimErr_)) goto LA1464_;
							{
								LA1464_:;
							}
							{
								eqdestroy___system_u2691(argX60gensym578__1);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1458_;
						}
LA1462_: ;
						(*c_p0).typedescMatched = NIM_TRUE;
						eqcopy___ast_u3381(&aa_5, a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1458_;
						{
							while (1) {
								NIM_BOOL T1469_;
								NI T1471_;
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T1472_;
								T1469_ = (NIM_BOOL)0;
								T1469_ = ((*aa_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8) || (*aa_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
								if (!(T1469_)) goto LA1470_;
								T1471_ = (NI)0;
								T1471_ = len__ast_u5502(aa_5);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1458_;
								T1469_ = (((NI)0) < T1471_);
LA1470_: ;
								if (!T1469_) goto LA1468;
								T1472_ = NIM_NIL;
								T1472_ = last__ast_u5278(aa_5);
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T1472_); goto LA1458_;}
								eqsink___ast_u3387(&aa_5, T1472_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1458_;
							} LA1468: ;
						}
						{
							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 LA1475_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
							eqdestroy___ast_u3378(colontmpD__84);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
							eqdestroy___ast_u3378(aa_5);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
							eqdestroy___ast_u3378(x_9);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(aOrig_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA1475_: ;
						colontmpD__84 = base__ast_u5351(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1458_;
						result = typeRel__sigmatch_u253(c_p0, colontmpD__84, aa_5, flags_p3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1458_;
						{
							if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) < result)) goto LA1479_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
						}
LA1479_: ;
						{
							LA1458_:;
						}
						{
							oldNimErrFin1458_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3378(colontmpD__84);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
							eqdestroy___ast_u3378(aa_5);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
							*nimErr_ = oldNimErrFin1458_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
					}
LA1452_: ;
				}
				goto LA1445_;
LA1450_: ;
				{
					if (!(*c_p0).isNoCall) goto LA1484_;
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concrete_2;
						if (!doBindGP_1) goto LA1488_;
						concrete_2 = NIM_NIL;
						concrete_2 = concreteType__sigmatch_u732((&(*c_p0)), a_1, f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1490_;
						{
							if (!(concrete_2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1493_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
							eqdestroy___ast_u3378(concrete_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
							eqdestroy___ast_u3378(x_9);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(aOrig_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA1493_: ;
						put__sigmatch_u249(c_p0, f_p1, concrete_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1490_;
						{
							LA1490_:;
						}
						{
							oldNimErrFin1490_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3378(concrete_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
							*nimErr_ = oldNimErrFin1490_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
					}
LA1488_: ;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
				goto LA1445_;
LA1484_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA1445_: ;
			}
			goto LA1439_;
LA1443_: ;
			{
				{
					NIM_BOOL T1501_;
					NI T1502_;
					T1501_ = (NIM_BOOL)0;
					T1502_ = (NI)0;
					T1502_ = len__ast_u5502(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
					T1501_ = (((NI)0) < T1502_);
					if (!(T1501_)) goto LA1503_;
					T1501_ = !(((*(*f_p1).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0)));
LA1503_: ;
					if (!T1501_) goto LA1504_;
					result = typeRel__sigmatch_u253(c_p0, (*f_p1).sons.p->data[((NI)0)], a_1, (flags_p3 | 5));
					if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
					{
						NIM_BOOL T1508_;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concrete_3;
						T1508_ = (NIM_BOOL)0;
						T1508_ = doBindGP_1;
						if (!(T1508_)) goto LA1509_;
						T1508_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0) || result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8)));
LA1509_: ;
						if (!T1508_) goto LA1510_;
						concrete_3 = NIM_NIL;
						concrete_3 = concreteType__sigmatch_u732((&(*c_p0)), a_1, f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1512_;
						{
							if (!(concrete_3 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1515_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
							eqdestroy___ast_u3378(concrete_3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
							eqdestroy___ast_u3378(x_9);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(aOrig_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA1515_: ;
						put__sigmatch_u249(c_p0, f_p1, concrete_3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1512_;
						{
							LA1512_:;
						}
						{
							oldNimErrFin1512_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3378(concrete_3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
							*nimErr_ = oldNimErrFin1512_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
					}
LA1510_: ;
					{
						if (!(result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10) || result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)3))) goto LA1521_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
					}
LA1521_: ;
				}
				goto LA1499_;
LA1504_: ;
				{
					if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA1524_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
				goto LA1499_;
LA1524_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
LA1499_: ;
			}
LA1439_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* concrete_4;
				if (!(result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8))) goto LA1529_;
				concrete_4 = NIM_NIL;
				eqcopy___ast_u3381(&concrete_4, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1531_;
				{
					if (!(((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)30)))&63U)))!=0)) goto LA1534_;
					transitionGenericParamToType__ast_u6843((*a_1).sym);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1531_;
					(*a_1).flags &= ~(((NU64)1) << (((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)30))) & 63));
				}
				goto LA1532_;
LA1534_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T1539_;
					if (!!(((flags_p3 &((NU8)1<<((NU)((((tyEnum_TTypeRelFlag__yHDjpmVEXqbkZzsG3uHRHw)0)))&7U)))!=0))) goto LA1537_;
					T1539_ = NIM_NIL;
					T1539_ = concreteType__sigmatch_u732((&(*c_p0)), a_1, f_p1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T1539_); goto LA1531_;}
					eqsink___ast_u3387(&concrete_4, T1539_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1531_;
					{
						if (!(concrete_4 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1542_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
						eqdestroy___ast_u3378(concrete_4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
						eqdestroy___ast_u3378(x_9);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3378(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(aOrig_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA1542_: ;
				}
				goto LA1532_;
LA1537_: ;
LA1532_: ;
				{
					if (!doBindGP_1) goto LA1546_;
					put__sigmatch_u249(c_p0, f_p1, concrete_4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1531_;
				}
LA1546_: ;
				{
					LA1531_:;
				}
				{
					oldNimErrFin1531_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(concrete_4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
					*nimErr_ = oldNimErrFin1531_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
			}
			goto LA1527_;
LA1529_: ;
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) < result)) goto LA1551_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
			goto LA1527_;
LA1551_: ;
LA1527_: ;
		}
		goto LA1435_;
LA1437_: ;
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3))) goto LA1554_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
		}
		goto LA1435_;
LA1554_: ;
		{
			if (!((*x_9).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA1557_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
		}
		goto LA1435_;
LA1557_: ;
		{
			NI inheritancePenaltyOld_1;
			inheritancePenaltyOld_1 = (*c_p0).inheritancePenalty;
			result = typeRel__sigmatch_u253(c_p0, x_9, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1432_;
			(*c_p0).inheritancePenalty = inheritancePenaltyOld_1;
			{
				if (!(((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8) < result)) goto LA1562_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
LA1562_: ;
		}
LA1435_: ;
		{
			LA1432_:;
		}
		{
			oldNimErrFin1432_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(x_9);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1432_;
		}
		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_u711((&(*c_p0).bindings), (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
		{
			if (!(prev_5 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1570_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__85;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__86;
				if (!((*aOrig_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60))) goto LA1574_;
				colontmpD__85 = NIM_NIL;
				colontmpD__86 = NIM_NIL;
				{
					NIM_BOOL T1579_;
					NIM_BOOL T1580_;
					T1579_ = (NIM_BOOL)0;
					T1580_ = (NIM_BOOL)0;
					T1580_ = (((NI)0) < (*(*c_p0).c).inGenericContext);
					if (!(T1580_)) goto LA1581_;
					T1580_ = ((*aOrig_2).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
LA1581_: ;
					T1579_ = T1580_;
					if (!(T1579_)) goto LA1582_;
					T1579_ = !((*c_p0).isNoCall);
LA1582_: ;
					if (!T1579_) goto LA1583_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
				goto LA1577_;
LA1583_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__87;
					colontmpD__85 = base__ast_u5351(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1576_;
					if (!!(((*colontmpD__85).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0) || (*colontmpD__85).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12)))) goto LA1586_;
					colontmpD__87 = NIM_NIL;
					colontmpD__87 = base__ast_u5351(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1588_;
					result = typeRel__sigmatch_u253(c_p0, colontmpD__87, a_1, flags_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1588_;
					{
						NIM_BOOL T1591_;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* r_2;
						T1591_ = (NIM_BOOL)0;
						T1591_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
						if (!(T1591_)) goto LA1592_;
						T1591_ = !(((*f_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA1592_: ;
						if (!T1591_) goto LA1593_;
						r_2 = NIM_NIL;
						r_2 = tryResolvingStaticExpr__sigmatch_u1815(c_p0, (*f_p1).n, NIM_FALSE, NIM_FALSE, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
						if (NIM_UNLIKELY(*nimErr_)) goto LA1595_;
						{
							if (!(r_2 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA1598_;
							eqcopy___ast_u3255(&r_2, (*f_p1).n);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1595_;
						}
LA1598_: ;
						{
							NIM_BOOL T1602_;
							NIM_BOOL T1603_;
							NIM_BOOL T1605_;
							NIM_BOOL T1606_;
							T1602_ = (NIM_BOOL)0;
							T1603_ = (NIM_BOOL)0;
							T1603_ = exprStructuralEquivalent__trees_u63(r_2, (*aOrig_2).n, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1595_;
							T1602_ = !(T1603_);
							if (!(T1602_)) goto LA1604_;
							T1605_ = (NIM_BOOL)0;
							T1606_ = (NIM_BOOL)0;
							T1606_ = !(((*aOrig_2).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
							if (!(T1606_)) goto LA1607_;
							T1606_ = ((*(*aOrig_2).n).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6));
LA1607_: ;
							T1605_ = T1606_;
							if (!(T1605_)) goto LA1608_;
							T1605_ = inferStaticParam__sigmatch_u1829(c_p0, r_2, (*(*aOrig_2).n)._kind_1.intVal);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1595_;
LA1608_: ;
							T1602_ = !(T1605_);
LA1604_: ;
							if (!T1602_) goto LA1609_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
						}
LA1609_: ;
						{
							LA1595_:;
						}
						{
							oldNimErrFin1595_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(r_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1588_;
							*nimErr_ = oldNimErrFin1595_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1588_;
					}
LA1593_: ;
					{
						LA1588_:;
					}
					{
						oldNimErrFin1588_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(colontmpD__87);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1576_;
						*nimErr_ = oldNimErrFin1588_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1576_;
				}
				goto LA1577_;
LA1586_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__88;
					colontmpD__86 = base__ast_u5351(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1576_;
					if (!((*colontmpD__86).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA1616_;
					colontmpD__88 = NIM_NIL;
					{
						NI T1621_;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__89;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__90;
						colontmpD__88 = base__ast_u5351(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1618_;
						T1621_ = (NI)0;
						T1621_ = len__ast_u5502(colontmpD__88);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1618_;
						if (!(((NI)0) < T1621_)) goto LA1622_;
						colontmpD__89 = NIM_NIL;
						colontmpD__90 = NIM_NIL;
						colontmpD__89 = base__ast_u5351(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1624_;
						colontmpD__90 = last__ast_u5278(colontmpD__89);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1624_;
						result = typeRel__sigmatch_u253(c_p0, colontmpD__90, a_1, flags_p3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1624_;
						{
							LA1624_:;
						}
						{
							oldNimErrFin1624_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3378(colontmpD__90);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1618_;
							eqdestroy___ast_u3378(colontmpD__89);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1618_;
							*nimErr_ = oldNimErrFin1624_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1618_;
					}
					goto LA1619_;
LA1622_: ;
					{
						{
							if (!(((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)25)))&63U)))!=0)) goto LA1630_;
							result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
						}
						goto LA1628_;
LA1630_: ;
						{
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__91;
							colontmpD__91 = NIM_NIL;
							colontmpD__91 = base__ast_u5351(f_p1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1633_;
							result = typeRel__sigmatch_u253(c_p0, colontmpD__91, a_1, flags_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1633_;
							{
								LA1633_:;
							}
							{
								oldNimErrFin1633_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3378(colontmpD__91);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1618_;
								*nimErr_ = oldNimErrFin1633_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1618_;
						}
LA1628_: ;
					}
LA1619_: ;
					{
						LA1618_:;
					}
					{
						oldNimErrFin1618_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(colontmpD__88);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1576_;
						*nimErr_ = oldNimErrFin1618_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1576_;
				}
				goto LA1577_;
LA1616_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
LA1577_: ;
				{
					if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA1641_;
					put__sigmatch_u249(c_p0, f_p1, aOrig_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1576_;
				}
LA1641_: ;
				{
					LA1576_:;
				}
				{
					oldNimErrFin1576_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__86);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
					eqdestroy___ast_u3378(colontmpD__85);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
					*nimErr_ = oldNimErrFin1576_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
			}
			goto LA1572_;
LA1574_: ;
			{
				NIM_BOOL T1646_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__92;
				tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ T1651_;
				T1646_ = (NIM_BOOL)0;
				T1646_ = !(((*aOrig_2).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
				if (!(T1646_)) goto LA1647_;
				T1646_ = !(((*(*aOrig_2).n).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
LA1647_: ;
				if (!T1646_) goto LA1648_;
				colontmpD__92 = NIM_NIL;
				T1651_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__93;
					colontmpD__92 = base__ast_u5351(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1650_;
					if (!!(((*colontmpD__92).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0)))) goto LA1654_;
					colontmpD__93 = NIM_NIL;
					colontmpD__93 = last__ast_u5278(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1656_;
					result = typeRel__sigmatch_u253(c_p0, colontmpD__93, (*(*aOrig_2).n).typField, flags_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1656_;
					{
						LA1656_:;
					}
					{
						oldNimErrFin1656_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(colontmpD__93);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1650_;
						*nimErr_ = oldNimErrFin1656_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1650_;
				}
				goto LA1652_;
LA1654_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
LA1652_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* boundType_1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__94;
					if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA1662_;
					boundType_1 = NIM_NIL;
					colontmpD__94 = eqdup___ast_u3384((*(*aOrig_2).n).typField);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1650_;
					boundType_1 = newTypeS__semdata_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60), (*c_p0).c, colontmpD__94);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1650_;
					eqcopy___ast_u3255(&(*boundType_1).n, (*aOrig_2).n);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1650_;
					put__sigmatch_u249(c_p0, f_p1, boundType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1650_;
					eqdestroy___ast_u3378(boundType_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1650_;
				}
LA1662_: ;
				{
					LA1650_:;
				}
				{
					oldNimErrFin1650_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__92);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
					*nimErr_ = oldNimErrFin1650_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
			}
			goto LA1572_;
LA1648_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA1572_: ;
		}
		goto LA1568_;
LA1570_: ;
		{
			if (!((*prev_5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60))) goto LA1668_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__95;
				if (!((*aOrig_2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60))) goto LA1672_;
				colontmpD__95 = NIM_NIL;
				colontmpD__95 = last__ast_u5278(prev_5);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1674_;
				result = typeRel__sigmatch_u253(c_p0, colontmpD__95, a_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1674_;
				{
					NIM_BOOL T1677_;
					T1677_ = (NIM_BOOL)0;
					T1677_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
					if (!(T1677_)) goto LA1678_;
					T1677_ = !(((*prev_5).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA1678_: ;
					if (!T1677_) goto LA1679_;
					{
						NIM_BOOL T1683_;
						T1683_ = (NIM_BOOL)0;
						T1683_ = exprStructuralEquivalent__trees_u63((*prev_5).n, (*aOrig_2).n, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1674_;
						if (!!(T1683_)) goto LA1684_;
						result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
					}
LA1684_: ;
				}
LA1679_: ;
				{
					LA1674_:;
				}
				{
					oldNimErrFin1674_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__95);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
					*nimErr_ = oldNimErrFin1674_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1567_;
			}
			goto LA1670_;
LA1672_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA1670_: ;
		}
		goto LA1568_;
LA1668_: ;
		{
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
		}
LA1568_: ;
		{
			LA1567_:;
		}
		{
			oldNimErrFin1567_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(prev_5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1567_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)55):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* prev_6;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T1694_;
		prev_6 = NIM_NIL;
		T1694_ = NIM_NIL;
		{
			NI T1697_;
			T1697_ = (*f_p1).sons.len;
			if (!(((NI)1) < T1697_)) goto LA1698_;
			prev_6 = last__ast_u5278(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1693_;
		}
		goto LA1695_;
LA1698_: ;
		{
			prev_6 = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
		}
LA1695_: ;
		{
			if (!!((prev_6 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA1703_;
			result = typeRel__sigmatch_u253(c_p0, prev_6, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1693_;
		}
		goto LA1701_;
LA1703_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__96;
			colontmpD__96 = NIM_NIL;
			colontmpD__96 = base__ast_u5351(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1706_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__96, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1706_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__97;
				if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA1709_;
				colontmpD__97 = eqdup___ast_u3384(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1706_;
				add__ast_u3891((&(*c_p0).inferredTypes), colontmpD__97);
				add__ast_u3881(f_p1, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1706_;
			}
LA1709_: ;
			{
				LA1706_:;
			}
			{
				oldNimErrFin1706_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__96);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1693_;
				*nimErr_ = oldNimErrFin1706_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1693_;
		}
LA1701_: ;
		{
			LA1693_:;
		}
		{
			oldNimErrFin1693_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(prev_6);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1693_;
		}
		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_u711((&(*c_p0).bindings), (*f_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1716_;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__98;
			if (!(prev_7 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA1719_;
			colontmpD__98 = NIM_NIL;
			{
				NIM_BOOL T1724_;
				T1724_ = (NIM_BOOL)0;
				T1724_ = (((NI)0) < (*(*c_p0).c).inGenericContext);
				if (!(T1724_)) goto LA1725_;
				T1724_ = containsUnresolvedType__types_u3481(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1721_;
LA1725_: ;
				if (!T1724_) goto LA1726_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
			goto LA1722_;
LA1726_: ;
			{
				if (!!(((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8)))) goto LA1729_;
				{
					NIM_BOOL T1733_;
					T1733_ = (NIM_BOOL)0;
					T1733_ = ((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
					if (!(T1733_)) goto LA1734_;
					T1733_ = (((*a_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)30)))&63U)))!=0);
LA1734_: ;
					if (!T1733_) goto LA1735_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
				}
				goto LA1731_;
LA1735_: ;
				{
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA1731_: ;
			}
			goto LA1722_;
LA1729_: ;
			{
				colontmpD__98 = base__ast_u5351(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1721_;
				if (!((*colontmpD__98).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0))) goto LA1739_;
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			}
			goto LA1722_;
LA1739_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__99;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__100;
				colontmpD__99 = NIM_NIL;
				colontmpD__100 = NIM_NIL;
				colontmpD__99 = base__ast_u5351(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1742_;
				colontmpD__100 = base__ast_u5351(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1742_;
				result = typeRel__sigmatch_u253(c_p0, colontmpD__99, colontmpD__100, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1742_;
				{
					LA1742_:;
				}
				{
					oldNimErrFin1742_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__100);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1721_;
					eqdestroy___ast_u3378(colontmpD__99);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1721_;
					*nimErr_ = oldNimErrFin1742_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1721_;
			}
LA1722_: ;
			{
				if (!!((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)))) goto LA1747_;
				put__sigmatch_u249(c_p0, f_p1, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1721_;
			}
LA1747_: ;
			{
				LA1721_:;
			}
			{
				oldNimErrFin1721_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__98);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1716_;
				*nimErr_ = oldNimErrFin1721_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1716_;
		}
		goto LA1717_;
LA1719_: ;
		{
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__101;
				if (!(((*f_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0)) goto LA1754_;
				colontmpD__101 = NIM_NIL;
				colontmpD__101 = base__ast_u5351(prev_7);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1756_;
				result = typeRel__sigmatch_u253(c_p0, colontmpD__101, a_1, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1756_;
				{
					LA1756_:;
				}
				{
					oldNimErrFin1756_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__101);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1716_;
					*nimErr_ = oldNimErrFin1756_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1716_;
			}
			goto LA1752_;
LA1754_: ;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__102;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__103;
				if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA1760_;
				colontmpD__102 = NIM_NIL;
				colontmpD__103 = NIM_NIL;
				colontmpD__102 = base__ast_u5351(prev_7);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1762_;
				colontmpD__103 = base__ast_u5351(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1762_;
				result = typeRel__sigmatch_u253(c_p0, colontmpD__102, colontmpD__103, flags_p3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1762_;
				{
					LA1762_:;
				}
				{
					oldNimErrFin1762_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__103);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1716_;
					eqdestroy___ast_u3378(colontmpD__102);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1716_;
					*nimErr_ = oldNimErrFin1762_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1716_;
			}
			goto LA1752_;
LA1760_: ;
			{
				result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			}
LA1752_: ;
		}
LA1717_: ;
		{
			LA1716_:;
		}
		{
			oldNimErrFin1716_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(prev_7);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1716_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7):
	{
		{
			if (!!((aOrig_2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA1771_;
			put__sigmatch_u249(c_p0, f_p1, aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA1771_: ;
		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__104;
		tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg T1786_;
		instantiated_1 = NIM_NIL;
		reevaluated_1 = NIM_NIL;
		colontmpD__104 = NIM_NIL;
		{
			NIM_BOOL T1778_;
			T1778_ = (NIM_BOOL)0;
			T1778_ = ((*f_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
			if (T1778_) goto LA1779_;
			T1778_ = ((*(*f_p1).n).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1));
LA1779_: ;
			if (!T1778_) goto LA1780_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)8);
			eqdestroy___ast_u3252(colontmpD__104);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(reevaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3252(instantiated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1780_: ;
		{
			if (!(((NI)0) < (*(*c_p0).c).inGenericContext)) goto LA1784_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
			eqdestroy___ast_u3252(colontmpD__104);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(reevaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3252(instantiated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(aOrig_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA1784_: ;
		(*(*c_p0).c).inGenericContext += ((NI)1);
		instantiated_1 = prepareTypesInBody__semtypinst_u1646((*c_p0).c, (&(*c_p0).bindings), (*f_p1).n, ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1775_;
		T1786_ = 0;
		colontmpD__104 = (*(*c_p0).c).semExpr((*c_p0).c, instantiated_1, T1786_, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1775_;
		eqcopy___ast_u3381(&reevaluated_1, (*colontmpD__104).typField);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1775_;
		(*(*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__105;
			colontmpD__105 = NIM_NIL;
			colontmpD__105 = base__ast_u5351(reevaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1789_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__105, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1789_;
			{
				LA1789_:;
			}
			{
				oldNimErrFin1789_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__105);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1775_;
				*nimErr_ = oldNimErrFin1789_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1775_;
		}
		break;
		case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__106;
			colontmpD__106 = NIM_NIL;
			colontmpD__106 = base__ast_u5351(reevaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1793_;
			result = typeRel__sigmatch_u253(c_p0, colontmpD__106, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1793_;
			{
				NIM_BOOL T1796_;
				T1796_ = (NIM_BOOL)0;
				T1796_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
				if (!(T1796_)) goto LA1797_;
				T1796_ = !(((*reevaluated_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA1797_: ;
				if (!T1796_) goto LA1798_;
				{
					NIM_BOOL T1802_;
					T1802_ = (NIM_BOOL)0;
					T1802_ = exprStructuralEquivalent__trees_u63((*aOrig_2).n, (*reevaluated_1).n, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1793_;
					if (!!(T1802_)) goto LA1803_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA1803_: ;
			}
LA1798_: ;
			{
				LA1793_:;
			}
			{
				oldNimErrFin1793_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__106);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1775_;
				*nimErr_ = oldNimErrFin1793_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1775_;
		}
		break;
		default:
		{
			result = typeRel__sigmatch_u253(c_p0, reevaluated_1, a_1, flags_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1775_;
			{
				NIM_BOOL T1810_;
				T1810_ = (NIM_BOOL)0;
				T1810_ = !((result == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0)));
				if (!(T1810_)) goto LA1811_;
				T1810_ = !(((*reevaluated_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA1811_: ;
				if (!T1810_) goto LA1812_;
				{
					NIM_BOOL T1816_;
					T1816_ = (NIM_BOOL)0;
					T1816_ = exprStructuralEquivalent__trees_u63((*aOrig_2).n, (*reevaluated_1).n, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1775_;
					if (!!(T1816_)) goto LA1817_;
					result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0);
				}
LA1817_: ;
			}
LA1812_: ;
		}
		break;
		}
		{
			LA1775_:;
		}
		{
			oldNimErrFin1775_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(colontmpD__104);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(reevaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3252(instantiated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin1775_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0):
	{
		{
			if (!((*a_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0))) goto LA1824_;
			result = ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)10);
		}
LA1824_: ;
	}
	break;
	default:
	{
		NimStringV2 colontmpD__107;
		NimStringV2 colontmpD__108;
		NimStringV2 T1828_;
		colontmpD__107.len = 0; colontmpD__107.p = NIM_NIL;
		colontmpD__108.len = 0; colontmpD__108.p = NIM_NIL;
		T1828_.len = 0; T1828_.p = NIM_NIL;
		colontmpD__107 = dollar___ast_u182((*f_p1).kind);
		T1828_ = rawNewString(colontmpD__107.len + 19);
appendString((&T1828_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_65);
appendString((&T1828_), colontmpD__107);
		colontmpD__108 = T1828_;
		internalErrorImpl__msgs_u1598((*(*(*c_p0).c).graph).config, unknownLineInfo__lineinfos_u364, colontmpD__108, (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_66));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1827_;
		{
			LA1827_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__108);
			eqdestroy___system_u2691(colontmpD__107);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	}
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(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_u3884)(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_u3586)(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_u711((&(*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_u1682(c_p0, (&(*m_p2).bindings), (*arg_p1).info, f_p3);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T5_); goto BeforeRet_;}
		eqsink___ast_u3387(&result, T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T10_;
		if (!(result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA8_;
		internalErrorImpl__msgs_u1598((*(*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_u4564(c_p0);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T10_); goto BeforeRet_;}
		eqsink___ast_u3387(&result, T10_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA8_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, implicitConv__sigmatch_u3600)(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_u4091(kind_p0, (*arg_p2).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = containsGenericType__types_u3462(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_u3586(c_p4, arg_p2, m_p3, f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
			T11_ = NIM_NIL;
			T11_ = skipTypes__ast_u5379(colontmpD_, TM__EV5hHJmjIY9cla9b9be7fSVJQ_19);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T11_); goto LA10_;}
			eqsink___ast_u3387(&(*result).typField, T11_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
			{
				LA10_:;
			}
			{
				oldNimErrFin10_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(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_u4564(c_p4);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T15_); goto BeforeRet_;}
			eqsink___ast_u3387(&(*result).typField, T15_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA6_: ;
	}
	goto LA1_;
LA4_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T17_;
		T17_ = NIM_NIL;
		T17_ = skipTypes__ast_u5379(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_19);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T17_); goto BeforeRet_;}
		eqsink___ast_u3387(&(*result).typField, T17_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	{
		NIM_BOOL T20_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		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_;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = skipTypes__ast_u5379((*result).typField, TM__EV5hHJmjIY9cla9b9be7fSVJQ_75);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T24_ = NIM_NIL;
		T24_ = toVar__ast_u7268(colontmpD__2, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23), (*c_p4).Sup.idgen);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T24_); goto BeforeRet_;}
		eqsink___ast_u3387(&(*result).typField, T24_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*(*result).typField).flags = (*(*arg_p2).typField).flags;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA18_;
LA22_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T26_;
		T26_ = NIM_NIL;
		T26_ = skipTypes__ast_u5379((*result).typField, TM__EV5hHJmjIY9cla9b9be7fSVJQ_76);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T26_); goto BeforeRet_;}
		eqsink___ast_u3387(&(*result).typField, T26_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA18_: ;
	{
		if (!((*result).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA29_;
		internalErrorImpl__msgs_u1598((*(*c_p4).graph).config, (*arg_p2).info, TM__EV5hHJmjIY9cla9b9be7fSVJQ_78, (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_79));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA29_: ;
	add__ast_u3215(result, (*(*c_p4).graph).emptyNode);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T33_;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		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__3 = NIM_NIL;
		colontmpD__3 = elementType__ast_u5331((*arg_p2).typField);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		a_1 = newNodeIT__ast_u4112(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65), (*arg_p2).info, colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__ast_u3215(a_1, arg_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__ast_u3215(result, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA31_;
LA35_: ;
	{
		add__ast_u3215(result, arg_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA31_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, convertLiteral__sigmatch_u3628)(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_u6736(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_u3190(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* valX60gensym657__1;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* valX60gensym660__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;
						valX60gensym657__1 = NIM_NIL;
						colontmpD_ = NIM_NIL;
						valX60gensym660__1 = NIM_NIL;
						colontmpD__2 = NIM_NIL;
						x_1 = copyNode__ast_u6736((*n_p3)._kind_6.sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						colontmpD_ = elemType__types_u254(newType_p4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						valX60gensym657__1 = convertLiteral__sigmatch_u3628(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 (!(valX60gensym657__1 == 0)) goto LA12_;
							result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
							eqdestroy___ast_u3378(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(valX60gensym660__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(valX60gensym657__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(x_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA12_: ;
						add__ast_u3215(x_1, valX60gensym657__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						colontmpD__2 = elemType__types_u254(newType_p4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						valX60gensym660__1 = convertLiteral__sigmatch_u3628(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 (!(valX60gensym660__1 == 0)) goto LA16_;
							result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
							eqdestroy___ast_u3378(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(valX60gensym660__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(valX60gensym657__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(x_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA16_: ;
						add__ast_u3215(x_1, valX60gensym660__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						add__ast_u3215(result, x_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						{
							LA9_:;
						}
						{
							oldNimErrFin9_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3378(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(valX60gensym660__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(valX60gensym657__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(x_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							*nimErr_ = oldNimErrFin9_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA5_;
LA7_: ;
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* valX60gensym663__1;
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
						valX60gensym663__1 = NIM_NIL;
						colontmpD__3 = NIM_NIL;
						colontmpD__3 = elemType__types_u254(newType_p4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
						valX60gensym663__1 = convertLiteral__sigmatch_u3628(kind_p0, c_p1, m_p2, (*n_p3)._kind_6.sons.p->data[i_1], colontmpD__3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
						{
							if (!(valX60gensym663__1 == 0)) goto LA24_;
							result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
							eqdestroy___ast_u3378(colontmpD__3);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(valX60gensym663__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA24_: ;
						add__ast_u3215(result, valX60gensym663__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
						{
							LA21_:;
						}
						{
							oldNimErrFin21_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3378(colontmpD__3);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(valX60gensym663__1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							*nimErr_ = oldNimErrFin21_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
LA5_: ;
					i_2 += ((NI)1);
				} LA4: ;
			}
		}
		eqcopy___ast_u3381(&(*result).typField, newType_p4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)41):
	{
		result = copyNode__ast_u6736(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_u3190(n_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI)0);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* valX60gensym666__1;
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
					if (!(i_4 < colontmp__2)) goto LA31;
					valX60gensym666__1 = NIM_NIL;
					colontmpD__4 = NIM_NIL;
					i_3 = i_4;
					colontmpD__4 = elemType__types_u254(newType_p4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
					valX60gensym666__1 = convertLiteral__sigmatch_u3628(kind_p0, c_p1, m_p2, (*n_p3)._kind_6.sons.p->data[i_3], colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
					{
						if (!(valX60gensym666__1 == 0)) goto LA35_;
						result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
						eqdestroy___ast_u3378(colontmpD__4);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3252(valX60gensym666__1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA35_: ;
					add__ast_u3215(result, valX60gensym666__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
					i_4 += ((NI)1);
					{
						LA32_:;
					}
					{
						oldNimErrFin32_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(colontmpD__4);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3252(valX60gensym666__1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						*nimErr_ = oldNimErrFin32_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA31: ;
			}
		}
		eqcopy___ast_u3381(&(*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_u5379(newType_p4, TM__EV5hHJmjIY9cla9b9be7fSVJQ_73);
		if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
		{
			if (!((*tup_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18))) goto LA43_;
			result = copyNode__ast_u6736(n_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
			{
				NIM_BOOL T47_;
				NI T48_;
				T47_ = (NIM_BOOL)0;
				T48_ = (NI)0;
				T48_ = len__ast_u3190(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_u3190(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_u3255(&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_u3252(name_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
								eqdestroy___ast_u3378(tup_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA58_: ;
							{
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* f_1;
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* valX60gensym675__1;
								if (!!(((*tup_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA62_;
								f_1 = NIM_NIL;
								valX60gensym675__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_u3252(valX60gensym675__1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									eqdestroy___ast_u4574(f_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									eqdestroy___ast_u3252(name_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
									eqdestroy___ast_u3378(tup_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto BeforeRet_;
								}
LA67_: ;
								valX60gensym675__1 = convertLiteral__sigmatch_u3628(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 (!(valX60gensym675__1 == 0)) goto LA71_;
									result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
									eqdestroy___ast_u3252(valX60gensym675__1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									eqdestroy___ast_u4574(f_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									eqdestroy___ast_u3252(name_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
									eqdestroy___ast_u3378(tup_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto BeforeRet_;
								}
LA71_: ;
								add__ast_u3215(result, valX60gensym675__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
								{
									LA64_:;
								}
								{
									oldNimErrFin64_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3252(valX60gensym675__1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									eqdestroy___ast_u4574(f_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									*nimErr_ = oldNimErrFin64_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
							}
							goto LA60_;
LA62_: ;
							{
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* valX60gensym678__1;
								valX60gensym678__1 = NIM_NIL;
								valX60gensym678__1 = convertLiteral__sigmatch_u3628(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 (!(valX60gensym678__1 == 0)) goto LA79_;
									result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
									eqdestroy___ast_u3252(valX60gensym678__1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
									eqdestroy___ast_u3252(name_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
									eqdestroy___ast_u3378(tup_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto BeforeRet_;
								}
LA79_: ;
								add__ast_u3215(result, valX60gensym678__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA76_;
								{
									LA76_:;
								}
								{
									oldNimErrFin76_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3252(valX60gensym678__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_u3252(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_u3190(n_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
					i_8 = ((NI)0);
					{
						while (1) {
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* valX60gensym682__1;
							if (!(i_8 < colontmp__4)) goto LA88;
							valX60gensym682__1 = NIM_NIL;
							i_7 = i_8;
							valX60gensym682__1 = convertLiteral__sigmatch_u3628(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 (!(valX60gensym682__1 == 0)) goto LA92_;
								result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
								eqdestroy___ast_u3252(valX60gensym682__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
								eqdestroy___ast_u3378(tup_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA92_: ;
							add__ast_u3215(result, valX60gensym682__1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA89_;
							i_8 += ((NI)1);
							{
								LA89_:;
							}
							{
								oldNimErrFin89_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3252(valX60gensym682__1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
								*nimErr_ = oldNimErrFin89_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						} LA88: ;
					}
				}
			}
LA45_: ;
			eqcopy___ast_u3381(&(*result).typField, newType_p4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
			eqdestroy___ast_u3378(tup_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA43_: ;
		{
			LA40_:;
		}
		{
			oldNimErrFin40_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(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_u1851((*n_p3).typField, newType_p4, T104_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T102_ = !(T105_);
LA103_: ;
			T101_ = T102_;
			if (!(T101_)) goto LA106_;
			T101_ = isOrdinalType__types_u283(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_u1182((*(*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_u1304((*(*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_u6736(n_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqcopy___ast_u3381(&(*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_u5379(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_u1434((*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_u3378(colontmpD__5);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA126_: ;
			result = copyNode__ast_u6736(n_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA118_;
			eqcopy___ast_u3381(&(*result).typField, newType_p4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA118_;
			eqdestroy___ast_u3378(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA121_: ;
		{
			LA118_:;
		}
		{
			oldNimErrFin118_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(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_u1851((*(*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_u283(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_u1182((*(*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_u1304((*(*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_u6736(n_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqcopy___ast_u3381(&(*result).typField, newType_p4);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA139_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	result = implicitConv__sigmatch_u3600(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_u583)(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)IL64(4611686018427387903));
	}
LA3_: ;
	{
		if (!(a_p0 < ((NI)0))) goto LA7_;
		ea_1 = ((NI)IL64(4611686018427387903));
	}
LA7_: ;
	result = (NI)(eb_1 - ea_1);
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, returnType__ast_u5354)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u162)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* dest_p0) {
	eqdestroy___pureZosproc_u474((*dest_p0).newlyTypedOperands);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0).firstMismatch.formal);
		if (!T3_) goto LA4_;
		eqdestroy___ast_u3469((&(*(*dest_p0).firstMismatch.formal)));
		nimRawDispose((*dest_p0).firstMismatch.formal, ((NI)8));
	}
LA4_: ;
	eqdestroy___system_u5509((*dest_p0).diagnostics);
	eqdestroy___ast_u3311((*dest_p0).inferredTypes);
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = nimDecRefIsLastDyn((*dest_p0).bindings.nextLayer);
		if (!T8_) goto LA9_;
		eqdestroy___layeredtable_u233((&(*(*dest_p0).bindings.nextLayer)));
		nimRawDispose((*dest_p0).bindings.nextLayer, ((NI)8));
	}
LA9_: ;
	eqdestroy___layeredtable_u168((*dest_p0).bindings.topLayer.data);
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = nimDecRefIsLastDyn((*dest_p0).call);
		if (!T13_) goto LA14_;
		eqdestroy___ast_u3270((&(*(*dest_p0).call)));
		nimRawDispose((*dest_p0).call, ((NI)8));
	}
LA14_: ;
	{
		NIM_BOOL T18_;
		T18_ = (NIM_BOOL)0;
		T18_ = nimDecRefIsLastDyn((*dest_p0).calleeSym);
		if (!T18_) goto LA19_;
		eqdestroy___ast_u3469((&(*(*dest_p0).calleeSym)));
		nimRawDispose((*dest_p0).calleeSym, ((NI)8));
	}
LA19_: ;
	{
		NIM_BOOL T23_;
		T23_ = (NIM_BOOL)0;
		T23_ = nimDecRefIsLastDyn((*dest_p0).callee);
		if (!T23_) goto LA24_;
		eqdestroy___ast_u3288((&(*(*dest_p0).callee)));
		nimRawDispose((*dest_p0).callee, ((NI)8));
	}
LA24_: ;
	{
		NIM_BOOL T28_;
		T28_ = (NIM_BOOL)0;
		T28_ = nimDecRefIsLastCyclicDyn((*dest_p0).c);
		if (!T28_) goto LA29_;
		nimDestroyAndDispose((*dest_p0).c);
	}
LA29_: ;
}
static N_INLINE(NIM_BOOL, isLValue__sigmatch_u3740)(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_u315(((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_u4574(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_u106)(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_u4577(&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_u6254(module_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T5_); goto BeforeRet_;}
			eqsink___ast_u4583(&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;
				T14_ = ((*c_p0).unusedImports.len-1);
				if (!(i_1 <= T14_)) goto LA13;
				candidate_1 = NIM_NIL;
				eqcopy___ast_u4577(&candidate_1, (*c_p0).unusedImports.p->data[i_1].Field0);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T17_;
					NIM_BOOL T18_;
					tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym1228__1;
					NI T20_;
					tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym1232__1;
					tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T22_;
					tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym1234__1;
					tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym1236__1;
					T17_ = (NIM_BOOL)0;
					T18_ = (NIM_BOOL)0;
					T18_ = (candidate_1 == module_1);
					if (T18_) goto LA19_;
					xX60gensym1228__1 = (*candidate_1).itemId;
					T20_ = (NI)0;
					T20_ = getOrDefault__sigmatch_u6826((*c_p0).importModuleMap, (NI)((NI)((NU64)(((NI) (xX60gensym1228__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym1228__1.item))), ((NI)(IL64(-9223372036854775807) - IL64(1))));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					xX60gensym1232__1 = (*module_1).itemId;
					T18_ = (T20_ == (NI)((NI)((NU64)(((NI) (xX60gensym1232__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym1232__1.item))));
LA19_: ;
					T17_ = T18_;
					if (T17_) goto LA21_;
					xX60gensym1234__1 = (*candidate_1).itemId;
					T22_.Field0 = (NI)((NI)((NU64)(((NI) (xX60gensym1234__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym1234__1.item)));
					xX60gensym1236__1 = (*s_p1).itemId;
					T22_.Field1 = (NI)((NI)((NU64)(((NI) (xX60gensym1236__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym1236__1.item)));
					T17_ = contains__sigmatch_u6972((*c_p0).exportIndirections, T22_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA21_: ;
					if (!T17_) goto LA23_;
					del__sigmatch_u7268((&(*c_p0).unusedImports), (i_1));
				}
				goto LA15_;
LA23_: ;
				{
					i_1 += ((NI)1);
				}
LA15_: ;
				eqdestroy___ast_u4574(candidate_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA13: ;
		}
	}
LA10_: ;
	eqdestroy___ast_u4574(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_u5331((*n_p0).typField);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newNodeIT__ast_u4112(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65), (*n_p0).info, colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__ast_u3215(result, n_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___ast_u3378(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, userConvMatch__sigmatch_u3759)(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_u5363((*(*c_p0).converters.p->data[i_1]).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					dest_1 = returnType__ast_u5354((*(*c_p0).converters.p->data[i_1]).typ);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					newCandidate__sigmatch_u456(c_p0, src_1, (&convMatch_1));
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					T7_ = 0;
					srca_1 = typeRel__sigmatch_u253((&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_u3252(constraint_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___sigmatch_u162((&convMatch_1));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(dest_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(src_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto LA5;
					}
LA10_: ;
					eqcopy___ast_u3255(&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_u498(constraint_1, arg_p4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						T14_ = !(T16_);
LA15_: ;
						if (!T14_) goto LA17_;
						eqdestroy___ast_u3252(constraint_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___sigmatch_u162((&convMatch_1));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(dest_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(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_u3740(c_p0, arg_p4, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						T21_ = !(T23_);
LA22_: ;
						if (!T21_) goto LA24_;
						eqdestroy___ast_u3252(constraint_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___sigmatch_u162((&convMatch_1));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(dest_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(src_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto LA5;
					}
LA24_: ;
					destIsGeneric_1 = containsGenericType__types_u3462(dest_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T30_;
						if (!destIsGeneric_1) goto LA28_;
						T30_ = NIM_NIL;
						T30_ = generateTypeInstance__semtypinst_u1682(c_p0, (&convMatch_1.bindings), (*arg_p4).info, dest_1);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T30_); goto LA6_;}
						eqsink___ast_u3387(&dest_1, T30_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					}
LA28_: ;
					T31_ = 0;
					fdest_1 = typeRel__sigmatch_u253(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_u106(c_p0, (*c_p0).converters.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						s_1 = newSymNode__ast_u5168((*c_p0).converters.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						eqcopy___ast_u3381(&(*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_u4112(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32), (*arg_p4).info, dest_1);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T41_); goto LA40_;}
						eqsink___ast_u3261(&result, T41_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						add__ast_u3215(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_u6891(arg_p4);
							if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
							T47_ = NIM_NIL;
							T47_ = implicitConv__sigmatch_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59), src_1, colontmpD_, (&convMatch_1), c_p0);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T47_); goto LA46_;}
							eqsink___ast_u3261(&param_1, T47_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA46_;
							{
								LA46_:;
							}
							{
								oldNimErrFin46_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3252(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_u5363((*s_1).typField);
							if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
							T54_ = NIM_NIL;
							T54_ = newNodeIT__ast_u4112(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)64), (*arg_p4).info, colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T54_); goto LA53_;}
							eqsink___ast_u3261(&param_1, T54_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
							colontmpD__3 = copyTree__ast_u6891(arg_p4);
							if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
							add__ast_u3215(param_1, colontmpD__3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
							{
								LA53_:;
							}
							{
								oldNimErrFin53_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3252(colontmpD__3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
								eqdestroy___ast_u3378(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_u6891(arg_p4);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T58_); goto LA40_;}
							eqsink___ast_u3261(&param_1, T58_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
						}
LA42_: ;
						add__ast_u3215(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_u3252(T63_); goto LA40_;}
							eqsink___ast_u3261(&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_u3252(param_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						eqdestroy___ast_u3252(s_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						eqdestroy___ast_u3252(constraint_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___sigmatch_u162((&convMatch_1));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(dest_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(src_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
						{
							LA40_:;
						}
						{
							oldNimErrFin40_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(param_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
							eqdestroy___ast_u3252(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_u3252(constraint_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___sigmatch_u162((&convMatch_1));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(dest_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(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_u3835)(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_u3252(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(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_u3255(&result, arg_p4);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3252(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(call_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA10_: ;
	call_1 = newNodeI__ast_u4091(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)27), (*arg_p4).info);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD_ = copyTree__ast_u6891((*f_p2).n);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	add__ast_u3215(call_1, colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__2 = copyTree__ast_u6891(arg_p4);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	add__ast_u3215(call_1, colontmpD__2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = (*c_p0).semTryExpr(c_p0, call_1, 262144);
	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_u3252(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(call_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA18_: ;
		T20_ = NIM_NIL;
		T20_ = (*c_p0).semExpr(c_p0, call_1, 262144, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T20_); goto LA1_;}
		eqsink___ast_u3261(&result, T20_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T21_ = 0;
		r_1 = typeRel__sigmatch_u253(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_u3252(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(call_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA24_: ;
		{
			if (!((*result).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)27))) goto LA28_;
			transitionSonsKind__ast_u6769(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_u5351(f_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
			T35_ = NIM_NIL;
			T35_ = getInstantiatedType__sigmatch_u3586(c_p0, arg_p4, (&(*m_p1)), colontmpD__3);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T35_); goto LA34_;}
			eqsink___ast_u3387(&(*result).typField, T35_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
			{
				LA34_:;
			}
			{
				oldNimErrFin34_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(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_u3252(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(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_u3920)(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_u5379(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_17);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3255(&arg_1, argSemantized_p3);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&a_2, a_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___semdata_u4218(&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_u6138(a_2, f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqcopy___ast_u3255(&result, argSemantized_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4215(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(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_u4430(c_1, arg_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
				result = newNodeIT__ast_u4112(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)4), (*argOrig_p4).info, colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___semdata_u4215(c_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(a_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3252(arg_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3378(fMaybeStatic_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
				{
					LA24_:;
				}
				{
					oldNimErrFin24_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(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 = eqdup___ast_u3384((*evaluated_1).typField);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				typ_1 = newTypeS__semdata_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60), c_1, colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				eqsink___ast_u3261(&(*typ_1).n, evaluated_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				eqwasMoved___ast_u3249(&evaluated_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				T41_ = NIM_NIL;
				T41_ = copyTree__ast_u6891(arg_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T41_); goto LA40_;}
				eqsink___ast_u3261(&arg_1, T41_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				eqcopy___ast_u3381(&(*arg_1).typField, typ_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				eqsink___ast_u3387(&a_2, typ_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				eqwasMoved___ast_u3375(&typ_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA40_;
				{
					LA40_:;
				}
				{
					oldNimErrFin40_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(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_u5351(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
						T54_ = 0;
						T55_ = (tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0;
						T55_ = typeRel__sigmatch_u253(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_u4441((*m_p0).c, arg_1);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T58_); goto LA49_;}
						eqsink___ast_u3261(&result, T58_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
						(*(*result).typField).flags |= ((NU64)1)<<(((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9))) & 63);
						eqsink___ast_u3261(&(*(*result).typField).n, arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
						eqwasMoved___ast_u3249(&arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
						eqdestroy___ast_u3378(colontmpD__3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA35_;
						eqdestroy___ast_u3252(evaluated_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___semdata_u4215(c_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(a_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3252(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(fMaybeStatic_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA56_: ;
					{
						LA49_:;
					}
					{
						oldNimErrFin49_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(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_u3252(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_u253(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_u3884(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_u3249(&arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4215(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(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_u3249(&arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4215(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(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_u3255(&result, (*(*arg_1).typField).n);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4215(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(fMaybeStatic_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		goto LA72_;
LA82_: ;
		{
			eqcopy___ast_u3255(&result, argSemantized_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4215(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(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_u269((&(*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_u269((&(*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_u3261(&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_u4215(c_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(a_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3252(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(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_u4215(c_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(a_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3252(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(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_u4574(inferred_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___semdata_u4215(c_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(a_2);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3252(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(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_u5171(inferred_1, (*arg_1).info);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T110_); goto LA105_;}
					eqsink___ast_u3261(&result, T110_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
					{
						LA105_:;
					}
					{
						oldNimErrFin105_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u4574(inferred_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin105_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA93_: ;
				eqcopy___ast_u3255(&arg_1, result);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				T113_ = 0;
				r_1 = typeRel__sigmatch_u253(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_u5379(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_u5379(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_u3462(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA130_;
					if (!T134_) goto LA135_;
					colontmpD__6 = NIM_NIL;
					colontmpD__6 = getInstantiatedType__sigmatch_u3586(c_1, arg_1, (&(*m_p0)), f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA137_;
					t_1 = skipTypes__ast_u5379(colontmpD__6, TM__EV5hHJmjIY9cla9b9be7fSVJQ_19);
					if (NIM_UNLIKELY(*nimErr_)) goto LA137_;
					{
						LA137_:;
					}
					{
						oldNimErrFin137_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(colontmpD__6);
						if (NIM_UNLIKELY(*nimErr_)) goto LA130_;
						*nimErr_ = oldNimErrFin137_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA130_;
				}
				goto LA132_;
LA135_: ;
				{
					t_1 = skipTypes__ast_u5379(f_p1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_19);
					if (NIM_UNLIKELY(*nimErr_)) goto LA130_;
				}
LA132_: ;
				T141_ = NIM_NIL;
				T141_ = convertLiteral__sigmatch_u3628(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), c_1, (&(*m_p0)), arg_1, t_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T141_); goto LA130_;}
				eqsink___ast_u3261(&result, T141_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA130_;
				{
					LA130_:;
				}
				{
					oldNimErrFin130_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(t_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
					*nimErr_ = oldNimErrFin130_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
			}
			goto LA124_;
LA128_: ;
			{
				eqsink___ast_u3261(&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_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), f_p1, arg_1, (&(*m_p0)), c_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T146_); goto LA115_;}
			eqsink___ast_u3261(&result, T146_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
		}
LA120_: ;
		{
			LA115_:;
		}
		{
			oldNimErrFin115_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = 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_u5379(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_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), f_p1, arg_1, (&(*m_p0)), c_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T155_); goto LA150_;}
		eqsink___ast_u3261(&result, T155_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA150_;
		{
			LA150_:;
		}
		{
			oldNimErrFin150_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(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_u3261(&result, arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3249(&arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA159_;
LA161_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T164_;
			T164_ = NIM_NIL;
			T164_ = implicitConv__sigmatch_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59), f_p1, arg_1, (&(*m_p0)), c_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T164_); goto LA1_;}
			eqsink___ast_u3261(&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_u3261(&result, arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3249(&arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA166_;
LA168_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T171_;
			T171_ = NIM_NIL;
			T171_ = implicitConv__sigmatch_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), f_p1, arg_1, (&(*m_p0)), c_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T171_); goto LA1_;}
			eqsink___ast_u3261(&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_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), f_p1, result, (&(*m_p0)), c_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T174_); goto LA1_;}
		eqsink___ast_u3261(&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_u3261(&result, arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
			eqwasMoved___ast_u3249(&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_u5379((*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_u583(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_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59), f_p1, arg_1, (&(*m_p0)), c_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T187_); goto LA176_;}
			eqsink___ast_u3261(&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_u3751((*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_u6891(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T196_); goto LA195_;}
			eqsink___ast_u3261(&result, T196_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA195_;
			colontmpD__9 = getInstantiatedType__sigmatch_u3586(c_1, arg_1, (&(*m_p0)), f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA195_;
			T197_ = NIM_NIL;
			T197_ = skipTypes__ast_u5379(colontmpD__9, TM__EV5hHJmjIY9cla9b9be7fSVJQ_19);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T197_); goto LA195_;}
			eqsink___ast_u3387(&(*result).typField, T197_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA195_;
			{
				LA195_:;
			}
			{
				oldNimErrFin195_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__9);
				if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
				*nimErr_ = oldNimErrFin195_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
		}
		goto LA177_;
LA193_: ;
		{
			eqsink___ast_u3261(&result, arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
			eqwasMoved___ast_u3249(&arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
		}
LA177_: ;
		{
			LA176_:;
		}
		{
			oldNimErrFin176_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(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_u3261(&result, arg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqwasMoved___ast_u3249(&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_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), f_p1, arg_1, (&(*m_p0)), c_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T205_); goto LA1_;}
		eqsink___ast_u3261(&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_u3255(&result, arg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA207_;
		ff_1 = skipTypes__ast_u5379(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_u5379((*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_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59), f_p1, arg_1, (&(*m_p0)), c_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T216_); goto LA207_;}
			eqsink___ast_u3261(&result, T216_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA207_;
		}
LA214_: ;
		{
			LA207_:;
		}
		{
			oldNimErrFin207_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__10);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(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_u3378(colontmpD__12);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__11);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4215(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(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_u3249(&arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			eqdestroy___ast_u3378(colontmpD__12);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__11);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4215(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(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__TAsXwXSUBvAawE1kIQ5ziQ 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_u5502(f_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			T234_ = (T236_ == ((NI)1));
LA235_: ;
			T233_ = T234_;
			if (!(T233_)) goto LA237_;
			colontmpD__11 = returnType__ast_u5354(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_u5331(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_u1227((*(*c_1).graph).config, (*argOrig_p4).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)78), TM__EV5hHJmjIY9cla9b9be7fSVJQ_80, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_81), NIM_FALSE, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto LA244_;
			eqcopy___modulegraphs_u14756(&p_1, (*c_1).graph);
			if (NIM_UNLIKELY(*nimErr_)) goto LA244_;
			nimZeroMem((void*)T245_, sizeof(tyArray__TAsXwXSUBvAawE1kIQ5ziQ));
			T245_[0] = (*p_1).emptyNode;
			colontmpD__13 = newTree__ast_u4170(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)76), T245_, 1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA244_;
			colontmpD__14 = newProcNode__ast_u5430(((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_u249(m_p0, f_p1, (*lifted_1).typField);
				if (NIM_UNLIKELY(*nimErr_)) goto LA244_;
			}
LA249_: ;
			(*m_p0).convMatches += ((NI)1);
			result = implicitConv__sigmatch_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), f_p1, lifted_1, (&(*m_p0)), c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA244_;
			eqdestroy___ast_u3252(colontmpD__14);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			eqdestroy___ast_u3252(colontmpD__13);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			eqdestroy___ast_u3252(lifted_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			eqdestroy___modulegraphs_u14753(p_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
			eqdestroy___ast_u3378(colontmpD__12);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(colontmpD__11);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___semdata_u4215(c_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(a_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(fMaybeStatic_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
			{
				LA244_:;
			}
			{
				oldNimErrFin244_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(colontmpD__14);
				if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
				eqdestroy___ast_u3252(colontmpD__13);
				if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
				eqdestroy___ast_u3252(lifted_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
				eqdestroy___modulegraphs_u14753(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_u3759(c_1, m_p0, f_p1, a_2, arg_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T253_); goto LA220_;}
		eqsink___ast_u3261(&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_u3835(c_1, m_p0, f_p1, a_2, arg_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T264_); goto LA220_;}
				eqsink___ast_u3261(&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_u3261(&result, arg_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA220_;
				eqwasMoved___ast_u3249(&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_u5351(f_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA269_;
				T270_ = 0;
				r_1 = typeRel__sigmatch_u253(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_u6891(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T273_); goto LA272_;}
					eqsink___ast_u3261(&result, T273_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA272_;
					colontmpD__16 = base__ast_u5351(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA272_;
					T274_ = NIM_NIL;
					T274_ = getInstantiatedType__sigmatch_u3586(c_1, arg_1, (&(*m_p0)), colontmpD__16);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T274_); goto LA272_;}
					eqsink___ast_u3387(&(*result).typField, T274_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA272_;
					(*m_p0).baseTypeMatch = NIM_TRUE;
					{
						LA272_:;
					}
					{
						oldNimErrFin272_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(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_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), (*f_p1).sons.p->data[((NI)0)], arg_1, (&(*m_p0)), c_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T278_); goto LA269_;}
					eqsink___ast_u3261(&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_u6891(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T280_); goto LA269_;}
					eqsink___ast_u3261(&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_u5351(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA282_;
						if (!((*colontmpD__17).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA285_;
						eqsink___ast_u3261(&result, arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA282_;
						eqwasMoved___ast_u3249(&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_u5351(f_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA288_;
						T289_ = NIM_NIL;
						T289_ = implicitConv__sigmatch_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59), colontmpD__18, arg_1, (&(*m_p0)), c_1);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T289_); goto LA288_;}
						eqsink___ast_u3261(&result, T289_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA288_;
						{
							LA288_:;
						}
						{
							oldNimErrFin288_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3378(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_u3378(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_u5351(f_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA295_;
					T296_ = NIM_NIL;
					T296_ = userConvMatch__sigmatch_u3759(c_1, m_p0, colontmpD__19, a_2, arg_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T296_); goto LA295_;}
					eqsink___ast_u3261(&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_u3378(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_u3378(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_u3378(colontmpD__12);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(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_u4215(c_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(a_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(arg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(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_u266)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* Result) {
	tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA colontmpD_;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* colontmpD__2;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	nimZeroMem((void*)(&T1_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	colontmpD_ = eqdup___layeredtable_u155((*pt_p0).topLayer);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_.topLayer = colontmpD_;
	colontmpD__2 = eqdup___layeredtable_u221((*pt_p0).nextLayer);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_.nextLayer = colontmpD__2;
	T1_.previousLen = (*pt_p0).previousLen;
	(*Result).topLayer = T1_.topLayer;
	(*Result).nextLayer = T1_.nextLayer;
	(*Result).previousLen = T1_.previousLen;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, shallowCopyCandidate__sigmatch_u460)(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_u4218(&(*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_u3381(&(*dest_p0).callee, (*src_p1).callee);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u4577(&(*dest_p0).calleeSym, (*src_p1).calleeSym);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = NIM_NIL;
	T1_ = copyTree__ast_u6891((*src_p1).call);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T1_); goto BeforeRet_;}
	eqsink___ast_u3261(&(*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_u266((&(*src_p1).bindings), (&T2_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqsink___layeredtable_u242((&(*dest_p0).bindings), (&T2_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ, staticAwareTypeRel__sigmatch_u4309)(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_u5351(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_u6736((*arg_p2));
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		T9_ = NIM_NIL;
		T9_ = exactReplica__ast_u6243((*copiedNode_1).typField);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T9_); goto LA8_;}
		eqsink___ast_u3387(&(*copiedNode_1).typField, T9_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		eqcopy___ast_u3255(&(*(*copiedNode_1).typField).n, (*arg_p2));
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		eqsink___ast_u3261(&(*arg_p2), copiedNode_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		eqwasMoved___ast_u3249(&copiedNode_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		{
			LA8_:;
		}
		{
			oldNimErrFin8_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(copiedNode_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin8_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA6_: ;
	T12_ = 0;
	result = typeRel__sigmatch_u253(m_p0, f_p1, (*(*arg_p2)).typField, T12_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimIncRef)(void* p_p0) {
	NI T1_;
	NI T2_;
	T1_ = (NI)0;
	T1_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
	T2_ = (NI)0;
	T2_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
	(*((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T1_))).rc = pluspercent___system_u785((*((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T2_))).rc, ((NI)16));
}
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___sigmatch_u165)(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).iteratorPreference = (*src_p1).iteratorPreference;
	(*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_u3288((&(*(*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_u3469((&(*(*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_u3270((&(*(*dest_p0).call)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).call, ((NI)8));
	}
LA35_: ;
	(*dest_p0).call = (*src_p1).call;
	(*dest_p0).bindings.topLayer.counter = (*src_p1).bindings.topLayer.counter;
	eqcopy___layeredtable_u171((&(*dest_p0).bindings.topLayer.data), (*src_p1).bindings.topLayer.data);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		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_u233((&(*(*dest_p0).bindings.nextLayer)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).bindings.nextLayer, ((NI)8));
	}
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_u3314((&(*dest_p0).inferredTypes), (*src_p1).inferredTypes);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___system_u5512((&(*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_u3469((&(*(*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_u477((&(*dest_p0).newlyTypedOperands), (*src_p1).newlyTypedOperands);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, checkGeneric__sigmatch_u463)(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_u4218(&c_1, (*a_p0).c, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&aa_1, (*a_p0).callee);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&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_u3381(&aai_1, (*aa_1).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					eqcopy___ast_u3381(&bbi_1, (*bb_1).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					newCandidate__sigmatch_u456(c_1, bbi_1, (&ma_1));
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					tra_1 = typeRel__sigmatch_u253((&ma_1), bbi_1, aai_1, 17);
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					newCandidate__sigmatch_u456(c_1, aai_1, (&mb_1));
					if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					trb_1 = typeRel__sigmatch_u253((&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_u162((&mb_1));
							if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
							eqdestroy___sigmatch_u162((&ma_1));
							if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
							eqdestroy___ast_u3378(bbi_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(aai_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(bb_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(aa_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___semdata_u4215(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_u162((&mb_1));
							if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
							eqdestroy___sigmatch_u162((&ma_1));
							if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
							eqdestroy___ast_u3378(bbi_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(aai_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3378(bb_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(aa_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___semdata_u4215(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_u162((&mb_1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
						eqdestroy___sigmatch_u162((&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_u3378(bbi_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(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_u3378(bb_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(aa_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___semdata_u4215(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_u493)(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_u3381(&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_u5338(t_2);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T5_); goto LA1_;}
				eqsink___ast_u3387(&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_u5331(t_2);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T7_); goto LA1_;}
				eqsink___ast_u3387(&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_u5369(t_2);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T10_); goto LA1_;}
				eqsink___ast_u3387(&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_u5338(t_2);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T12_); goto LA1_;}
				eqsink___ast_u3387(&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_u3381(&branch_1, (*t_2).sons.p->data[i_1]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								branchSum_1 = sumGeneric__sigmatch_u493(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_u3378(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_u5331(t_2);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T24_); goto LA1_;}
				eqsink___ast_u3387(&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_u5502(t_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if (!(((NI)0) < T32_)) goto LA33_;
					T35_ = NIM_NIL;
					T35_ = skipModifier__ast_u5338(t_2);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T35_); goto LA1_;}
					eqsink___ast_u3387(&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_u3381(&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_u493(a_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									result += T48_;
								}
LA46_: ;
								i_4 += ((NI)1);
							} LA43: ;
						}
					}
					eqdestroy___ast_u3378(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_u5354(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_u5354(t_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
					T55_ = (NI)0;
					T55_ = sumGeneric__sigmatch_u493(colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
					result += T55_;
					eqdestroy___ast_u3378(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_u3381(&a_2, (*t_2).sons.p->data[i_5]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
								T61_ = (NI)0;
								T61_ = sumGeneric__sigmatch_u493(a_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
								result += T61_;
								i_6 += ((NI)1);
							} LA60: ;
						}
					}
					eqdestroy___ast_u3378(a_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
				}
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				goto LA2;
				{
					LA50_:;
				}
				{
					oldNimErrFin50_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(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_u3423(t_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if (!T67_) goto LA68_;
					colontmpD__3 = NIM_NIL;
					colontmpD__4 = NIM_NIL;
					colontmpD__3 = reduceToBase__types_u4300(t_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					colontmpD__4 = conceptBody__concepts_u192(colontmpD__3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					T70_ = (NI)0;
					T70_ = len__ast_u3190(colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					result += T70_;
					eqdestroy___ast_u3252(colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA68_: ;
				goto LA2;
			}
			break;
			}
		}
	} LA2: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(t_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, complexDisambiguation__sigmatch_u572)(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_u3381(&ai_1, (*a_p0).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
					eqcopy___ast_u3381(&bi_1, (*b_p1).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
					x_1 = sumGeneric__sigmatch_u493(ai_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
					y_1 = sumGeneric__sigmatch_u493(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_u3378(bi_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(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_u3378(bi_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(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_u3378(bi_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(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_u589)(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).iteratorPreference - (*b_p1).iteratorPreference);
	{
		if (!!((result == ((NI)0)))) goto LA7_;
		goto BeforeRet_;
	}
LA7_: ;
	result = (NI)((*a_p0).genericMatches - (*b_p1).genericMatches);
	{
		if (!!((result == ((NI)0)))) goto LA11_;
		goto BeforeRet_;
	}
LA11_: ;
	result = (NI)((*a_p0).subtypeMatches - (*b_p1).subtypeMatches);
	{
		if (!!((result == ((NI)0)))) goto LA15_;
		goto BeforeRet_;
	}
LA15_: ;
	result = (NI)((*a_p0).intConvMatches - (*b_p1).intConvMatches);
	{
		if (!!((result == ((NI)0)))) goto LA19_;
		goto BeforeRet_;
	}
LA19_: ;
	result = (NI)((*a_p0).convMatches - (*b_p1).convMatches);
	{
		if (!!((result == ((NI)0)))) goto LA23_;
		goto BeforeRet_;
	}
LA23_: ;
	result = cmpInheritancePenalty__sigmatch_u583((*a_p0).inheritancePenalty, (*b_p1).inheritancePenalty);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((result == ((NI)0)))) goto LA27_;
		goto BeforeRet_;
	}
LA27_: ;
	{
		if (!isFormal_p2) goto LA31_;
		result = checkGeneric__sigmatch_u463(a_p0, b_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((result == ((NI)0)))) goto LA35_;
			goto BeforeRet_;
		}
LA35_: ;
		result = complexDisambiguation__sigmatch_u572((*a_p0).callee, (*b_p1).callee);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA31_: ;
	{
		if (!!((result == ((NI)0)))) goto LA39_;
		goto BeforeRet_;
	}
LA39_: ;
	result = (NI)((*a_p0).calleeScope - (*b_p1).calleeScope);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, warnAboutDeprecated__sigmatch_u6651)(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_u6254(s_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		pragmaNode_1 = extractPragma__ast_u4008(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u4574(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA3_;
LA5_: ;
	{
		pragmaNode_1 = extractPragma__ast_u4008(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_u6254(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_86);
appendString((&T15_), (*(*colontmpD__3).name).s);
appendString((&T15_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_88);
appendString((&T15_), (*(*s_p2).name).s);
appendString((&T15_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_89);
		name_1 = T15_;
		eqdestroy___ast_u4574(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA9_;
LA13_: ;
	{
		eqcopy___system_u2694((&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_u3197(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_u3255(&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_u3197(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_91);
appendString((&T37_), name_1);
appendString((&T37_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_93);
							colontmpD__4 = T37_;
							liMessage__msgs_u1227(conf_p0, info_p1, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)24), colontmpD__4, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_94), NIM_FALSE, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto LA36_;
							eqdestroy___system_u2691(colontmpD__4);
							eqdestroy___ast_u3252(it_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___system_u2691(colontmpD_);
							eqdestroy___system_u2691(name_1);
							eqdestroy___ast_u3252(pragmaNode_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
							{
								LA36_:;
							}
							{
								eqdestroy___system_u2691(colontmpD__4);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
						}
LA34_: ;
						i_2 += ((NI)1);
					} LA25: ;
				}
			}
			{
				LA22_:;
			}
			{
				oldNimErrFin22_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(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_96);
	colontmpD_ = T42_;
	liMessage__msgs_u1227(conf_p0, info_p1, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)24), colontmpD_, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_97), NIM_FALSE, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___system_u2691(colontmpD_);
		eqdestroy___system_u2691(name_1);
		eqdestroy___ast_u3252(pragmaNode_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NimStringV2, toFileLineCol__msgs_u707)(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_101;
	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_102);
		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_103);
			addInt__stdZprivateZdigitsutils_u204((&result), (NI)(((NI) (info_p1.col)) + ((NI)1)));
		}
LA8_: ;
		prepareAdd((&result), 1);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_104);
	}
LA4_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(colontmpD_);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, userError__sigmatch_u6688)(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__dyW7vpmfeTYw8kX3EXuaJA 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_u4008(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_u3197(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_u3255(&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__dyW7vpmfeTYw8kX3EXuaJA 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_u3197(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_100);
							colontmpD__3 = T23_;
							T22_[0] = colontmpD__3;
							T22_[1] = (*(*s_p2).name).s;
							colontmpD__4 = toFileLineCol__msgs_u707(conf_p0, (*(*s_p2).ast).info);
							if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
							T22_[2] = colontmpD__4;
							colontmpD__5 = nsuFormatOpenArray(TM__EV5hHJmjIY9cla9b9be7fSVJQ_99, T22_, 3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
							liMessage__msgs_u1227(conf_p0, info_p1, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__5, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_105), NIM_FALSE, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
							eqdestroy___system_u2691(colontmpD__5);
							eqdestroy___system_u2691(colontmpD__4);
							eqdestroy___system_u2691(colontmpD__3);
							eqdestroy___ast_u3252(it_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___system_u2691(colontmpD__2);
							eqdestroy___system_u2691(colontmpD_);
							eqdestroy___ast_u3252(pragmaNode_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
							{
								LA21_:;
							}
							{
								eqdestroy___system_u2691(colontmpD__5);
								eqdestroy___system_u2691(colontmpD__4);
								eqdestroy___system_u2691(colontmpD__3);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
						}
LA19_: ;
						i_2 += ((NI)1);
					} LA10: ;
				}
			}
			{
				LA7_:;
			}
			{
				oldNimErrFin7_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(it_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin7_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
	}
LA4_: ;
	T28_[0] = TM__EV5hHJmjIY9cla9b9be7fSVJQ_107;
	T28_[1] = (*(*s_p2).name).s;
	colontmpD_ = toFileLineCol__msgs_u707(conf_p0, (*(*s_p2).ast).info);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T28_[2] = colontmpD_;
	colontmpD__2 = nsuFormatOpenArray(TM__EV5hHJmjIY9cla9b9be7fSVJQ_106, T28_, 3);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	liMessage__msgs_u1227(conf_p0, info_p1, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__2, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_108), NIM_FALSE, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___system_u2691(colontmpD__2);
		eqdestroy___system_u2691(colontmpD_);
		eqdestroy___ast_u3252(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_u100)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p2, NIM_BOOL checkStyle_p3, NIM_BOOL isGenericInstance_p4) {
NIM_BOOL oldNimErrFin12_;
NIM_BOOL oldNimErrFin5_;
NIM_BOOL oldNimErrFin48_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_1;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
		if (!!(isGenericInstance_p4)) goto LA3_;
		conf_1 = NIM_NIL;
		colontmpD_ = NIM_NIL;
		eqcopy___options_u2138(&conf_1, (*(*c_p0).graph).config);
		(*s_p2).flags |= ((NU64)1)<<(((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)0))) & 63);
		{
			NIM_BOOL T8_;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__2;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__3;
			T8_ = (NIM_BOOL)0;
			T8_ = ((*s_p2).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)20));
			if (!(T8_)) goto LA9_;
			colontmpD_ = owner__ast_u6254(s_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
			T8_ = !((colontmpD_ == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA9_: ;
			if (!T8_) goto LA10_;
			colontmpD__2 = NIM_NIL;
			colontmpD__3 = NIM_NIL;
			colontmpD__2 = owner__ast_u6254(s_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
			(*colontmpD__2).flags |= ((NU64)1)<<(((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)0))) & 63);
			{
				colontmpD__3 = owner__ast_u6254(s_p2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
				if (!(((*colontmpD__3).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)22)))&63U)))!=0)) goto LA15_;
				warnAboutDeprecated__sigmatch_u6651(conf_1, info_p1, s_p2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
			}
LA15_: ;
			{
				LA12_:;
			}
			{
				oldNimErrFin12_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u4574(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				eqdestroy___ast_u4574(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				*nimErr_ = oldNimErrFin12_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		}
LA10_: ;
		{
			tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg T21_;
			T21_ = 0;
			if (!!(((20971520 & (*s_p2).flags) == T21_))) goto LA22_;
			{
				if (!(((*s_p2).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)22)))&63U)))!=0)) goto LA26_;
				{
					NIM_BOOL T30_;
					T30_ = (NIM_BOOL)0;
					T30_ = ((*c_p0).lastTLineInfo.line == info_p1.line);
					if (!(T30_)) goto LA31_;
					T30_ = ((*c_p0).lastTLineInfo.col == info_p1.col);
LA31_: ;
					if (!!(T30_)) goto LA32_;
					warnAboutDeprecated__sigmatch_u6651(conf_1, info_p1, s_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
					(*c_p0).lastTLineInfo = info_p1;
				}
LA32_: ;
			}
LA26_: ;
			{
				if (!(((*s_p2).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)24)))&63U)))!=0)) goto LA36_;
				userError__sigmatch_u6688(conf_1, info_p1, s_p2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
			}
LA36_: ;
		}
LA22_: ;
		{
			LA5_:;
		}
		{
			oldNimErrFin5_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u4574(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___options_u2135(conf_1);
			*nimErr_ = oldNimErrFin5_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	{
		if (!!(isGenericInstance_p4)) goto LA42_;
		{
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__4;
			if (!checkStyle_p3) goto LA46_;
			colontmpD__4 = NIM_NIL;
			{
				NIM_BOOL T51_;
				NIM_BOOL T52_;
				NIM_BOOL T53_;
				NIM_BOOL T54_;
				NIM_BOOL T55_;
				tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A T56_;
				T51_ = (NIM_BOOL)0;
				T52_ = (NIM_BOOL)0;
				T53_ = (NIM_BOOL)0;
				T54_ = (NIM_BOOL)0;
				T55_ = (NIM_BOOL)0;
				T56_ = 0;
				T55_ = !(((229376 & (*(*(*c_p0).graph).config).globalOptions) == T56_));
				if (!(T55_)) goto LA57_;
				T55_ = (((*(*(*c_p0).graph).config).notes[(NU)((((tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw)107) - 20))>>3] &(1U<<((NU)((((tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw)107) - 20))&7U)))!=0);
LA57_: ;
				T54_ = T55_;
				if (!(T54_)) goto LA58_;
				colontmpD__4 = getModule__modulegraphs_u14809((*c_p0).graph, info_p1.fileIndex);
				if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
				T54_ = belongsToProjectPackageMaybeNil__packages_u85((*(*c_p0).graph).config, colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
LA58_: ;
				T53_ = T54_;
				if (!(T53_)) goto LA59_;
				T53_ = !(((*s_p2).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)5)));
LA59_: ;
				T52_ = T53_;
				if (!(T52_)) goto LA60_;
				T52_ = (((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)));
LA60_: ;
				T51_ = T52_;
				if (!(T51_)) goto LA61_;
				T51_ = !((((*s_p2).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)60)))&63U)))!=0));
LA61_: ;
				if (!T51_) goto LA62_;
				styleCheckUseImpl__linter_u198((*(*c_p0).graph).config, info_p1, s_p2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
			}
LA62_: ;
			{
				LA48_:;
			}
			{
				oldNimErrFin48_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u4574(colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin48_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA46_: ;
		markOwnerModuleAsUsed__sigmatch_u106(c_p0, s_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA42_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, paramTypesMatch__sigmatch_u4323)(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_u3920(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_u3255(&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_u3190(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_u2555((*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_u3261(&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_u4218(&c_1, (*m_p0).c, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			nimZeroMem((void*)(&T43_), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
			newCandidate__sigmatch_u456(c_1, (*m_p0).callee, (&T43_));
			x_1 = T43_;
			if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			nimZeroMem((void*)(&T44_), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
			newCandidate__sigmatch_u456(c_1, (*m_p0).callee, (&T44_));
			y_1 = T44_;
			if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			nimZeroMem((void*)(&T45_), sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
			newCandidate__sigmatch_u456(c_1, (*m_p0).callee, (&T45_));
			z_1 = T45_;
			if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			eqcopy___ast_u4577(&x_1.calleeSym, (*m_p0).calleeSym);
			if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			eqcopy___ast_u4577(&y_1.calleeSym, (*m_p0).calleeSym);
			if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			eqcopy___ast_u4577(&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_u3190(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_u460((&z_1), (&(*m_p0)));
								if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
								eqcopy___ast_u3381(&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_u6254((*(*arg_p3)._kind_6.sons.p->data[i_3])._kind_4.sym);
									if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
									T60_ = NIM_NIL;
									T60_ = newType__ast_u5900(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8), (*c_1).Sup.idgen, colontmpD_, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T60_); goto LA42_;}
									eqsink___ast_u3387(&z_1.callee, T60_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
									addSonSkipIntLit__magicsys_u135(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_u4574(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_u4577(&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_u2555((*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_u4309((&z_1), f_p1, &(*arg_p3)._kind_6.sons.p->data[i_3]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
								incMatches__sigmatch_u3884((&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_u165((&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_u589((&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_u165((&x_1), (&z_1));
											if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										}
										goto LA72_;
LA74_: ;
										{
											if (!(cmp_1 == ((NI)0))) goto LA77_;
											eqcopy___sigmatch_u165((&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_u3261(&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_u589((&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_u1598((*(*(*m_p0).c).graph).config, (*arg_p3).info, TM__EV5hHJmjIY9cla9b9be7fSVJQ_83, (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_84));
					if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
				}
LA91_: ;
				eqsink___ast_u3261(&result, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
			}
			goto LA79_;
LA87_: ;
LA79_: ;
			{
				LA42_:;
			}
			{
				oldNimErrFin42_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___sigmatch_u162((&z_1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___sigmatch_u162((&y_1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___sigmatch_u162((&x_1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___semdata_u4215(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_u100((*m_p0).c, (*arg_p3).info, (*(*arg_p3)._kind_6.sons.p->data[best_1])._kind_4.sym, NIM_TRUE, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T101_ = NIM_NIL;
			T101_ = paramTypesMatchAux__sigmatch_u3920(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_u3252(T101_); goto BeforeRet_;}
			eqsink___ast_u3261(&result, T101_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA99_: ;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, find__sigmatch_u5289)(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_u5284)(NI* a_p0, NI a_p0Len_0, NI item_p1) {
	NIM_BOOL result;
	NI T1_;
{	T1_ = (NI)0;
	T1_ = find__sigmatch_u5289(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_u5224)(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_u456(c_p0, f_p1, (&m_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	res_1 = paramTypesMatch__sigmatch_u4323((&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_u5284(TM__EV5hHJmjIY9cla9b9be7fSVJQ_109, 2, m_1.intConvMatches);
LA10_: ;
		colontmpD__2 = T7_;
		result = colontmpD__2;
	}
LA2_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3252(res_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u162((&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_u6387)(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_u5616((*s_p1).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T5_ = (((NI)0) < T7_);
LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA8_;
		colontmpD_ = firstParamType__ast_u5363((*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_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				eqdestroy___ast_u3378(exp_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(m_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA21_: ;
			colontmpD__3 = firstParamType__ast_u5363((*s_p1).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
			exp_1 = skipTypes__ast_u5379(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_u254(exp_1);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T27_); goto LA18_;}
				eqsink___ast_u3387(&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_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				eqdestroy___ast_u3378(exp_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u4574(m_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA30_: ;
			{
				LA18_:;
			}
			{
				oldNimErrFin18_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				eqdestroy___ast_u3378(exp_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				*nimErr_ = oldNimErrFin18_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		}
LA16_: ;
		colontmpD__2 = firstParamType__ast_u5363((*s_p1).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		result = argtypeMatches__sigmatch_u5224(c_p0, colontmpD__2, firstArg_p2, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		{
			LA11_:;
		}
		{
			oldNimErrFin11_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u4574(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_u3378(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_u6422)(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_u805(((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_u77(&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_u77(&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_u3137((&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_u4583(&item_2, s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									eqwasMoved___ast_u4571(&s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									nimZeroMem((void*)(&T17_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
									blitTmp_1 = item_2;
									eqwasMoved___ast_u4571(&item_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									T17_.Field0 = blitTmp_1;
									T17_.Field1 = scopeN_2;
									T17_.Field2 = isLocal_2;
									eqsink___lookups_u775((&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_u989((&seen_1), T20_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
										if (!!(T21_)) goto LA22_;
										it_2 = NIM_NIL;
										eqsink___ast_u4583(&item_1, res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
										eqwasMoved___ast_u4571(&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_u4571(&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_u6158(it_2, f_p2, (&pm_1));
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
											if (!(T27_)) goto LA28_;
											T27_ = typeFits__sigmatch_u6387(c_p0, it_2, typ_p3);
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
LA28_: ;
											if (!T27_) goto LA29_;
											T31_ = (NI)0;
											T31_ = getQuality__sigmatch_u6235(it_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
											T32_ = NIM_NIL;
											T32_ = symToSuggest__sigmatch_u5557((*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_u11905(T32_); goto LA24_;}
											add__sigmatch_u6266((&(*outputs_p4)), T32_);
										}
LA29_: ;
										{
											LA24_:;
										}
										{
											oldNimErrFin24_ = *nimErr_; *nimErr_ = NIM_FALSE;
											eqdestroy___ast_u4574(it_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
											*nimErr_ = oldNimErrFin24_;
										}
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									}
LA22_: ;
									T35_ = NIM_NIL;
									T35_ = nextIter__astalgo_u3121((&it_1), (*scope_1).symbols);
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T35_); goto LA14_;}
									eqsink___ast_u4583(&s_1, T35_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
								} LA16: ;
							}
							{
								LA14_:;
							}
							{
								oldNimErrFin14_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4574(s_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								eqdestroy___ast_u4574(item_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								*nimErr_ = oldNimErrFin14_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						}
						eqcopy___lookups_u77(&current_1, (*current_1).parent);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					} LA8: ;
				}
				{
					LA6_:;
				}
				{
					oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___lookups_u74(current_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					eqdestroy___lookups_u74(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_u3008((*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_u21632((&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_u4583(&s_2, r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
										eqwasMoved___ast_u4571(&r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
										nimZeroMem((void*)(&T56_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
										blitTmp_2 = s_2;
										eqwasMoved___ast_u4571(&s_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
										T56_.Field0 = blitTmp_2;
										T56_.Field1 = scopeN_2;
										T56_.Field2 = isLocal_2;
										eqsink___lookups_u775((&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_u989((&seen_1), T59_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
											if (!!(T60_)) goto LA61_;
											it_3 = NIM_NIL;
											eqsink___ast_u4583(&item_1, res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA63_;
											eqwasMoved___ast_u4571(&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_u4571(&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_u6158(it_3, f_p2, (&pm_2));
												if (NIM_UNLIKELY(*nimErr_)) goto LA63_;
												if (!(T66_)) goto LA67_;
												T66_ = typeFits__sigmatch_u6387(c_p0, it_3, typ_p3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA63_;
LA67_: ;
												if (!T66_) goto LA68_;
												T70_ = (NI)0;
												T70_ = getQuality__sigmatch_u6235(it_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA63_;
												T71_ = NIM_NIL;
												T71_ = symToSuggest__sigmatch_u5557((*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_u11905(T71_); goto LA63_;}
												add__sigmatch_u6266((&(*outputs_p4)), T71_);
											}
LA68_: ;
											{
												LA63_:;
											}
											{
												oldNimErrFin63_ = *nimErr_; *nimErr_ = NIM_FALSE;
												eqdestroy___ast_u4574(it_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
												*nimErr_ = oldNimErrFin63_;
											}
											if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
										}
LA61_: ;
										T74_ = NIM_NIL;
										T74_ = nextRodIter__icZic_u21968((&rodIt_1), (&(*(*c_p0).graph).packed_0));
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T74_); goto LA51_;}
										eqsink___ast_u4583(&r_1, T74_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
									} LA55: ;
								}
								{
									LA51_:;
								}
								{
									oldNimErrFin51_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4574(r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA45_;
									eqdestroy___modulegraphs_u3288((&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_u4851((&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_u4577(&s_2, (*s_3));
												if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
												nimZeroMem((void*)(&T91_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
												blitTmp_3 = s_2;
												eqwasMoved___ast_u4571(&s_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
												T91_.Field0 = blitTmp_3;
												T91_.Field1 = scopeN_2;
												T91_.Field2 = isLocal_2;
												eqsink___lookups_u775((&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_u989((&seen_1), T94_);
													if (NIM_UNLIKELY(*nimErr_)) goto LA79_;
													if (!!(T95_)) goto LA96_;
													it_4 = NIM_NIL;
													eqsink___ast_u4583(&item_1, res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
													eqwasMoved___ast_u4571(&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_u4571(&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_u6158(it_4, f_p2, (&pm_3));
														if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
														if (!(T101_)) goto LA102_;
														T101_ = typeFits__sigmatch_u6387(c_p0, it_4, typ_p3);
														if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
LA102_: ;
														if (!T101_) goto LA103_;
														T105_ = (NI)0;
														T105_ = getQuality__sigmatch_u6235(it_4);
														if (NIM_UNLIKELY(*nimErr_)) goto LA98_;
														T106_ = NIM_NIL;
														T106_ = symToSuggest__sigmatch_u5557((*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_u11905(T106_); goto LA98_;}
														add__sigmatch_u6266((&(*outputs_p4)), T106_);
													}
LA103_: ;
													{
														LA98_:;
													}
													{
														oldNimErrFin98_ = *nimErr_; *nimErr_ = NIM_FALSE;
														eqdestroy___ast_u4574(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_u4848(colontmp_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA45_;
										*nimErr_ = oldNimErrFin79_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA45_;
								}
							}
LA46_: ;
							{
								LA45_:;
							}
							{
								oldNimErrFin45_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4574(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_u766(res_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				*nimErr_ = oldNimErrFin4_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		}
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___lookups_u952(seen_1);
			eqdestroy___ast_u4574(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_u6466)(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_u3381(&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_u3137((&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_u4583(&it_1, s_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
							eqwasMoved___ast_u4571(&s_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
							{
								NIM_BOOL T22_;
								NI T25_;
								tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T26_;
								T22_ = (NIM_BOOL)0;
								T22_ = filterSym__sigmatch_u6127(it_1, field_p2, (&pm_1));
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								if (!T22_) goto LA23_;
								T25_ = (NI)0;
								T25_ = getQuality__sigmatch_u6235(it_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								T26_ = NIM_NIL;
								T26_ = symToSuggest__sigmatch_u5557((*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_u11905(T26_); goto LA17_;}
								add__sigmatch_u6266((&(*outputs_p3)), T26_);
							}
LA23_: ;
							T27_ = NIM_NIL;
							T27_ = nextIter__astalgo_u3121((&it_2), (*(*c_p0).topLevelScope).symbols);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T27_); goto LA17_;}
							eqsink___ast_u4583(&s_1, T27_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						} LA19: ;
					}
					{
						LA17_:;
					}
					{
						oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u4574(s_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u4574(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_u4577(&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_u3008((*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_u21632((&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_u4583(&it_3, r_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
								eqwasMoved___ast_u4571(&r_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
								{
									NIM_BOOL T45_;
									NI T48_;
									tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T49_;
									T45_ = (NIM_BOOL)0;
									T45_ = filterSym__sigmatch_u6127(it_3, field_p2, (&pm_1));
									if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
									if (!T45_) goto LA46_;
									T48_ = (NI)0;
									T48_ = getQuality__sigmatch_u6235(it_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
									T49_ = NIM_NIL;
									T49_ = symToSuggest__sigmatch_u5557((*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_u11905(T49_); goto LA38_;}
									add__sigmatch_u6266((&(*outputs_p3)), T49_);
								}
LA46_: ;
								T50_ = NIM_NIL;
								T50_ = nextRodIter__icZic_u21968((&rodIt_1), (&(*(*c_p0).graph).packed_0));
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T50_); goto LA38_;}
								eqsink___ast_u4583(&r_1, T50_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
							} LA42: ;
						}
						{
							LA38_:;
						}
						{
							oldNimErrFin38_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u4574(r_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
							eqdestroy___modulegraphs_u3288((&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_u4851((&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_u4577(&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_u6127(it_3, field_p2, (&pm_1));
											if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
											if (!T69_) goto LA70_;
											T72_ = (NI)0;
											T72_ = getQuality__sigmatch_u6235(it_3);
											if (NIM_UNLIKELY(*nimErr_)) goto LA55_;
											T73_ = NIM_NIL;
											T73_ = symToSuggest__sigmatch_u5557((*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_u11905(T73_); goto LA55_;}
											add__sigmatch_u6266((&(*outputs_p3)), T73_);
										}
LA70_: ;
									}
LA65_: ;
									i_1 += ((NI)1);
								} LA62: ;
							}
							{
								LA55_:;
							}
							{
								oldNimErrFin55_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4848(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_u4574(colontmp_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u4574(it_3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin32_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
			}
LA12_: ;
		}
		goto LA6_;
LA10_: ;
		{
			suggestEverything__sigmatch_u6449(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_u3375(&typ_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
		T81_ = NIM_NIL;
		T81_ = skipTypes__ast_u5379(orig_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_15);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T81_); goto LA80_;}
		eqsink___ast_u3387(&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_u3381(&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_u6289(c_p0, (*t_1).n, field_p2, (*n_p1).info, outputs_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA90_;
					T93_ = NIM_NIL;
					T93_ = baseClass__ast_u5348(t_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T93_); goto LA90_;}
					eqsink___ast_u3387(&t_1, T93_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA90_;
				} LA92: ;
			}
			{
				LA90_:;
			}
			{
				oldNimErrFin90_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(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_u3381(&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_u6304(c_p0, (*t_2).n, field_p2, (*n_p1).info, outputs_p3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
					{
						colontmpD_ = baseClass__ast_u5348(t_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
						if (!(colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA105_;
						eqdestroy___ast_u3378(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
						goto LA100;
					}
LA105_: ;
					colontmpD__2 = baseClass__ast_u5348(t_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
					T107_ = NIM_NIL;
					T107_ = skipTypes__ast_u5379(colontmpD__2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T107_); goto LA102_;}
					eqsink___ast_u3387(&t_2, T107_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
					{
						LA102_:;
					}
					{
						oldNimErrFin102_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
						*nimErr_ = oldNimErrFin102_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA99_;
				}
			} LA100: ;
			{
				LA99_:;
			}
			{
				oldNimErrFin99_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(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_u3197((*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_u3255(&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_u4577(&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_u6127(s_3, field_p2, (&pm_2));
									if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
									if (!T129_) goto LA130_;
									T132_ = (NI)0;
									T132_ = getQuality__sigmatch_u6235(s_3);
									if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
									T133_ = NIM_NIL;
									T133_ = symToSuggest__sigmatch_u5557((*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_u11905(T133_); goto LA126_;}
									add__sigmatch_u6266((&(*outputs_p3)), T133_);
								}
LA130_: ;
								{
									LA126_:;
								}
								{
									oldNimErrFin126_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4574(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_u3252(node_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
					*nimErr_ = oldNimErrFin118_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
			}
		}
		goto LA82_;
LA115_: ;
LA82_: ;
		suggestOperations__sigmatch_u6422(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_u6422(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_u3378(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_u3378(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_u7396)(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_u7390(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_u3190(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_u3255(&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_u6466(c_p0, obj_1, prefix_1, outputs_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
		{
			LA5_:;
		}
		{
			oldNimErrFin5_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(prefix_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3252(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_u3255(&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_u805(((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_u77(&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_u77(&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_u3137((&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_u4583(&item_2, s_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										eqwasMoved___ast_u4571(&s_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										nimZeroMem((void*)(&T45_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
										blitTmp_1 = item_2;
										eqwasMoved___ast_u4571(&item_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										T45_.Field0 = blitTmp_1;
										T45_.Field1 = scopeN_2;
										T45_.Field2 = isLocal_2;
										eqsink___lookups_u775((&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_u989((&seen_1), T48_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
											if (!!(T49_)) goto LA50_;
											it_2 = NIM_NIL;
											eqsink___ast_u4583(&item_1, res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
											eqwasMoved___ast_u4571(&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_u4571(&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_u6127(it_2, prefix_2, (&pm_1));
												if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
												if (!T55_) goto LA56_;
												T58_ = (NI)0;
												T58_ = getQuality__sigmatch_u6235(it_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
												T59_ = NIM_NIL;
												T59_ = symToSuggest__sigmatch_u5557((*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_u11905(T59_); goto LA52_;}
												add__sigmatch_u6266((&(*outputs_p2)), T59_);
											}
LA56_: ;
											{
												LA52_:;
											}
											{
												oldNimErrFin52_ = *nimErr_; *nimErr_ = NIM_FALSE;
												eqdestroy___ast_u4574(it_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
												*nimErr_ = oldNimErrFin52_;
											}
											if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
										}
LA50_: ;
										T62_ = NIM_NIL;
										T62_ = nextIter__astalgo_u3121((&it_1), (*scope_1).symbols);
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T62_); goto LA42_;}
										eqsink___ast_u4583(&s_1, T62_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
									} LA44: ;
								}
								{
									LA42_:;
								}
								{
									oldNimErrFin42_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4574(s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
									eqdestroy___ast_u4574(item_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
									*nimErr_ = oldNimErrFin42_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
							}
							eqcopy___lookups_u77(&current_1, (*current_1).parent);
							if (NIM_UNLIKELY(*nimErr_)) goto LA34_;
						} LA36: ;
					}
					{
						LA34_:;
					}
					{
						oldNimErrFin34_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___lookups_u74(current_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
						eqdestroy___lookups_u74(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_u3008((*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_u21632((&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_u4583(&s_2, r_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
											eqwasMoved___ast_u4571(&r_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
											nimZeroMem((void*)(&T83_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
											blitTmp_2 = s_2;
											eqwasMoved___ast_u4571(&s_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
											T83_.Field0 = blitTmp_2;
											T83_.Field1 = scopeN_2;
											T83_.Field2 = isLocal_2;
											eqsink___lookups_u775((&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_u989((&seen_1), T86_);
												if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
												if (!!(T87_)) goto LA88_;
												it_3 = NIM_NIL;
												eqsink___ast_u4583(&item_1, res_1.Field0);
												if (NIM_UNLIKELY(*nimErr_)) goto LA90_;
												eqwasMoved___ast_u4571(&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_u4571(&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_u6127(it_3, prefix_2, (&pm_2));
													if (NIM_UNLIKELY(*nimErr_)) goto LA90_;
													if (!T93_) goto LA94_;
													T96_ = (NI)0;
													T96_ = getQuality__sigmatch_u6235(it_3);
													if (NIM_UNLIKELY(*nimErr_)) goto LA90_;
													T97_ = NIM_NIL;
													T97_ = symToSuggest__sigmatch_u5557((*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_u11905(T97_); goto LA90_;}
													add__sigmatch_u6266((&(*outputs_p2)), T97_);
												}
LA94_: ;
												{
													LA90_:;
												}
												{
													oldNimErrFin90_ = *nimErr_; *nimErr_ = NIM_FALSE;
													eqdestroy___ast_u4574(it_3);
													if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
													*nimErr_ = oldNimErrFin90_;
												}
												if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
											}
LA88_: ;
											T100_ = NIM_NIL;
											T100_ = nextRodIter__icZic_u21968((&rodIt_1), (&(*(*c_p0).graph).packed_0));
											if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T100_); goto LA78_;}
											eqsink___ast_u4583(&r_1, T100_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA78_;
										} LA82: ;
									}
									{
										LA78_:;
									}
									{
										oldNimErrFin78_ = *nimErr_; *nimErr_ = NIM_FALSE;
										eqdestroy___ast_u4574(r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA72_;
										eqdestroy___modulegraphs_u3288((&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_u4851((&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_u4577(&s_2, (*s_3));
													if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
													nimZeroMem((void*)(&T117_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
													blitTmp_3 = s_2;
													eqwasMoved___ast_u4571(&s_2);
													if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
													T117_.Field0 = blitTmp_3;
													T117_.Field1 = scopeN_2;
													T117_.Field2 = isLocal_2;
													eqsink___lookups_u775((&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_u989((&seen_1), T120_);
														if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
														if (!!(T121_)) goto LA122_;
														it_4 = NIM_NIL;
														eqsink___ast_u4583(&item_1, res_1.Field0);
														if (NIM_UNLIKELY(*nimErr_)) goto LA124_;
														eqwasMoved___ast_u4571(&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_u4571(&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_u6127(it_4, prefix_2, (&pm_3));
															if (NIM_UNLIKELY(*nimErr_)) goto LA124_;
															if (!T127_) goto LA128_;
															T130_ = (NI)0;
															T130_ = getQuality__sigmatch_u6235(it_4);
															if (NIM_UNLIKELY(*nimErr_)) goto LA124_;
															T131_ = NIM_NIL;
															T131_ = symToSuggest__sigmatch_u5557((*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_u11905(T131_); goto LA124_;}
															add__sigmatch_u6266((&(*outputs_p2)), T131_);
														}
LA128_: ;
														{
															LA124_:;
														}
														{
															oldNimErrFin124_ = *nimErr_; *nimErr_ = NIM_FALSE;
															eqdestroy___ast_u4574(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_u4848(colontmp_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA72_;
											*nimErr_ = oldNimErrFin105_;
										}
										if (NIM_UNLIKELY(*nimErr_)) goto LA72_;
									}
								}
LA73_: ;
								{
									LA72_:;
								}
								{
									oldNimErrFin72_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4574(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_u766(res_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
					*nimErr_ = oldNimErrFin32_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
			}
			{
				LA30_:;
			}
			{
				oldNimErrFin30_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___lookups_u952(seen_1);
				eqdestroy___ast_u4574(item_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
				*nimErr_ = oldNimErrFin30_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
		}
		{
			LA22_:;
		}
		{
			oldNimErrFin22_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(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_u3255(&prefix_3, n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA145_;
		}
LA147_: ;
		suggestEverything__sigmatch_u6449(c_p0, n_p1, prefix_3, outputs_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA145_;
		{
			LA145_:;
		}
		{
			oldNimErrFin145_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(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_u6320)(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_u5654)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = (((NI)0) < T1_);
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericConstraint__ast_u5678)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*t_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, matchGenericParam__sigmatch_u258)(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 T42_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg_1 = NIM_NIL;
	formalBase_1 = NIM_NIL;
	eqcopy___ast_u3381(&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_u711((&(*m_p0).bindings), (*arg_1).itemId);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T10_); goto LA1_;}
				eqsink___ast_u3387(&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_u3481(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA14_: ;
			if (!T13_) goto LA15_;
			(*m_p0).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
			eqdestroy___ast_u3378(formalBase_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(arg_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA15_: ;
	}
LA4_: ;
	eqcopy___ast_u3381(&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_u5654(formalBase_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA20_: ;
			if (!T19_) goto LA18;
			T21_ = NIM_NIL;
			T21_ = genericConstraint__ast_u5678(formalBase_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T21_); goto LA1_;}
			eqsink___ast_u3387(&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_u5379(formalBase_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_110);
		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 = eqdup___ast_u3384((*evaluated_1).typField);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T36_ = NIM_NIL;
			T36_ = newTypeS__semdata_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60), (*m_p0).c, colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T36_); goto LA1_;}
			eqsink___ast_u3387(&arg_1, T36_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqsink___ast_u3261(&(*arg_1).n, evaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqwasMoved___ast_u3249(&evaluated_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA34_: ;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3252(evaluated_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA22_;
LA26_: ;
	{
		if (!((*formalBase_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA38_;
	}
	goto LA22_;
LA38_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T41_;
		T41_ = NIM_NIL;
		T41_ = skipTypes__ast_u5379(arg_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_18);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T41_); goto LA1_;}
		eqsink___ast_u3387(&arg_1, T41_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA22_: ;
	T42_ = 0;
	tm_1 = typeRel__sigmatch_u253(m_p0, formal_p1, arg_1, T42_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!(tm_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)0) || tm_1 == ((tyEnum_TTypeRelation__3oOe3669aBTtgW9aCnZX9azBQ)1))) goto LA45_;
		(*m_p0).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
		(*m_p0).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)8);
		eqdestroy___ast_u3378(formalBase_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(arg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA45_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(formalBase_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(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_u332)(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_u4218(&c_1, (*m_p0).c, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3255(&typeParams_1, (*(*callee_p2).ast)._kind_6.sons.p->data[((NI)2)]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	paramCount_1 = len__ast_u3190(typeParams_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_ = (NI)0;
	T2_ = len__ast_u3190(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_u3252(typeParams_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___semdata_u4215(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_u258(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_u4577(&(*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_u3252(typeParams_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___semdata_u4215(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_u3255(&param_1, (*typeParams_1)._kind_6.sons.p->data[i_2]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
				eqcopy___ast_u4577(&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_u258(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_u4583(&(*m_p0).firstMismatch.formal, paramSym_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						eqwasMoved___ast_u4571(&paramSym_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						eqdestroy___ast_u4574(paramSym_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3252(param_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3252(typeParams_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___semdata_u4215(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_u4583(&(*m_p0).firstMismatch.formal, paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					eqwasMoved___ast_u4571(&paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					eqdestroy___ast_u4574(paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3252(param_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3252(typeParams_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___semdata_u4215(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_u4583(&(*m_p0).firstMismatch.formal, paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					eqwasMoved___ast_u4571(&paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					eqdestroy___ast_u4574(paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3252(param_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3252(typeParams_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___semdata_u4215(c_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA18_: ;
				i_3 += ((NI)1);
				{
					LA17_:;
				}
				{
					oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u4574(paramSym_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3252(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_u3252(typeParams_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___semdata_u4215(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_u415)(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_TIdTable__XZ9cFaLoittQMULJSfBpHrA T10_;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T11_;
NIM_BOOL oldNimErrFin26_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g));
	initCandidateAux__sigmatch_u109(ctx_p0, (*callee_p1).typ, Result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u4577(&(*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_u2555(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_u5518((&(*Result).diagnostics), T9_);
	(*Result).diagnosticsEnabled = diagnosticsEnabled_p4;
	(*Result).magic = (*(*Result).calleeSym).magic;
	T10_ = initIdTable__layeredtable_u16();
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___layeredtable_u149(T10_); goto BeforeRet_;}
	nimZeroMem((void*)(&T11_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	initLayeredTypeMap__layeredtable_u9(T10_, (&T11_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqsink___layeredtable_u242((&(*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_u332(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_111)((*ctx_p0).instantiateOnlyProcType.ClP_0))(ctx_p0, (&(*Result).bindings), callee_p1, (*binding_p2).info);
				if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
				eqsink___ast_u3387(&(*Result).callee, typ_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
				eqwasMoved___ast_u3375(&typ_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
				{
					LA26_:;
				}
				{
					oldNimErrFin26_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(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_u376((&T30_), &(*Result).callee);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
LA22_: ;
		}
LA20_: ;
	}
LA16_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, newCandidate__sigmatch_u450)(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_u415(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_u144)(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_u3469((&(*(*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_u4557)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* m_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	NI result;
NIM_BOOL oldNimErrFin5_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((NI)IL64(9223372036854775807));
	{
		NI a2_1;
		NI colontmp_;
		NI T2_;
		NI res_1;
		a2_1 = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__ast_u3190(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_u3252(formalLast_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto LA1;
				}
LA8_: ;
				T10_ = (NI)0;
				T10_ = len__ast_u3190((*(*m_p0).callee).n);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				T11_ = (NI)0;
				T11_ = len__ast_u3190(n_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				eqcopy___ast_u3255(&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_u3252(formalLast_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto LA1;
				}
LA12_: ;
				res_1 -= ((NI)1);
				{
					LA5_:;
				}
				{
					oldNimErrFin5_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3252(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_u4432)(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_u3190(father_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(oldLen_1 <= at_p1)) goto LA3_;
		setLen__ast_u3718((&(*father_p0)._kind_6.sons), ((NI)(at_p1 + ((NI)1))));
	}
LA3_: ;
	eqcopy___ast_u3255(&(*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_u4535)(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_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD_ = makeRangeType__semdata_u4597(c_p0, IL64(0), IL64(-1), info_p1, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	rawAddSon__ast_u6706(result, colontmpD_, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__2 = newTypeS__semdata_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)3), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	rawAddSon__ast_u6706(result, colontmpD__2, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, incrIndexType__sigmatch_u4539)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_ = NIM_NIL;
	colontmpD_ = indexType__ast_u5345(t_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*(*(*colontmpD_).n)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal += ((NI)1);
	eqdestroy___ast_u3378(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, prepareNamedParam__sigmatch_u4523)(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_u5164(colontmpD_, info_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T6_); goto LA5_;}
		eqsink___ast_u3261(&(*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_u4441)(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 oldNimErrFin36_;
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_u5502(formal_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = !((T5_ == ((NI)1)));
LA4_: ;
		if (!T3_) goto LA6_;
		eqcopy___ast_u3255(&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 = 1550;
			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 = 1536;
			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_u3255(&result, a_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		considerGenSyms__semdata_u2285(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_u3252(T25_); goto BeforeRet_;}
			eqsink___ast_u3261(&result, T25_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA23_: ;
		{
			NIM_BOOL T28_;
			NIM_BOOL T29_;
			NIM_BOOL T30_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* recheck_1;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* fresh_1;
			tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg flags_3;
			T28_ = (NIM_BOOL)0;
			T29_ = (NIM_BOOL)0;
			T30_ = (NIM_BOOL)0;
			T30_ = ((*formal_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)64));
			if (!(T30_)) goto LA31_;
			T30_ = !(((*(*result).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)64)));
LA31_: ;
			T29_ = T30_;
			if (!(T29_)) goto LA32_;
			T29_ = ((*a_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)27) || (*a_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)29) || (*a_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)30) || (*a_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)31) || (*a_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)26) || (*a_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)28) || (*a_p2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32));
LA32_: ;
			T28_ = T29_;
			if (!(T28_)) goto LA33_;
			T28_ = ((*(*a_p2)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2) || (*(*a_p2)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)53) || (*(*a_p2)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3) || (*(*a_p2)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)165));
LA33_: ;
			if (!T28_) goto LA34_;
			recheck_1 = NIM_NIL;
			fresh_1 = NIM_NIL;
			recheck_1 = copyTree__ast_u6891(a_p2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA36_;
			eqsink___ast_u3387(&(*recheck_1).typField, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto LA36_;
			{
				NIM_BOOL T39_;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T43_;
				T39_ = (NIM_BOOL)0;
				T39_ = ((*(*recheck_1)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
				if (!(T39_)) goto LA40_;
				T39_ = !(((*(*recheck_1)._kind_6.sons.p->data[((NI)0)])._kind_4.sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA40_: ;
				if (!T39_) goto LA41_;
				T43_ = NIM_NIL;
				T43_ = newIdentNode__ast_u5164((*(*(*recheck_1)._kind_6.sons.p->data[((NI)0)])._kind_4.sym).name, (*(*recheck_1)._kind_6.sons.p->data[((NI)0)]).info);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T43_); goto LA36_;}
				eqsink___ast_u3261(&(*recheck_1)._kind_6.sons.p->data[((NI)0)], T43_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA36_;
			}
LA41_: ;
			flags_3 = 525838;
			fresh_1 = (*c_p0).semOperand(c_p0, recheck_1, flags_3);
			if (NIM_UNLIKELY(*nimErr_)) goto LA36_;
			{
				NIM_BOOL T46_;
				T46_ = (NIM_BOOL)0;
				T46_ = !(((*fresh_1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
				if (!(T46_)) goto LA47_;
				T46_ = ((*(*fresh_1).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)64));
LA47_: ;
				if (!T46_) goto LA48_;
				result = fresh_1;
				eqwasMoved___ast_u3249(&fresh_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA36_;
				eqdestroy___ast_u3252(fresh_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3252(recheck_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
LA48_: ;
			{
				LA36_:;
			}
			{
				oldNimErrFin36_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(fresh_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___ast_u3252(recheck_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin36_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA34_: ;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, arrayConstr__sigmatch_u4531)(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_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD_ = makeRangeType__semdata_u4597(c_p0, IL64(0), IL64(0), (*n_p1).info, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	rawAddSon__ast_u6706(result, colontmpD_, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__2 = skipTypes__ast_u5379((*n_p1).typField, TM__EV5hHJmjIY9cla9b9be7fSVJQ_117);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	addSonSkipIntLit__magicsys_u135(result, colontmpD__2, (*c_p0).Sup.idgen);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, prepareOperand__sigmatch_u4513)(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, 1024);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*newlyTyped_p2) = NIM_TRUE;
	}
	goto LA1_;
LA3_: ;
	{
		eqcopy___ast_u3255(&result, a_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		considerGenSyms__semdata_u2285(c_p0, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, matchesAux__sigmatch_u4588)(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 oldNimErrFin126_;
NIM_BOOL oldNimErrFin166_;
NIM_BOOL oldNimErrFin194_;
NIM_BOOL oldNimErrFin198_;
NIM_BOOL oldNimErrFin184_;
NIM_BOOL oldNimErrFin245_;
NIM_BOOL oldNimErrFin340_;
NIM_BOOL oldNimErrFin375_;
NIM_BOOL oldNimErrFin389_;
NIM_BOOL oldNimErrFin384_;
NIM_BOOL oldNimErrFin437_;
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_u144((&(*m_p3).firstMismatch), T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD_ = base__ast_u5351((*m_p3).callee);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T3_ = NIM_NIL;
	T3_ = newNodeIT__ast_u4112((*n_p1).kind, (*n_p1).info, colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T3_); goto LA1_;}
	eqsink___ast_u3261(&(*m_p3).call, T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	add__ast_u3215((*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_u3190((*(*m_p3).callee).n);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T9_ = NIM_NIL;
	{
		if (!(((NI)1) < formalLen_1)) goto LA12_;
		eqcopy___ast_u4577(&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_u4557(m_p3, n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			NI T17_;
			T17_ = (NI)0;
			T17_ = len__ast_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!(a_1 < T17_)) goto LA16;
			openShadowScope__lookups_u3850(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_u4577(&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_u79(TM__EV5hHJmjIY9cla9b9be7fSVJQ_113);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
LA36_: ;
					setSon__sigmatch_u4432((*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_u4535(c_p0, (*n_p1).info);
						if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
						T44_ = NIM_NIL;
						T44_ = newNodeIT__ast_u4112(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152), (*(*n_p1)._kind_6.sons.p->data[a_1]).info, colontmpD__4);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T44_); goto LA43_;}
						eqsink___ast_u3261(&container_1, T44_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
						setSon__sigmatch_u4432((*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_u3378(colontmpD__4);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							*nimErr_ = oldNimErrFin43_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
					goto LA39_;
LA41_: ;
					{
						incrIndexType__sigmatch_u4539((*container_1).typField);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
LA39_: ;
					add__ast_u3215(container_1, (*n_p1)._kind_6.sons.p->data[a_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA28_: ;
			}
			goto LA18_;
LA26_: ;
			{
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T62_;
				NIM_BOOL newlyTyped_1;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T86_;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T91_;
				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_u4523((*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_u1227((*(*c_p0).graph).config, (*(*n_p1)._kind_6.sons.p->data[a_1]).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), TM__EV5hHJmjIY9cla9b9be7fSVJQ_115, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_116), NIM_FALSE, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					{
						NIM_BOOL T57_;
						T57_ = (NIM_BOOL)0;
						T57_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
						if (!(T57_)) goto LA58_;
						T57_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA58_: ;
						if (!T57_) goto LA59_;
						mergeShadowScope__lookups_u3854(c_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
					goto LA55_;
LA59_: ;
					{
						closeShadowScope__lookups_u3852(c_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
LA55_: ;
					(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
					(*m_p3).firstMismatch.arg = a_1;
					eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqwasMoved___ast_u4571(&formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3252(container_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u4574(formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3252(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA53_: ;
				T62_ = NIM_NIL;
				T62_ = 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_u4574(T62_); goto LA1_;}
				eqsink___ast_u4583(&formal_1, T62_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				{
					if (!(formal_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL))) goto LA65_;
					{
						NIM_BOOL T69_;
						T69_ = (NIM_BOOL)0;
						T69_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
						if (!(T69_)) goto LA70_;
						T69_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA70_: ;
						if (!T69_) goto LA71_;
						mergeShadowScope__lookups_u3854(c_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
					goto LA67_;
LA71_: ;
					{
						closeShadowScope__lookups_u3852(c_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
LA67_: ;
					(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
					(*m_p3).firstMismatch.arg = a_1;
					eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqwasMoved___ast_u4571(&formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3252(container_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u4574(formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3252(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA65_: ;
				{
					NIM_BOOL T76_;
					T76_ = (NIM_BOOL)0;
					T76_ = containsOrIncl__astyaml_u223(marker_p4, (*formal_1).position);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if (!T76_) goto LA77_;
					(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)1);
					{
						NIM_BOOL T81_;
						T81_ = (NIM_BOOL)0;
						T81_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
						if (!(T81_)) goto LA82_;
						T81_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA82_: ;
						if (!T81_) goto LA83_;
						mergeShadowScope__lookups_u3854(c_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
					goto LA79_;
LA83_: ;
					{
						closeShadowScope__lookups_u3852(c_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
LA79_: ;
					(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
					(*m_p3).firstMismatch.arg = a_1;
					eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqwasMoved___ast_u4571(&formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3252(container_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u4574(formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3252(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA77_: ;
				(*m_p3).baseTypeMatch = NIM_FALSE;
				(*m_p3).typedescMatched = NIM_FALSE;
				newlyTyped_1 = NIM_FALSE;
				T86_ = NIM_NIL;
				T86_ = prepareOperand__sigmatch_u4441(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_u3252(T86_); goto LA1_;}
				eqsink___ast_u3261(&(*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)1)], T86_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				{
					if (!newlyTyped_1) goto LA89_;
					add__varpartitions_u1538((&(*m_p3).newlyTypedOperands), a_1);
				}
LA89_: ;
				eqcopy___ast_u3381(&(*(*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_;
				T91_ = NIM_NIL;
				T91_ = paramTypesMatch__sigmatch_u4323(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_u3252(T91_); goto LA1_;}
				eqsink___ast_u3261(&arg_1, T91_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)3);
				{
					if (!(arg_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA94_;
					{
						NIM_BOOL T98_;
						T98_ = (NIM_BOOL)0;
						T98_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
						if (!(T98_)) goto LA99_;
						T98_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA99_: ;
						if (!T98_) goto LA100_;
						mergeShadowScope__lookups_u3854(c_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
					goto LA96_;
LA100_: ;
					{
						closeShadowScope__lookups_u3852(c_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
LA96_: ;
					(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
					(*m_p3).firstMismatch.arg = a_1;
					eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqwasMoved___ast_u4571(&formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3252(container_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u4574(formal_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3252(arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___ast_u3378(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA94_: ;
				{
					NIM_BOOL T105_;
					T105_ = (NIM_BOOL)0;
					T105_ = !(((*formal_1).constraint == 0));
					if (!(T105_)) goto LA106_;
					T105_ = !((((*formal_1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)53)))&63U)))!=0));
LA106_: ;
					if (!T105_) goto LA107_;
					{
						NIM_BOOL T111_;
						T111_ = (NIM_BOOL)0;
						T111_ = matchNodeKinds__parampatterns_u498((*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 (!T111_) goto LA112_;
						(*m_p3).genericMatches += ((NI)100);
					}
					goto LA109_;
LA112_: ;
					{
						{
							NIM_BOOL T117_;
							T117_ = (NIM_BOOL)0;
							T117_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
							if (!(T117_)) goto LA118_;
							T117_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA118_: ;
							if (!T117_) goto LA119_;
							mergeShadowScope__lookups_u3854(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
						goto LA115_;
LA119_: ;
						{
							closeShadowScope__lookups_u3852(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
LA115_: ;
						(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
						(*m_p3).firstMismatch.arg = a_1;
						eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqwasMoved___ast_u4571(&formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3252(container_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u4574(formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3252(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA109_: ;
				}
LA107_: ;
				{
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argConverter_1;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T127_;
					if (!((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23))) goto LA124_;
					argConverter_1 = NIM_NIL;
					T127_ = NIM_NIL;
					{
						if (!((*arg_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65))) goto LA130_;
						eqcopy___ast_u3255(&argConverter_1, (*arg_1)._kind_6.sons.p->data[((NI)0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
					}
					goto LA128_;
LA130_: ;
					{
						eqcopy___ast_u3255(&argConverter_1, arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
					}
LA128_: ;
					{
						if (!((*argConverter_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32))) goto LA135_;
						{
							if (!!(((*(*argConverter_1).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23)))) goto LA139_;
							(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)4);
							{
								NIM_BOOL T143_;
								T143_ = (NIM_BOOL)0;
								T143_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
								if (!(T143_)) goto LA144_;
								T143_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA144_: ;
								if (!T143_) goto LA145_;
								mergeShadowScope__lookups_u3854(c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
							}
							goto LA141_;
LA145_: ;
							{
								closeShadowScope__lookups_u3852(c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
							}
LA141_: ;
							(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
							(*m_p3).firstMismatch.arg = a_1;
							eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
							eqwasMoved___ast_u4571(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
							eqdestroy___ast_u3252(argConverter_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3252(container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u4574(formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA139_: ;
					}
					goto LA133_;
LA135_: ;
					{
						NIM_BOOL T149_;
						NIM_BOOL T150_;
						T149_ = (NIM_BOOL)0;
						T149_ = isOutParam__ast_u7655((*formal_1).typ);
						if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
						T150_ = (NIM_BOOL)0;
						T150_ = isLValue__sigmatch_u3740(c_p0, (*(*n_p1)._kind_6.sons.p->data[a_1])._kind_6.sons.p->data[((NI)1)], T149_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
						if (!!(T150_)) goto LA151_;
						(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)4);
						{
							NIM_BOOL T155_;
							T155_ = (NIM_BOOL)0;
							T155_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
							if (!(T155_)) goto LA156_;
							T155_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA156_: ;
							if (!T155_) goto LA157_;
							mergeShadowScope__lookups_u3854(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
						}
						goto LA153_;
LA157_: ;
						{
							closeShadowScope__lookups_u3852(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
						}
LA153_: ;
						(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
						(*m_p3).firstMismatch.arg = a_1;
						eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
						eqwasMoved___ast_u4571(&formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
						eqdestroy___ast_u3252(argConverter_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3252(container_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u4574(formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3252(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
					goto LA133_;
LA151_: ;
LA133_: ;
					{
						LA126_:;
					}
					{
						oldNimErrFin126_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3252(argConverter_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin126_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA124_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T167_;
					if (!(*m_p3).baseTypeMatch) goto LA164_;
					colontmpD__5 = NIM_NIL;
					colontmpD__5 = arrayConstr__sigmatch_u4531(c_p0, arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA166_;
					T167_ = NIM_NIL;
					T167_ = newNodeIT__ast_u4112(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)41), (*(*n_p1)._kind_6.sons.p->data[a_1]).info, colontmpD__5);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T167_); goto LA166_;}
					eqsink___ast_u3261(&container_1, T167_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA166_;
					add__ast_u3215(container_1, arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA166_;
					setSon__sigmatch_u4432((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), container_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA166_;
					{
						if (!!((f_1 == (NI)(formalLen_1 - ((NI)1))))) goto LA170_;
						eqsink___ast_u3261(&container_1, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
						if (NIM_UNLIKELY(*nimErr_)) goto LA166_;
					}
LA170_: ;
					{
						LA166_:;
					}
					{
						oldNimErrFin166_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(colontmpD__5);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin166_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
				goto LA162_;
LA164_: ;
				{
					setSon__sigmatch_u4432((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), arg_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA162_: ;
				f_1 += ((NI)1);
			}
			goto LA18_;
LA49_: ;
			{
				{
					if (!(formalLen_1 <= f_1)) goto LA178_;
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
						NIM_BOOL newlyTyped_2;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T185_;
						if (!(((*(*m_p3).callee).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)0)))&63U)))!=0)) goto LA182_;
						colontmpD__6 = NIM_NIL;
						newlyTyped_2 = NIM_FALSE;
						T185_ = NIM_NIL;
						T185_ = prepareOperand__sigmatch_u4513(c_p0, (*n_p1)._kind_6.sons.p->data[a_1], (&newlyTyped_2));
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T185_); goto LA184_;}
						eqsink___ast_u3261(&(*n_p1)._kind_6.sons.p->data[a_1], T185_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA184_;
						{
							if (!newlyTyped_2) goto LA188_;
							add__varpartitions_u1538((&(*m_p3).newlyTypedOperands), a_1);
						}
LA188_: ;
						{
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__8;
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__9;
							colontmpD__6 = skipTypes__ast_u5379((*(*n_p1)._kind_6.sons.p->data[a_1]).typField, TM__EV5hHJmjIY9cla9b9be7fSVJQ_69);
							if (NIM_UNLIKELY(*nimErr_)) goto LA184_;
							if (!((*colontmpD__6).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28))) goto LA192_;
							colontmpD__7 = NIM_NIL;
							colontmpD__8 = NIM_NIL;
							colontmpD__9 = NIM_NIL;
							colontmpD__7 = getSysType__magicsys_u55((*c_p0).graph, (*(*n_p1)._kind_6.sons.p->data[a_1]).info, ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29));
							if (NIM_UNLIKELY(*nimErr_)) goto LA194_;
							colontmpD__8 = copyTree__ast_u6891((*n_p1)._kind_6.sons.p->data[a_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA194_;
							colontmpD__9 = implicitConv__sigmatch_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), colontmpD__7, colontmpD__8, (&(*m_p3)), c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA194_;
							add__ast_u3215((*m_p3).call, colontmpD__9);
							if (NIM_UNLIKELY(*nimErr_)) goto LA194_;
							{
								LA194_:;
							}
							{
								oldNimErrFin194_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3252(colontmpD__9);
								if (NIM_UNLIKELY(*nimErr_)) goto LA184_;
								eqdestroy___ast_u3252(colontmpD__8);
								if (NIM_UNLIKELY(*nimErr_)) goto LA184_;
								eqdestroy___ast_u3378(colontmpD__7);
								if (NIM_UNLIKELY(*nimErr_)) goto LA184_;
								*nimErr_ = oldNimErrFin194_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA184_;
						}
						goto LA190_;
LA192_: ;
						{
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__10;
							colontmpD__10 = NIM_NIL;
							colontmpD__10 = copyTree__ast_u6891((*n_p1)._kind_6.sons.p->data[a_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA198_;
							add__ast_u3215((*m_p3).call, colontmpD__10);
							if (NIM_UNLIKELY(*nimErr_)) goto LA198_;
							{
								LA198_:;
							}
							{
								oldNimErrFin198_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3252(colontmpD__10);
								if (NIM_UNLIKELY(*nimErr_)) goto LA184_;
								*nimErr_ = oldNimErrFin198_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA184_;
						}
LA190_: ;
						{
							LA184_:;
						}
						{
							oldNimErrFin184_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3378(colontmpD__6);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							*nimErr_ = oldNimErrFin184_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
					goto LA180_;
LA182_: ;
					{
						NIM_BOOL T204_;
						NIM_BOOL newlyTyped_3;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T208_;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T213_;
						T204_ = (NIM_BOOL)0;
						T204_ = !((formal_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
						if (!(T204_)) goto LA205_;
						T204_ = ((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48));
LA205_: ;
						if (!T204_) goto LA206_;
						(*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;
						T208_ = NIM_NIL;
						T208_ = prepareOperand__sigmatch_u4441(c_p0, (*formal_1).typ, (*n_p1)._kind_6.sons.p->data[a_1], (&newlyTyped_3));
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T208_); goto LA1_;}
						eqsink___ast_u3261(&(*n_p1)._kind_6.sons.p->data[a_1], T208_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						{
							if (!newlyTyped_3) goto LA211_;
							add__varpartitions_u1538((&(*m_p3).newlyTypedOperands), a_1);
						}
LA211_: ;
						T213_ = NIM_NIL;
						T213_ = paramTypesMatch__sigmatch_u4323(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_u3252(T213_); goto LA1_;}
						eqsink___ast_u3261(&arg_1, T213_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						{
							NIM_BOOL T216_;
							NIM_BOOL T217_;
							T216_ = (NIM_BOOL)0;
							T217_ = (NIM_BOOL)0;
							T217_ = !((arg_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
							if (!(T217_)) goto LA218_;
							T217_ = (*m_p3).baseTypeMatch;
LA218_: ;
							T216_ = T217_;
							if (!(T216_)) goto LA219_;
							T216_ = !((container_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA219_: ;
							if (!T216_) goto LA220_;
							add__ast_u3215(container_1, arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							incrIndexType__sigmatch_u4539((*container_1).typField);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							{
								NIM_BOOL T224_;
								T224_ = (NIM_BOOL)0;
								T224_ = !(((*formal_1).constraint == 0));
								if (!(T224_)) goto LA225_;
								T224_ = !((((*formal_1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)53)))&63U)))!=0));
LA225_: ;
								if (!T224_) goto LA226_;
								{
									NIM_BOOL T230_;
									T230_ = (NIM_BOOL)0;
									T230_ = matchNodeKinds__parampatterns_u498((*formal_1).constraint, (*n_p1)._kind_6.sons.p->data[a_1]);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									if (!T230_) goto LA231_;
									(*m_p3).genericMatches += ((NI)100);
								}
								goto LA228_;
LA231_: ;
								{
									{
										NIM_BOOL T236_;
										T236_ = (NIM_BOOL)0;
										T236_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
										if (!(T236_)) goto LA237_;
										T236_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA237_: ;
										if (!T236_) goto LA238_;
										mergeShadowScope__lookups_u3854(c_p0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									}
									goto LA234_;
LA238_: ;
									{
										closeShadowScope__lookups_u3852(c_p0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									}
LA234_: ;
									(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
									(*m_p3).firstMismatch.arg = a_1;
									eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqwasMoved___ast_u4571(&formal_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3252(container_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u4574(formal_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3252(arg_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3378(colontmpD_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto BeforeRet_;
								}
LA228_: ;
							}
LA226_: ;
							{
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argConverter_2;
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T246_;
								if (!((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23))) goto LA243_;
								argConverter_2 = NIM_NIL;
								T246_ = NIM_NIL;
								{
									if (!((*arg_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65))) goto LA249_;
									eqcopy___ast_u3255(&argConverter_2, (*arg_1)._kind_6.sons.p->data[((NI)0)]);
									if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
								}
								goto LA247_;
LA249_: ;
								{
									eqcopy___ast_u3255(&argConverter_2, arg_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
								}
LA247_: ;
								{
									if (!((*argConverter_2).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32))) goto LA254_;
									{
										if (!!(((*(*argConverter_2).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23)))) goto LA258_;
										(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)4);
										{
											NIM_BOOL T262_;
											T262_ = (NIM_BOOL)0;
											T262_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
											if (!(T262_)) goto LA263_;
											T262_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA263_: ;
											if (!T262_) goto LA264_;
											mergeShadowScope__lookups_u3854(c_p0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
										}
										goto LA260_;
LA264_: ;
										{
											closeShadowScope__lookups_u3852(c_p0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
										}
LA260_: ;
										(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
										(*m_p3).firstMismatch.arg = a_1;
										eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
										eqwasMoved___ast_u4571(&formal_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
										eqdestroy___ast_u3252(argConverter_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
										eqdestroy___ast_u3252(container_1);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										eqdestroy___ast_u4574(formal_1);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										eqdestroy___ast_u3252(arg_1);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										eqdestroy___ast_u3378(colontmpD_);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										goto BeforeRet_;
									}
LA258_: ;
								}
								goto LA252_;
LA254_: ;
								{
									NIM_BOOL T268_;
									NIM_BOOL T269_;
									T268_ = (NIM_BOOL)0;
									T268_ = isOutParam__ast_u7655((*formal_1).typ);
									if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
									T269_ = (NIM_BOOL)0;
									T269_ = isLValue__sigmatch_u3740(c_p0, (*n_p1)._kind_6.sons.p->data[a_1], T268_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
									if (!!(T269_)) goto LA270_;
									(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)4);
									{
										NIM_BOOL T274_;
										T274_ = (NIM_BOOL)0;
										T274_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
										if (!(T274_)) goto LA275_;
										T274_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA275_: ;
										if (!T274_) goto LA276_;
										mergeShadowScope__lookups_u3854(c_p0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
									}
									goto LA272_;
LA276_: ;
									{
										closeShadowScope__lookups_u3852(c_p0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
									}
LA272_: ;
									(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
									(*m_p3).firstMismatch.arg = a_1;
									eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
									eqwasMoved___ast_u4571(&formal_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA245_;
									eqdestroy___ast_u3252(argConverter_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3252(container_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u4574(formal_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3252(arg_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___ast_u3378(colontmpD_);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									goto BeforeRet_;
								}
								goto LA252_;
LA270_: ;
LA252_: ;
								{
									LA245_:;
								}
								{
									oldNimErrFin245_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3252(argConverter_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									*nimErr_ = oldNimErrFin245_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							}
LA243_: ;
						}
						goto LA214_;
LA220_: ;
						{
							{
								NIM_BOOL T284_;
								T284_ = (NIM_BOOL)0;
								T284_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
								if (!(T284_)) goto LA285_;
								T284_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA285_: ;
								if (!T284_) goto LA286_;
								mergeShadowScope__lookups_u3854(c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							}
							goto LA282_;
LA286_: ;
							{
								closeShadowScope__lookups_u3852(c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							}
LA282_: ;
							(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
							(*m_p3).firstMismatch.arg = a_1;
							eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqwasMoved___ast_u4571(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3252(container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u4574(formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA214_: ;
					}
					goto LA180_;
LA206_: ;
					{
						(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)6);
						{
							NIM_BOOL T292_;
							T292_ = (NIM_BOOL)0;
							T292_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
							if (!(T292_)) goto LA293_;
							T292_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA293_: ;
							if (!T292_) goto LA294_;
							mergeShadowScope__lookups_u3854(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
						goto LA290_;
LA294_: ;
						{
							closeShadowScope__lookups_u3852(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
LA290_: ;
						(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
						(*m_p3).firstMismatch.arg = a_1;
						eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqwasMoved___ast_u4571(&formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3252(container_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u4574(formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3252(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA180_: ;
				}
				goto LA176_;
LA178_: ;
				{
					{
						if (!!(((*(*(*(*m_p3).callee).n)._kind_6.sons.p->data[f_1]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3)))) goto LA300_;
						internalErrorImpl__msgs_u1598((*(*c_p0).graph).config, (*(*n_p1)._kind_6.sons.p->data[a_1]).info, TM__EV5hHJmjIY9cla9b9be7fSVJQ_119, (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_120));
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						{
							NIM_BOOL T304_;
							T304_ = (NIM_BOOL)0;
							T304_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
							if (!(T304_)) goto LA305_;
							T304_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA305_: ;
							if (!T304_) goto LA306_;
							mergeShadowScope__lookups_u3854(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
						goto LA302_;
LA306_: ;
						{
							closeShadowScope__lookups_u3852(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
LA302_: ;
						(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
						(*m_p3).firstMismatch.arg = a_1;
						eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqwasMoved___ast_u4571(&formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3252(container_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u4574(formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3252(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA300_: ;
					{
						NIM_BOOL T311_;
						NI T315_;
						NI T316_;
						T311_ = (NIM_BOOL)0;
						T311_ = (((*c_p0).features &((NU32)1<<((NU)((((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)17)))&31U)))!=0);
						if (!(T311_)) goto LA312_;
						T311_ = (firstArgBlock_1 <= a_1);
LA312_: ;
						if (!T311_) goto LA313_;
						T315_ = (NI)0;
						T315_ = len__ast_u3190((*(*m_p3).callee).n);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						T316_ = (NI)0;
						T316_ = len__ast_u3190(n_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						f_1 = ((f_1 >= (NI)(T315_ - (NI)(T316_ - a_1))) ? f_1 : (NI)(T315_ - (NI)(T316_ - a_1)));
					}
LA313_: ;
					eqcopy___ast_u4577(&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 T319_;
						T319_ = (NIM_BOOL)0;
						T319_ = containsOrIncl__astyaml_u223(marker_p4, (*formal_1).position);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						if (!(T319_)) goto LA320_;
						T319_ = (container_1 == 0);
LA320_: ;
						if (!T319_) goto LA321_;
						(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)7);
						{
							NIM_BOOL T325_;
							T325_ = (NIM_BOOL)0;
							T325_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
							if (!(T325_)) goto LA326_;
							T325_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA326_: ;
							if (!T325_) goto LA327_;
							mergeShadowScope__lookups_u3854(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
						goto LA323_;
LA327_: ;
						{
							closeShadowScope__lookups_u3852(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
LA323_: ;
						(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
						(*m_p3).firstMismatch.arg = a_1;
						eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqwasMoved___ast_u4571(&formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___ast_u3252(container_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u4574(formal_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3252(arg_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___ast_u3378(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA321_: ;
					{
						NIM_BOOL T332_;
						T332_ = (NIM_BOOL)0;
						T332_ = ((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48));
						if (!(T332_)) goto LA333_;
						T332_ = ((*(*(*formal_1).typ).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6));
LA333_: ;
						if (!T332_) goto LA334_;
						{
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__11;
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T341_;
							if (!(container_1 == 0)) goto LA338_;
							colontmpD__11 = NIM_NIL;
							colontmpD__11 = arrayConstr__sigmatch_u4535(c_p0, (*n_p1).info);
							if (NIM_UNLIKELY(*nimErr_)) goto LA340_;
							T341_ = NIM_NIL;
							T341_ = newNodeIT__ast_u4112(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152), (*(*n_p1)._kind_6.sons.p->data[a_1]).info, colontmpD__11);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T341_); goto LA340_;}
							eqsink___ast_u3261(&container_1, T341_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA340_;
							setSon__sigmatch_u4432((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA340_;
							{
								LA340_:;
							}
							{
								oldNimErrFin340_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3378(colontmpD__11);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								*nimErr_ = oldNimErrFin340_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
						goto LA336_;
LA338_: ;
						{
							incrIndexType__sigmatch_u4539((*container_1).typField);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
LA336_: ;
						add__ast_u3215(container_1, (*n_p1)._kind_6.sons.p->data[a_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
					goto LA330_;
LA334_: ;
					{
						NIM_BOOL newlyTyped_4;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T346_;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T351_;
						(*m_p3).baseTypeMatch = NIM_FALSE;
						(*m_p3).typedescMatched = NIM_FALSE;
						newlyTyped_4 = NIM_FALSE;
						T346_ = NIM_NIL;
						T346_ = prepareOperand__sigmatch_u4441(c_p0, (*formal_1).typ, (*n_p1)._kind_6.sons.p->data[a_1], (&newlyTyped_4));
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T346_); goto LA1_;}
						eqsink___ast_u3261(&(*n_p1)._kind_6.sons.p->data[a_1], T346_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						{
							if (!newlyTyped_4) goto LA349_;
							add__varpartitions_u1538((&(*m_p3).newlyTypedOperands), a_1);
						}
LA349_: ;
						T351_ = NIM_NIL;
						T351_ = paramTypesMatch__sigmatch_u4323(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_u3252(T351_); goto LA1_;}
						eqsink___ast_u3261(&arg_1, T351_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						{
							if (!(arg_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA354_;
							{
								NIM_BOOL T358_;
								T358_ = (NIM_BOOL)0;
								T358_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
								if (!(T358_)) goto LA359_;
								T358_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA359_: ;
								if (!T358_) goto LA360_;
								mergeShadowScope__lookups_u3854(c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							}
							goto LA356_;
LA360_: ;
							{
								closeShadowScope__lookups_u3852(c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							}
LA356_: ;
							(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
							(*m_p3).firstMismatch.arg = a_1;
							eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqwasMoved___ast_u4571(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3252(container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u4574(formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA354_: ;
						{
							NIM_BOOL T365_;
							NIM_BOOL T366_;
							NI T380_;
							T365_ = (NIM_BOOL)0;
							T366_ = (NIM_BOOL)0;
							T366_ = ((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48));
							if (!(T366_)) goto LA367_;
							T366_ = ((*(*(*formal_1).typ).sons.p->data[((NI)0)]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)7));
LA367_: ;
							T365_ = T366_;
							if (!(T365_)) goto LA368_;
							T365_ = ((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17));
LA368_: ;
							if (!T365_) goto LA369_;
							{
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__12;
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__13;
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T376_;
								if (!(container_1 == 0)) goto LA373_;
								colontmpD__12 = NIM_NIL;
								colontmpD__13 = NIM_NIL;
								colontmpD__12 = arrayConstr__sigmatch_u4535(c_p0, (*n_p1).info);
								if (NIM_UNLIKELY(*nimErr_)) goto LA375_;
								T376_ = NIM_NIL;
								T376_ = newNodeIT__ast_u4112(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)41), (*(*n_p1)._kind_6.sons.p->data[a_1]).info, colontmpD__12);
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T376_); goto LA375_;}
								eqsink___ast_u3261(&container_1, T376_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA375_;
								colontmpD__13 = implicitConv__sigmatch_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), (*formal_1).typ, container_1, (&(*m_p3)), c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA375_;
								setSon__sigmatch_u4432((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), colontmpD__13);
								if (NIM_UNLIKELY(*nimErr_)) goto LA375_;
								{
									LA375_:;
								}
								{
									oldNimErrFin375_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3252(colontmpD__13);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqdestroy___ast_u3378(colontmpD__12);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									*nimErr_ = oldNimErrFin375_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							}
							goto LA371_;
LA373_: ;
							{
								incrIndexType__sigmatch_u4539((*container_1).typField);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							}
LA371_: ;
							add__ast_u3215(container_1, (*n_p1)._kind_6.sons.p->data[a_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							T380_ = (NI)0;
							T380_ = len__ast_u3190(n_p1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							f_1 = ((f_1 >= (NI)((NI)((NI)(formalLen_1 - T380_) + a_1) + ((NI)1))) ? f_1 : (NI)((NI)((NI)(formalLen_1 - T380_) + a_1) + ((NI)1)));
						}
						goto LA363_;
LA369_: ;
						{
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__14;
							NI T394_;
							if (!(*m_p3).baseTypeMatch) goto LA382_;
							colontmpD__14 = NIM_NIL;
							{
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__15;
								tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T390_;
								if (!(container_1 == 0)) goto LA387_;
								colontmpD__15 = NIM_NIL;
								colontmpD__15 = arrayConstr__sigmatch_u4531(c_p0, arg_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA389_;
								T390_ = NIM_NIL;
								T390_ = newNodeIT__ast_u4112(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)41), (*(*n_p1)._kind_6.sons.p->data[a_1]).info, colontmpD__15);
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T390_); goto LA389_;}
								eqsink___ast_u3261(&container_1, T390_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA389_;
								(*(*container_1).typField).flags |= ((NU64)1)<<(((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)0))) & 63);
								{
									LA389_:;
								}
								{
									oldNimErrFin389_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3378(colontmpD__15);
									if (NIM_UNLIKELY(*nimErr_)) goto LA384_;
									*nimErr_ = oldNimErrFin389_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA384_;
							}
							goto LA385_;
LA387_: ;
							{
								incrIndexType__sigmatch_u4539((*container_1).typField);
								if (NIM_UNLIKELY(*nimErr_)) goto LA384_;
							}
LA385_: ;
							add__ast_u3215(container_1, arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA384_;
							colontmpD__14 = implicitConv__sigmatch_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), (*formal_1).typ, container_1, (&(*m_p3)), c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA384_;
							setSon__sigmatch_u4432((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), colontmpD__14);
							if (NIM_UNLIKELY(*nimErr_)) goto LA384_;
							T394_ = (NI)0;
							T394_ = len__ast_u3190(n_p1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA384_;
							f_1 = ((f_1 >= (NI)((NI)((NI)(formalLen_1 - T394_) + a_1) + ((NI)1))) ? f_1 : (NI)((NI)((NI)(formalLen_1 - T394_) + a_1) + ((NI)1)));
							{
								LA384_:;
							}
							{
								oldNimErrFin384_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3252(colontmpD__14);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								*nimErr_ = oldNimErrFin384_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
						goto LA363_;
LA382_: ;
						{
							NIM_BOOL T398_;
							T398_ = (NIM_BOOL)0;
							T398_ = !(((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)48)));
							if (T398_) goto LA399_;
							T398_ = (container_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
LA399_: ;
							if (!T398_) goto LA400_;
							setSon__sigmatch_u4432((*m_p3).call, (NI)((*formal_1).position + ((NI)1)), arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							f_1 += ((NI)1);
							eqsink___ast_u3261(&container_1, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
						goto LA363_;
LA400_: ;
						{
							NimStringV2 colontmpD__16;
							NimStringV2 colontmpD__17;
							NimStringV2 colontmpD__18;
							tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ T404_;
							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 LA403_;
							T404_[0] = colontmpD__16;
							colontmpD__17 = typeToString__types_u54((*formal_1).typ, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
							if (NIM_UNLIKELY(*nimErr_)) goto LA403_;
							T404_[1] = colontmpD__17;
							colontmpD__18 = nsuFormatOpenArray(TM__EV5hHJmjIY9cla9b9be7fSVJQ_122, T404_, 2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA403_;
							liMessage__msgs_u1227((*(*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_123), NIM_FALSE, NIM_FALSE);
							if (NIM_UNLIKELY(*nimErr_)) goto LA403_;
							{
								NIM_BOOL T407_;
								T407_ = (NIM_BOOL)0;
								T407_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
								if (!(T407_)) goto LA408_;
								T407_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA408_: ;
								if (!T407_) goto LA409_;
								mergeShadowScope__lookups_u3854(c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA403_;
							}
							goto LA405_;
LA409_: ;
							{
								closeShadowScope__lookups_u3852(c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA403_;
							}
LA405_: ;
							(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
							(*m_p3).firstMismatch.arg = a_1;
							eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA403_;
							eqwasMoved___ast_u4571(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA403_;
							eqdestroy___system_u2691(colontmpD__18);
							eqdestroy___system_u2691(colontmpD__17);
							eqdestroy___system_u2691(colontmpD__16);
							eqdestroy___ast_u3252(container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u4574(formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
							{
								LA403_:;
							}
							{
								eqdestroy___system_u2691(colontmpD__18);
								eqdestroy___system_u2691(colontmpD__17);
								eqdestroy___system_u2691(colontmpD__16);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
LA363_: ;
					}
LA330_: ;
					{
						NIM_BOOL T416_;
						T416_ = (NIM_BOOL)0;
						T416_ = !(((*formal_1).constraint == 0));
						if (!(T416_)) goto LA417_;
						T416_ = !((((*formal_1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)53)))&63U)))!=0));
LA417_: ;
						if (!T416_) goto LA418_;
						{
							NIM_BOOL T422_;
							T422_ = (NIM_BOOL)0;
							T422_ = matchNodeKinds__parampatterns_u498((*formal_1).constraint, (*n_p1)._kind_6.sons.p->data[a_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							if (!T422_) goto LA423_;
							(*m_p3).genericMatches += ((NI)100);
						}
						goto LA420_;
LA423_: ;
						{
							{
								NIM_BOOL T428_;
								T428_ = (NIM_BOOL)0;
								T428_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
								if (!(T428_)) goto LA429_;
								T428_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA429_: ;
								if (!T428_) goto LA430_;
								mergeShadowScope__lookups_u3854(c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							}
							goto LA426_;
LA430_: ;
							{
								closeShadowScope__lookups_u3852(c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							}
LA426_: ;
							(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
							(*m_p3).firstMismatch.arg = a_1;
							eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqwasMoved___ast_u4571(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3252(container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u4574(formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA420_: ;
					}
LA418_: ;
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* argConverter_3;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T438_;
						if (!((*(*formal_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23))) goto LA435_;
						argConverter_3 = NIM_NIL;
						T438_ = NIM_NIL;
						{
							if (!((*arg_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65))) goto LA441_;
							eqcopy___ast_u3255(&argConverter_3, (*arg_1)._kind_6.sons.p->data[((NI)0)]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA437_;
						}
						goto LA439_;
LA441_: ;
						{
							eqcopy___ast_u3255(&argConverter_3, arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA437_;
						}
LA439_: ;
						{
							if (!((*argConverter_3).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32))) goto LA446_;
							{
								if (!!(((*(*argConverter_3).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23)))) goto LA450_;
								(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)4);
								{
									NIM_BOOL T454_;
									T454_ = (NIM_BOOL)0;
									T454_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
									if (!(T454_)) goto LA455_;
									T454_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA455_: ;
									if (!T454_) goto LA456_;
									mergeShadowScope__lookups_u3854(c_p0);
									if (NIM_UNLIKELY(*nimErr_)) goto LA437_;
								}
								goto LA452_;
LA456_: ;
								{
									closeShadowScope__lookups_u3852(c_p0);
									if (NIM_UNLIKELY(*nimErr_)) goto LA437_;
								}
LA452_: ;
								(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
								(*m_p3).firstMismatch.arg = a_1;
								eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA437_;
								eqwasMoved___ast_u4571(&formal_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA437_;
								eqdestroy___ast_u3252(argConverter_3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								eqdestroy___ast_u3252(container_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u4574(formal_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3252(arg_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								eqdestroy___ast_u3378(colontmpD_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA450_: ;
						}
						goto LA444_;
LA446_: ;
						{
							NIM_BOOL T460_;
							NIM_BOOL T461_;
							T460_ = (NIM_BOOL)0;
							T460_ = isOutParam__ast_u7655((*formal_1).typ);
							if (NIM_UNLIKELY(*nimErr_)) goto LA437_;
							T461_ = (NIM_BOOL)0;
							T461_ = isLValue__sigmatch_u3740(c_p0, (*n_p1)._kind_6.sons.p->data[a_1], T460_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA437_;
							if (!!(T461_)) goto LA462_;
							(*m_p3).firstMismatch.kind = ((tyEnum_MismatchKind__tCBkaULCeQ37WxmTYkr1fA)4);
							{
								NIM_BOOL T466_;
								T466_ = (NIM_BOOL)0;
								T466_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
								if (!(T466_)) goto LA467_;
								T466_ = !(((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17)));
LA467_: ;
								if (!T466_) goto LA468_;
								mergeShadowScope__lookups_u3854(c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA437_;
							}
							goto LA464_;
LA468_: ;
							{
								closeShadowScope__lookups_u3852(c_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA437_;
							}
LA464_: ;
							(*m_p3).state = ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)2);
							(*m_p3).firstMismatch.arg = a_1;
							eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA437_;
							eqwasMoved___ast_u4571(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA437_;
							eqdestroy___ast_u3252(argConverter_3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							eqdestroy___ast_u3252(container_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u4574(formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3252(arg_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							eqdestroy___ast_u3378(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
						goto LA444_;
LA462_: ;
LA444_: ;
						{
							LA437_:;
						}
						{
							oldNimErrFin437_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(argConverter_3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							*nimErr_ = oldNimErrFin437_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
LA435_: ;
				}
LA176_: ;
			}
LA18_: ;
			{
				NIM_BOOL T475_;
				NIM_BOOL T477_;
				T475_ = (NIM_BOOL)0;
				T475_ = ((*m_p3).state == ((tyEnum_TCandidateState__R72dQoI7m6JFPNDDxnNkHg)1));
				if (!(T475_)) goto LA476_;
				T477_ = (NIM_BOOL)0;
				T477_ = !(((*m_p3).calleeSym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
				if (!(T477_)) goto LA478_;
				T477_ = ((*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*(*m_p3).calleeSym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17));
LA478_: ;
				T475_ = !(T477_);
LA476_: ;
				if (!T475_) goto LA479_;
				mergeShadowScope__lookups_u3854(c_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			goto LA473_;
LA479_: ;
			{
				closeShadowScope__lookups_u3852(c_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
LA473_: ;
			a_1 += ((NI)1);
		} LA16: ;
	}
	(*m_p3).firstMismatch.arg = a_1;
	eqsink___ast_u4583(&(*m_p3).firstMismatch.formal, formal_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqwasMoved___ast_u4571(&formal_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3252(container_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u4574(formal_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(arg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, partialMatch__sigmatch_u5081)(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_u4588(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_u6339)(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_u450(c_p0, candidate_p1, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL), ((NI)-1), (&m_1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		partialMatch__sigmatch_u5081(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_u162((&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_u6350)(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_u805(((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_u77(&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_u77(&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_u3137((&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_u4583(&item_2, s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									eqwasMoved___ast_u4571(&s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									nimZeroMem((void*)(&T17_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
									blitTmp_1 = item_2;
									eqwasMoved___ast_u4571(&item_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									T17_.Field0 = blitTmp_1;
									T17_.Field1 = scopeN_2;
									T17_.Field2 = isLocal_2;
									eqsink___lookups_u775((&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_u989((&seen_1), T20_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
										if (!!(T21_)) goto LA22_;
										it_2 = NIM_NIL;
										eqsink___ast_u4583(&item_1, res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
										eqwasMoved___ast_u4571(&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_u4571(&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_u6127(it_2, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL), (&pm_1));
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
											if (!(T28_)) goto LA29_;
											T28_ = nameFits__sigmatch_u6320(c_p0, it_2, n_p1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
LA29_: ;
											T27_ = T28_;
											if (!(T27_)) goto LA30_;
											T27_ = argsFit__sigmatch_u6339(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_u6235(it_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
											T34_ = NIM_NIL;
											T34_ = symToSuggest__sigmatch_u5557((*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_u11905(T34_); goto LA24_;}
											add__sigmatch_u6266((&(*outputs_p3)), T34_);
										}
LA31_: ;
										{
											LA24_:;
										}
										{
											oldNimErrFin24_ = *nimErr_; *nimErr_ = NIM_FALSE;
											eqdestroy___ast_u4574(it_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
											*nimErr_ = oldNimErrFin24_;
										}
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									}
LA22_: ;
									T37_ = NIM_NIL;
									T37_ = nextIter__astalgo_u3121((&it_1), (*scope_1).symbols);
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T37_); goto LA14_;}
									eqsink___ast_u4583(&s_1, T37_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
								} LA16: ;
							}
							{
								LA14_:;
							}
							{
								oldNimErrFin14_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4574(s_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								eqdestroy___ast_u4574(item_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								*nimErr_ = oldNimErrFin14_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						}
						eqcopy___lookups_u77(&current_1, (*current_1).parent);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					} LA8: ;
				}
				{
					LA6_:;
				}
				{
					oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___lookups_u74(current_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					eqdestroy___lookups_u74(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_u3008((*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_u21632((&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_u4583(&s_2, r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
										eqwasMoved___ast_u4571(&r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
										nimZeroMem((void*)(&T58_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
										blitTmp_2 = s_2;
										eqwasMoved___ast_u4571(&s_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
										T58_.Field0 = blitTmp_2;
										T58_.Field1 = scopeN_2;
										T58_.Field2 = isLocal_2;
										eqsink___lookups_u775((&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_u989((&seen_1), T61_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
											if (!!(T62_)) goto LA63_;
											it_3 = NIM_NIL;
											eqsink___ast_u4583(&item_1, res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
											eqwasMoved___ast_u4571(&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_u4571(&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_u6127(it_3, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL), (&pm_2));
												if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
												if (!(T69_)) goto LA70_;
												T69_ = nameFits__sigmatch_u6320(c_p0, it_3, n_p1);
												if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
LA70_: ;
												T68_ = T69_;
												if (!(T68_)) goto LA71_;
												T68_ = argsFit__sigmatch_u6339(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_u6235(it_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA65_;
												T75_ = NIM_NIL;
												T75_ = symToSuggest__sigmatch_u5557((*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_u11905(T75_); goto LA65_;}
												add__sigmatch_u6266((&(*outputs_p3)), T75_);
											}
LA72_: ;
											{
												LA65_:;
											}
											{
												oldNimErrFin65_ = *nimErr_; *nimErr_ = NIM_FALSE;
												eqdestroy___ast_u4574(it_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
												*nimErr_ = oldNimErrFin65_;
											}
											if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
										}
LA63_: ;
										T78_ = NIM_NIL;
										T78_ = nextRodIter__icZic_u21968((&rodIt_1), (&(*(*c_p0).graph).packed_0));
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T78_); goto LA53_;}
										eqsink___ast_u4583(&r_1, T78_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
									} LA57: ;
								}
								{
									LA53_:;
								}
								{
									oldNimErrFin53_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4574(r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
									eqdestroy___modulegraphs_u3288((&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_u4851((&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_u4577(&s_2, (*s_3));
												if (NIM_UNLIKELY(*nimErr_)) goto LA83_;
												nimZeroMem((void*)(&T95_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
												blitTmp_3 = s_2;
												eqwasMoved___ast_u4571(&s_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA83_;
												T95_.Field0 = blitTmp_3;
												T95_.Field1 = scopeN_2;
												T95_.Field2 = isLocal_2;
												eqsink___lookups_u775((&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_u989((&seen_1), T98_);
													if (NIM_UNLIKELY(*nimErr_)) goto LA83_;
													if (!!(T99_)) goto LA100_;
													it_4 = NIM_NIL;
													eqsink___ast_u4583(&item_1, res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
													eqwasMoved___ast_u4571(&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_u4571(&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_u6127(it_4, ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL), (&pm_3));
														if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
														if (!(T106_)) goto LA107_;
														T106_ = nameFits__sigmatch_u6320(c_p0, it_4, n_p1);
														if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
LA107_: ;
														T105_ = T106_;
														if (!(T105_)) goto LA108_;
														T105_ = argsFit__sigmatch_u6339(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_u6235(it_4);
														if (NIM_UNLIKELY(*nimErr_)) goto LA102_;
														T112_ = NIM_NIL;
														T112_ = symToSuggest__sigmatch_u5557((*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_u11905(T112_); goto LA102_;}
														add__sigmatch_u6266((&(*outputs_p3)), T112_);
													}
LA109_: ;
													{
														LA102_:;
													}
													{
														oldNimErrFin102_ = *nimErr_; *nimErr_ = NIM_FALSE;
														eqdestroy___ast_u4574(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_u4848(colontmp_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
										*nimErr_ = oldNimErrFin83_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
								}
							}
LA48_: ;
							{
								LA47_:;
							}
							{
								oldNimErrFin47_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4574(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_u766(res_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				*nimErr_ = oldNimErrFin4_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		}
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___lookups_u952(seen_1);
			eqdestroy___ast_u4574(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_u6369)(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_u805(((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_u77(&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_u77(&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_u3137((&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_u4583(&item_2, s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									eqwasMoved___ast_u4571(&s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									nimZeroMem((void*)(&T17_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
									blitTmp_1 = item_2;
									eqwasMoved___ast_u4571(&item_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									T17_.Field0 = blitTmp_1;
									T17_.Field1 = scopeN_2;
									T17_.Field2 = isLocal_2;
									eqsink___lookups_u775((&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_u989((&seen_1), T20_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
										if (!!(T21_)) goto LA22_;
										it_2 = NIM_NIL;
										eqsink___ast_u4583(&item_1, res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
										eqwasMoved___ast_u4571(&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_u4571(&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_u6320(c_p0, it_2, n_p1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
											if (!T27_) goto LA28_;
											T30_ = (NI)0;
											T30_ = getQuality__sigmatch_u6235(it_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
											T31_ = NIM_NIL;
											T31_ = symToSuggest__sigmatch_u5557((*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_u11905(T31_); goto LA24_;}
											add__sigmatch_u6266((&(*outputs_p2)), T31_);
										}
LA28_: ;
										{
											LA24_:;
										}
										{
											oldNimErrFin24_ = *nimErr_; *nimErr_ = NIM_FALSE;
											eqdestroy___ast_u4574(it_2);
											if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
											*nimErr_ = oldNimErrFin24_;
										}
										if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
									}
LA22_: ;
									T34_ = NIM_NIL;
									T34_ = nextIter__astalgo_u3121((&it_1), (*scope_1).symbols);
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T34_); goto LA14_;}
									eqsink___ast_u4583(&s_1, T34_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
								} LA16: ;
							}
							{
								LA14_:;
							}
							{
								oldNimErrFin14_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4574(s_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								eqdestroy___ast_u4574(item_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
								*nimErr_ = oldNimErrFin14_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						}
						eqcopy___lookups_u77(&current_1, (*current_1).parent);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					} LA8: ;
				}
				{
					LA6_:;
				}
				{
					oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___lookups_u74(current_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					eqdestroy___lookups_u74(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_u3008((*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_u21632((&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_u4583(&s_2, r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
										eqwasMoved___ast_u4571(&r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
										nimZeroMem((void*)(&T55_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
										blitTmp_2 = s_2;
										eqwasMoved___ast_u4571(&s_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
										T55_.Field0 = blitTmp_2;
										T55_.Field1 = scopeN_2;
										T55_.Field2 = isLocal_2;
										eqsink___lookups_u775((&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_u989((&seen_1), T58_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
											if (!!(T59_)) goto LA60_;
											it_3 = NIM_NIL;
											eqsink___ast_u4583(&item_1, res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
											eqwasMoved___ast_u4571(&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_u4571(&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_u6320(c_p0, it_3, n_p1);
												if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
												if (!T65_) goto LA66_;
												T68_ = (NI)0;
												T68_ = getQuality__sigmatch_u6235(it_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
												T69_ = NIM_NIL;
												T69_ = symToSuggest__sigmatch_u5557((*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_u11905(T69_); goto LA62_;}
												add__sigmatch_u6266((&(*outputs_p2)), T69_);
											}
LA66_: ;
											{
												LA62_:;
											}
											{
												oldNimErrFin62_ = *nimErr_; *nimErr_ = NIM_FALSE;
												eqdestroy___ast_u4574(it_3);
												if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
												*nimErr_ = oldNimErrFin62_;
											}
											if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
										}
LA60_: ;
										T72_ = NIM_NIL;
										T72_ = nextRodIter__icZic_u21968((&rodIt_1), (&(*(*c_p0).graph).packed_0));
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T72_); goto LA50_;}
										eqsink___ast_u4583(&r_1, T72_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA50_;
									} LA54: ;
								}
								{
									LA50_:;
								}
								{
									oldNimErrFin50_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4574(r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA44_;
									eqdestroy___modulegraphs_u3288((&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_u4851((&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_u4577(&s_2, (*s_3));
												if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
												nimZeroMem((void*)(&T89_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
												blitTmp_3 = s_2;
												eqwasMoved___ast_u4571(&s_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
												T89_.Field0 = blitTmp_3;
												T89_.Field1 = scopeN_2;
												T89_.Field2 = isLocal_2;
												eqsink___lookups_u775((&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_u989((&seen_1), T92_);
													if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
													if (!!(T93_)) goto LA94_;
													it_4 = NIM_NIL;
													eqsink___ast_u4583(&item_1, res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA96_;
													eqwasMoved___ast_u4571(&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_u4571(&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_u6320(c_p0, it_4, n_p1);
														if (NIM_UNLIKELY(*nimErr_)) goto LA96_;
														if (!T99_) goto LA100_;
														T102_ = (NI)0;
														T102_ = getQuality__sigmatch_u6235(it_4);
														if (NIM_UNLIKELY(*nimErr_)) goto LA96_;
														T103_ = NIM_NIL;
														T103_ = symToSuggest__sigmatch_u5557((*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_u11905(T103_); goto LA96_;}
														add__sigmatch_u6266((&(*outputs_p2)), T103_);
													}
LA100_: ;
													{
														LA96_:;
													}
													{
														oldNimErrFin96_ = *nimErr_; *nimErr_ = NIM_FALSE;
														eqdestroy___ast_u4574(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_u4848(colontmp_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA44_;
										*nimErr_ = oldNimErrFin77_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA44_;
								}
							}
LA45_: ;
							{
								LA44_:;
							}
							{
								oldNimErrFin44_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4574(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_u766(res_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				*nimErr_ = oldNimErrFin4_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		}
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___lookups_u952(seen_1);
			eqdestroy___ast_u4574(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_u5396)(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_u1563((*(*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_u5748)(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_u346((*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_u2691(colontmpD__5);
	eqdestroy___system_u2691(colontmpD__4);
	eqdestroy___system_u2691(colontmpD__3);
	eqdestroy___system_u2691(colontmpD__2);
	eqdestroy___system_u2691(colontmpD_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___sigmatch_u5754)(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_u5748((*suggest_p0).inlayHintInfo);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA3_: ;
	{
		result = dollar___options_u4316((*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_127);
			}
			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_129);
			}
			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_u2691(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_u2691(colontmpD__3);
			eqdestroy___system_u2691(colontmpD__2);
			eqdestroy___system_u2691(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_131);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				prepareAdd((&result), colontmpD__8.len + 0);
appendString((&result), colontmpD__8);
				eqdestroy___system_u2691(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_u2691(colontmpD__10);
				}
LA36_: ;
				eqdestroy___system_u2691(colontmpD__9);
			}
LA32_: ;
			eqdestroy___system_u2691(colontmpD__7);
			eqdestroy___system_u2691(colontmpD__6);
			eqdestroy___system_u2691(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_u2691(colontmpD__12);
			eqdestroy___system_u2691(colontmpD__11);
		}
LA42_: ;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, produceOutput__sigmatch_u5890)(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_124) (cmpSuggestions__sigmatch_u5396)); T5_.ClE_0 = NIM_NIL;
		sort__sigmatch_u5899(((*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_u11860((&(*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_125)((*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_u5754((*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_u2691(colontmpD_);
					}
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA23: ;
			}
		}
	}
LA11_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestExprNoCheck__sigmatch_u7648)(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_u11761(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_u7396(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_u6736(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			x_1 = safeSemExpr__sigmatch_u7390(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_u3255(&x_1, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			}
LA22_: ;
			add__ast_u3215(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_u3190(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_u7390(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_u3252(x_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
							goto LA24;
						}
LA32_: ;
						add__ast_u3215(a_1, x_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA27_;
						i_2 += ((NI)1);
						{
							LA27_:;
						}
						{
							oldNimErrFin27_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(x_2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
							*nimErr_ = oldNimErrFin27_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					} LA26: ;
				}
			} LA24: ;
			suggestCall__sigmatch_u6350(c_p0, a_1, n_p1, (&outputs_1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			{
				LA17_:;
			}
			{
				oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(x_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3252(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_u7390(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_u3255(&x_3, n_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			}
LA46_: ;
			suggestVar__sigmatch_u6369(c_p0, x_3, (&outputs_1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
			{
				LA41_:;
			}
			{
				oldNimErrFin41_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(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_u5890((&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_u11761(outputs_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestExpr__sigmatch_u7722)(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_u1107((*(*(*c_p0).graph).config).m.trackPos, (*n_p1).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		suggestExprNoCheck__sigmatch_u7648(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA4_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, matches__sigmatch_u5087)(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_u3255(&(*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_u4588(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_u3190((*(*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_u4577(&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_u4535(c_p0, (*n_p1).info);
							if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
							container_1 = newNodeIT__ast_u4112(cnKind_1, (*n_p1).info, colontmpD__3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
							colontmpD__4 = implicitConv__sigmatch_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), (*formal_1).typ, container_1, (&(*m_p3)), c_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
							setSon__sigmatch_u4432((*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_u3252(colontmpD__4);
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								eqdestroy___ast_u3378(colontmpD__3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								eqdestroy___ast_u3252(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_u4583(&(*m_p3).firstMismatch.formal, formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
							eqwasMoved___ast_u4571(&formal_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
							eqdestroy___ast_u4574(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_u2694((&colontmpD__5), (*(*(*m_p3).calleeSym).name).s);
								T49_ = colontmpD__5;
							}
							goto LA50_;
LA52_: ;
							{
								colontmpD__6 = TM__EV5hHJmjIY9cla9b9be7fSVJQ_132;
								T49_ = colontmpD__6;
							}
LA50_: ;
							pushInfoContext__msgs_u569((*(*c_p0).graph).config, (*(*m_p3).call).info, T49_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
							typeMismatch__types_u4034((*(*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_u4564(c_p0);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T55_); goto LA48_;}
							eqsink___ast_u3387(&(*(*formal_1).ast).typField, T55_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
							{
								LA48_:;
							}
							{
								eqdestroy___system_u2691(colontmpD__6);
								eqdestroy___system_u2691(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_u6891((*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_u3600(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58), (*formal_1).typ, defaultValue_1, (&(*m_p3)), c_p0);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T66_); goto LA43_;}
							eqsink___ast_u3261(&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_u711((&(*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_u249(m_p3, (*formal_1).typ, (*defaultValue_1).typField);
								if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
							}
LA76_: ;
							eqdestroy___ast_u3378(existing_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
						}
LA70_: ;
						(*defaultValue_1).flags |= ((NU32)1)<<(((((tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw)18))) & 31);
						setSon__sigmatch_u4432((*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_u3252(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_u4574(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_u5502((*t_1));
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						if (!(((NI)1) < T92_)) goto LA93_;
						newSons__ast_u6115((*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_u594)(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_u3190(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_137);
					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_u2691(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_139;
	}
	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_u673)(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_133;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_u3190(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = 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_u3255(&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_135);
					{
						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_u3252(T18_); goto LA9_;}
						eqsink___ast_u3261(&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_u3255(&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_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T23_); goto LA9_;}
							eqsink___ast_u3387(&(*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_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T29_); goto LA9_;}
								eqsink___ast_u3387(&(*argX60gensym90__1).typField, T29_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
							}
LA27_: ;
							eqcopy___ast_u3381(&(*(*n_p1)._kind_6.sons.p->data[i_1]).typField, (*argX60gensym90__1).typField);
							if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
							eqcopy___ast_u3255(&(*(*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_u2691(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_u3252(T40_); goto LA4_;}
						eqsink___ast_u3261(&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_u3255(&argX60gensym90__1, (*n_p1)._kind_6.sons.p->data[i_1]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
							T45_ = NIM_NIL;
							T45_ = newTypeS__semdata_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T45_); goto LA4_;}
							eqsink___ast_u3387(&(*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_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T51_); goto LA4_;}
								eqsink___ast_u3387(&(*argX60gensym90__1).typField, T51_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
							}
LA49_: ;
							eqcopy___ast_u3255(&(*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_u2691(colontmpD_);
					eqdestroy___ast_u3252(argX60gensym90__1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA56_: ;
				colontmpD_ = argTypeToString__sigmatch_u594(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_u3190(n_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
					if (!!((i_1 == (NI)(T60_ - ((NI)1))))) goto LA61_;
					prepareAdd((&result), 2);
appendString((&result), TM__EV5hHJmjIY9cla9b9be7fSVJQ_140);
				}
LA61_: ;
				i_2 += ((NI)1);
				{
					LA4_:;
				}
				{
					oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___system_u2691(colontmpD_);
					eqdestroy___ast_u3252(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_u171)(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).iteratorPreference = (*src_p1).iteratorPreference;
	(*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_u3288((&(*(*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_u3469((&(*(*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_u3270((&(*(*dest_p0).call)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).call, ((NI)8));
	}
LA19_: ;
	(*dest_p0).call = (*src_p1).call;
	(*dest_p0).bindings.topLayer.counter = (*src_p1).bindings.topLayer.counter;
	if ((*dest_p0).bindings.topLayer.data.p != (*src_p1).bindings.topLayer.data.p) {	eqdestroy___layeredtable_u168((*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;
	{
		NIM_BOOL T23_;
		T23_ = (NIM_BOOL)0;
		T23_ = nimDecRefIsLastDyn((*dest_p0).bindings.nextLayer);
		if (!T23_) goto LA24_;
		eqdestroy___layeredtable_u233((&(*(*dest_p0).bindings.nextLayer)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).bindings.nextLayer, ((NI)8));
	}
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_u3311((*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_u5509((*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_u3469((&(*(*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_u474((*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_u6564)(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_u132)(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_u618)(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_141;
	eqcopy___ast_u3255(&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_142);
		{
			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_u3252(T15_); goto LA6_;}
			eqsink___ast_u3261(&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_u3255(&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_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T20_); goto LA6_;}
				eqsink___ast_u3387(&(*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_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T26_); goto LA6_;}
					eqsink___ast_u3387(&(*argX60gensym60__1).typField, T26_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				}
LA24_: ;
				eqcopy___ast_u3381(&(*(*n_p1)._kind_6.sons.p->data[i_p2]).typField, (*argX60gensym60__1).typField);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				eqcopy___ast_u3255(&(*(*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_u2691(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_u3252(T37_); goto LA1_;}
			eqsink___ast_u3261(&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_u3255(&argX60gensym60__1, (*n_p1)._kind_6.sons.p->data[i_p2]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				T42_ = NIM_NIL;
				T42_ = newTypeS__semdata_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T42_); goto LA1_;}
				eqsink___ast_u3387(&(*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_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63), c_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T48_); goto LA1_;}
					eqsink___ast_u3387(&(*argX60gensym60__1).typField, T48_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA46_: ;
				eqcopy___ast_u3255(&(*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_u2691(colontmpD_);
		eqdestroy___ast_u3252(argX60gensym60__1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA53_: ;
	colontmpD_ = argTypeToString__sigmatch_u594(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_u2691(colontmpD_);
		eqdestroy___ast_u3252(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_u2755)(tySequence__9bnh9aVmYtKU19btQYqjGktpw dest_p0) {
	NI colontmp_;
	colontmp_ = ((NI)0);
	{
		while (1) {
			NI T3_;
			T3_ = dest_p0.len;
			if (!(colontmp_ < T3_)) goto LA2;
			eqdestroy___system_u5509(dest_p0.p->data[colontmp_].diagnostics);
			{
				NIM_BOOL T6_;
				T6_ = (NIM_BOOL)0;
				T6_ = nimDecRefIsLastDyn(dest_p0.p->data[colontmp_].firstMismatch.formal);
				if (!T6_) goto LA7_;
				eqdestroy___ast_u3469((&(*dest_p0.p->data[colontmp_].firstMismatch.formal)));
				nimRawDispose(dest_p0.p->data[colontmp_].firstMismatch.formal, ((NI)8));
			}
LA7_: ;
			{
				NIM_BOOL T11_;
				T11_ = (NIM_BOOL)0;
				T11_ = nimDecRefIsLastDyn(dest_p0.p->data[colontmp_].sym);
				if (!T11_) goto LA12_;
				eqdestroy___ast_u3469((&(*dest_p0.p->data[colontmp_].sym)));
				nimRawDispose(dest_p0.p->data[colontmp_].sym, ((NI)8));
			}
LA12_: ;
			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_u159)(tyObject_TCandidate__GUvux0whxojdIJ7lQ53D0g* dest_p0) {
	(*dest_p0).c = 0;
	(*dest_p0).exactMatches = 0;
	(*dest_p0).iteratorPreference = 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.counter = 0;
	(*dest_p0).bindings.topLayer.data.len = 0; (*dest_p0).bindings.topLayer.data.p = NIM_NIL;
	(*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_u3580)(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_u456(c_p0, f_p1, (&m_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_ = 0;
	result = typeRel__sigmatch_u253((&m_1), f_p1, a_p2, T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___sigmatch_u162((&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_u7748)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	suggestExpr__sigmatch_u7722(c_p0, n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, findImportStmtOnLine__sigmatch_u7626)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, NU16 line_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL oldNimErrFin10_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)116) || (*n_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)120));
		if (!(T3_)) goto LA4_;
		T3_ = ((*n_p0).info.line == line_p1);
LA4_: ;
		if (!T3_) goto LA5_;
		eqcopy___ast_u3255(&result, n_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA5_: ;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = safeLen__ast_u3197(n_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI)0);
		{
			while (1) {
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* res_1;
				if (!(i_2 < colontmp_)) goto LA9;
				res_1 = NIM_NIL;
				i_1 = i_2;
				res_1 = findImportStmtOnLine__sigmatch_u7626((*n_p0)._kind_6.sons.p->data[i_1], line_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
				{
					if (!!((res_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA13_;
					result = res_1;
					eqwasMoved___ast_u3249(&res_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
					eqdestroy___ast_u3252(res_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA13_: ;
				i_2 += ((NI)1);
				{
					LA10_:;
				}
				{
					oldNimErrFin10_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3252(res_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					*nimErr_ = oldNimErrFin10_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA9: ;
		}
	}
	result = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u8898)(tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg* dest_p0) {
	eqdestroy___modulegraphs_u11761((*dest_p0).suggestions2);
	eqdestroy___system_u2691((*dest_p0).partialPath1);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0).n0);
		if (!T3_) goto LA4_;
		eqdestroy___ast_u3270((&(*(*dest_p0).n0)));
		nimRawDispose((*dest_p0).n0, ((NI)8));
	}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__sigmatch_u8972)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	eqdestroy___sigmatch_u8898((&(*((tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg*) (dest_p0)))));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, extractImportContextFromAst__sigmatch_u7426)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, NI cursorCol_p1, tyObject_ImportContext__lQXKzA0w9aSWy9bwygXJvlHQ* Result) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_ImportContext__lQXKzA0w9aSWy9bwygXJvlHQ));
	{
		if (!!(((*n_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)116)))) goto LA3_;
		goto BeforeRet_;
	}
LA3_: ;
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* child_1;
		child_1 = NIM_NIL;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_u3197(n_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA8;
					i_1 = i_2;
					eqcopy___ast_u3255(&child_1, (*n_p0)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					switch ((*child_1).kind) {
					case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2):
					{
						{
							if (!(((NI) ((*child_1).info.col)) <= cursorCol_p1)) goto LA12_;
							eqsink___system_u2700((&(*Result).baseDir), TM__EV5hHJmjIY9cla9b9be7fSVJQ_145);
							eqcopy___system_u2694((&(*Result).partialModule), (*(*child_1)._kind_5.ident).s);
							(*Result).isMultiImport = NIM_FALSE;
						}
LA12_: ;
					}
					break;
					case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)29):
					{
						{
							NIM_BOOL T17_;
							NIM_BOOL T18_;
							NI T19_;
							NimStringV2 dir_1;
							T17_ = (NIM_BOOL)0;
							T18_ = (NIM_BOOL)0;
							T19_ = (NI)0;
							T19_ = len__ast_u3190(child_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T18_ = (T19_ == ((NI)3));
							if (!(T18_)) goto LA20_;
							T18_ = ((*(*child_1)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2));
LA20_: ;
							T17_ = T18_;
							if (!(T17_)) goto LA21_;
							T17_ = eqStrings((*(*(*child_1)._kind_6.sons.p->data[((NI)0)])._kind_5.ident).s, TM__EV5hHJmjIY9cla9b9be7fSVJQ_147);
LA21_: ;
							if (!T17_) goto LA22_;
							dir_1.len = 0; dir_1.p = NIM_NIL;
							eqcopy___system_u2694((&dir_1), (*(*(*child_1)._kind_6.sons.p->data[((NI)1)])._kind_5.ident).s);
							{
								if (!((*(*child_1)._kind_6.sons.p->data[((NI)2)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)41))) goto LA26_;
								eqsink___system_u2700((&(*Result).baseDir), dir_1);
								eqwasMoved___system_u2688((&dir_1));
								(*Result).isMultiImport = NIM_TRUE;
								{
									tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* modNode_1;
									tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** colontmp__2;
									modNode_1 = NIM_NIL;
									modNode_1 = 0;
									colontmp__2 = (tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**)0;
									colontmp__2 = &(*child_1)._kind_6.sons.p->data[((NI)2)];
									{
										NI i_3;
										NI colontmp__3;
										NI i_4;
										i_3 = (NI)0;
										colontmp__3 = (NI)0;
										colontmp__3 = safeLen__ast_u3197((*colontmp__2));
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										i_4 = ((NI)0);
										{
											while (1) {
												if (!(i_4 < colontmp__3)) goto LA31;
												i_3 = i_4;
												eqcopy___ast_u3255(&modNode_1, (*(*colontmp__2))._kind_6.sons.p->data[i_3]);
												if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
												{
													NIM_BOOL T34_;
													T34_ = (NIM_BOOL)0;
													T34_ = ((*modNode_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2));
													if (!(T34_)) goto LA35_;
													T34_ = (((NI) ((*modNode_1).info.col)) <= cursorCol_p1);
LA35_: ;
													if (!T34_) goto LA36_;
													eqcopy___system_u2694((&(*Result).partialModule), (*(*modNode_1)._kind_5.ident).s);
												}
LA36_: ;
												i_4 += ((NI)1);
											} LA31: ;
										}
									}
									eqdestroy___ast_u3252(modNode_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
							}
							goto LA24_;
LA26_: ;
							{
								if (!((*(*child_1)._kind_6.sons.p->data[((NI)2)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2))) goto LA39_;
								{
									if (!(((NI) ((*(*child_1)._kind_6.sons.p->data[((NI)2)]).info.col)) <= cursorCol_p1)) goto LA43_;
									eqsink___system_u2700((&(*Result).baseDir), dir_1);
									eqwasMoved___system_u2688((&dir_1));
									eqcopy___system_u2694((&(*Result).partialModule), (*(*(*child_1)._kind_6.sons.p->data[((NI)2)])._kind_5.ident).s);
									(*Result).isMultiImport = NIM_FALSE;
								}
LA43_: ;
							}
							goto LA24_;
LA39_: ;
LA24_: ;
							eqdestroy___system_u2691(dir_1);
						}
LA22_: ;
					}
					break;
					default:
					{
					}
					break;
					}
					i_2 += ((NI)1);
				} LA8: ;
			}
		}
		eqdestroy___ast_u3252(child_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u9073)(tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg* dest_p0) {
	eqdestroy___system_u2691((*dest_p0).partialPath0);
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__sigmatch_u9143)(void* dest_p0) {
	eqdestroy___sigmatch_u9073((&(*((tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg*) (dest_p0)))));
}
static N_INLINE(NI, find__stdZprivateZospaths2_u388)(NIM_CHAR* a_p0, NI a_p0Len_0, NIM_CHAR item_p1) {
	NI result;
{	result = ((NI)0);
	{
		NIM_CHAR i_1;
		NI i_2;
		i_1 = (NIM_CHAR)0;
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < a_p0Len_0)) goto LA3;
				i_1 = a_p0[i_2];
				{
					if (!((NU8)(i_1) == (NU8)(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__stdZprivateZospaths2_u383)(NIM_CHAR* a_p0, NI a_p0Len_0, NIM_CHAR item_p1) {
	NIM_BOOL result;
	NI T1_;
{	T1_ = (NI)0;
	T1_ = find__stdZprivateZospaths2_u388(a_p0, a_p0Len_0, item_p1);
	result = (((NI)0) <= T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s_p0) {
	NCSTRING result;
	{
		if (!(s_p0.len == ((NI)0))) goto LA3_;
		result = "";
	}
	goto LA1_;
LA3_: ;
	{
		result = ((NCSTRING) ((*s_p0.p).data));
	}
LA1_: ;
	return result;
}
static N_INLINE(NimStringV2, slash___stdZprivateZospaths2_u91)(NimStringV2 head_p0, NimStringV2 tail_p1) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = nosjoinPath(head_p0, tail_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addModulesFromDir__sigmatch_u7492)(NimStringV2 dir_p0, NimStringV2 file_p1, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result_p2) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nosdirExists(dir_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		{
			NimStringV2 path_1;
			tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ kind_1;
			DIR* d_1;
			path_1.len = 0; path_1.p = NIM_NIL;
			kind_1 = (tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)0;
			d_1 = opendir(nimToCStringConv(dir_p0));
			{
				if (!(d_1 == ((DIR*) NIM_NIL))) goto LA10_;
				{
					NI32 T16_;
					if (!NIM_FALSE) goto LA14_;
					T16_ = (NI32)0;
					T16_ = osLastError__stdZoserrors_u122();
					if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
					raiseOSError__stdZoserrors_u119(T16_, dir_p0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
				}
LA14_: ;
			}
			goto LA8_;
LA10_: ;
			{
				{
					while (1) {
						{
							NimStringV2 y_1;
							struct dirent* x_1;
							y_1.len = 0; y_1.p = NIM_NIL;
							x_1 = readdir(d_1);
							{
								if (!(x_1 == ((struct dirent*) NIM_NIL))) goto LA25_;
								eqdestroy___system_u2691(y_1);
								goto LA19;
							}
LA25_: ;
							y_1 = cstrToNimstr(((NCSTRING) ((*x_1).d_name)));
							{
								NIM_BOOL T29_;
								NimStringV2 path_2;
								struct stat s_1;
								tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ k_1;
								T29_ = (NIM_BOOL)0;
								T29_ = !(eqStrings(y_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_151));
								if (!(T29_)) goto LA30_;
								T29_ = !(eqStrings(y_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_153));
LA30_: ;
								if (!T29_) goto LA31_;
								path_2.len = 0; path_2.p = NIM_NIL;
								nimZeroMem((void*)(&s_1), sizeof(struct stat));
								path_2 = slash___stdZprivateZospaths2_u91(dir_p0, y_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
								{
									if (!NIM_TRUE) goto LA36_;
									eqcopy___system_u2694((&y_1), path_2);
								}
LA36_: ;
								k_1 = ((tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)0);
								switch ((*x_1).d_type) {
								case ((NI8)4):
								{
									k_1 = ((tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)2);
								}
								break;
								case ((NI8)10):
								{
									NIM_BOOL isSpecialX60gensym19__1;
									tyTuple__wjbnfGBIEcH6aaevyJWrgw tmpTupleAsgn;
									isSpecialX60gensym19__1 = (NIM_BOOL)0;
									tmpTupleAsgn = getSymlinkFileKind__stdZprivateZoscommon_u20(path_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
									k_1 = tmpTupleAsgn.Field0;
									isSpecialX60gensym19__1 = tmpTupleAsgn.Field1;
									{
										NIM_BOOL T42_;
										T42_ = (NIM_BOOL)0;
										T42_ = NIM_FALSE;
										if (!(T42_)) goto LA43_;
										T42_ = isSpecialX60gensym19__1;
LA43_: ;
										if (!T42_) goto LA44_;
										eqdestroy___system_u2691(path_2);
										eqdestroy___system_u2691(y_1);
										goto LA21;
									}
LA44_: ;
								}
								break;
								case ((NI8)0):
								{
									{
										int T49_;
										T49_ = (int)0;
										T49_ = lstat(nimToCStringConv(path_2), (&s_1));
										if (!(T49_ < ((NI32)0))) goto LA50_;
										eqdestroy___system_u2691(path_2);
										eqdestroy___system_u2691(y_1);
										goto LA21;
									}
									goto LA47_;
LA50_: ;
									{
										NIM_BOOL T53_;
										T53_ = (NIM_BOOL)0;
										T53_ = S_ISDIR(s_1.st_mode);
										if (!T53_) goto LA54_;
										k_1 = ((tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)2);
									}
									goto LA47_;
LA54_: ;
									{
										NIM_BOOL T57_;
										NIM_BOOL isSpecialX60gensym21__1;
										tyTuple__wjbnfGBIEcH6aaevyJWrgw tmpTupleAsgn_2;
										T57_ = (NIM_BOOL)0;
										T57_ = S_ISLNK(s_1.st_mode);
										if (!T57_) goto LA58_;
										isSpecialX60gensym21__1 = (NIM_BOOL)0;
										tmpTupleAsgn_2 = getSymlinkFileKind__stdZprivateZoscommon_u20(path_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
										k_1 = tmpTupleAsgn_2.Field0;
										isSpecialX60gensym21__1 = tmpTupleAsgn_2.Field1;
										{
											NIM_BOOL T62_;
											T62_ = (NIM_BOOL)0;
											T62_ = NIM_FALSE;
											if (!(T62_)) goto LA63_;
											T62_ = isSpecialX60gensym21__1;
LA63_: ;
											if (!T62_) goto LA64_;
											eqdestroy___system_u2691(path_2);
											eqdestroy___system_u2691(y_1);
											goto LA21;
										}
LA64_: ;
									}
									goto LA47_;
LA58_: ;
									{
										NIM_BOOL T67_;
										NIM_BOOL T69_;
										T67_ = (NIM_BOOL)0;
										T67_ = NIM_FALSE;
										if (!(T67_)) goto LA68_;
										T69_ = (NIM_BOOL)0;
										T69_ = S_ISREG(s_1.st_mode);
										T67_ = !(T69_);
LA68_: ;
										if (!T67_) goto LA70_;
										eqdestroy___system_u2691(path_2);
										eqdestroy___system_u2691(y_1);
										goto LA21;
									}
									goto LA47_;
LA70_: ;
LA47_: ;
								}
								break;
								default:
								{
									{
										NIM_BOOL T75_;
										T75_ = (NIM_BOOL)0;
										T75_ = NIM_FALSE;
										if (!(T75_)) goto LA76_;
										T75_ = !(((*x_1).d_type == ((NI8)8)));
LA76_: ;
										if (!T75_) goto LA77_;
										eqdestroy___system_u2691(path_2);
										eqdestroy___system_u2691(y_1);
										goto LA21;
									}
									goto LA73_;
LA77_: ;
									{
									}
LA73_: ;
								}
								break;
								}
								kind_1 = k_1;
								eqsink___system_u2700((&path_1), y_1);
								eqwasMoved___system_u2688((&y_1));
								{
									tyTuple__7q7q3E6Oj24ZNVJb9aonhAg tmpTuple_1;
									NimStringV2 name_1;
									NimStringV2 ext_1;
									if (!(kind_1 == ((tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)0) || kind_1 == ((tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)2))) goto LA82_;
									nimZeroMem((void*)(&tmpTuple_1), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
									name_1.len = 0; name_1.p = NIM_NIL;
									ext_1.len = 0; ext_1.p = NIM_NIL;
									nossplitFile(path_1, (&tmpTuple_1));
									if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
									name_1 = tmpTuple_1.Field1;
									eqwasMoved___system_u2688((&tmpTuple_1.Field1));
									ext_1 = tmpTuple_1.Field2;
									eqwasMoved___system_u2688((&tmpTuple_1.Field2));
									{
										if (!(kind_1 == ((tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)0))) goto LA86_;
										{
											NIM_BOOL T90_;
											NimStringV2 blitTmp_1;
											T90_ = (NIM_BOOL)0;
											T90_ = eqStrings(ext_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_155);
											if (!(T90_)) goto LA91_;
											T90_ = nsuStartsWith(name_1, file_p1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
LA91_: ;
											if (!T90_) goto LA92_;
											blitTmp_1 = name_1;
											eqwasMoved___system_u2688((&name_1));
											add__stdZenumutils_u71((&(*result_p2)), blitTmp_1);
										}
LA92_: ;
									}
LA86_: ;
									eqdestroy___system_u2691(ext_1);
									eqdestroy___system_u2691(name_1);
									eqdestroy___pureZos_u236((&tmpTuple_1));
								}
LA82_: ;
								{
									LA33_:;
								}
								{
									eqdestroy___system_u2691(path_2);
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
							}
LA31_: ;
							{
								LA22_:;
							}
							{
								eqdestroy___system_u2691(y_1);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
						} LA21: ;
					}
				} LA19: ;
				{
					LA18_:;
				}
				{
					int T100_;
					T100_ = (int)0;
					T100_ = closedir(d_1);
					(void)(T100_);
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			}
LA8_: ;
			{
				LA7_:;
			}
			{
				eqdestroy___system_u2691(path_1);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
	}
LA4_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_CLOSURE(void, collectImportModulesFromDir__sigmatch_u7513)(NimStringV2 dir_p0, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result_p1, void* ClE_0) {
	tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg* colonenvP__1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colonenvP__1 = (tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg*) ClE_0;
	{
		NimStringV2 path_1;
		tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ kind_1;
		DIR* d_1;
		path_1.len = 0; path_1.p = NIM_NIL;
		kind_1 = (tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)0;
		d_1 = opendir(nimToCStringConv(dir_p0));
		{
			if (!(d_1 == ((DIR*) NIM_NIL))) goto LA5_;
			{
				NI32 T11_;
				if (!NIM_FALSE) goto LA9_;
				T11_ = (NI32)0;
				T11_ = osLastError__stdZoserrors_u122();
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				raiseOSError__stdZoserrors_u119(T11_, dir_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
			}
LA9_: ;
		}
		goto LA3_;
LA5_: ;
		{
			{
				while (1) {
					{
						NimStringV2 y_1;
						struct dirent* x_1;
						y_1.len = 0; y_1.p = NIM_NIL;
						x_1 = readdir(d_1);
						{
							if (!(x_1 == ((struct dirent*) NIM_NIL))) goto LA20_;
							eqdestroy___system_u2691(y_1);
							goto LA14;
						}
LA20_: ;
						y_1 = cstrToNimstr(((NCSTRING) ((*x_1).d_name)));
						{
							NIM_BOOL T24_;
							NimStringV2 path_2;
							struct stat s_1;
							tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ k_1;
							T24_ = (NIM_BOOL)0;
							T24_ = !(eqStrings(y_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_156));
							if (!(T24_)) goto LA25_;
							T24_ = !(eqStrings(y_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_157));
LA25_: ;
							if (!T24_) goto LA26_;
							path_2.len = 0; path_2.p = NIM_NIL;
							nimZeroMem((void*)(&s_1), sizeof(struct stat));
							path_2 = slash___stdZprivateZospaths2_u91(dir_p0, y_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
							{
								if (!NIM_TRUE) goto LA31_;
								eqcopy___system_u2694((&y_1), path_2);
							}
LA31_: ;
							k_1 = ((tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)0);
							switch ((*x_1).d_type) {
							case ((NI8)4):
							{
								k_1 = ((tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)2);
							}
							break;
							case ((NI8)10):
							{
								NIM_BOOL isSpecialX60gensym19__1;
								tyTuple__wjbnfGBIEcH6aaevyJWrgw tmpTupleAsgn;
								isSpecialX60gensym19__1 = (NIM_BOOL)0;
								tmpTupleAsgn = getSymlinkFileKind__stdZprivateZoscommon_u20(path_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
								k_1 = tmpTupleAsgn.Field0;
								isSpecialX60gensym19__1 = tmpTupleAsgn.Field1;
								{
									NIM_BOOL T37_;
									T37_ = (NIM_BOOL)0;
									T37_ = NIM_FALSE;
									if (!(T37_)) goto LA38_;
									T37_ = isSpecialX60gensym19__1;
LA38_: ;
									if (!T37_) goto LA39_;
									eqdestroy___system_u2691(path_2);
									eqdestroy___system_u2691(y_1);
									goto LA16;
								}
LA39_: ;
							}
							break;
							case ((NI8)0):
							{
								{
									int T44_;
									T44_ = (int)0;
									T44_ = lstat(nimToCStringConv(path_2), (&s_1));
									if (!(T44_ < ((NI32)0))) goto LA45_;
									eqdestroy___system_u2691(path_2);
									eqdestroy___system_u2691(y_1);
									goto LA16;
								}
								goto LA42_;
LA45_: ;
								{
									NIM_BOOL T48_;
									T48_ = (NIM_BOOL)0;
									T48_ = S_ISDIR(s_1.st_mode);
									if (!T48_) goto LA49_;
									k_1 = ((tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)2);
								}
								goto LA42_;
LA49_: ;
								{
									NIM_BOOL T52_;
									NIM_BOOL isSpecialX60gensym21__1;
									tyTuple__wjbnfGBIEcH6aaevyJWrgw tmpTupleAsgn_2;
									T52_ = (NIM_BOOL)0;
									T52_ = S_ISLNK(s_1.st_mode);
									if (!T52_) goto LA53_;
									isSpecialX60gensym21__1 = (NIM_BOOL)0;
									tmpTupleAsgn_2 = getSymlinkFileKind__stdZprivateZoscommon_u20(path_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
									k_1 = tmpTupleAsgn_2.Field0;
									isSpecialX60gensym21__1 = tmpTupleAsgn_2.Field1;
									{
										NIM_BOOL T57_;
										T57_ = (NIM_BOOL)0;
										T57_ = NIM_FALSE;
										if (!(T57_)) goto LA58_;
										T57_ = isSpecialX60gensym21__1;
LA58_: ;
										if (!T57_) goto LA59_;
										eqdestroy___system_u2691(path_2);
										eqdestroy___system_u2691(y_1);
										goto LA16;
									}
LA59_: ;
								}
								goto LA42_;
LA53_: ;
								{
									NIM_BOOL T62_;
									NIM_BOOL T64_;
									T62_ = (NIM_BOOL)0;
									T62_ = NIM_FALSE;
									if (!(T62_)) goto LA63_;
									T64_ = (NIM_BOOL)0;
									T64_ = S_ISREG(s_1.st_mode);
									T62_ = !(T64_);
LA63_: ;
									if (!T62_) goto LA65_;
									eqdestroy___system_u2691(path_2);
									eqdestroy___system_u2691(y_1);
									goto LA16;
								}
								goto LA42_;
LA65_: ;
LA42_: ;
							}
							break;
							default:
							{
								{
									NIM_BOOL T70_;
									T70_ = (NIM_BOOL)0;
									T70_ = NIM_FALSE;
									if (!(T70_)) goto LA71_;
									T70_ = !(((*x_1).d_type == ((NI8)8)));
LA71_: ;
									if (!T70_) goto LA72_;
									eqdestroy___system_u2691(path_2);
									eqdestroy___system_u2691(y_1);
									goto LA16;
								}
								goto LA68_;
LA72_: ;
								{
								}
LA68_: ;
							}
							break;
							}
							kind_1 = k_1;
							eqsink___system_u2700((&path_1), y_1);
							eqwasMoved___system_u2688((&y_1));
							{
								tyTuple__7q7q3E6Oj24ZNVJb9aonhAg tmpTuple_1;
								NimStringV2 name_1;
								NimStringV2 ext_1;
								if (!(kind_1 == ((tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)0) || kind_1 == ((tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)2))) goto LA77_;
								nimZeroMem((void*)(&tmpTuple_1), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
								name_1.len = 0; name_1.p = NIM_NIL;
								ext_1.len = 0; ext_1.p = NIM_NIL;
								nossplitFile(path_1, (&tmpTuple_1));
								if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
								name_1 = tmpTuple_1.Field1;
								eqwasMoved___system_u2688((&tmpTuple_1.Field1));
								ext_1 = tmpTuple_1.Field2;
								eqwasMoved___system_u2688((&tmpTuple_1.Field2));
								{
									if (!(kind_1 == ((tyEnum_PathComponent__daMOTwam9cW3AQtl6fxq4sQ)0))) goto LA81_;
									{
										NIM_BOOL T85_;
										NimStringV2 blitTmp_1;
										T85_ = (NIM_BOOL)0;
										T85_ = eqStrings(ext_1, TM__EV5hHJmjIY9cla9b9be7fSVJQ_158);
										if (!(T85_)) goto LA86_;
										T85_ = nsuStartsWith(name_1, (*colonenvP__1).partialPath0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
LA86_: ;
										if (!T85_) goto LA87_;
										blitTmp_1 = name_1;
										eqwasMoved___system_u2688((&name_1));
										add__stdZenumutils_u71((&(*result_p1)), blitTmp_1);
									}
LA87_: ;
								}
								goto LA79_;
LA81_: ;
								{
									{
										NIM_BOOL T92_;
										NimStringV2 blitTmp_2;
										T92_ = (NIM_BOOL)0;
										T92_ = nsuStartsWith(name_1, (*colonenvP__1).partialPath0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
										if (!T92_) goto LA93_;
										blitTmp_2 = name_1;
										eqwasMoved___system_u2688((&name_1));
										add__stdZenumutils_u71((&(*result_p1)), blitTmp_2);
									}
LA93_: ;
								}
LA79_: ;
								eqdestroy___system_u2691(ext_1);
								eqdestroy___system_u2691(name_1);
								eqdestroy___pureZos_u236((&tmpTuple_1));
							}
LA77_: ;
							{
								LA28_:;
							}
							{
								eqdestroy___system_u2691(path_2);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						}
LA26_: ;
						{
							LA17_:;
						}
						{
							eqdestroy___system_u2691(y_1);
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
					} LA16: ;
				}
			} LA14: ;
			{
				LA13_:;
			}
			{
				int T101_;
				T101_ = (int)0;
				T101_ = closedir(d_1);
				(void)(T101_);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		}
LA3_: ;
		{
			LA2_:;
		}
		{
			eqdestroy___system_u2691(path_1);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u9099)(tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicStatic(dest_p0, ((TNimTypeV2*) ((&NTIv2__MVxtsdn59a4GHWQVcqSgR9cg_))));
		if (!T3_) goto LA4_;
		eqdestroy___sigmatch_u9073((&(*dest_p0)));
		nimRawDispose(dest_p0, ((NI)8));
	}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ, findModuleFile__sigmatch_u7476)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, NimStringV2 partialPath_p1) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ result;
	tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg* colonenv__1;
	NimStringV2 currentModuleDir_1;
	NimStringV2 colontmpD_;
	tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	colonenv__1 = NIM_NIL;
	currentModuleDir_1.len = 0; currentModuleDir_1.p = NIM_NIL;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	T2_ = NIM_NIL;
	T2_ = (tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg*) nimNewObj(sizeof(tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg), NIM_ALIGNOF(tyObject_Env_suggestdotnim_findModuleFile___MVxtsdn59a4GHWQVcqSgR9cg));
	(*T2_).Sup.m_type = (&NTIv2__MVxtsdn59a4GHWQVcqSgR9cg_);
	colonenv__1 = T2_;
	eqcopy___system_u2694((&(*colonenv__1).partialPath0), partialPath_p1);
	result.len = 0; result.p = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content*) newSeqPayload(0, sizeof(NimStringV2), NIM_ALIGNOF(NimStringV2));
	colontmpD_ = toFullPath__msgs_u624((*(*c_p0).graph).config, ((NI32) ((*(*c_p0).module).position)));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	currentModuleDir_1 = nosparentDir(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T5_;
		tySequence__sM4lkSb7zS6F7OVMvW9cffQ parts_1;
		NimStringV2 dir_1;
		NimStringV2 file_1;
		NimStringV2 colontmpD__2;
		T5_ = (NIM_BOOL)0;
		T5_ = contains__stdZprivateZospaths2_u383((((*colonenv__1).partialPath0).p) ? ((*colonenv__1).partialPath0.p->data) : NIM_NIL, (*colonenv__1).partialPath0.len, 47);
		if (!T5_) goto LA6_;
		parts_1.len = 0; parts_1.p = NIM_NIL;
		dir_1.len = 0; dir_1.p = NIM_NIL;
		file_1.len = 0; file_1.p = NIM_NIL;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		parts_1 = nsuSplitChar((*colonenv__1).partialPath0, 47, ((NI)-1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		dir_1 = parts_1.p->data[((NI)0)];
		eqwasMoved___system_u2688((&parts_1.p->data[((NI)0)]));
		file_1 = parts_1.p->data[((NI)1)];
		eqwasMoved___system_u2688((&parts_1.p->data[((NI)1)]));
		colontmpD__2 = slash___stdZprivateZospaths2_u91(currentModuleDir_1, dir_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		addModulesFromDir__sigmatch_u7492(colontmpD__2, file_1, (&result));
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		{
			NimStringV2* searchPath_1;
			NI i_1;
			NI L_1;
			NI T10_;
			searchPath_1 = (NimStringV2*)0;
			i_1 = ((NI)0);
			T10_ = (*(*(*c_p0).graph).config).searchPaths.len;
			L_1 = T10_;
			{
				while (1) {
					NimStringV2 searchDir_1;
					if (!(i_1 < L_1)) goto LA12;
					searchDir_1.len = 0; searchDir_1.p = NIM_NIL;
					searchPath_1 = (&(*(*(*c_p0).graph).config).searchPaths.p->data[i_1]);
					searchDir_1 = slash___stdZprivateZospaths2_u91((*searchPath_1), dir_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
					addModulesFromDir__sigmatch_u7492(searchDir_1, file_1, (&result));
					if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
					i_1 += ((NI)1);
					{
						LA13_:;
					}
					{
						eqdestroy___system_u2691(searchDir_1);
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
				} LA12: ;
			}
		}
		{
			LA8_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__2);
			eqdestroy___system_u2691(file_1);
			eqdestroy___system_u2691(dir_1);
			eqdestroy___system_u5509(parts_1);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA3_;
LA6_: ;
	{
		tyProc__fqH7gDb9aREzeNgiBSaidPg T19_;
		nimZeroMem((void*)(&T19_), sizeof(tyProc__fqH7gDb9aREzeNgiBSaidPg));
		T19_.ClP_0 = collectImportModulesFromDir__sigmatch_u7513; T19_.ClE_0 = colonenv__1;
		T19_.ClE_0? T19_.ClP_0(currentModuleDir_1, (&result), T19_.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_159)(T19_.ClP_0))(currentModuleDir_1, (&result));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			NimStringV2* searchPath_2;
			NI i_2;
			NI L_2;
			NI T21_;
			searchPath_2 = (NimStringV2*)0;
			i_2 = ((NI)0);
			T21_ = (*(*(*c_p0).graph).config).searchPaths.len;
			L_2 = T21_;
			{
				while (1) {
					tyProc__fqH7gDb9aREzeNgiBSaidPg T24_;
					if (!(i_2 < L_2)) goto LA23;
					searchPath_2 = (&(*(*(*c_p0).graph).config).searchPaths.p->data[i_2]);
					nimZeroMem((void*)(&T24_), sizeof(tyProc__fqH7gDb9aREzeNgiBSaidPg));
					T24_.ClP_0 = collectImportModulesFromDir__sigmatch_u7513; T24_.ClE_0 = colonenv__1;
					T24_.ClE_0? T24_.ClP_0((*searchPath_2), (&result), T24_.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_160)(T24_.ClP_0))((*searchPath_2), (&result));
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					i_2 += ((NI)1);
				} LA23: ;
			}
		}
	}
LA3_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(colontmpD_);
		eqdestroy___system_u2691(currentModuleDir_1);
		eqdestroy___sigmatch_u9099(colonenv__1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_CLOSURE(void, addModuleSuggestion__sigmatch_u7566)(NimStringV2 path_p0, void* ClE_0) {
	tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg* colonenvP__1;
	tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* suggest_1;
	NimStringV2 colontmpD_;
	NimStringV2 colontmpD__2;
	tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g colontmpD__3;
	tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g colontmpD__4;
	tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T1_;
	tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* blitTmp_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colonenvP__1 = (tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg*) ClE_0;
	suggest_1 = NIM_NIL;
	colontmpD__3 = (tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g)0;
	colontmpD__4 = (tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g)0;
	T1_ = NIM_NIL;
	T1_ = (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA*) nimNewObj(sizeof(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA), NIM_ALIGNOF(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA));
	(*T1_).section = ((tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng)1);
	(*T1_).qualifiedPath.len = 1; (*T1_).qualifiedPath.p = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content*) newSeqPayload(1, sizeof(NimStringV2), NIM_ALIGNOF(NimStringV2));
	colontmpD_ = eqdup___system_u2697(path_p0);
	(*T1_).qualifiedPath.p->data[0] = colontmpD_;
	(*T1_).name = (&path_p0);
	colontmpD__2 = eqdup___system_u2697(path_p0);
	(*T1_).filePath = colontmpD__2;
	(*T1_).line = ((NI) ((*(*colonenvP__1).n0).info.line));
	(*T1_).column = ((NI) ((*(*colonenvP__1).n0).info.col));
	(*T1_).doc = TM__EV5hHJmjIY9cla9b9be7fSVJQ_161;
	(*T1_).quality = ((NI)100);
	(*T1_).contextFits = NIM_TRUE;
	{
		if (!(((NI)0) < (*colonenvP__1).partialPath1.len)) goto LA4_;
		colontmpD__3 = prefixMatch__prefixmatches_u10(path_p0, (*colonenvP__1).partialPath1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*T1_).prefix = colontmpD__3;
	}
	goto LA2_;
LA4_: ;
	{
		colontmpD__4 = ((tyEnum_PrefixMatch__ocee5pBJwvwPKYUp2SRA4g)0);
		(*T1_).prefix = colontmpD__4;
	}
LA2_: ;
	(*T1_).symkind = ((NU8)6);
	suggest_1 = T1_;
	blitTmp_1 = suggest_1;
	add__sigmatch_u6266((&(*colonenvP__1).suggestions2), blitTmp_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u7456)(tyObject_ImportContext__lQXKzA0w9aSWy9bwygXJvlHQ* dest_p0) {
	eqdestroy___system_u2691((*dest_p0).partialModule);
	eqdestroy___system_u2691((*dest_p0).baseDir);
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___sigmatch_u8933)(tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastCyclicStatic(dest_p0, ((TNimTypeV2*) ((&NTIv2__WqHOzqbAD0g9ciG6qFK7azg_))));
		if (!T3_) goto LA4_;
		eqdestroy___sigmatch_u8898((&(*dest_p0)));
		nimRawDispose(dest_p0, ((NI)8));
	}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, suggestModuleNames__sigmatch_u7553)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg* colonenv__1;
	tyObject_ImportContext__lQXKzA0w9aSWy9bwygXJvlHQ importCtx_1;
	NimStringV2 searchPath_1;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ possibleModules_1;
	NimStringV2 colontmpD_;
	tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg* T2_;
	tySequence__nSO1ltijM4vhc0UrrXKEqA T3_;
	NimStringV2 T4_;
	NimStringV2 T15_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colonenv__1 = NIM_NIL;
	nimZeroMem((void*)(&importCtx_1), sizeof(tyObject_ImportContext__lQXKzA0w9aSWy9bwygXJvlHQ));
	searchPath_1.len = 0; searchPath_1.p = NIM_NIL;
	possibleModules_1.len = 0; possibleModules_1.p = NIM_NIL;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	T2_ = NIM_NIL;
	T2_ = (tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg*) nimNewObj(sizeof(tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg), NIM_ALIGNOF(tyObject_Env_suggestdotnim_suggestModuleNames___WqHOzqbAD0g9ciG6qFK7azg));
	(*T2_).Sup.m_type = (&NTIv2__WqHOzqbAD0g9ciG6qFK7azg_);
	colonenv__1 = T2_;
	eqcopy___ast_u3255(&(*colonenv__1).n0, n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T3_.len = 0; T3_.p = NIM_NIL;
	T3_.len = 0; T3_.p = (tySequence__nSO1ltijM4vhc0UrrXKEqA_Content*) newSeqPayload(0, sizeof(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA*), NIM_ALIGNOF(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA*));
	eqsink___modulegraphs_u11770((&(*colonenv__1).suggestions2), T3_);
	T4_.len = 0; T4_.p = NIM_NIL;
	{
		if (!((*(*colonenv__1).n0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2))) goto LA7_;
		eqcopy___system_u2694((&(*colonenv__1).partialPath1), (*(*(*colonenv__1).n0)._kind_5.ident).s);
	}
	goto LA5_;
LA7_: ;
	{
		eqsink___system_u2700((&(*colonenv__1).partialPath1), TM__EV5hHJmjIY9cla9b9be7fSVJQ_144);
	}
LA5_: ;
	extractImportContextFromAst__sigmatch_u7426((*colonenv__1).n0, ((NI) ((*(*(*c_p0).graph).config).m.trackPos.col)), (&importCtx_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	searchPath_1 = TM__EV5hHJmjIY9cla9b9be7fSVJQ_148;
	{
		NimStringV2 T14_;
		if (!(((NI)0) < importCtx_1.baseDir.len)) goto LA12_;
		T14_.len = 0; T14_.p = NIM_NIL;
		T14_ = rawNewString(importCtx_1.baseDir.len + 1);
appendString((&T14_), importCtx_1.baseDir);
appendString((&T14_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_149);
		eqsink___system_u2700((&searchPath_1), T14_);
	}
LA12_: ;
	T15_.len = 0; T15_.p = NIM_NIL;
	T15_ = rawNewString(searchPath_1.len + importCtx_1.partialModule.len + 0);
appendString((&T15_), searchPath_1);
appendString((&T15_), importCtx_1.partialModule);
	colontmpD_ = T15_;
	possibleModules_1 = findModuleFile__sigmatch_u7476(c_p0, colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NimStringV2* moduleName_1;
		NI i_1;
		NI L_1;
		NI T17_;
		moduleName_1 = (NimStringV2*)0;
		i_1 = ((NI)0);
		T17_ = possibleModules_1.len;
		L_1 = T17_;
		{
			while (1) {
				if (!(i_1 < L_1)) goto LA19;
				moduleName_1 = (&possibleModules_1.p->data[i_1]);
				{
					tyProc__k2HFjxisIgDALbEUFojxaQ T24_;
					if (!!(eqStrings((*moduleName_1), (*(*(*c_p0).module).name).s))) goto LA22_;
					nimZeroMem((void*)(&T24_), sizeof(tyProc__k2HFjxisIgDALbEUFojxaQ));
					T24_.ClP_0 = addModuleSuggestion__sigmatch_u7566; T24_.ClE_0 = colonenv__1;
					T24_.ClE_0? T24_.ClP_0((*moduleName_1), T24_.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_162)(T24_.ClP_0))((*moduleName_1));
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA22_: ;
				i_1 += ((NI)1);
			} LA19: ;
		}
	}
	produceOutput__sigmatch_u5890((&(*colonenv__1).suggestions2), (*(*c_p0).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	suggestQuit__msgs_u483();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___system_u2691(colontmpD_);
		eqdestroy___system_u5509(possibleModules_1);
		eqdestroy___system_u2691(searchPath_1);
		eqdestroy___sigmatch_u7456((&importCtx_1));
		eqdestroy___sigmatch_u8933(colonenv__1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, instTypeBoundOp__sigmatch_u5304)(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_u456(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_u5502((*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_164);
appendString((&T8_), (*(*dc_p1).name).s);
appendString((&T8_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_165);
		colontmpD_ = T8_;
		liMessage__msgs_u1227((*(*c_p0).graph).config, info_p3, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD_, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_166), NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		result = ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL);
		eqdestroy___system_u2691(colontmpD_);
		eqdestroy___ast_u3378(f_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u162((&m_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
		{
			LA7_:;
		}
		{
			eqdestroy___system_u2691(colontmpD_);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA5_: ;
	eqcopy___ast_u3381(&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_u5331(f_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T19_); goto LA1_;}
			eqsink___ast_u3387(&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_u5331(f_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T25_); goto LA1_;}
			eqsink___ast_u3387(&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_u253((&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_167);
appendString((&T33_), (*(*dc_p1).name).s);
appendString((&T33_), TM__EV5hHJmjIY9cla9b9be7fSVJQ_168);
		colontmpD__2 = T33_;
		liMessage__msgs_u1227((*(*c_p0).graph).config, info_p3, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__2, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__EV5hHJmjIY9cla9b9be7fSVJQ_169), NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		{
			LA32_:;
		}
		{
			eqdestroy___system_u2691(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_170)((*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_u3378(f_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___sigmatch_u162((&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_u7810)(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_ = !(((*(*c_p0).module).position == ((NI) ((*(*(*c_p0).graph).config).m.trackPos.fileIndex))));
LA5_: ;
		if (!T4_) goto LA6_;
		eqdestroy___modulegraphs_u11761(outputs_1);
		goto BeforeRet_;
	}
LA6_: ;
	{
		if (!(((NI)0) < (*c_p0).compilesContextId)) goto LA10_;
		eqdestroy___modulegraphs_u11761(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_u805(((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_u77(&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_u77(&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_u3137((&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_u4583(&item_1, s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
									eqwasMoved___ast_u4571(&s_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
									nimZeroMem((void*)(&T28_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
									blitTmp_1 = item_1;
									eqwasMoved___ast_u4571(&item_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
									T28_.Field0 = blitTmp_1;
									T28_.Field1 = scopeN_2;
									T28_.Field2 = isLocal_2;
									eqsink___lookups_u775((&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_u989((&seen_1), T31_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
										if (!!(T32_)) goto LA33_;
										eqsink___ast_u4583(&it_1, res_1.Field0);
										if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
										eqwasMoved___ast_u4571(&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_u6158(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_u6235(it_1);
											if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
											T42_ = NIM_NIL;
											T42_ = symToSuggest__sigmatch_u5557((*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_u11905(T42_); goto LA25_;}
											add__sigmatch_u6266((&outputs_1), T42_);
										}
LA38_: ;
									}
LA33_: ;
									T43_ = NIM_NIL;
									T43_ = nextIter__astalgo_u3121((&it_2), (*scope_1).symbols);
									if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T43_); goto LA25_;}
									eqsink___ast_u4583(&s_1, T43_);
									if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
								} LA27: ;
							}
							{
								LA25_:;
							}
							{
								oldNimErrFin25_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4574(s_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								eqdestroy___ast_u4574(item_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
								*nimErr_ = oldNimErrFin25_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						}
						eqcopy___lookups_u77(&current_1, (*current_1).parent);
						if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					} LA19: ;
				}
				{
					LA17_:;
				}
				{
					oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___lookups_u74(current_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA15_;
					eqdestroy___lookups_u74(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_u3008((*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_u21632((&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_u4583(&s_2, r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
										eqwasMoved___ast_u4571(&r_1);
										if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
										nimZeroMem((void*)(&T64_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
										blitTmp_2 = s_2;
										eqwasMoved___ast_u4571(&s_2);
										if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
										T64_.Field0 = blitTmp_2;
										T64_.Field1 = scopeN_2;
										T64_.Field2 = isLocal_2;
										eqsink___lookups_u775((&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_u989((&seen_1), T67_);
											if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
											if (!!(T68_)) goto LA69_;
											eqsink___ast_u4583(&it_1, res_1.Field0);
											if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
											eqwasMoved___ast_u4571(&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_u6158(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_u6235(it_1);
												if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
												T78_ = NIM_NIL;
												T78_ = symToSuggest__sigmatch_u5557((*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_u11905(T78_); goto LA59_;}
												add__sigmatch_u6266((&outputs_1), T78_);
											}
LA74_: ;
										}
LA69_: ;
										T79_ = NIM_NIL;
										T79_ = nextRodIter__icZic_u21968((&rodIt_1), (&(*(*c_p0).graph).packed_0));
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T79_); goto LA59_;}
										eqsink___ast_u4583(&r_1, T79_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA59_;
									} LA63: ;
								}
								{
									LA59_:;
								}
								{
									oldNimErrFin59_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4574(r_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
									eqdestroy___modulegraphs_u3288((&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_u4851((&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_u4577(&s_2, (*s_3));
												if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
												nimZeroMem((void*)(&T96_), sizeof(tyTuple__WIyQ4Cfp4shlBOyEpagHMw));
												blitTmp_3 = s_2;
												eqwasMoved___ast_u4571(&s_2);
												if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
												T96_.Field0 = blitTmp_3;
												T96_.Field1 = scopeN_2;
												T96_.Field2 = isLocal_2;
												eqsink___lookups_u775((&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_u989((&seen_1), T99_);
													if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
													if (!!(T100_)) goto LA101_;
													eqsink___ast_u4583(&it_1, res_1.Field0);
													if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
													eqwasMoved___ast_u4571(&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_u6158(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_u6235(it_1);
														if (NIM_UNLIKELY(*nimErr_)) goto LA84_;
														T110_ = NIM_NIL;
														T110_ = symToSuggest__sigmatch_u5557((*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_u11905(T110_); goto LA84_;}
														add__sigmatch_u6266((&outputs_1), T110_);
													}
LA106_: ;
												}
LA101_: ;
											}
LA94_: ;
											i_2 += ((NI)1);
										} LA91: ;
									}
									{
										LA84_:;
									}
									{
										oldNimErrFin84_ = *nimErr_; *nimErr_ = NIM_FALSE;
										eqdestroy___ast_u4848(colontmp_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
										*nimErr_ = oldNimErrFin84_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA53_;
								}
							}
LA54_: ;
							{
								LA53_:;
							}
							{
								oldNimErrFin53_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u4574(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_u766(res_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
				*nimErr_ = oldNimErrFin15_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
		}
		{
			LA13_:;
		}
		{
			oldNimErrFin13_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___lookups_u952(seen_1);
			eqdestroy___ast_u4574(it_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin13_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	(*c_p0).compilesContextId -= ((NI)1);
	produceOutput__sigmatch_u5890((&outputs_1), (*(*c_p0).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		eqdestroy___modulegraphs_u11761(outputs_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
