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

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
typedef struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ;
typedef struct tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw;
typedef struct tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A;
typedef struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg;
typedef struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg;
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_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ;
typedef struct tyObject_TIdTable__xRBvhNSbEADzUTJAdtlGtA tyObject_TIdTable__xRBvhNSbEADzUTJAdtlGtA;
typedef struct tySequence__ZUeR9b415wicThQ9cBWO9aYMw tySequence__ZUeR9b415wicThQ9cBWO9aYMw;
typedef struct tySequence__ZUeR9b415wicThQ9cBWO9aYMw_Content tySequence__ZUeR9b415wicThQ9cBWO9aYMw_Content;
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_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_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 tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA;
typedef struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA;
typedef struct tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw;
typedef struct tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig;
typedef struct tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg;
typedef struct tySequence__TfHJycarvNts8E4mVG4Mfg tySequence__TfHJycarvNts8E4mVG4Mfg;
typedef struct tySequence__TfHJycarvNts8E4mVG4Mfg_Content tySequence__TfHJycarvNts8E4mVG4Mfg_Content;
typedef struct tyObject_PackedModuleGraph__vzv9a6xTiz616FotDgUeo9bg tyObject_PackedModuleGraph__vzv9a6xTiz616FotDgUeo9bg;
typedef struct tySequence__5reviU45axUMPQgL9aoENrg tySequence__5reviU45axUMPQgL9aoENrg;
typedef struct tySequence__5reviU45axUMPQgL9aoENrg_Content tySequence__5reviU45axUMPQgL9aoENrg_Content;
typedef struct tySequence__dtr79aXjHrgHuH79ac55I2aw tySequence__dtr79aXjHrgHuH79ac55I2aw;
typedef struct tySequence__dtr79aXjHrgHuH79ac55I2aw_Content tySequence__dtr79aXjHrgHuH79ac55I2aw_Content;
typedef struct tyObject_Table__EBJpp1hXwvFl9cyekUv4qHg tyObject_Table__EBJpp1hXwvFl9cyekUv4qHg;
typedef struct tySequence__8y0Gi4GwtXi2wk2mK1IOzw tySequence__8y0Gi4GwtXi2wk2mK1IOzw;
typedef struct tySequence__8y0Gi4GwtXi2wk2mK1IOzw_Content tySequence__8y0Gi4GwtXi2wk2mK1IOzw_Content;
typedef struct tyObject_Table__nn0jq9adRZXGGj9assM9c9bR0w tyObject_Table__nn0jq9adRZXGGj9assM9c9bR0w;
typedef struct tySequence__C2ivDnhTZ6IxAdui1rfuqw tySequence__C2ivDnhTZ6IxAdui1rfuqw;
typedef struct tySequence__C2ivDnhTZ6IxAdui1rfuqw_Content tySequence__C2ivDnhTZ6IxAdui1rfuqw_Content;
typedef struct tyObject_Table__ChMwcRY3QzpOEBWbGAfvcA tyObject_Table__ChMwcRY3QzpOEBWbGAfvcA;
typedef struct tySequence__3vEEVfBECLN6NIRA3FIp5g tySequence__3vEEVfBECLN6NIRA3FIp5g;
typedef struct tySequence__3vEEVfBECLN6NIRA3FIp5g_Content tySequence__3vEEVfBECLN6NIRA3FIp5g_Content;
typedef struct tyObject_Table__tEqt8LkShErhjQ9acvGyE7g tyObject_Table__tEqt8LkShErhjQ9acvGyE7g;
typedef struct tySequence__9aSa87aKMiolq9a7z3kC0jTw tySequence__9aSa87aKMiolq9a7z3kC0jTw;
typedef struct tySequence__9aSa87aKMiolq9a7z3kC0jTw_Content tySequence__9aSa87aKMiolq9a7z3kC0jTw_Content;
typedef struct tyObject_Table__QS2Z9cQjmvkp1aaFGq4ippw tyObject_Table__QS2Z9cQjmvkp1aaFGq4ippw;
typedef struct tySequence__N589c2UsUgqqOITU2JfIuAQ tySequence__N589c2UsUgqqOITU2JfIuAQ;
typedef struct tySequence__N589c2UsUgqqOITU2JfIuAQ_Content tySequence__N589c2UsUgqqOITU2JfIuAQ_Content;
typedef struct tyObject_Table__bnfVX2VJ9aUicVujDM0GIhw tyObject_Table__bnfVX2VJ9aUicVujDM0GIhw;
typedef struct tySequence__GYDW6wGgERshoSd16jJ3eQ tySequence__GYDW6wGgERshoSd16jJ3eQ;
typedef struct tySequence__GYDW6wGgERshoSd16jJ3eQ_Content tySequence__GYDW6wGgERshoSd16jJ3eQ_Content;
typedef struct tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content tySequence__7lEisrXlQEzwtUKW5pzRCw_Content;
typedef struct tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ;
typedef struct tyObject_Table__79b4rr6WWQqgRr9b4NH4UF9cw tyObject_Table__79b4rr6WWQqgRr9b4NH4UF9cw;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg_Content tySequence__fdmz6VkIf1ewwrssKYqRFg_Content;
typedef struct tyObject_Table__AC9bec2JdoOuC3xQePGWgmA tyObject_Table__AC9bec2JdoOuC3xQePGWgmA;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg_Content tySequence__kxu4GK0onha2t9bo86mdVAg_Content;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA_Content tySequence__48JTohSgTy339bRxHzUD8KA_Content;
typedef struct tyObject_Table__bHTcQUCehDW9clHfFZXI7lQ tyObject_Table__bHTcQUCehDW9clHfFZXI7lQ;
typedef struct tySequence__fz0REU1l0nYmKHXgMLRrIg tySequence__fz0REU1l0nYmKHXgMLRrIg;
typedef struct tySequence__fz0REU1l0nYmKHXgMLRrIg_Content tySequence__fz0REU1l0nYmKHXgMLRrIg_Content;
typedef struct tyObject_Table__w2vCG1OPnHmNolvQVT168g tyObject_Table__w2vCG1OPnHmNolvQVT168g;
typedef struct tySequence__Ip9aV1IKO2gVdheNOM31DCQ tySequence__Ip9aV1IKO2gVdheNOM31DCQ;
typedef struct tySequence__Ip9aV1IKO2gVdheNOM31DCQ_Content tySequence__Ip9aV1IKO2gVdheNOM31DCQ_Content;
typedef struct tySequence__kHjIdgrpmuSn9cUIIKpSiDg tySequence__kHjIdgrpmuSn9cUIIKpSiDg;
typedef struct tySequence__kHjIdgrpmuSn9cUIIKpSiDg_Content tySequence__kHjIdgrpmuSn9cUIIKpSiDg_Content;
typedef struct tyObject_CountTable__qvMelb9coODdwoghoAPc9c9aA tyObject_CountTable__qvMelb9coODdwoghoAPc9c9aA;
typedef struct tySequence__Wd0Vle6gxRCPPoSlNEvfTA tySequence__Wd0Vle6gxRCPPoSlNEvfTA;
typedef struct tySequence__Wd0Vle6gxRCPPoSlNEvfTA_Content tySequence__Wd0Vle6gxRCPPoSlNEvfTA_Content;
typedef struct tyObject_Table__fZyCWkMwhdvr3pauCNDaag tyObject_Table__fZyCWkMwhdvr3pauCNDaag;
typedef struct tySequence__T7nNEWoEbKBa0G5Htr45Xw tySequence__T7nNEWoEbKBa0G5Htr45Xw;
typedef struct tySequence__T7nNEWoEbKBa0G5Htr45Xw_Content tySequence__T7nNEWoEbKBa0G5Htr45Xw_Content;
typedef struct tyObject_Table__5vmBY49areSIlgIs4A1LLKQ tyObject_Table__5vmBY49areSIlgIs4A1LLKQ;
typedef struct tySequence__q9cHvMDDxYU1hSCdG4YwIhA tySequence__q9cHvMDDxYU1hSCdG4YwIhA;
typedef struct tySequence__q9cHvMDDxYU1hSCdG4YwIhA_Content tySequence__q9cHvMDDxYU1hSCdG4YwIhA_Content;
typedef struct tySequence__olFOFaYzOJN9aV5BWqK4b9bA tySequence__olFOFaYzOJN9aV5BWqK4b9bA;
typedef struct tySequence__olFOFaYzOJN9aV5BWqK4b9bA_Content tySequence__olFOFaYzOJN9aV5BWqK4b9bA_Content;
typedef struct tyObject_Table__9bmd0cvHWe1s4FTDn5BPmfw tyObject_Table__9bmd0cvHWe1s4FTDn5BPmfw;
typedef struct tySequence__vJcM7B74R2U5db9cxyXT9coA tySequence__vJcM7B74R2U5db9cxyXT9coA;
typedef struct tySequence__vJcM7B74R2U5db9cxyXT9coA_Content tySequence__vJcM7B74R2U5db9cxyXT9coA_Content;
typedef struct tyObject_Table__GhjCMuklnRqwdX9bZo9bCoNg tyObject_Table__GhjCMuklnRqwdX9bZo9bCoNg;
typedef struct tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg;
typedef struct tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg_Content tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg_Content;
typedef struct tyObject_Table__pI3mJh4Ap2XujSCfcSeUvQ tyObject_Table__pI3mJh4Ap2XujSCfcSeUvQ;
typedef struct tySequence__R9c39btP6BwOBBPnbaNUtMQg tySequence__R9c39btP6BwOBBPnbaNUtMQg;
typedef struct tySequence__R9c39btP6BwOBBPnbaNUtMQg_Content tySequence__R9c39btP6BwOBBPnbaNUtMQg_Content;
typedef struct tyObject_Table__MsPmCuYz1KcEw6lr7P9cGkw tyObject_Table__MsPmCuYz1KcEw6lr7P9cGkw;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA_Content tySequence__squ9b9bUH4OLHf6cEMrt6hVA_Content;
typedef struct tyObject_Table__1HJsK7ponJ4Vb1lJgVFVTQ tyObject_Table__1HJsK7ponJ4Vb1lJgVFVTQ;
typedef struct tySequence__3nALyQgqjnfK2Qjc6ny2Uw tySequence__3nALyQgqjnfK2Qjc6ny2Uw;
typedef struct tySequence__3nALyQgqjnfK2Qjc6ny2Uw_Content tySequence__3nALyQgqjnfK2Qjc6ny2Uw_Content;
typedef struct tySequence__WbW5Q8QVks0bQpUJSGmuVg tySequence__WbW5Q8QVks0bQpUJSGmuVg;
typedef struct tySequence__WbW5Q8QVks0bQpUJSGmuVg_Content tySequence__WbW5Q8QVks0bQpUJSGmuVg_Content;
typedef struct tyObject_Operators__yrAfvKhiysDamJlcGNgVfQ tyObject_Operators__yrAfvKhiysDamJlcGNgVfQ;
typedef struct tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg tySequence__d8ZV4IMgHt9biik9cS9a0hrmg;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tySequence__vb3AGHvMJTxdOSSwMmBmTQ tySequence__vb3AGHvMJTxdOSSwMmBmTQ;
typedef struct tySequence__vb3AGHvMJTxdOSSwMmBmTQ_Content tySequence__vb3AGHvMJTxdOSSwMmBmTQ_Content;
typedef struct tyObject_LazyType__dsEGDq9cOhnzsRvTUTwwwuA tyObject_LazyType__dsEGDq9cOhnzsRvTUTwwwuA;
typedef struct tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ;
typedef struct tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig;
typedef struct tyObject_CountTable__5N9carAoH8U5E301UN9ccEmQ tyObject_CountTable__5N9carAoH8U5E301UN9ccEmQ;
typedef struct tySequence__hRbbzIynOoxrYjHTIKZ3Gw tySequence__hRbbzIynOoxrYjHTIKZ3Gw;
typedef struct tySequence__hRbbzIynOoxrYjHTIKZ3Gw_Content tySequence__hRbbzIynOoxrYjHTIKZ3Gw_Content;
typedef struct tyTuple__lGHLhAAUpxgfrnQkIzNrMw tyTuple__lGHLhAAUpxgfrnQkIzNrMw;
typedef struct tySequence__9bW2eTK9b7vXE70Sx5VPH1mw tySequence__9bW2eTK9b7vXE70Sx5VPH1mw;
typedef struct tySequence__9bW2eTK9b7vXE70Sx5VPH1mw_Content tySequence__9bW2eTK9b7vXE70Sx5VPH1mw_Content;
typedef struct tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA;
typedef struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A;
typedef struct tyObject_TIdPair__jFcUgE4X1tLOqan9b4YIIeg tyObject_TIdPair__jFcUgE4X1tLOqan9b4YIIeg;
typedef struct tyObject_TIdPair__03S6SAVUgd0pzOKFuxkR1A tyObject_TIdPair__03S6SAVUgd0pzOKFuxkR1A;
typedef struct tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw;
typedef struct tyObject_TOptionEntry__KeABxBvAlGa1KroFfkcqAg tyObject_TOptionEntry__KeABxBvAlGa1KroFfkcqAg;
typedef struct tyObject_TInstantiationPair__bS87nlCVAcAYxO9aJequmYw tyObject_TInstantiationPair__bS87nlCVAcAYxO9aJequmYw;
typedef struct tyObject_TInstantiation__jr8MibvPn2sQBnO7XCoZRQ tyObject_TInstantiation__jr8MibvPn2sQBnO7XCoZRQ;
typedef struct tyTuple__09aD69az7aYn14Gt61AHvLIA tyTuple__09aD69az7aYn14Gt61AHvLIA;
typedef struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tyTuple__CH9a39cWKma9c9c9cYqCyX1wBsw tyTuple__CH9a39cWKma9c9c9cYqCyX1wBsw;
typedef struct tySequence__KYLoGmc5aaHsSDjEH1FTxQ tySequence__KYLoGmc5aaHsSDjEH1FTxQ;
typedef struct tySequence__KYLoGmc5aaHsSDjEH1FTxQ_Content tySequence__KYLoGmc5aaHsSDjEH1FTxQ_Content;
typedef struct tyTuple__EbsafWGli8bW2GRJQ9apsjA tyTuple__EbsafWGli8bW2GRJQ9apsjA;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content tySequence__qwqHTkRvwhrRyENtudHQ7g_Content;
typedef struct tyObject_Iface__j1FkQxwEAKMJy1o9bap1xow tyObject_Iface__j1FkQxwEAKMJy1o9bap1xow;
typedef struct tyObject_LoadedModule__7NEKRkz5hkiOxQy5guqIHA tyObject_LoadedModule__7NEKRkz5hkiOxQy5guqIHA;
typedef struct tyObject_PackedModule__sRHd9aQ2ZMII76xRsfAbE9aQ tyObject_PackedModule__sRHd9aQ2ZMII76xRsfAbE9aQ;
typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA_Content tySequence__PXIzfWocnrafGz5p3CP5LA_Content;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content;
typedef struct tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w;
typedef struct tySequence__OxRbUT0qZaZN5UjnqQjGPA tySequence__OxRbUT0qZaZN5UjnqQjGPA;
typedef struct tySequence__OxRbUT0qZaZN5UjnqQjGPA_Content tySequence__OxRbUT0qZaZN5UjnqQjGPA_Content;
typedef struct tySequence__ezS5mGPcRfBURJyMgqYVzA tySequence__ezS5mGPcRfBURJyMgqYVzA;
typedef struct tySequence__ezS5mGPcRfBURJyMgqYVzA_Content tySequence__ezS5mGPcRfBURJyMgqYVzA_Content;
typedef struct tySequence__wW7xkohjuUKO9aMaB0nt9cqA tySequence__wW7xkohjuUKO9aMaB0nt9cqA;
typedef struct tySequence__wW7xkohjuUKO9aMaB0nt9cqA_Content tySequence__wW7xkohjuUKO9aMaB0nt9cqA_Content;
typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
typedef struct tySequence__b89aLriiJnVTD186H6zNIgg_Content tySequence__b89aLriiJnVTD186H6zNIgg_Content;
typedef struct tySequence__hIPTk9aFdaMMVAOzEbnPyqg tySequence__hIPTk9aFdaMMVAOzEbnPyqg;
typedef struct tySequence__hIPTk9aFdaMMVAOzEbnPyqg_Content tySequence__hIPTk9aFdaMMVAOzEbnPyqg_Content;
typedef struct tySequence__YYy1721YAuPF0ajBYHd8Wg tySequence__YYy1721YAuPF0ajBYHd8Wg;
typedef struct tySequence__YYy1721YAuPF0ajBYHd8Wg_Content tySequence__YYy1721YAuPF0ajBYHd8Wg_Content;
typedef struct tySequence__UODJbvzmu39c3Ho9cqhSk9agQ tySequence__UODJbvzmu39c3Ho9cqhSk9agQ;
typedef struct tySequence__UODJbvzmu39c3Ho9cqhSk9agQ_Content tySequence__UODJbvzmu39c3Ho9cqhSk9agQ_Content;
typedef struct tySequence__F1qNdU7m0Czu7Y2q0eksXw tySequence__F1qNdU7m0Czu7Y2q0eksXw;
typedef struct tySequence__F1qNdU7m0Czu7Y2q0eksXw_Content tySequence__F1qNdU7m0Czu7Y2q0eksXw_Content;
typedef struct tySequence__r3Kz9breImOXyFFoJ29aBM8Q tySequence__r3Kz9breImOXyFFoJ29aBM8Q;
typedef struct tySequence__r3Kz9breImOXyFFoJ29aBM8Q_Content tySequence__r3Kz9breImOXyFFoJ29aBM8Q_Content;
typedef struct tySequence__qBes3XzcQQ9cyia9bRwnmbJw tySequence__qBes3XzcQQ9cyia9bRwnmbJw;
typedef struct tySequence__qBes3XzcQQ9cyia9bRwnmbJw_Content tySequence__qBes3XzcQQ9cyia9bRwnmbJw_Content;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct tyObject_OrderedTable__vodBW9bS41CI2hVVsJJ8qiw tyObject_OrderedTable__vodBW9bS41CI2hVVsJJ8qiw;
typedef struct tySequence__Vl1abU3gfp0RqCb1KKfmDA tySequence__Vl1abU3gfp0RqCb1KKfmDA;
typedef struct tySequence__Vl1abU3gfp0RqCb1KKfmDA_Content tySequence__Vl1abU3gfp0RqCb1KKfmDA_Content;
typedef struct tyObject_OrderedTable__y5tq9cRly5CxS2mQPchEHcw tyObject_OrderedTable__y5tq9cRly5CxS2mQPchEHcw;
typedef struct tySequence__qyyNkmlc4fzOzelC8spUkQ tySequence__qyyNkmlc4fzOzelC8spUkQ;
typedef struct tySequence__qyyNkmlc4fzOzelC8spUkQ_Content tySequence__qyyNkmlc4fzOzelC8spUkQ_Content;
typedef struct tyObject_BiTable__KR9c7QZguPO3OKZOIcphgcA tyObject_BiTable__KR9c7QZguPO3OKZOIcphgcA;
typedef struct tyObject_BiTable__9aUXwPoJbNPqj9a249c0iSmlg tyObject_BiTable__9aUXwPoJbNPqj9a249c0iSmlg;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ_Content tySequence__IHUFRsFxZNv7YydiUO2esQ_Content;
typedef struct tyObject_LineInfoManager__TTy646Kfh1cVyXU9aSMasUQ tyObject_LineInfoManager__TTy646Kfh1cVyXU9aSMasUQ;
typedef struct tySequence__orxtl6CusdjXleqrxi67gw tySequence__orxtl6CusdjXleqrxi67gw;
typedef struct tySequence__orxtl6CusdjXleqrxi67gw_Content tySequence__orxtl6CusdjXleqrxi67gw_Content;
typedef struct tyObject_OrderedTable__h8mIUVGY8LJXF9cakgvB9bqQ tyObject_OrderedTable__h8mIUVGY8LJXF9cakgvB9bqQ;
typedef struct tySequence__K0j67V58u5FW0dCC534FQw tySequence__K0j67V58u5FW0dCC534FQw;
typedef struct tySequence__K0j67V58u5FW0dCC534FQw_Content tySequence__K0j67V58u5FW0dCC534FQw_Content;
typedef struct tyObject_OrderedTable__DED9c7j9bI3Lh5w4GQakK8yQ tyObject_OrderedTable__DED9c7j9bI3Lh5w4GQakK8yQ;
typedef struct tySequence__UE4b6iUkm1b3zTPamTTkDw tySequence__UE4b6iUkm1b3zTPamTTkDw;
typedef struct tySequence__UE4b6iUkm1b3zTPamTTkDw_Content tySequence__UE4b6iUkm1b3zTPamTTkDw_Content;
typedef struct tyObject_Table__BH9cy1hZ1rZZoGkNCEN1uvg tyObject_Table__BH9cy1hZ1rZZoGkNCEN1uvg;
typedef struct tySequence__FmsTQiIcS9arxHxs3QY48vA tySequence__FmsTQiIcS9arxHxs3QY48vA;
typedef struct tySequence__FmsTQiIcS9arxHxs3QY48vA_Content tySequence__FmsTQiIcS9arxHxs3QY48vA_Content;
typedef struct tyObject_PackedEncoder__FGa18gE2dyYyuq9ckHprjTQ tyObject_PackedEncoder__FGa18gE2dyYyuq9ckHprjTQ;
typedef struct tyObject_Table__uaQEKxLZNO5fpFluyxnhTg tyObject_Table__uaQEKxLZNO5fpFluyxnhTg;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ_Content tySequence__9cnx3zXnWzeclW8Ko4oUgAQ_Content;
typedef struct tyTuple__7TXOq9czx9cn1FWKG5gXNK8Q tyTuple__7TXOq9czx9cn1FWKG5gXNK8Q;
typedef struct 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 tyTuple__4iq9bD09amB7Ah0r9cBB0nSPQ tyTuple__4iq9bD09amB7Ah0r9cBB0nSPQ;
typedef struct tyTuple__bnJwOH0eJlAwCAMbr1inhw tyTuple__bnJwOH0eJlAwCAMbr1inhw;
typedef struct tyTuple__YG7h1OUHzgfgTeH9cl0U0dw tyTuple__YG7h1OUHzgfgTeH9cl0U0dw;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__tG5yYi8DnD7bl00aT9cgctQ tyTuple__tG5yYi8DnD7bl00aT9cgctQ;
typedef struct tyObject_SuggestFileSymbolDatabase__o0ahEzaLn5a7TdNqH4OVqQ tyObject_SuggestFileSymbolDatabase__o0ahEzaLn5a7TdNqH4OVqQ;
typedef struct tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg;
typedef struct tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg_Content tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg_Content;
typedef struct tySequence__yUWoZehF86MIc40opFgacw tySequence__yUWoZehF86MIc40opFgacw;
typedef struct tySequence__yUWoZehF86MIc40opFgacw_Content tySequence__yUWoZehF86MIc40opFgacw_Content;
typedef struct tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw;
typedef struct tyTuple__gnRkA1L4XiR4uByriyHW8Q tyTuple__gnRkA1L4XiR4uByriyHW8Q;
typedef struct tySequence__nSO1ltijM4vhc0UrrXKEqA tySequence__nSO1ltijM4vhc0UrrXKEqA;
typedef struct tySequence__nSO1ltijM4vhc0UrrXKEqA_Content tySequence__nSO1ltijM4vhc0UrrXKEqA_Content;
typedef struct tyTuple__CvjVmQeIfivirDme2r5MRw tyTuple__CvjVmQeIfivirDme2r5MRw;
typedef struct tyTuple__2QDyOgS51ZMPO0W1pWCY6g tyTuple__2QDyOgS51ZMPO0W1pWCY6g;
typedef struct tyTuple__UbCNQED4XJUgxOgPHJUcAQ tyTuple__UbCNQED4XJUgxOgPHJUcAQ;
typedef struct tySequence__juxPMVNF1FoR2ltzeQu8NQ tySequence__juxPMVNF1FoR2ltzeQu8NQ;
typedef struct tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content;
typedef struct tyTuple__zExIg9bDTcVf2FHROUpzoow tyTuple__zExIg9bDTcVf2FHROUpzoow;
typedef struct tyTuple__XrHNJHOzS3O7uwF9bvCySiA tyTuple__XrHNJHOzS3O7uwF9bvCySiA;
typedef struct tyTuple__EdLY4EJQ37VFgbAn5g5rXQ tyTuple__EdLY4EJQ37VFgbAn5g5rXQ;
typedef struct tyTuple__OtlgAx3kBps9cOSMNDZSzBA tyTuple__OtlgAx3kBps9cOSMNDZSzBA;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__RFOJ4fF7D9bpvmh9birH1JhQ tyTuple__RFOJ4fF7D9bpvmh9birH1JhQ;
typedef struct tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw;
typedef struct tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q;
typedef struct tyTuple__O3g9a8zTXSX36ljWponcAoA tyTuple__O3g9a8zTXSX36ljWponcAoA;
typedef struct tyTuple__Oubp8LPEu86EPyDuc56AXg tyTuple__Oubp8LPEu86EPyDuc56AXg;
typedef struct tyTuple__ZUrTP7BFWWFkSv3xO9crp9aQ tyTuple__ZUrTP7BFWWFkSv3xO9crp9aQ;
typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
typedef struct tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w;
typedef struct tyTuple__48iPM3yLBKU5nyEuYwJvuQ tyTuple__48iPM3yLBKU5nyEuYwJvuQ;
typedef struct tyTuple__R3ddFrA0G9buJY57Qhf9cTpg tyTuple__R3ddFrA0G9buJY57Qhf9cTpg;
typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
typedef struct tyTuple__7rmdAMLZ8fDd79brQn2ixZA tyTuple__7rmdAMLZ8fDd79brQn2ixZA;
typedef struct tyTuple__qPXRCRNQuZLLKto7CIIEzw tyTuple__qPXRCRNQuZLLKto7CIIEzw;
typedef struct tyObject_PackedInstantiation__C3FSePJFY8gUIMObsjT2dg tyObject_PackedInstantiation__C3FSePJFY8gUIMObsjT2dg;
typedef struct tyTuple__6kG8KAxm9aXPdLdlxcxqJJw tyTuple__6kG8KAxm9aXPdLdlxcxqJJw;
typedef struct tyTuple__TRK7rrwoha9bbDAdPWsqJMw tyTuple__TRK7rrwoha9bbDAdPWsqJMw;
typedef struct tyTuple__V1VWX9bHapuzCjpMfFfys5Q tyTuple__V1VWX9bHapuzCjpMfFfys5Q;
typedef struct tyObject_PackedSym__KKnx6w8Cc9aaVsaPOpaqxbw tyObject_PackedSym__KKnx6w8Cc9aaVsaPOpaqxbw;
typedef struct tyObject_PackedLib__EpwVLk0Fuc5Q9agKLMWedbg tyObject_PackedLib__EpwVLk0Fuc5Q9agKLMWedbg;
typedef struct tyTuple__anemVmHCFglLFt6LiEhFvg tyTuple__anemVmHCFglLFt6LiEhFvg;
typedef struct tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ;
typedef struct tyTuple__MaWaKZwaGUqCXKsSK12rVg tyTuple__MaWaKZwaGUqCXKsSK12rVg;
typedef struct tyTuple__nL9cBxaIV4ZA9b9ceY79coA5eA tyTuple__nL9cBxaIV4ZA9b9ceY79coA5eA;
typedef struct tyTuple__1xWeGeoNoZxaLhTUDDWYyA tyTuple__1xWeGeoNoZxaLhTUDDWYyA;
typedef struct tyTuple__MZVSn3SE3XUBJOaMu7ofRQ tyTuple__MZVSn3SE3XUBJOaMu7ofRQ;
typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
typedef struct tyObject_LazyInstantiation__n72c7MnOoHWBy9c9akgwGqEA tyObject_LazyInstantiation__n72c7MnOoHWBy9c9akgwGqEA;
typedef struct tySequence__YxH9cgSorHRI8ZPzHf47NNQ tySequence__YxH9cgSorHRI8ZPzHf47NNQ;
typedef struct tySequence__YxH9cgSorHRI8ZPzHf47NNQ_Content tySequence__YxH9cgSorHRI8ZPzHf47NNQ_Content;
typedef struct tyObject_TinyLineInfo__qW2GTIPjeOQ42q9c2MPWLLA tyObject_TinyLineInfo__qW2GTIPjeOQ42q9c2MPWLLA;
typedef struct tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA;
typedef struct tyTuple__V6P73hvHy70PBBwharKjig tyTuple__V6P73hvHy70PBBwharKjig;
struct tySequence__7OXYQ6bHRkhJpRaiS7kiwQ {
  NI len; tySequence__7OXYQ6bHRkhJpRaiS7kiwQ_Content* p;
};
struct tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA {
	NI counter;
	tySequence__7OXYQ6bHRkhJpRaiS7kiwQ data;
};
struct tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A {
	tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA topLayer;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* nextLayer;
	NI previousLen;
};
struct tySequence__ZUeR9b415wicThQ9cBWO9aYMw {
  NI len; tySequence__ZUeR9b415wicThQ9cBWO9aYMw_Content* p;
};
struct tyObject_TIdTable__xRBvhNSbEADzUTJAdtlGtA {
	NI counter;
	tySequence__ZUeR9b415wicThQ9cBWO9aYMw data;
};
struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA {
	NU16 line;
	NI16 col;
	NI32 fileIndex;
};
struct tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ {
	tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A typeMap;
	tyObject_TIdTable__xRBvhNSbEADzUTJAdtlGtA symMap;
	tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA localCache;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info;
	NIM_BOOL allowMetaTypes;
	NIM_BOOL skipTypedesc;
	NIM_BOOL isReturnType;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner;
	NI recursionLimit;
};
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 tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA {
	NI32 module;
	NI32 item;
};
typedef NU8 tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
typedef NU16 tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg;
typedef NU64 tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
typedef NU32 tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ;
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;
};
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__TfHJycarvNts8E4mVG4Mfg {
  NI len; tySequence__TfHJycarvNts8E4mVG4Mfg_Content* p;
};
struct tySequence__5reviU45axUMPQgL9aoENrg {
  NI len; tySequence__5reviU45axUMPQgL9aoENrg_Content* p;
};
struct tyObject_PackedModuleGraph__vzv9a6xTiz616FotDgUeo9bg {
	tySequence__5reviU45axUMPQgL9aoENrg pm;
};
struct tySequence__dtr79aXjHrgHuH79ac55I2aw {
  NI len; tySequence__dtr79aXjHrgHuH79ac55I2aw_Content* p;
};
struct tySequence__8y0Gi4GwtXi2wk2mK1IOzw {
  NI len; tySequence__8y0Gi4GwtXi2wk2mK1IOzw_Content* p;
};
struct tyObject_Table__EBJpp1hXwvFl9cyekUv4qHg {
	tySequence__8y0Gi4GwtXi2wk2mK1IOzw data;
	NI counter;
};
struct tySequence__C2ivDnhTZ6IxAdui1rfuqw {
  NI len; tySequence__C2ivDnhTZ6IxAdui1rfuqw_Content* p;
};
struct tyObject_Table__nn0jq9adRZXGGj9assM9c9bR0w {
	tySequence__C2ivDnhTZ6IxAdui1rfuqw data;
	NI counter;
};
struct tySequence__3vEEVfBECLN6NIRA3FIp5g {
  NI len; tySequence__3vEEVfBECLN6NIRA3FIp5g_Content* p;
};
struct tyObject_Table__ChMwcRY3QzpOEBWbGAfvcA {
	tySequence__3vEEVfBECLN6NIRA3FIp5g data;
	NI counter;
};
typedef tyObject_Table__ChMwcRY3QzpOEBWbGAfvcA tyArray__HTPiakF26bUQGH9bgtmrtkA[7];
struct tySequence__9aSa87aKMiolq9a7z3kC0jTw {
  NI len; tySequence__9aSa87aKMiolq9a7z3kC0jTw_Content* p;
};
struct tyObject_Table__tEqt8LkShErhjQ9acvGyE7g {
	tySequence__9aSa87aKMiolq9a7z3kC0jTw data;
	NI counter;
};
struct tySequence__N589c2UsUgqqOITU2JfIuAQ {
  NI len; tySequence__N589c2UsUgqqOITU2JfIuAQ_Content* p;
};
struct tyObject_Table__QS2Z9cQjmvkp1aaFGq4ippw {
	tySequence__N589c2UsUgqqOITU2JfIuAQ data;
	NI counter;
};
struct tySequence__GYDW6wGgERshoSd16jJ3eQ {
  NI len; tySequence__GYDW6wGgERshoSd16jJ3eQ_Content* p;
};
struct tyObject_Table__bnfVX2VJ9aUicVujDM0GIhw {
	tySequence__GYDW6wGgERshoSd16jJ3eQ data;
	NI counter;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  NI len; tySequence__7lEisrXlQEzwtUKW5pzRCw_Content* p;
};
struct tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A {
	tySequence__7lEisrXlQEzwtUKW5pzRCw data;
	NI counter;
};
typedef NU8 tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw;
typedef NU8 tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg;
typedef NU8 tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA;
typedef NU64 tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A;
struct tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ {
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw backend;
	tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg selectedGC;
	tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA cCompiler;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A globalOptions;
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
  NI len; tySequence__fdmz6VkIf1ewwrssKYqRFg_Content* p;
};
struct tyObject_Table__79b4rr6WWQqgRr9b4NH4UF9cw {
	tySequence__fdmz6VkIf1ewwrssKYqRFg data;
	NI counter;
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg {
  NI len; tySequence__kxu4GK0onha2t9bo86mdVAg_Content* p;
};
struct tyObject_Table__AC9bec2JdoOuC3xQePGWgmA {
	tySequence__kxu4GK0onha2t9bo86mdVAg data;
	NI counter;
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  NI len; tySequence__48JTohSgTy339bRxHzUD8KA_Content* p;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
struct tySequence__fz0REU1l0nYmKHXgMLRrIg {
  NI len; tySequence__fz0REU1l0nYmKHXgMLRrIg_Content* p;
};
struct tyObject_Table__bHTcQUCehDW9clHfFZXI7lQ {
	tySequence__fz0REU1l0nYmKHXgMLRrIg data;
	NI counter;
};
struct tySequence__Ip9aV1IKO2gVdheNOM31DCQ {
  NI len; tySequence__Ip9aV1IKO2gVdheNOM31DCQ_Content* p;
};
struct tyObject_Table__w2vCG1OPnHmNolvQVT168g {
	tySequence__Ip9aV1IKO2gVdheNOM31DCQ data;
	NI counter;
};
struct tySequence__kHjIdgrpmuSn9cUIIKpSiDg {
  NI len; tySequence__kHjIdgrpmuSn9cUIIKpSiDg_Content* p;
};
struct tySequence__Wd0Vle6gxRCPPoSlNEvfTA {
  NI len; tySequence__Wd0Vle6gxRCPPoSlNEvfTA_Content* p;
};
struct tyObject_CountTable__qvMelb9coODdwoghoAPc9c9aA {
	tySequence__Wd0Vle6gxRCPPoSlNEvfTA data;
	NI counter;
	NIM_BOOL isSorted;
};
struct tySequence__T7nNEWoEbKBa0G5Htr45Xw {
  NI len; tySequence__T7nNEWoEbKBa0G5Htr45Xw_Content* p;
};
struct tyObject_Table__fZyCWkMwhdvr3pauCNDaag {
	tySequence__T7nNEWoEbKBa0G5Htr45Xw data;
	NI counter;
};
struct tySequence__q9cHvMDDxYU1hSCdG4YwIhA {
  NI len; tySequence__q9cHvMDDxYU1hSCdG4YwIhA_Content* p;
};
struct tyObject_Table__5vmBY49areSIlgIs4A1LLKQ {
	tySequence__q9cHvMDDxYU1hSCdG4YwIhA data;
	NI counter;
};
struct tySequence__olFOFaYzOJN9aV5BWqK4b9bA {
  NI len; tySequence__olFOFaYzOJN9aV5BWqK4b9bA_Content* p;
};
typedef tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* tyArray__EOkbZZXacNOZHC8p7xc7hw[65];
struct tySequence__vJcM7B74R2U5db9cxyXT9coA {
  NI len; tySequence__vJcM7B74R2U5db9cxyXT9coA_Content* p;
};
struct tyObject_Table__9bmd0cvHWe1s4FTDn5BPmfw {
	tySequence__vJcM7B74R2U5db9cxyXT9coA data;
	NI counter;
};
struct tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg {
  NI len; tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg_Content* p;
};
struct tyObject_Table__GhjCMuklnRqwdX9bZo9bCoNg {
	tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg data;
	NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, tyProc__QieBhPPkGvcmpFg89a4ftcA) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* m_p1, NI32 fileIdx_p2);
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__F2ahyGAjs3aNLJYEXzu07g) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* m_p1, NI32 fileIdx_p2);
struct tySequence__R9c39btP6BwOBBPnbaNUtMQg {
  NI len; tySequence__R9c39btP6BwOBBPnbaNUtMQg_Content* p;
};
struct tyObject_Table__pI3mJh4Ap2XujSCfcSeUvQ {
	tySequence__R9c39btP6BwOBBPnbaNUtMQg data;
	NI counter;
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  NI len; tySequence__squ9b9bUH4OLHf6cEMrt6hVA_Content* p;
};
struct tyObject_Table__MsPmCuYz1KcEw6lr7P9cGkw {
	tySequence__squ9b9bUH4OLHf6cEMrt6hVA data;
	NI counter;
};
struct tySequence__3nALyQgqjnfK2Qjc6ny2Uw {
  NI len; tySequence__3nALyQgqjnfK2Qjc6ny2Uw_Content* p;
};
struct tyObject_Table__1HJsK7ponJ4Vb1lJgVFVTQ {
	tySequence__3nALyQgqjnfK2Qjc6ny2Uw data;
	NI counter;
};
struct tySequence__WbW5Q8QVks0bQpUJSGmuVg {
  NI len; tySequence__WbW5Q8QVks0bQpUJSGmuVg_Content* p;
};
typedef NU8 tyEnum_PipelinePass__kO50VlNfBJZtrNuD4VL9aTg;
typedef N_NIMCALL_PTR(void, tyProc__c9a5q9aZQWYYOu1vHoRoq9bVQ) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p2);
typedef N_NIMCALL_PTR(void, tyProc__kj3TYePLaHBuXxhRznQQNQ) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* body_p2);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__D3Q9bYoPIpHZVLfEIxpBssA) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* formal_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* actual_p2);
struct tyObject_Operators__yrAfvKhiysDamJlcGNgVfQ {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opNot;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opContains;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opLe;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opLt;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opAnd;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opOr;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opIsNil;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opEq;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opAdd;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opSub;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opMul;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opDiv;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* opLen;
};
struct tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw {
	tySequence__TfHJycarvNts8E4mVG4Mfg ifaces;
	tyObject_PackedModuleGraph__vzv9a6xTiz616FotDgUeo9bg packed_0;
	tySequence__dtr79aXjHrgHuH79ac55I2aw encoders;
	tyObject_Table__EBJpp1hXwvFl9cyekUv4qHg typeInstCache;
	tyObject_Table__nn0jq9adRZXGGj9assM9c9bR0w procInstCache;
	tyArray__HTPiakF26bUQGH9bgtmrtkA attachedOps;
	tyObject_Table__tEqt8LkShErhjQ9acvGyE7g methodsPerGenericType;
	tyObject_Table__QS2Z9cQjmvkp1aaFGq4ippw memberProcsPerType;
	tyObject_Table__bnfVX2VJ9aUicVujDM0GIhw initializersPerType;
	tyObject_Table__ChMwcRY3QzpOEBWbGAfvcA enumToStringProcs;
	tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A emittedTypeInfo;
	tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ startupPackedConfig;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg packageSyms;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA deps;
	tyObject_Table__79b4rr6WWQqgRr9b4NH4UF9cw importDeps;
	NIM_BOOL suggestMode;
	NIM_BOOL invalidTransitiveClosure;
	NIM_BOOL interactive;
	NIM_BOOL withinSystem;
	tyObject_Table__AC9bec2JdoOuC3xQePGWgmA inclToMod;
	tySequence__48JTohSgTy339bRxHzUD8KA importStack;
	RootObj* backend;
	tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config;
	tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* cache;
	RootObj* vm;
	RootObj* repl;
	tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* usageSym;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA owners;
	tyObject_Table__bHTcQUCehDW9clHfFZXI7lQ suggestSymbols;
	tyObject_Table__w2vCG1OPnHmNolvQVT168g suggestErrors;
	tySequence__kHjIdgrpmuSn9cUIIKpSiDg methods;
	tyObject_CountTable__qvMelb9coODdwoghoAPc9c9aA bucketTable;
	tyObject_Table__fZyCWkMwhdvr3pauCNDaag objectTree;
	tyObject_Table__5vmBY49areSIlgIs4A1LLKQ methodsPerType;
	tySequence__olFOFaYzOJN9aV5BWqK4b9bA dispatchers;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* systemModule;
	tyArray__EOkbZZXacNOZHC8p7xc7hw sysTypes;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg compilerprocs;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg exposed;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg packageTypes;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* emptyNode;
	tyObject_Table__9bmd0cvHWe1s4FTDn5BPmfw canonTypes;
	tyObject_Table__GhjCMuklnRqwdX9bZo9bCoNg symBodyHashes;
	tyProc__QieBhPPkGvcmpFg89a4ftcA importModuleCallback;
	tyProc__F2ahyGAjs3aNLJYEXzu07g includeFileCallback;
	tyObject_Table__pI3mJh4Ap2XujSCfcSeUvQ cacheSeqs;
	tyObject_Table__MsPmCuYz1KcEw6lr7P9cGkw cacheCounters;
	tyObject_Table__1HJsK7ponJ4Vb1lJgVFVTQ cacheTables;
	tySequence__WbW5Q8QVks0bQpUJSGmuVg passes;
	tyEnum_PipelinePass__kO50VlNfBJZtrNuD4VL9aTg pipelinePass;
	tyProc__c9a5q9aZQWYYOu1vHoRoq9bVQ onDefinition;
	tyProc__c9a5q9aZQWYYOu1vHoRoq9bVQ onDefinitionResolveForward;
	tyProc__c9a5q9aZQWYYOu1vHoRoq9bVQ onUsage;
	tySequence__9ahcSjIErJohSBBFLwuF56Q globalDestructors;
	tyProc__kj3TYePLaHBuXxhRznQQNQ strongSemCheck;
	tyProc__D3Q9bYoPIpHZVLfEIxpBssA compatibleProps;
	tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen;
	tyObject_Operators__yrAfvKhiysDamJlcGNgVfQ operators;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* cachedFiles;
	tySequence__9ahcSjIErJohSBBFLwuF56Q procGlobals;
};
typedef 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 tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
	NimStringV2 Field0;
	NI Field1;
	NI Field2;
};
struct tySequence__vb3AGHvMJTxdOSSwMmBmTQ {
  NI len; tySequence__vb3AGHvMJTxdOSSwMmBmTQ_Content* p;
};
struct tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig {
	NU32 module;
	NI32 item;
};
struct tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ {
	NI module;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig packed_0;
};
struct tyObject_LazyType__dsEGDq9cOhnzsRvTUTwwwuA {
	tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ id;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ;
};
typedef NU8 tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw;
typedef NU16 tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ;
typedef NU8 tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA;
typedef NU8 tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w;
typedef NU8 tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q;
struct tySequence__hRbbzIynOoxrYjHTIKZ3Gw {
  NI len; tySequence__hRbbzIynOoxrYjHTIKZ3Gw_Content* p;
};
struct tyObject_CountTable__5N9carAoH8U5E301UN9ccEmQ {
	tySequence__hRbbzIynOoxrYjHTIKZ3Gw data;
	NI counter;
	NIM_BOOL isSorted;
};
struct tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug {
	NI32 module;
	NI32 symId;
	NI32 typeId_0;
	NIM_BOOL sealed;
	tyObject_CountTable__5N9carAoH8U5E301UN9ccEmQ disambTable;
};
typedef NU8 tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
typedef NU8 tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg[9];
struct tySequence__9bW2eTK9b7vXE70Sx5VPH1mw {
  NI len; tySequence__9bW2eTK9b7vXE70Sx5VPH1mw_Content* p;
};
struct tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA {
	tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ id;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym;
};
struct tyTuple__lGHLhAAUpxgfrnQkIzNrMw {
	NI Field0;
	tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA Field1;
};
struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA {
	NI id;
	NimStringV2 s;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* next;
	NI h;
};
typedef N_CLOSURE_PTR(void, TM__mrkrD9c2e31kE4GdQtpMdaQ_47) (tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** n_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p2);
struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A {
	NI rc;
	NI rootIdx;
};
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 tyObject_TIdPair__03S6SAVUgd0pzOKFuxkR1A {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* val;
};
struct tySequence__ZUeR9b415wicThQ9cBWO9aYMw_Content { NI cap; tyObject_TIdPair__03S6SAVUgd0pzOKFuxkR1A data[SEQ_DECL_SIZE]; };
typedef NU8 tyEnum_ImportMode__rHuf2PYQqUqEBlVu227wVQ;
struct tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* m;
	tyEnum_ImportMode__rHuf2PYQqUqEBlVu227wVQ mode;
union{
	struct {
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA imported;
} _mode_2;
	struct {
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA exceptSet;
} _mode_3;
};
};
struct tySequence__AE2UIxl7EbPzzBnmYsjIcw_Content { NI cap; tyObject_ImportedModule__NhRLdOPUbh9bmcDLjImMKWw data[SEQ_DECL_SIZE]; };
struct tySequence__ZCZaCk14bTmSb6LMW9aWPVA_Content { NI cap; tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* data[SEQ_DECL_SIZE]; };
struct tySequence__tsHRsYLyvTCPLlGRExqi7Q_Content { NI cap; tyObject_TOptionEntry__KeABxBvAlGa1KroFfkcqAg* data[SEQ_DECL_SIZE]; };
struct tySequence__lAikaRQvUF0uwNAz0U4FFA_Content { NI cap; tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig* data[SEQ_DECL_SIZE]; };
struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content { NI cap; tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA* data[SEQ_DECL_SIZE]; };
struct tyObject_TInstantiationPair__bS87nlCVAcAYxO9aJequmYw {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* genericSym;
	tyObject_TInstantiation__jr8MibvPn2sQBnO7XCoZRQ* inst;
};
struct tySequence__4zAALtm0xUbRlYWQ2V8K7A_Content { NI cap; tyObject_TInstantiationPair__bS87nlCVAcAYxO9aJequmYw data[SEQ_DECL_SIZE]; };
struct tyTuple__09aD69az7aYn14Gt61AHvLIA {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field0;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field1;
};
struct tySequence__9bffTLF0HkxjFCzZL8og4GA_Content { NI cap; tyTuple__09aD69az7aYn14Gt61AHvLIA data[SEQ_DECL_SIZE]; };
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
	NI Field0;
	NI Field1;
};
struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ {
	NI Field0;
	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ Field1;
};
struct tySequence__Bis5AbpONWcIRrPyPJS8Yw_Content { NI cap; tyTuple__NAaJgGVgNmlGoqmiWxdOHQ data[SEQ_DECL_SIZE]; };
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
	NI Field0;
	NI Field1;
	NI Field2;
};
struct tySequence__E8pi9b5QNahsURYzXMjh3qw_Content { NI cap; tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE]; };
struct tySequence__KYLoGmc5aaHsSDjEH1FTxQ {
  NI len; tySequence__KYLoGmc5aaHsSDjEH1FTxQ_Content* p;
};
struct tyTuple__CH9a39cWKma9c9c9cYqCyX1wBsw {
	NI Field0;
	NI Field1;
	tySequence__KYLoGmc5aaHsSDjEH1FTxQ Field2;
};
struct tySequence__3B6hFqG0Do0FxDvnNucL7w_Content { NI cap; tyTuple__CH9a39cWKma9c9c9cYqCyX1wBsw data[SEQ_DECL_SIZE]; };
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  NI len; tySequence__qwqHTkRvwhrRyENtudHQ7g_Content* p;
};
struct tyTuple__EbsafWGli8bW2GRJQ9apsjA {
	NI Field0;
	NI Field1;
	tySequence__qwqHTkRvwhrRyENtudHQ7g Field2;
};
struct tySequence__QqvaCqCpEE1QmQZbcZLi5A_Content { NI cap; tyTuple__EbsafWGli8bW2GRJQ9apsjA data[SEQ_DECL_SIZE]; };
struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content { NI cap; tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* data[SEQ_DECL_SIZE]; };
struct tyObject_Iface__j1FkQxwEAKMJy1o9bap1xow {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* module;
	tySequence__olFOFaYzOJN9aV5BWqK4b9bA converters;
	tySequence__olFOFaYzOJN9aV5BWqK4b9bA patterns;
	tySequence__olFOFaYzOJN9aV5BWqK4b9bA pureEnums;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg interf;
	tyObject_TStrTable__Ry5QUbfaMzlI1Jpe9bUTBDg interfHidden;
	NimStringV2 uniqueName;
};
struct tySequence__TfHJycarvNts8E4mVG4Mfg_Content { NI cap; tyObject_Iface__j1FkQxwEAKMJy1o9bap1xow data[SEQ_DECL_SIZE]; };
typedef NU8 tyEnum_ModuleStatus__uT4B39a2dNaG9a9aunVdyhQtQ;
struct tySequence__PXIzfWocnrafGz5p3CP5LA {
  NI len; tySequence__PXIzfWocnrafGz5p3CP5LA_Content* p;
};
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA {
  NI len; tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content* p;
};
struct tySequence__OxRbUT0qZaZN5UjnqQjGPA {
  NI len; tySequence__OxRbUT0qZaZN5UjnqQjGPA_Content* p;
};
struct tySequence__ezS5mGPcRfBURJyMgqYVzA {
  NI len; tySequence__ezS5mGPcRfBURJyMgqYVzA_Content* p;
};
struct tySequence__wW7xkohjuUKO9aMaB0nt9cqA {
  NI len; tySequence__wW7xkohjuUKO9aMaB0nt9cqA_Content* p;
};
struct tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w {
	tySequence__OxRbUT0qZaZN5UjnqQjGPA nodes;
	tySequence__ezS5mGPcRfBURJyMgqYVzA withFlags;
	tySequence__wW7xkohjuUKO9aMaB0nt9cqA withTypes;
};
struct tySequence__b89aLriiJnVTD186H6zNIgg {
  NI len; tySequence__b89aLriiJnVTD186H6zNIgg_Content* p;
};
struct tySequence__hIPTk9aFdaMMVAOzEbnPyqg {
  NI len; tySequence__hIPTk9aFdaMMVAOzEbnPyqg_Content* p;
};
struct tySequence__YYy1721YAuPF0ajBYHd8Wg {
  NI len; tySequence__YYy1721YAuPF0ajBYHd8Wg_Content* p;
};
struct tySequence__UODJbvzmu39c3Ho9cqhSk9agQ {
  NI len; tySequence__UODJbvzmu39c3Ho9cqhSk9agQ_Content* p;
};
struct tySequence__F1qNdU7m0Czu7Y2q0eksXw {
  NI len; tySequence__F1qNdU7m0Czu7Y2q0eksXw_Content* p;
};
struct tySequence__r3Kz9breImOXyFFoJ29aBM8Q {
  NI len; tySequence__r3Kz9breImOXyFFoJ29aBM8Q_Content* p;
};
struct tySequence__qBes3XzcQQ9cyia9bRwnmbJw {
  NI len; tySequence__qBes3XzcQQ9cyia9bRwnmbJw_Content* p;
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
typedef NU8 tySet_tyEnum_ModuleBackendFlag__5FvIlwIIbpcHU0ZRU9a5hrQ;
struct tySequence__Vl1abU3gfp0RqCb1KKfmDA {
  NI len; tySequence__Vl1abU3gfp0RqCb1KKfmDA_Content* p;
};
struct tyObject_OrderedTable__vodBW9bS41CI2hVVsJJ8qiw {
	tySequence__Vl1abU3gfp0RqCb1KKfmDA data;
	NI counter;
	NI first;
	NI last;
};
struct tySequence__qyyNkmlc4fzOzelC8spUkQ {
  NI len; tySequence__qyyNkmlc4fzOzelC8spUkQ_Content* p;
};
struct tyObject_OrderedTable__y5tq9cRly5CxS2mQPchEHcw {
	tySequence__qyyNkmlc4fzOzelC8spUkQ data;
	NI counter;
	NI first;
	NI last;
};
struct tyObject_BiTable__KR9c7QZguPO3OKZOIcphgcA {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ vals;
	tySequence__9bAGqSvkAaFL9bWjsEPslrFA keys;
};
struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
  NI len; tySequence__IHUFRsFxZNv7YydiUO2esQ_Content* p;
};
struct tyObject_BiTable__9aUXwPoJbNPqj9a249c0iSmlg {
	tySequence__IHUFRsFxZNv7YydiUO2esQ vals;
	tySequence__9bAGqSvkAaFL9bWjsEPslrFA keys;
};
struct tySequence__orxtl6CusdjXleqrxi67gw {
  NI len; tySequence__orxtl6CusdjXleqrxi67gw_Content* p;
};
struct tyObject_LineInfoManager__TTy646Kfh1cVyXU9aSMasUQ {
	tySequence__orxtl6CusdjXleqrxi67gw aside;
};
struct tyObject_PackedModule__sRHd9aQ2ZMII76xRsfAbE9aQ {
	NimStringV2 definedSymbols;
	tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg moduleFlags;
	tySequence__PXIzfWocnrafGz5p3CP5LA includes;
	tySequence__9bAGqSvkAaFL9bWjsEPslrFA imports;
	tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w toReplay;
	tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w topLevel;
	tyObject_PackedTree__YtSUB9b7CaIoOyHxDty9bm6w bodies;
	tySequence__b89aLriiJnVTD186H6zNIgg exports;
	tySequence__b89aLriiJnVTD186H6zNIgg hidden;
	tySequence__hIPTk9aFdaMMVAOzEbnPyqg reexports;
	tySequence__b89aLriiJnVTD186H6zNIgg compilerProcs;
	tySequence__48JTohSgTy339bRxHzUD8KA converters;
	tySequence__48JTohSgTy339bRxHzUD8KA methods;
	tySequence__48JTohSgTy339bRxHzUD8KA trmacros;
	tySequence__48JTohSgTy339bRxHzUD8KA pureEnums;
	tySequence__YYy1721YAuPF0ajBYHd8Wg typeInstCache;
	tySequence__UODJbvzmu39c3Ho9cqhSk9agQ procInstCache;
	tySequence__F1qNdU7m0Czu7Y2q0eksXw attachedOps;
	tySequence__r3Kz9breImOXyFFoJ29aBM8Q methodsPerGenericType;
	tySequence__YYy1721YAuPF0ajBYHd8Wg enumToStringProcs;
	tySequence__YYy1721YAuPF0ajBYHd8Wg methodsPerType;
	tySequence__qBes3XzcQQ9cyia9bRwnmbJw dispatchers;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ emittedTypeInfo;
	tySet_tyEnum_ModuleBackendFlag__5FvIlwIIbpcHU0ZRU9a5hrQ backendFlags;
	tyObject_OrderedTable__vodBW9bS41CI2hVVsJJ8qiw syms;
	tyObject_OrderedTable__y5tq9cRly5CxS2mQPchEHcw types;
	tyObject_BiTable__KR9c7QZguPO3OKZOIcphgcA strings;
	tyObject_BiTable__9aUXwPoJbNPqj9a249c0iSmlg numbers;
	tyObject_LineInfoManager__TTy646Kfh1cVyXU9aSMasUQ man;
	tyObject_PackedConfig__Hpn673wkKPDorr1HY9bOaDQ cfg;
};
struct tySequence__K0j67V58u5FW0dCC534FQw {
  NI len; tySequence__K0j67V58u5FW0dCC534FQw_Content* p;
};
struct tyObject_OrderedTable__h8mIUVGY8LJXF9cakgvB9bqQ {
	tySequence__K0j67V58u5FW0dCC534FQw data;
	NI counter;
	NI first;
	NI last;
};
struct tySequence__UE4b6iUkm1b3zTPamTTkDw {
  NI len; tySequence__UE4b6iUkm1b3zTPamTTkDw_Content* p;
};
struct tyObject_OrderedTable__DED9c7j9bI3Lh5w4GQakK8yQ {
	tySequence__UE4b6iUkm1b3zTPamTTkDw data;
	NI counter;
	NI first;
	NI last;
};
struct tySequence__FmsTQiIcS9arxHxs3QY48vA {
  NI len; tySequence__FmsTQiIcS9arxHxs3QY48vA_Content* p;
};
struct tyObject_Table__BH9cy1hZ1rZZoGkNCEN1uvg {
	tySequence__FmsTQiIcS9arxHxs3QY48vA data;
	NI counter;
};
struct tyObject_LoadedModule__7NEKRkz5hkiOxQy5guqIHA {
	tyEnum_ModuleStatus__uT4B39a2dNaG9a9aunVdyhQtQ status;
	NIM_BOOL symsInit;
	NIM_BOOL typesInit;
	NIM_BOOL loadedButAliveSetChanged;
	tyObject_PackedModule__sRHd9aQ2ZMII76xRsfAbE9aQ fromDisk;
	tyObject_OrderedTable__h8mIUVGY8LJXF9cakgvB9bqQ syms;
	tyObject_OrderedTable__DED9c7j9bI3Lh5w4GQakK8yQ types;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* module;
	tyObject_Table__BH9cy1hZ1rZZoGkNCEN1uvg iface;
	tyObject_Table__BH9cy1hZ1rZZoGkNCEN1uvg ifaceHidden;
};
struct tySequence__5reviU45axUMPQgL9aoENrg_Content { NI cap; tyObject_LoadedModule__7NEKRkz5hkiOxQy5guqIHA data[SEQ_DECL_SIZE]; };
struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ {
  NI len; tySequence__9cnx3zXnWzeclW8Ko4oUgAQ_Content* p;
};
struct tyObject_Table__uaQEKxLZNO5fpFluyxnhTg {
	tySequence__9cnx3zXnWzeclW8Ko4oUgAQ data;
	NI counter;
};
struct tyObject_PackedEncoder__FGa18gE2dyYyuq9ckHprjTQ {
	NI32 thisModule;
	NI32 lastFile;
	NU32 lastLit;
	tyObject_Table__uaQEKxLZNO5fpFluyxnhTg filenames;
	tySequence__d8ZV4IMgHt9biik9cS9a0hrmg pendingTypes;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA pendingSyms;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA typeMarker;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA symMarker;
	tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config;
};
struct tySequence__dtr79aXjHrgHuH79ac55I2aw_Content { NI cap; tyObject_PackedEncoder__FGa18gE2dyYyuq9ckHprjTQ data[SEQ_DECL_SIZE]; };
struct 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 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 tyTuple__4iq9bD09amB7Ah0r9cBB0nSPQ {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__9bW2eTK9b7vXE70Sx5VPH1mw Field2;
};
struct tySequence__9aSa87aKMiolq9a7z3kC0jTw_Content { NI cap; tyTuple__4iq9bD09amB7Ah0r9cBB0nSPQ data[SEQ_DECL_SIZE]; };
struct tyTuple__bnJwOH0eJlAwCAMbr1inhw {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA Field2;
};
struct tySequence__N589c2UsUgqqOITU2JfIuAQ_Content { NI cap; tyTuple__bnJwOH0eJlAwCAMbr1inhw data[SEQ_DECL_SIZE]; };
struct tyTuple__YG7h1OUHzgfgTeH9cl0U0dw {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* Field2;
};
struct tySequence__GYDW6wGgERshoSd16jJ3eQ_Content { NI cap; tyTuple__YG7h1OUHzgfgTeH9cl0U0dw data[SEQ_DECL_SIZE]; };
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
	NI Field0;
	NimStringV2 Field1;
	NI32 Field2;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content { NI cap; tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE]; };
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
	NI Field0;
	NI32 Field1;
	tySequence__48JTohSgTy339bRxHzUD8KA Field2;
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg_Content { NI cap; tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE]; };
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
	NI Field0;
	NI32 Field1;
	NI32 Field2;
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg_Content { NI cap; tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE]; };
struct tySequence__48JTohSgTy339bRxHzUD8KA_Content { NI cap; NI32 data[SEQ_DECL_SIZE]; };
struct tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg {
  NI len; tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg_Content* p;
};
struct tySequence__yUWoZehF86MIc40opFgacw {
  NI len; tySequence__yUWoZehF86MIc40opFgacw_Content* p;
};
struct tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw {
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA s;
	NI len;
};
struct tyObject_SuggestFileSymbolDatabase__o0ahEzaLn5a7TdNqH4OVqQ {
	tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg lineInfo;
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA sym;
	tySequence__yUWoZehF86MIc40opFgacw caughtExceptions;
	tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw caughtExceptionsSet;
	tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw isDecl;
	tyObject_PackedBoolArray__1pk9boftqWMNDE1oh5HcIhw isGenericInstance;
	NI32 fileIndex;
	NIM_BOOL trackCaughtExceptions;
	NIM_BOOL isSorted;
};
struct tyTuple__tG5yYi8DnD7bl00aT9cgctQ {
	NI Field0;
	NI32 Field1;
	tyObject_SuggestFileSymbolDatabase__o0ahEzaLn5a7TdNqH4OVqQ Field2;
};
struct tySequence__fz0REU1l0nYmKHXgMLRrIg_Content { NI cap; tyTuple__tG5yYi8DnD7bl00aT9cgctQ data[SEQ_DECL_SIZE]; };
struct tySequence__nSO1ltijM4vhc0UrrXKEqA {
  NI len; tySequence__nSO1ltijM4vhc0UrrXKEqA_Content* p;
};
struct tyTuple__gnRkA1L4XiR4uByriyHW8Q {
	NI Field0;
	NI32 Field1;
	tySequence__nSO1ltijM4vhc0UrrXKEqA Field2;
};
struct tySequence__Ip9aV1IKO2gVdheNOM31DCQ_Content { NI cap; tyTuple__gnRkA1L4XiR4uByriyHW8Q data[SEQ_DECL_SIZE]; };
struct tyTuple__CvjVmQeIfivirDme2r5MRw {
	tySequence__ZCZaCk14bTmSb6LMW9aWPVA Field0;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field1;
};
struct tySequence__kHjIdgrpmuSn9cUIIKpSiDg_Content { NI cap; tyTuple__CvjVmQeIfivirDme2r5MRw data[SEQ_DECL_SIZE]; };
struct tyTuple__2QDyOgS51ZMPO0W1pWCY6g {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field0;
	NI Field1;
};
struct tySequence__Wd0Vle6gxRCPPoSlNEvfTA_Content { NI cap; tyTuple__2QDyOgS51ZMPO0W1pWCY6g data[SEQ_DECL_SIZE]; };
struct tySequence__juxPMVNF1FoR2ltzeQu8NQ {
  NI len; tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content* p;
};
struct tyTuple__UbCNQED4XJUgxOgPHJUcAQ {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__juxPMVNF1FoR2ltzeQu8NQ Field2;
};
struct tySequence__T7nNEWoEbKBa0G5Htr45Xw_Content { NI cap; tyTuple__UbCNQED4XJUgxOgPHJUcAQ data[SEQ_DECL_SIZE]; };
struct tyTuple__zExIg9bDTcVf2FHROUpzoow {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tySequence__olFOFaYzOJN9aV5BWqK4b9bA Field2;
};
struct tySequence__q9cHvMDDxYU1hSCdG4YwIhA_Content { NI cap; tyTuple__zExIg9bDTcVf2FHROUpzoow data[SEQ_DECL_SIZE]; };
struct tySequence__olFOFaYzOJN9aV5BWqK4b9bA_Content { NI cap; tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA data[SEQ_DECL_SIZE]; };
typedef NU8 tyArray__dnD8kjh6rJ1Yy5jHvid0Ow[16];
struct tyTuple__XrHNJHOzS3O7uwF9bvCySiA {
	NI Field0;
	tyArray__dnD8kjh6rJ1Yy5jHvid0Ow Field1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* Field2;
};
struct tySequence__vJcM7B74R2U5db9cxyXT9coA_Content { NI cap; tyTuple__XrHNJHOzS3O7uwF9bvCySiA data[SEQ_DECL_SIZE]; };
struct tyTuple__EdLY4EJQ37VFgbAn5g5rXQ {
	NI Field0;
	NI Field1;
	tyArray__dnD8kjh6rJ1Yy5jHvid0Ow Field2;
};
struct tySequence__Mt5NbgJ9cKUrhjgdsnfKvXg_Content { NI cap; tyTuple__EdLY4EJQ37VFgbAn5g5rXQ data[SEQ_DECL_SIZE]; };
struct tyTuple__OtlgAx3kBps9cOSMNDZSzBA {
	NI Field0;
	NimStringV2 Field1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* Field2;
};
struct tySequence__R9c39btP6BwOBBPnbaNUtMQg_Content { NI cap; tyTuple__OtlgAx3kBps9cOSMNDZSzBA data[SEQ_DECL_SIZE]; };
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
	NI Field0;
	NimStringV2 Field1;
	NI64 Field2;
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA_Content { NI cap; tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE]; };
struct tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw {
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* root;
	NI entries;
};
struct tyTuple__RFOJ4fF7D9bpvmh9birH1JhQ {
	NI Field0;
	NimStringV2 Field1;
	tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw Field2;
};
struct tySequence__3nALyQgqjnfK2Qjc6ny2Uw_Content { NI cap; tyTuple__RFOJ4fF7D9bpvmh9birH1JhQ data[SEQ_DECL_SIZE]; };
typedef N_NIMCALL_PTR(tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ*, tyProc__TVHQTM3bKm4Mi6Ul6zgzuQ) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* module_p1, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p2);
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__74nHWc2UIRu3iSR9akqDDBg) (tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ* p_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* topLevelStmt_p1);
typedef N_NIMCALL_PTR(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, tyProc__S9bLWKf8jgjzoiotAmEyFSw) (tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph_p0, tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ* p_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2);
struct tyTuple__O3g9a8zTXSX36ljWponcAoA {
	tyProc__TVHQTM3bKm4Mi6Ul6zgzuQ Field0;
	tyProc__74nHWc2UIRu3iSR9akqDDBg Field1;
	tyProc__S9bLWKf8jgjzoiotAmEyFSw Field2;
	NIM_BOOL Field3;
};
struct tySequence__WbW5Q8QVks0bQpUJSGmuVg_Content { NI cap; tyTuple__O3g9a8zTXSX36ljWponcAoA data[SEQ_DECL_SIZE]; };
struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content { NI cap; tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* data[SEQ_DECL_SIZE]; };
struct tySequence__vb3AGHvMJTxdOSSwMmBmTQ_Content { NI cap; tyObject_LazyType__dsEGDq9cOhnzsRvTUTwwwuA data[SEQ_DECL_SIZE]; };
struct tyTuple__Oubp8LPEu86EPyDuc56AXg {
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* Field0;
	NI Field1;
};
struct tySequence__hRbbzIynOoxrYjHTIKZ3Gw_Content { NI cap; tyTuple__Oubp8LPEu86EPyDuc56AXg data[SEQ_DECL_SIZE]; };
struct tySequence__9bW2eTK9b7vXE70Sx5VPH1mw_Content { NI cap; tyTuple__lGHLhAAUpxgfrnQkIzNrMw data[SEQ_DECL_SIZE]; };
struct tyTuple__ZUrTP7BFWWFkSv3xO9crp9aQ {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field0;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field1;
};
struct tySequence__KYLoGmc5aaHsSDjEH1FTxQ_Content { NI cap; tyTuple__ZUrTP7BFWWFkSv3xO9crp9aQ data[SEQ_DECL_SIZE]; };
struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content { NI cap; NI data[SEQ_DECL_SIZE]; };
struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
	NU32 Field0;
	NimStringV2 Field1;
};
struct tySequence__PXIzfWocnrafGz5p3CP5LA_Content { NI cap; tyTuple__0q9cmhneJEKnQERTpXXdz6Q data[SEQ_DECL_SIZE]; };
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content { NI cap; NU32 data[SEQ_DECL_SIZE]; };
struct tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w {
	NU32 x;
	NU32 info;
};
struct tySequence__OxRbUT0qZaZN5UjnqQjGPA_Content { NI cap; tyObject_PackedNode__YxKk4C732K04CNgtMhmc0w data[SEQ_DECL_SIZE]; };
struct tyTuple__48iPM3yLBKU5nyEuYwJvuQ {
	NI32 Field0;
	tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw Field1;
};
struct tySequence__ezS5mGPcRfBURJyMgqYVzA_Content { NI cap; tyTuple__48iPM3yLBKU5nyEuYwJvuQ data[SEQ_DECL_SIZE]; };
struct tyTuple__R3ddFrA0G9buJY57Qhf9cTpg {
	NI32 Field0;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field1;
};
struct tySequence__wW7xkohjuUKO9aMaB0nt9cqA_Content { NI cap; tyTuple__R3ddFrA0G9buJY57Qhf9cTpg data[SEQ_DECL_SIZE]; };
struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
	NU32 Field0;
	NI32 Field1;
};
struct tySequence__b89aLriiJnVTD186H6zNIgg_Content { NI cap; tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE]; };
struct tyTuple__7rmdAMLZ8fDd79brQn2ixZA {
	NU32 Field0;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field1;
};
struct tySequence__hIPTk9aFdaMMVAOzEbnPyqg_Content { NI cap; tyTuple__7rmdAMLZ8fDd79brQn2ixZA data[SEQ_DECL_SIZE]; };
struct tyTuple__qPXRCRNQuZLLKto7CIIEzw {
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field0;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field1;
};
struct tySequence__YYy1721YAuPF0ajBYHd8Wg_Content { NI cap; tyTuple__qPXRCRNQuZLLKto7CIIEzw data[SEQ_DECL_SIZE]; };
struct tyObject_PackedInstantiation__C3FSePJFY8gUIMObsjT2dg {
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig key;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig sym;
	tySequence__qBes3XzcQQ9cyia9bRwnmbJw concreteTypes;
};
struct tySequence__UODJbvzmu39c3Ho9cqhSk9agQ_Content { NI cap; tyObject_PackedInstantiation__C3FSePJFY8gUIMObsjT2dg data[SEQ_DECL_SIZE]; };
struct tyTuple__6kG8KAxm9aXPdLdlxcxqJJw {
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field0;
	tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q Field1;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field2;
};
struct tySequence__F1qNdU7m0Czu7Y2q0eksXw_Content { NI cap; tyTuple__6kG8KAxm9aXPdLdlxcxqJJw data[SEQ_DECL_SIZE]; };
struct tyTuple__TRK7rrwoha9bbDAdPWsqJMw {
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field0;
	NI Field1;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig Field2;
};
struct tySequence__r3Kz9breImOXyFFoJ29aBM8Q_Content { NI cap; tyTuple__TRK7rrwoha9bbDAdPWsqJMw data[SEQ_DECL_SIZE]; };
struct tySequence__qBes3XzcQQ9cyia9bRwnmbJw_Content { NI cap; tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig data[SEQ_DECL_SIZE]; };
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; };
typedef NU8 tyEnum_TLibKind__BkKL8ReLoyYDI7of9aQPV0A;
struct tyObject_PackedLib__EpwVLk0Fuc5Q9agKLMWedbg {
	tyEnum_TLibKind__BkKL8ReLoyYDI7of9aQPV0A kind;
	NIM_BOOL generated;
	NIM_BOOL isOverridden;
	NU32 name;
	NI32 path;
};
struct tyObject_PackedSym__KKnx6w8Cc9aaVsaPOpaqxbw {
	NI32 id;
	tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind;
	NU32 name;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig typ;
	tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg flags;
	tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg magic;
	NU32 info;
	NI32 ast;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig owner;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig guard;
	NI bitsize;
	NI alignment;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	NI position;
	NI32 offset;
	NI32 disamb;
	NU32 externalName;
	tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg locFlags;
	tyObject_PackedLib__EpwVLk0Fuc5Q9agKLMWedbg annex;
	NI32 constraint;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig instantiatedFrom;
};
struct tyTuple__V1VWX9bHapuzCjpMfFfys5Q {
	NI Field0;
	NI Field1;
	NI32 Field2;
	tyObject_PackedSym__KKnx6w8Cc9aaVsaPOpaqxbw Field3;
};
struct tySequence__Vl1abU3gfp0RqCb1KKfmDA_Content { NI cap; tyTuple__V1VWX9bHapuzCjpMfFfys5Q data[SEQ_DECL_SIZE]; };
struct tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ {
	NI32 id;
	tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind;
	tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ callConv;
	tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A flags;
	tySequence__qBes3XzcQQ9cyia9bRwnmbJw types;
	NI32 n;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig sym;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig owner;
	NI64 size;
	NI16 align;
	NI16 paddingAtEnd;
	tyObject_PackedItemId__WqAMZCDwoZiUuOt3ohcDig typeInst;
	NI32 nonUniqueId;
};
struct tyTuple__anemVmHCFglLFt6LiEhFvg {
	NI Field0;
	NI Field1;
	NI32 Field2;
	tyObject_PackedType__8M8VlYfwJ6AtpxG1HNn4bQ Field3;
};
struct tySequence__qyyNkmlc4fzOzelC8spUkQ_Content { NI cap; tyTuple__anemVmHCFglLFt6LiEhFvg data[SEQ_DECL_SIZE]; };
struct tySequence__IHUFRsFxZNv7YydiUO2esQ_Content { NI cap; NI64 data[SEQ_DECL_SIZE]; };
struct tyTuple__MaWaKZwaGUqCXKsSK12rVg {
	NU32 Field0;
	NI32 Field1;
	NI32 Field2;
};
struct tySequence__orxtl6CusdjXleqrxi67gw_Content { NI cap; tyTuple__MaWaKZwaGUqCXKsSK12rVg data[SEQ_DECL_SIZE]; };
struct tyTuple__nL9cBxaIV4ZA9b9ceY79coA5eA {
	NI Field0;
	NI Field1;
	NI32 Field2;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field3;
};
struct tySequence__K0j67V58u5FW0dCC534FQw_Content { NI cap; tyTuple__nL9cBxaIV4ZA9b9ceY79coA5eA data[SEQ_DECL_SIZE]; };
struct tyTuple__1xWeGeoNoZxaLhTUDDWYyA {
	NI Field0;
	NI Field1;
	NI32 Field2;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* Field3;
};
struct tySequence__UE4b6iUkm1b3zTPamTTkDw_Content { NI cap; tyTuple__1xWeGeoNoZxaLhTUDDWYyA data[SEQ_DECL_SIZE]; };
struct tyTuple__MZVSn3SE3XUBJOaMu7ofRQ {
	NI Field0;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* Field1;
	tySequence__qBes3XzcQQ9cyia9bRwnmbJw Field2;
};
struct tySequence__FmsTQiIcS9arxHxs3QY48vA_Content { NI cap; tyTuple__MZVSn3SE3XUBJOaMu7ofRQ data[SEQ_DECL_SIZE]; };
struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
	NI Field0;
	NI32 Field1;
	NU32 Field2;
};
struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ_Content { NI cap; tyTuple__UvldbCB6B9ayi9bGYW7vJNLA data[SEQ_DECL_SIZE]; };
struct 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 tyObject_TinyLineInfo__qW2GTIPjeOQ42q9c2MPWLLA {
	NU16 line;
	NI16 col;
};
struct tySequence__9aCujOg9b8Xgx9aYJJEMRHVwg_Content { NI cap; tyObject_TinyLineInfo__qW2GTIPjeOQ42q9c2MPWLLA data[SEQ_DECL_SIZE]; };
struct tySequence__yUWoZehF86MIc40opFgacw_Content { NI cap; tySequence__d8ZV4IMgHt9biik9cS9a0hrmg data[SEQ_DECL_SIZE]; };
struct tySequence__nSO1ltijM4vhc0UrrXKEqA_Content { NI cap; tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* data[SEQ_DECL_SIZE]; };
struct tyTuple__V6P73hvHy70PBBwharKjig {
	NI Field0;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* Field1;
};
struct tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content { NI cap; tyTuple__V6P73hvHy70PBBwharKjig data[SEQ_DECL_SIZE]; };
struct tySequence__YxH9cgSorHRI8ZPzHf47NNQ_Content { NI cap; tyObject_FullId__tYrGdGRoone9bMsQwSCYR9bQ data[SEQ_DECL_SIZE]; };
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__system_u2172)(void* a_p0, int v_p1, NI size_p2);
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);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, initTypeVars__semtypinst_u1560)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* p_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p2, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p3, tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdTable__xRBvhNSbEADzUTJAdtlGtA, initIdTable__semdata_u1096)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___semdata_u1115)(tyObject_TIdTable__xRBvhNSbEADzUTJAdtlGtA dest_p0);
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(void, eqdup___layeredtable_u239)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* src_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA, eqdup___lineinfos_u2037)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA src_p0);
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_TSym__lYFc3T7YHHNBnaZR9at0NSg*, eqdup___ast_u4580)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p0);
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(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, replaceTypeVarsN__semtypinst_u114)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, NI start_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p3);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, copyNode__ast_u6736)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_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*, replaceTypeVarsT__semtypinst_u125)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, NIM_BOOL isInstValue_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, replaceTypeVarsTAux__semtypinst_u106)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, NIM_BOOL isInstValue_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3381)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3378)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConcept__types_u3423)(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*, 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(void, eqwasMoved___ast_u3375)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, handleGenericInvocation__semtypinst_u564)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericHead__ast_u5376)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_u1598)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, NimStringV2 errMsg_p2, tyTuple__kN8up2W6YKc5YA9avn5mV5w* info2_p3);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, searchInstTypes__semtypinst_u44)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* key_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__modulegraphs_u3657)(tyObject_Table__EBJpp1hXwvFl9cyekUv4qHg t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
N_LIB_PRIVATE N_NIMCALL(tySequence__vb3AGHvMJTxdOSSwMmBmTQ*, X5BX5D___modulegraphs_u4129)(tyObject_Table__EBJpp1hXwvFl9cyekUv4qHg* t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, resolveType__modulegraphs_u3482)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_LazyType__dsEGDq9cOhnzsRvTUTwwwuA* t_p1);
static N_INLINE(NI, kidsLen__ast_u5648)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(NIM_BOOL, sameFlags__types_u2165)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compareTypes__types_u2782)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* y_p1, tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw cmp_p2, tySet_tyEnum_TTypeCmpFlag__1219bojhd9apB6FQkQGJbzzQ flags_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u4574)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, lookupTypeVar__semtypinst_u507)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u2691)(NimStringV2 dest_p0);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_u1227)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA msg_p2, NimStringV2 arg_p3, tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w eh_p4, tyTuple__kN8up2W6YKc5YA9avn5mV5w* info2_p5, NIM_BOOL isRaw_p6, NIM_BOOL ignoreError_p7);
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, typeToString__types_u54)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p0, tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q prefer_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rawNewString)(NI space_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, errorType__semdata_u4564)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0);
static N_INLINE(void, put__layeredtable_u734)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* value_p2);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___layeredtable_u742)(tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA* t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* val_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, instCopyType__semtypinst_u531)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, exactReplica__ast_u6243)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
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);
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, copyTypeProps__modulegraphs_u10674)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, NI module_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p3);
N_LIB_PRIVATE N_NIMCALL(void, propagateToOwner__ast_u6637)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* owner_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* elem_p1, NIM_BOOL propagateHasAsgn_p2);
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, cacheTypeInst__semtypinst_u78)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* inst_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, typeBodyImpl__ast_u5369)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**, X5BX5D___ast_u5281)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** s_p0, NI s_p0Len_0, NI i_p1);
N_LIB_PRIVATE N_NIMCALL(void, addToGenericCache__semdata_u6025)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* inst_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___layeredtable_u242)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* dest_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, newTypeMapLayer__semtypinst_u119)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* Result);
N_LIB_PRIVATE N_NIMCALL(void, newTypeMapLayer__layeredtable_u272)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* Result);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSon__ast_u6706)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* father_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* son_p1, NIM_BOOL propagateHasAsgn_p2);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, last__ast_u5278)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(void, setToPreviousLayer__layeredtable_u286)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___layeredtable_u236)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* dest_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* src_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericAlias__types_u2142)(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(void, checkPartialConstructedType__semtypinst_u15)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p2);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elementType__ast_u5331)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, getAttachedOp__modulegraphs_u4987)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q op_p2);
N_LIB_PRIVATE N_NIMCALL(void, setAttachedOp__modulegraphs_u5617)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, NI module_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p2, tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q op_p3, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* value_p4);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipTypes__ast_u5379)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kinds_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__modulegraphs_u8853)(tyObject_Table__tEqt8LkShErhjQ9acvGyE7g t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
N_LIB_PRIVATE N_NIMCALL(tySequence__9bW2eTK9b7vXE70Sx5VPH1mw*, X5BX5D___modulegraphs_u9325)(tyObject_Table__tEqt8LkShErhjQ9acvGyE7g* t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u4583)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** dest_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, resolveSym__modulegraphs_u3497)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_LazySym__yw1M8ZE9be6l5XOjcw0euIA* t_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3252)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, prepareNode__semtypinst_u130)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3255)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, replaceTypeVarsS__semtypinst_u110)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p2);
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6254)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, copySym__ast_u6250)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p1);
static N_INLINE(void, setOwner__icZic_u12851)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u3261)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
static N_INLINE(NI, len__ast_u3190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_u3215)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* father_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* son_p1);
static N_INLINE(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA*, getPIdent__ast_u2825)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___idents_u158)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA** dest_p0, tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* src_p1);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a_p0, NimStringV2 b_p1);
static N_INLINE(NIM_BOOL, equalMem__system_u1750)(void* a_p0, void* b_p1, NI size_p2);
static N_INLINE(int, nimCmpMem)(void* a_p0, void* b_p1, NI size_p2);
static N_INLINE(NIM_BOOL, isGenericRoutineStrict__ast_u7092)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0);
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_u7081)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(NIM_BOOL, isGenericParams__ast_u7070)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___idents_u155)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* dest_p0);
static N_INLINE(NI, safeLen__ast_u3197)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
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(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, eqdup___ast_u3384)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___ast_u3249)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0);
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*, makeTypeDesc__semdata_u4621)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, base__ast_u5351)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericType__types_u3462)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRefPtrObject__types_u4254)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, indexType__ast_u5345)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_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, propagateFieldFlags__semtypinst_u928)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, eraseTupleVoidFields__semtypinst_u860)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, setLen__ast_u3718)(tySequence__9ahcSjIErJohSBBFLwuF56Q* s_p0, NI newlen_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(void, eraseVoidParams__semtypinst_u822)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, returnType__ast_u5354)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(void, setReturnType__ast_u5357)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* r_p1);
static N_INLINE(NI, signatureLen__ast_u5610)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, newSons__ast_u6115)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* father_p0, NI length_p1);
N_LIB_PRIVATE N_NIMCALL(void, skipIntLiteralParams__semtypinst_u906)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p1);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipModifier__ast_u5338)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(void, setIndexType__ast_u5360)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* idx_p1);
static N_INLINE(NIM_BOOL, hasElementType__ast_u5660)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, replaceObjBranches__semtypinst_u276)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, illFormedAst__semdata_u4665)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p1);
N_LIB_PRIVATE N_NIMCALL(void, checkSonsLen__semdata_u4671)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, NI length_p1, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p2);
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(NIM_BOOL, hasValuelessStatics__semtypinst_u316)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, newSons__ast_u6108)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* father_p0, NI length_p1);
N_LIB_PRIVATE N_NIMCALL(void, popInfoContext__msgs_u593)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___semtypinst_u1585)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0);
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(void, unregisterCycle__system_u3127)(tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3469)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimRawDispose)(void* p_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___layeredtable_u168)(tySequence__7OXYQ6bHRkhJpRaiS7kiwQ dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___semdata_u748)(tySequence__ZUeR9b415wicThQ9cBWO9aYMw dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___layeredtable_u233)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p_p0);
N_LIB_PRIVATE N_NOINLINE(void, rememberCycle__system_u3497)(NIM_BOOL isDestroyAction_p0, tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* s_p1, TNimTypeV2* desc_p2);
N_LIB_PRIVATE N_NIMCALL(void, nimDestroyAndDispose)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, recomputeFieldPositions__semtypinst_u1654)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* obj_p1, NI* currPosition_p2);
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, baseClass__ast_u5348)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, lastSon__ast_u5208)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**, X5BX5D___ast_u5211)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** s_p0, NI s_p0Len_0, NI i_p1);
N_LIB_PRIVATE N_NIMCALL(NI64, computeSize__types_u3393)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRecursiveStructuralType__types_u4110)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static const struct {
  NI cap; NIM_CHAR data[0+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_2 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_3 = {0, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_2};
static const struct {
  NI cap; NIM_CHAR data[15+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_4 = { 15 | NIM_STRLIT_FLAG, "no generic body" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_5 = {15, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_4};
static const struct {
  NI cap; NIM_CHAR data[65+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_7 = { 65 | NIM_STRLIT_FLAG, "/home/runner/work/nightlies/nightlies/nim/compiler/semtypinst.nim" };
static const struct {
  NI cap; NIM_CHAR data[21+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_8 = { 21 | NIM_STRLIT_FLAG, "cannot instantiate: \'" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_9 = {21, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_8};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_10 = { 1 | NIM_STRLIT_FLAG, "\'" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_11 = {1, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_10};
static const struct {
  NI cap; NIM_CHAR data[35+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_13 = { 35 | NIM_STRLIT_FLAG, "substitution with generic parameter" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_14 = {35, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_13};
static const struct {
  NI cap; NIM_CHAR data[29+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_16 = { 29 | NIM_STRLIT_FLAG, "type \'var var\' is not allowed" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_17 = {29, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_16};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__mrkrD9c2e31kE4GdQtpMdaQ_19 = {
0x10, 0xa9, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_20 = {21, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_8};
static const struct {
  NI cap; NIM_CHAR data[39+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_21 = { 39 | NIM_STRLIT_FLAG, "\'; Maybe generic arguments are missing\?" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_22 = {39, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_21};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_24 = { 2 | NIM_STRLIT_FLAG, "[]" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_25 = {2, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_24};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__mrkrD9c2e31kE4GdQtpMdaQ_26 = {
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[20+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_27 = { 20 | NIM_STRLIT_FLAG, "cannot instantiate \'" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_28 = {20, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_27};
static const struct {
  NI cap; NIM_CHAR data[30+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_29 = { 30 | NIM_STRLIT_FLAG, "\' inside of type definition: \'" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_30 = {30, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_29};
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_31 = {39, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_21};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__mrkrD9c2e31kE4GdQtpMdaQ_33 = {
0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__mrkrD9c2e31kE4GdQtpMdaQ_34 = {
0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_35 = {0, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_2};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_36 = { 1 | NIM_STRLIT_FLAG, "(" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_37 = {1, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_36};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_38 = { 2 | NIM_STRLIT_FLAG, ", " };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_39 = {2, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_38};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_40 = { 1 | NIM_STRLIT_FLAG, ")" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_41 = {1, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_40};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__mrkrD9c2e31kE4GdQtpMdaQ_43 = {
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[43+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_44 = { 43 | NIM_STRLIT_FLAG, "ReplaceTypeVarsN: when condition not a bool" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_45 = {43, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_44};
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_48 = {43, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_44};
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_50 = {0, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_2};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__mrkrD9c2e31kE4GdQtpMdaQ_51 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__mrkrD9c2e31kE4GdQtpMdaQ_52 = {
0x10, 0x09, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_53 = {0, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_2};
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_54 = {0, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_2};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__mrkrD9c2e31kE4GdQtpMdaQ_55 = {
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__mrkrD9c2e31kE4GdQtpMdaQ_56 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x4f,
0x00}
;
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_57 = {29, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_16};
static const struct {
  NI cap; NIM_CHAR data[27+1];
} TM__mrkrD9c2e31kE4GdQtpMdaQ_59 = { 27 | NIM_STRLIT_FLAG, "illegal recursion in type \'" };
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_60 = {27, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_59};
static const NimStringV2 TM__mrkrD9c2e31kE4GdQtpMdaQ_61 = {1, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_10};
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__mrkrD9c2e31kE4GdQtpMdaQ_6 = {{65, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_7},
((NI)425),
((NI)17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__mrkrD9c2e31kE4GdQtpMdaQ_12 = {{65, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_7},
((NI)389),
((NI)14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__mrkrD9c2e31kE4GdQtpMdaQ_15 = {{65, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_7},
((NI)396),
((NI)17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__mrkrD9c2e31kE4GdQtpMdaQ_18 = {{65, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_7},
((NI)24),
((NI)14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__mrkrD9c2e31kE4GdQtpMdaQ_23 = {{65, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_7},
((NI)659),
((NI)14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__mrkrD9c2e31kE4GdQtpMdaQ_32 = {{65, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_7},
((NI)764),
((NI)22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__mrkrD9c2e31kE4GdQtpMdaQ_42 = {{65, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_7},
((NI)783),
((NI)8)}
;
extern NIM_CONST tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA unknownLineInfo__lineinfos_u364;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__mrkrD9c2e31kE4GdQtpMdaQ_46 = {{65, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_7},
((NI)228),
((NI)23)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__mrkrD9c2e31kE4GdQtpMdaQ_49 = {{65, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_7},
((NI)311),
((NI)25)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__mrkrD9c2e31kE4GdQtpMdaQ_58 = {{65, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_7},
((NI)30),
((NI)14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__mrkrD9c2e31kE4GdQtpMdaQ_62 = {{65, (NimStrPayload*)&TM__mrkrD9c2e31kE4GdQtpMdaQ_7},
((NI)32),
((NI)14)}
;
extern NIM_BOOL nimInErrorMode__system_u4143;
extern tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A eqTypeFlags__ast_u326;
static N_INLINE(void, nimSetMem__system_u2172)(void* a_p0, int v_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
	nimSetMem__system_u2172(p_p0, ((int)0), size_p1);
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4143);
	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, initTypeVars__semtypinst_u1560)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* p_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p2, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p3, tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* Result) {
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A colontmpD_;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA colontmpD__2;
	tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* colontmpD__3;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__4;
	tyObject_TIdTable__xRBvhNSbEADzUTJAdtlGtA T1_;
	tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ));
	nimZeroMem((void*)Result, sizeof(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ));
	nimZeroMem((void*)(&T1_), sizeof(tyObject_TIdTable__xRBvhNSbEADzUTJAdtlGtA));
	T1_ = initIdTable__semdata_u1096();
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___semdata_u1115(T1_); goto BeforeRet_;}
	(*Result).symMap = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TIdTable__XZ9cFaLoittQMULJSfBpHrA));
	T2_ = initIdTable__layeredtable_u16();
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___layeredtable_u149(T2_); goto BeforeRet_;}
	(*Result).localCache = T2_;
	eqdup___layeredtable_u239(typeMap_p1, (&colontmpD_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).typeMap.topLayer = colontmpD_.topLayer;
	(*Result).typeMap.nextLayer = colontmpD_.nextLayer;
	(*Result).typeMap.previousLen = colontmpD_.previousLen;
	colontmpD__2 = eqdup___lineinfos_u2037(info_p2);
	(*Result).info = colontmpD__2;
	colontmpD__3 = eqdup___semdata_u4222(p_p0, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).c = colontmpD__3;
	colontmpD__4 = eqdup___ast_u4580(owner_p3);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).owner = colontmpD__4;
	}BeforeRet_: ;
}
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;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, genericHead__ast_u5376)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, kidsLen__ast_u5648)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NI result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, sameFlags__types_u2165)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* a_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_p1) {
	NIM_BOOL result;
	result = ((eqTypeFlags__ast_u326 & (*a_p0).flags) == (eqTypeFlags__ast_u326 & (*b_p1).flags));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, searchInstTypes__semtypinst_u44)(tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* g_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* key_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* genericTyp_1;
NIM_BOOL oldNimErrFin8_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	genericTyp_1 = NIM_NIL;
	result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
	genericTyp_1 = (*key_p1).sons.p->data[((NI)0)];
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*genericTyp_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*genericTyp_1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
LA4_: ;
		if (!!(T3_)) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* inst_1;
		inst_1 = NIM_NIL;
		{
			NIM_BOOL T11_;
			tySequence__vb3AGHvMJTxdOSSwMmBmTQ* x_1;
			T11_ = (NIM_BOOL)0;
			T11_ = contains__modulegraphs_u3657((*g_p0).typeInstCache, (*(*genericTyp_1).sym).itemId);
			if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
			if (!T11_) goto LA12_;
			x_1 = X5BX5D___modulegraphs_u4129((&(*g_p0).typeInstCache), (*(*genericTyp_1).sym).itemId);
			if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
			{
				tyObject_LazyType__dsEGDq9cOhnzsRvTUTwwwuA* t_1;
				NI i_1;
				NI L_1;
				NI T15_;
				t_1 = (tyObject_LazyType__dsEGDq9cOhnzsRvTUTwwwuA*)0;
				i_1 = ((NI)0);
				T15_ = (*x_1).len;
				L_1 = T15_;
				{
					while (1) {
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T18_;
						if (!(i_1 < L_1)) goto LA17;
						t_1 = (&(*x_1).p->data[i_1]);
						T18_ = NIM_NIL;
						T18_ = resolveType__modulegraphs_u3482(g_p0, t_1);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T18_); goto LA8_;}
						eqsink___ast_u3387(&inst_1, T18_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
						{
							{
								tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym14__1;
								tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA xX60gensym16__1;
								xX60gensym14__1 = (*inst_1).itemId;
								xX60gensym16__1 = (*key_p1).itemId;
								if (!((NI)((NI)((NU64)(((NI) (xX60gensym14__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym14__1.item))) == (NI)((NI)((NU64)(((NI) (xX60gensym16__1.module))) << (NU64)(((NI)24) & (64 - 1))) + ((NI) (xX60gensym16__1.item))))) goto LA22_;
								result = inst_1;
								eqwasMoved___ast_u3375(&inst_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
								eqdestroy___ast_u3378(inst_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							}
LA22_: ;
							{
								NI T26_;
								NI T27_;
								T26_ = (NI)0;
								T26_ = kidsLen__ast_u5648(inst_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
								T27_ = (NI)0;
								T27_ = kidsLen__ast_u5648(key_p1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
								if (!(T26_ < T27_)) goto LA28_;
								goto LA19;
							}
LA28_: ;
							{
								NIM_BOOL T32_;
								T32_ = (NIM_BOOL)0;
								T32_ = sameFlags__types_u2165(inst_1, key_p1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
								if (!!(T32_)) goto LA33_;
								goto LA19;
							}
LA33_: ;
							{
								{
									NI j_1;
									NI colontmp_;
									NI i_2;
									j_1 = (NI)0;
									colontmp_ = (NI)0;
									colontmp_ = kidsLen__ast_u5648(key_p1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
									i_2 = ((NI)1);
									{
										while (1) {
											if (!(i_2 < colontmp_)) goto LA38;
											j_1 = i_2;
											{
												NIM_BOOL T41_;
												T41_ = (NIM_BOOL)0;
												T41_ = compareTypes__types_u2782((*inst_1).sons.p->data[j_1], (*key_p1).sons.p->data[j_1], ((tyEnum_TDistinctCompare__rXmGWNIojo9acZLzkP7RM9cw)0), 136);
												if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
												if (!!(T41_)) goto LA42_;
												goto LA35;
											}
LA42_: ;
											i_2 += ((NI)1);
										} LA38: ;
									}
								}
								result = inst_1;
								eqwasMoved___ast_u3375(&inst_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
								eqdestroy___ast_u3378(inst_1);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								goto BeforeRet_;
							} LA35: ;
						} LA19: ;
						i_1 += ((NI)1);
					} LA17: ;
				}
			}
		}
LA12_: ;
		{
			LA8_:;
		}
		{
			oldNimErrFin8_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(inst_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin8_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest_p0, source_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, copyMem__system_u1742)(void* dest_p0, void* source_p1, NI size_p2) {
	nimCopyMem(dest_p0, source_p1, size_p2);
}
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1) {
	{
		if (!(((NI)0) < src_p1.len)) goto LA3_;
		copyMem__system_u1742(((void*) ((&(*(*dest_p0).p).data[(*dest_p0).len]))), ((void*) ((&(*src_p1.p).data[((NI)0)]))), (src_p1.len));
		(*dest_p0).len += src_p1.len;
		(*(*dest_p0).p).data[(*dest_p0).len] = 0;
	}
LA3_: ;
}
static N_INLINE(void, put__layeredtable_u734)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* typeMap_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* value_p2) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	X5BX5Deq___layeredtable_u742((&(*typeMap_p0).topLayer), key_p1, value_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, lookupTypeVar__semtypinst_u507)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*t_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)11)))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = ((*t_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59));
LA4_: ;
		if (!T3_) goto LA5_;
		result = ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL);
		goto BeforeRet_;
	}
LA5_: ;
	result = lookup__layeredtable_u711((&(*cl_p0).typeMap), (*t_p1).itemId);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringV2 colontmpD_;
		NimStringV2 colontmpD__2;
		NimStringV2 T18_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T19_;
		if (!(result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA9_;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = (*cl_p0).allowMetaTypes;
			if (T14_) goto LA15_;
			T14_ = (((*t_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)11)))&63U)))!=0);
LA15_: ;
			if (!T14_) goto LA16_;
			eqdestroy___system_u2691(colontmpD__2);
			eqdestroy___system_u2691(colontmpD_);
			goto BeforeRet_;
		}
LA16_: ;
		T18_.len = 0; T18_.p = NIM_NIL;
		colontmpD_ = typeToString__types_u54(t_p1, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		T18_ = rawNewString(colontmpD_.len + 22);
appendString((&T18_), TM__mrkrD9c2e31kE4GdQtpMdaQ_9);
appendString((&T18_), colontmpD_);
appendString((&T18_), TM__mrkrD9c2e31kE4GdQtpMdaQ_11);
		colontmpD__2 = T18_;
		liMessage__msgs_u1227((*(*(*cl_p0).c).graph).config, (*(*t_p1).sym).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__2, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__mrkrD9c2e31kE4GdQtpMdaQ_12), NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		T19_ = NIM_NIL;
		T19_ = errorType__semdata_u4564((*cl_p0).c);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T19_); goto LA11_;}
		eqsink___ast_u3387(&result, T19_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		put__layeredtable_u734((&(*cl_p0).typeMap), (*t_p1).itemId, result);
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		{
			LA11_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__2);
			eqdestroy___system_u2691(colontmpD_);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA7_;
LA9_: ;
	{
		NIM_BOOL T23_;
		T23_ = (NIM_BOOL)0;
		T23_ = ((*result).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
		if (!(T23_)) goto LA24_;
		T23_ = !((*cl_p0).allowMetaTypes);
LA24_: ;
		if (!T23_) goto LA25_;
		internalErrorImpl__msgs_u1598((*(*(*cl_p0).c).graph).config, (*cl_p0).info, TM__mrkrD9c2e31kE4GdQtpMdaQ_14, (&TM__mrkrD9c2e31kE4GdQtpMdaQ_15));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA7_;
LA25_: ;
LA7_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6246)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* s_p0) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u4577(&result, (*s_p0).ownerField);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, instCopyType__semtypinst_u531)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		if (!(*cl_p0).allowMetaTypes) goto LA3_;
		result = exactReplica__ast_u6243(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA3_: ;
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = owner__ast_u6246(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		result = copyType__ast_u6238(t_p1, (*(*cl_p0).c).Sup.idgen, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		copyTypeProps__modulegraphs_u10674((*(*cl_p0).c).graph, ((NI) ((*(*(*cl_p0).c).Sup.idgen).module)), result, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
		{
			LA6_:;
		}
		{
			oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u4574(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin6_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	{
		if (!(*cl_p0).allowMetaTypes) goto LA11_;
		goto BeforeRet_;
	}
LA11_: ;
	(*result).flags |= ((NU64)1)<<(((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)8))) & 63);
	{
		NIM_BOOL T15_;
		NIM_BOOL T17_;
		T15_ = (NIM_BOOL)0;
		T15_ = ((*t_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)6) || (*t_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8) || (*t_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12) || (*t_p1).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51) && (*t_p1).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54) || (*t_p1).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56) && (*t_p1).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59) || (*t_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62));
		if (T15_) goto LA16_;
		T17_ = (NIM_BOOL)0;
		T17_ = ((*t_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60));
		if (!(T17_)) goto LA18_;
		T17_ = ((*t_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
LA18_: ;
		T15_ = T17_;
LA16_: ;
		if (!!(T15_)) goto LA19_;
		(*result).flags = ((*result).flags & ~ 2097664);
	}
	goto LA13_;
LA19_: ;
	{
		(*result).flags &= ~(((NU64)1) << (((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)31))) & 63));
	}
LA13_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**, X5BX5D___ast_u5281)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** s_p0, NI s_p0Len_0, NI i_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** result;
	result = &s_p0[(NI)(s_p0Len_0 - i_p1)];
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, 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(void, cacheTypeInst__semtypinst_u78)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* c_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* inst_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* gt_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T2_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	gt_1 = NIM_NIL;
	t_1 = NIM_NIL;
	eqcopy___ast_u3381(&gt_1, (*inst_p1).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_ = NIM_NIL;
	{
		if (!((*gt_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10))) goto LA5_;
		t_1 = typeBodyImpl__ast_u5369(gt_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA3_;
LA5_: ;
	{
		eqcopy___ast_u3381(&t_1, gt_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA3_: ;
	{
		if (!((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12) || (*t_1).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50) && (*t_1).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54) || (*t_1).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56) && (*t_1).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60) || (*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62))) goto LA10_;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(gt_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA10_: ;
	addToGenericCache__semdata_u6025(c_p0, (*gt_1).sym, inst_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(gt_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, newTypeMapLayer__semtypinst_u119)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* Result) {
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	nimZeroMem((void*)(&T1_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	newTypeMapLayer__layeredtable_u272((&(*cl_p0).typeMap), (&T1_));
	(*Result).topLayer = T1_.topLayer;
	(*Result).nextLayer = T1_.nextLayer;
	(*Result).previousLen = T1_.previousLen;
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, last__ast_u5278)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5281((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3381(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, setToPreviousLayer__layeredtable_u286)(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	eqcopy___layeredtable_u236((&(*pt_p0)), (&(*(*pt_p0).nextLayer)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, elementType__ast_u5331)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg**)0;
	T1_ = X5BX5D___ast_u5281((((*n_p0).sons).p) ? ((*n_p0).sons.p->data) : NIM_NIL, (*n_p0).sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3381(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkPartialConstructedType__semtypinst_u15)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p2) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_ = NIM_NIL;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*t_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*t_p2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47));
		if (!(T4_)) goto LA5_;
		colontmpD_ = elementType__ast_u5331(t_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T4_ = ((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47));
LA5_: ;
		if (!T4_) goto LA6_;
		liMessage__msgs_u1227(conf_p0, info_p1, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), TM__mrkrD9c2e31kE4GdQtpMdaQ_17, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__mrkrD9c2e31kE4GdQtpMdaQ_18), NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA6_: ;
	{
		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_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, handleGenericInvocation__semtypinst_u564)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* body_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* header_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__2;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* bbody_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* newbody_1;
NIM_BOOL oldNimErrFin20_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T51_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T52_;
	NIM_BOOL oldSkipTypedesc_1;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A T58_;
NIM_BOOL oldNimErrFin62_;
NIM_BOOL oldNimErrFin126_;
NIM_BOOL oldNimErrFin115_;
NIM_BOOL oldNimErrFin88_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	body_1 = NIM_NIL;
	header_1 = NIM_NIL;
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	bbody_1 = NIM_NIL;
	newbody_1 = NIM_NIL;
	body_1 = genericHead__ast_u5376(t_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!!(((*body_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10)))) goto LA4_;
		internalErrorImpl__msgs_u1598((*(*(*cl_p0).c).graph).config, (*cl_p0).info, TM__mrkrD9c2e31kE4GdQtpMdaQ_5, (&TM__mrkrD9c2e31kE4GdQtpMdaQ_6));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA4_: ;
	eqcopy___ast_u3381(&header_1, t_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!(*cl_p0).allowMetaTypes) goto LA8_;
		result = getOrDefault__layeredtable_u519((*cl_p0).localCache, (*t_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA6_;
LA8_: ;
	{
		result = searchInstTypes__semtypinst_u44((*(*cl_p0).c).graph, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA6_: ;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = !((result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T13_)) goto LA14_;
		T13_ = sameFlags__types_u2165(result, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA14_: ;
		if (!T13_) goto LA15_;
		eqdestroy___ast_u3378(newbody_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(bbody_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u4574(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(header_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(body_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA15_: ;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = kidsLen__ast_u5648(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		i_2 = ((NI)1);
		{
			while (1) {
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_1;
				if (!(i_2 < colontmp_)) goto LA19;
				x_1 = NIM_NIL;
				i_1 = i_2;
				eqcopy___ast_u3381(&x_1, (*t_p1).sons.p->data[i_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T25_;
					if (!((*x_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA23_;
					T25_ = NIM_NIL;
					T25_ = lookupTypeVar__semtypinst_u507(cl_p0, x_1);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T25_); goto LA20_;}
					eqsink___ast_u3387(&x_1, T25_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
					{
						if (!!((x_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA28_;
						{
							tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T34_;
							if (!(header_1 == t_p1)) goto LA32_;
							T34_ = NIM_NIL;
							T34_ = instCopyType__semtypinst_u531(cl_p0, t_p1);
							if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T34_); goto LA20_;}
							eqsink___ast_u3387(&header_1, T34_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
						}
LA32_: ;
						eqcopy___ast_u3381(&(*header_1).sons.p->data[i_1], x_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
						propagateToOwner__ast_u6637(header_1, x_1, NIM_TRUE);
						if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
					}
LA28_: ;
				}
				goto LA21_;
LA23_: ;
				{
					propagateToOwner__ast_u6637(header_1, x_1, NIM_TRUE);
					if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
				}
LA21_: ;
				i_2 += ((NI)1);
				{
					LA20_:;
				}
				{
					oldNimErrFin20_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(x_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin20_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			} LA19: ;
		}
	}
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T42_;
		if (!!((header_1 == t_p1))) goto LA40_;
		T42_ = NIM_NIL;
		T42_ = searchInstTypes__semtypinst_u44((*(*cl_p0).c).graph, header_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T42_); goto LA1_;}
		eqsink___ast_u3387(&result, T42_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			NIM_BOOL T45_;
			T45_ = (NIM_BOOL)0;
			T45_ = !((result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
			if (!(T45_)) goto LA46_;
			T45_ = sameFlags__types_u2165(result, t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA46_: ;
			if (!T45_) goto LA47_;
			eqdestroy___ast_u3378(newbody_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(bbody_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u4574(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(header_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3378(body_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA47_: ;
	}
	goto LA38_;
LA40_: ;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T50_;
		T50_ = NIM_NIL;
		T50_ = instCopyType__semtypinst_u531(cl_p0, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T50_); goto LA1_;}
		eqsink___ast_u3387(&header_1, T50_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA38_: ;
	colontmpD_ = genericHead__ast_u5376(t_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__2 = owner__ast_u6246(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T51_ = NIM_NIL;
	T51_ = genericHead__ast_u5376(header_1);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T51_); goto LA1_;}
	T52_ = NIM_NIL;
	T52_ = newType__ast_u5900(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11), (*(*cl_p0).c).Sup.idgen, colontmpD__2, T51_);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T52_); goto LA1_;}
	eqsink___ast_u3387(&result, T52_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	(*result).flags = (*header_1).flags;
	{
		if (!!((*cl_p0).allowMetaTypes)) goto LA55_;
		cacheTypeInst__semtypinst_u78((*cl_p0).c, result);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA53_;
LA55_: ;
	{
		X5BX5Deq___layeredtable_u742((&(*cl_p0).localCache), (*t_p1).itemId, result);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA53_: ;
	oldSkipTypedesc_1 = (*cl_p0).skipTypedesc;
	(*cl_p0).skipTypedesc = NIM_TRUE;
	nimZeroMem((void*)(&T58_), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	newTypeMapLayer__semtypinst_u119(cl_p0, (&T58_));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqsink___layeredtable_u242((&(*cl_p0).typeMap), (&T58_));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NI i_3;
		NI colontmp__2;
		NI i_4;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = kidsLen__ast_u5648(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		i_4 = ((NI)1);
		{
			while (1) {
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* x_2;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T63_;
				if (!(i_4 < colontmp__2)) goto LA61;
				x_2 = NIM_NIL;
				colontmpD__3 = NIM_NIL;
				colontmpD__4 = NIM_NIL;
				i_3 = i_4;
				T63_ = NIM_NIL;
				{
					if (!((*(*header_1).sons.p->data[i_3]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11))) goto LA66_;
					eqcopy___ast_u3381(&colontmpD__3, (*t_p1).sons.p->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
					T63_ = colontmpD__3;
				}
				goto LA64_;
LA66_: ;
				{
					eqcopy___ast_u3381(&colontmpD__4, (*header_1).sons.p->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
					T63_ = colontmpD__4;
				}
LA64_: ;
				x_2 = replaceTypeVarsT__semtypinst_u125(cl_p0, T63_, NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
				eqcopy___ast_u3381(&(*header_1).sons.p->data[i_3], x_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
				propagateToOwner__ast_u6637(header_1, x_2, NIM_TRUE);
				if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
				put__layeredtable_u734((&(*cl_p0).typeMap), (*(*body_1).sons.p->data[(NI)(i_3 - ((NI)1))]).itemId, x_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
				i_4 += ((NI)1);
				{
					LA62_:;
				}
				{
					oldNimErrFin62_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(colontmpD__3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(x_2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin62_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			} LA61: ;
		}
	}
	{
		NI i_5;
		NI colontmp__3;
		NI i_6;
		i_5 = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__3 = kidsLen__ast_u5648(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		i_6 = ((NI)1);
		{
			while (1) {
				if (!(i_6 < colontmp__3)) goto LA73;
				i_5 = i_6;
				rawAddSon__ast_u6706(result, (*header_1).sons.p->data[i_5], NIM_FALSE);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				i_6 += ((NI)1);
			} LA73: ;
		}
	}
	{
		if (!((*body_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)50))) goto LA76_;
		eqdestroy___ast_u3378(newbody_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(bbody_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u4574(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(header_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(body_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA76_: ;
	bbody_1 = last__ast_u5278(body_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	newbody_1 = replaceTypeVarsT__semtypinst_u125(cl_p0, bbody_1, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	(*cl_p0).skipTypedesc = oldSkipTypedesc_1;
	(*newbody_1).flags = ((*newbody_1).flags | (((*t_p1).flags | (*body_1).flags) & ~ 2097664));
	(*result).flags = (((*result).flags | (*newbody_1).flags) & ~ 2097664);
	setToPreviousLayer__layeredtable_u286((&(*cl_p0).typeMap));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T80_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T83_;
		T80_ = (NIM_BOOL)0;
		T80_ = isGenericAlias__types_u2142(newbody_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T80_) goto LA81_;
		T83_ = NIM_NIL;
		T83_ = skipGenericAlias__types_u2162(newbody_1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T83_); goto LA1_;}
		eqsink___ast_u3387(&newbody_1, T83_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA81_: ;
	rawAddSon__ast_u6706(result, newbody_1, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	checkPartialConstructedType__semtypinst_u15((*(*(*cl_p0).c).graph).config, (*cl_p0).info, newbody_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dc_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* mm_1;
		if (!!((*cl_p0).allowMetaTypes)) goto LA86_;
		dc_1 = NIM_NIL;
		mm_1 = NIM_NIL;
		dc_1 = getAttachedOp__modulegraphs_u4987((*(*cl_p0).c).graph, newbody_1, ((tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q)6));
		if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
		{
			NIM_BOOL T91_;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__5;
			T91_ = (NIM_BOOL)0;
			T91_ = !((dc_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
			if (!(T91_)) goto LA92_;
			T91_ = !((((*dc_1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)2)))&63U)))!=0));
LA92_: ;
			if (!T91_) goto LA93_;
			colontmpD__5 = NIM_NIL;
			colontmpD__5 = (*(*cl_p0).c).instTypeBoundOp((*cl_p0).c, dc_1, result, (*cl_p0).info, ((tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q)6), ((NI)1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
			setAttachedOp__modulegraphs_u5617((*(*cl_p0).c).graph, (*(*(*cl_p0).c).module).position, newbody_1, ((tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q)6), colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
			eqdestroy___ast_u4574(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
		}
LA93_: ;
		{
			if (!((*newbody_1).typeInst == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA97_;
			eqcopy___ast_u3381(&(*newbody_1).typeInst, result);
			if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
			{
				NIM_BOOL T101_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
				T101_ = (NIM_BOOL)0;
				T101_ = (((*newbody_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)34)))&63U)))!=0);
				if (!(T101_)) goto LA102_;
				T101_ = !(((*newbody_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11)));
LA102_: ;
				if (!T101_) goto LA103_;
				colontmpD__6 = NIM_NIL;
				{
					colontmpD__6 = last__ast_u5278(newbody_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
					if (!!(((*colontmpD__6).typeInst == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA107_;
				}
				goto LA105_;
LA107_: ;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
					colontmpD__7 = NIM_NIL;
					colontmpD__7 = last__ast_u5278(newbody_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
					eqcopy___ast_u3381(&(*colontmpD__7).typeInst, result);
					if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
					eqdestroy___ast_u3378(colontmpD__7);
					if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
				}
LA105_: ;
				eqdestroy___ast_u3378(colontmpD__6);
				if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
			}
LA103_: ;
		}
LA97_: ;
		mm_1 = skipTypes__ast_u5379(bbody_1, TM__mrkrD9c2e31kE4GdQtpMdaQ_19);
		if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
		{
			if (!!((((*mm_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)8)))&63U)))!=0))) goto LA112_;
			(*mm_1).flags |= ((NU64)1)<<(((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)8))) & 63);
			{
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* meth_1;
				NI col_1;
				meth_1 = NIM_NIL;
				col_1 = (NI)0;
				{
					NIM_BOOL T118_;
					T118_ = (NIM_BOOL)0;
					T118_ = contains__modulegraphs_u8853((*(*(*cl_p0).c).graph).methodsPerGenericType, (*mm_1).itemId);
					if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
					if (!T118_) goto LA119_;
					{
						tyTuple__lGHLhAAUpxgfrnQkIzNrMw* it_1;
						NI i_7;
						NI L_1;
						NI T122_;
						tySequence__9bW2eTK9b7vXE70Sx5VPH1mw* T123_;
						it_1 = (tyTuple__lGHLhAAUpxgfrnQkIzNrMw*)0;
						i_7 = ((NI)0);
						T123_ = (tySequence__9bW2eTK9b7vXE70Sx5VPH1mw*)0;
						T123_ = X5BX5D___modulegraphs_u9325((&(*(*(*cl_p0).c).graph).methodsPerGenericType), (*mm_1).itemId);
						if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
						T122_ = (*T123_).len;
						L_1 = T122_;
						{
							while (1) {
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__8;
								tySequence__9bW2eTK9b7vXE70Sx5VPH1mw* T127_;
								tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T128_;
								if (!(i_7 < L_1)) goto LA125;
								colontmpD__8 = NIM_NIL;
								T127_ = (tySequence__9bW2eTK9b7vXE70Sx5VPH1mw*)0;
								T127_ = X5BX5D___modulegraphs_u9325((&(*(*(*cl_p0).c).graph).methodsPerGenericType), (*mm_1).itemId);
								if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
								it_1 = (&(*T127_).p->data[i_7]);
								col_1 = (*it_1).Field0;
								T128_ = NIM_NIL;
								T128_ = resolveSym__modulegraphs_u3497((*(*cl_p0).c).graph, (&(*it_1).Field1));
								if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T128_); goto LA126_;}
								eqsink___ast_u4583(&meth_1, T128_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
								colontmpD__8 = (*(*cl_p0).c).instTypeBoundOp((*cl_p0).c, meth_1, result, (*cl_p0).info, ((tyEnum_TTypeAttachedOp__RefHoBI5deIfxIZqo3dS5Q)2), col_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA126_;
								(void)(colontmpD__8);
								i_7 += ((NI)1);
								{
									LA126_:;
								}
								{
									oldNimErrFin126_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u4574(colontmpD__8);
									if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
									*nimErr_ = oldNimErrFin126_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
							} LA125: ;
						}
					}
				}
LA119_: ;
				{
					LA115_:;
				}
				{
					oldNimErrFin115_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u4574(meth_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
					*nimErr_ = oldNimErrFin115_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
			}
			(*mm_1).flags &= ~(((NU64)1) << (((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)8))) & 63));
		}
LA112_: ;
		{
			LA88_:;
		}
		{
			oldNimErrFin88_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(mm_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u4574(dc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin88_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA86_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(newbody_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(bbody_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u4574(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(header_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(body_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}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(void, setOwner__icZic_u12851)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	eqcopy___ast_u4577(&(*s_p0).ownerField, owner_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, replaceTypeVarsS__semtypinst_u110)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p2) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* result;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__2;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	{
		if (!(s_p1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL))) goto LA4_;
		result = ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL);
		eqdestroy___ast_u4574(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u4574(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = !(((*cl_p0).owner == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
		if (!(T8_)) goto LA9_;
		colontmpD_ = owner__ast_u6254(s_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T8_ = !((colontmpD_ == (*cl_p0).owner));
LA9_: ;
		if (!T8_) goto LA10_;
		eqcopy___ast_u4577(&result, s_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u4574(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u4574(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA10_: ;
	{
		NIM_BOOL T14_;
		T14_ = (NIM_BOOL)0;
		T14_ = ((*s_p1).kind >= ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8) && (*s_p1).kind <= ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)10) || (*s_p1).kind >= ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) && (*s_p1).kind <= ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18));
		if (T14_) goto LA15_;
		T14_ = !(((*s_p1).magic == ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)0)));
LA15_: ;
		if (!T14_) goto LA16_;
		eqcopy___ast_u4577(&result, s_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u4574(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u4574(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA16_: ;
	result = copySym__ast_u6250(s_p1, (*(*cl_p0).c).Sup.idgen);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	(*result).flags |= ((NU64)1)<<(((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)2))) & 63);
	colontmpD__2 = owner__ast_u6254(s_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	setOwner__icZic_u12851(result, colontmpD__2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&(*result).typ, t_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T22_;
		if (!!(((*result).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)7)))) goto LA20_;
		T22_ = NIM_NIL;
		T22_ = replaceTypeVarsN__semtypinst_u114(cl_p0, (*s_p1).ast, ((NI)0), ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T22_); goto LA1_;}
		eqsink___ast_u3261(&(*result).ast, T22_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA20_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u4574(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u4574(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	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(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA*, getPIdent__ast_u2825)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p0) {
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* result;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = NIM_NIL;
	switch ((*a_p0).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		eqcopy___idents_u158(&result, (*(*a_p0)._kind_4.sym).name);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2):
	{
		eqcopy___idents_u158(&result, (*a_p0)._kind_5.ident);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)57):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)56):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)165):
	{
		eqcopy___idents_u158(&result, (*(*(*a_p0)._kind_6.sons.p->data[((NI)0)])._kind_4.sym).name);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = ((tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA*) NIM_NIL);
	}
	break;
	}
	}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(NIM_BOOL, isGenericParams__ast_u7070)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = !((n_p0 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
	if (!(T1_)) goto LA2_;
	T1_ = ((*n_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)75));
LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_u7081)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !((n_p0 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
	if (!(T2_)) goto LA3_;
	T2_ = ((*n_p0).kind >= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)51) && (*n_p0).kind <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)52) || (*n_p0).kind >= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)79) && (*n_p0).kind <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)84) || (*n_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)159));
LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = isGenericParams__ast_u7070((*n_p0)._kind_6.sons.p->data[((NI)2)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA4_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isGenericRoutineStrict__ast_u7092)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s_p0).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) || (*s_p0).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)13) || (*s_p0).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)18) || (*s_p0).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)17) || (*s_p0).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)15) || (*s_p0).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)14) || (*s_p0).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)16));
	if (!(T1_)) goto LA2_;
	T1_ = isGenericRoutine__ast_u7081((*s_p0).ast);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA2_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, safeLen__ast_u3197)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		if (!((*n_p0).kind >= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)0) && (*n_p0).kind <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23))) goto LA3_;
		result = ((NI)0);
	}
	goto LA1_;
LA3_: ;
	{
		result = len__ast_u3190(n_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, prepareNode__semtypinst_u130)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
NIM_BOOL oldNimErrFin39_;
NIM_BOOL oldNimErrFin67_;
NIM_BOOL oldNimErrFin80_;
NIM_BOOL oldNimErrFin86_;
NIM_BOOL oldNimErrFin48_;
NIM_BOOL oldNimErrFin105_;
NIM_BOOL oldNimErrFin111_;
NIM_BOOL oldNimErrFin119_;
NIM_BOOL oldNimErrFin115_;
NIM_BOOL oldNimErrFin128_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	t_1 = NIM_NIL;
	{
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T6_ = ((*n_p1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
		if (!(T6_)) goto LA7_;
		T6_ = ((*(*n_p1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)7));
LA7_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA8_;
		T5_ = !(((*(*n_p1)._kind_4.sym).typ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
LA8_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA9_;
		T4_ = ((*(*(*n_p1)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10));
LA9_: ;
		if (!T4_) goto LA10_;
		eqcopy___ast_u3255(&result, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA10_: ;
	t_1 = replaceTypeVarsT__semtypinst_u125(cl_p0, (*n_p1).typField, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T14_;
		NIM_BOOL T15_;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T20_;
		T14_ = (NIM_BOOL)0;
		T15_ = (NIM_BOOL)0;
		T15_ = !((t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T15_)) goto LA16_;
		T15_ = ((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60));
LA16_: ;
		T14_ = T15_;
		if (!(T14_)) goto LA17_;
		T14_ = !(((*t_1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA17_: ;
		if (!T14_) goto LA18_;
		T20_ = NIM_NIL;
		{
			if (!(((*t_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0)) goto LA23_;
			result = prepareNode__semtypinst_u130(cl_p0, (*t_1).n);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA21_;
LA23_: ;
		{
			eqcopy___ast_u3255(&result, (*t_1).n);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA21_: ;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA18_: ;
	result = copyNode__ast_u6736(n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqsink___ast_u3387(&(*result).typField, t_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqwasMoved___ast_u3375(&t_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T30_;
		if (!((*result).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3))) goto LA28_;
		T30_ = NIM_NIL;
		{
			NIM_BOOL T33_;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T37_;
			T33_ = (NIM_BOOL)0;
			T33_ = !(((*n_p1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
			if (!(T33_)) goto LA34_;
			T33_ = ((*n_p1).typField == (*(*n_p1)._kind_4.sym).typ);
LA34_: ;
			if (!T33_) goto LA35_;
			T37_ = NIM_NIL;
			T37_ = replaceTypeVarsS__semtypinst_u110(cl_p0, (*n_p1)._kind_4.sym, (*result).typField);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T37_); goto LA1_;}
			eqsink___ast_u4583(&(*result)._kind_4.sym, T37_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA31_;
LA35_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T40_;
			colontmpD_ = NIM_NIL;
			colontmpD_ = replaceTypeVarsT__semtypinst_u125(cl_p0, (*(*n_p1)._kind_4.sym).typ, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			T40_ = NIM_NIL;
			T40_ = replaceTypeVarsS__semtypinst_u110(cl_p0, (*n_p1)._kind_4.sym, colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T40_); goto LA39_;}
			eqsink___ast_u4583(&(*result)._kind_4.sym, T40_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
			{
				LA39_:;
			}
			{
				oldNimErrFin39_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin39_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA31_: ;
	}
LA28_: ;
	switch ((*n_p1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)56) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)57):
	{
		{
			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 LA1_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA46;
					i_1 = i_2;
					add__ast_u3215(result, (*n_p1)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					i_2 += ((NI)1);
				} LA46: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)26) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32):
	{
		tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* name_1;
		NIM_BOOL ignoreFirst_1;
		NIM_BOOL ignoreSecond_1;
		NIM_BOOL T49_;
		NIM_BOOL T50_;
		NIM_BOOL T51_;
		NI T54_;
		NIM_BOOL T56_;
		NIM_BOOL T57_;
		NIM_BOOL T60_;
		name_1 = NIM_NIL;
		ignoreFirst_1 = !(((*(*n_p1)._kind_6.sons.p->data[((NI)0)]).kind >= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)26) && (*(*n_p1)._kind_6.sons.p->data[((NI)0)]).kind <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32) || (*(*n_p1)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)42) || (*(*n_p1)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)45)));
		name_1 = getPIdent__ast_u2825((*n_p1)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
		T49_ = (NIM_BOOL)0;
		T50_ = (NIM_BOOL)0;
		T51_ = (NIM_BOOL)0;
		T51_ = !((name_1 == ((tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA*) NIM_NIL)));
		if (!(T51_)) goto LA52_;
		T51_ = eqStrings((*name_1).s, TM__mrkrD9c2e31kE4GdQtpMdaQ_25);
LA52_: ;
		T50_ = T51_;
		if (!(T50_)) goto LA53_;
		T54_ = (NI)0;
		T54_ = len__ast_u3190(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
		T50_ = (((NI)1) < T54_);
LA53_: ;
		T49_ = T50_;
		if (!(T49_)) goto LA55_;
		T56_ = (NIM_BOOL)0;
		T57_ = (NIM_BOOL)0;
		T57_ = !(((*(*n_p1)._kind_6.sons.p->data[((NI)1)]).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T57_)) goto LA58_;
		T57_ = ((*(*(*n_p1)._kind_6.sons.p->data[((NI)1)]).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8));
LA58_: ;
		T56_ = T57_;
		if (T56_) goto LA59_;
		T60_ = (NIM_BOOL)0;
		T60_ = ((*(*n_p1)._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
		if (!(T60_)) goto LA61_;
		T60_ = isGenericRoutineStrict__ast_u7092((*(*n_p1)._kind_6.sons.p->data[((NI)1)])._kind_4.sym);
		if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
LA61_: ;
		T56_ = T60_;
LA59_: ;
		T49_ = T56_;
LA55_: ;
		ignoreSecond_1 = T49_;
		{
			if (!ignoreFirst_1) goto LA64_;
			add__ast_u3215(result, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
		}
		goto LA62_;
LA64_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__2;
			colontmpD__2 = NIM_NIL;
			colontmpD__2 = prepareNode__semtypinst_u130(cl_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA67_;
			add__ast_u3215(result, colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA67_;
			{
				LA67_:;
			}
			{
				oldNimErrFin67_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
				*nimErr_ = oldNimErrFin67_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
		}
LA62_: ;
		{
			NI T72_;
			T72_ = (NI)0;
			T72_ = len__ast_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
			if (!(((NI)1) < T72_)) goto LA73_;
			{
				if (!ignoreSecond_1) goto LA77_;
				add__ast_u3215(result, (*n_p1)._kind_6.sons.p->data[((NI)1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
			}
			goto LA75_;
LA77_: ;
			{
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__3;
				colontmpD__3 = NIM_NIL;
				colontmpD__3 = prepareNode__semtypinst_u130(cl_p0, (*n_p1)._kind_6.sons.p->data[((NI)1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
				add__ast_u3215(result, colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
				{
					LA80_:;
				}
				{
					oldNimErrFin80_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3252(colontmpD__3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
					*nimErr_ = oldNimErrFin80_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
			}
LA75_: ;
		}
LA73_: ;
		{
			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 LA48_;
			i_4 = ((NI)2);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__4;
					if (!(i_4 < colontmp__2)) goto LA85;
					colontmpD__4 = NIM_NIL;
					i_3 = i_4;
					colontmpD__4 = prepareNode__semtypinst_u130(cl_p0, (*n_p1)._kind_6.sons.p->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA86_;
					add__ast_u3215(result, colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA86_;
					i_4 += ((NI)1);
					{
						LA86_:;
					}
					{
						oldNimErrFin86_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3252(colontmpD__4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
						*nimErr_ = oldNimErrFin86_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
				} LA85: ;
			}
		}
		{
			LA48_:;
		}
		{
			oldNimErrFin48_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___idents_u155(name_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin48_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)42):
	{
		NIM_BOOL ignoreFirst_2;
		NIM_BOOL T92_;
		NIM_BOOL T94_;
		NIM_BOOL T95_;
		NIM_BOOL T98_;
		T92_ = (NIM_BOOL)0;
		T92_ = !(((*(*n_p1)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)45)));
		if (!(T92_)) goto LA93_;
		T94_ = (NIM_BOOL)0;
		T95_ = (NIM_BOOL)0;
		T95_ = !(((*(*n_p1)._kind_6.sons.p->data[((NI)0)]).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T95_)) goto LA96_;
		T95_ = ((*(*(*n_p1)._kind_6.sons.p->data[((NI)0)]).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8));
LA96_: ;
		T94_ = T95_;
		if (T94_) goto LA97_;
		T98_ = (NIM_BOOL)0;
		T98_ = ((*(*n_p1)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
		if (!(T98_)) goto LA99_;
		T98_ = isGenericRoutineStrict__ast_u7092((*(*n_p1)._kind_6.sons.p->data[((NI)0)])._kind_4.sym);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA99_: ;
		T94_ = T98_;
LA97_: ;
		T92_ = T94_;
LA93_: ;
		ignoreFirst_2 = T92_;
		{
			if (!ignoreFirst_2) goto LA102_;
			add__ast_u3215(result, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA100_;
LA102_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__5;
			colontmpD__5 = NIM_NIL;
			colontmpD__5 = prepareNode__semtypinst_u130(cl_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
			add__ast_u3215(result, colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA105_;
			{
				LA105_:;
			}
			{
				oldNimErrFin105_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(colontmpD__5);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin105_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA100_: ;
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__ast_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			i_6 = ((NI)1);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__6;
					if (!(i_6 < colontmp__3)) goto LA110;
					colontmpD__6 = NIM_NIL;
					i_5 = i_6;
					colontmpD__6 = prepareNode__semtypinst_u130(cl_p0, (*n_p1)._kind_6.sons.p->data[i_5]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA111_;
					add__ast_u3215(result, colontmpD__6);
					if (NIM_UNLIKELY(*nimErr_)) goto LA111_;
					i_6 += ((NI)1);
					{
						LA111_:;
					}
					{
						oldNimErrFin111_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3252(colontmpD__6);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin111_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				} LA110: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)45):
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__7;
		colontmpD__7 = NIM_NIL;
		colontmpD__7 = prepareNode__semtypinst_u130(cl_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
		add__ast_u3215(result, colontmpD__7);
		if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
		add__ast_u3215(result, (*n_p1)._kind_6.sons.p->data[((NI)1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
		{
			NI i_7;
			NI colontmp__4;
			NI i_8;
			i_7 = (NI)0;
			colontmp__4 = (NI)0;
			colontmp__4 = len__ast_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
			i_8 = ((NI)2);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__8;
					if (!(i_8 < colontmp__4)) goto LA118;
					colontmpD__8 = NIM_NIL;
					i_7 = i_8;
					colontmpD__8 = prepareNode__semtypinst_u130(cl_p0, (*n_p1)._kind_6.sons.p->data[i_7]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA119_;
					add__ast_u3215(result, colontmpD__8);
					if (NIM_UNLIKELY(*nimErr_)) goto LA119_;
					i_8 += ((NI)1);
					{
						LA119_:;
					}
					{
						oldNimErrFin119_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3252(colontmpD__8);
						if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
						*nimErr_ = oldNimErrFin119_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA115_;
				} LA118: ;
			}
		}
		{
			LA115_:;
		}
		{
			oldNimErrFin115_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(colontmpD__7);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin115_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	default:
	{
		{
			NI i_9;
			NI colontmp__5;
			NI i_10;
			i_9 = (NI)0;
			colontmp__5 = (NI)0;
			colontmp__5 = safeLen__ast_u3197(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			i_10 = ((NI)0);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__9;
					if (!(i_10 < colontmp__5)) goto LA127;
					colontmpD__9 = NIM_NIL;
					i_9 = i_10;
					colontmpD__9 = prepareNode__semtypinst_u130(cl_p0, (*n_p1)._kind_6.sons.p->data[i_9]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA128_;
					add__ast_u3215(result, colontmpD__9);
					if (NIM_UNLIKELY(*nimErr_)) goto LA128_;
					i_10 += ((NI)1);
					{
						LA128_:;
					}
					{
						oldNimErrFin128_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3252(colontmpD__9);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						*nimErr_ = oldNimErrFin128_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				} LA127: ;
			}
		}
	}
	break;
	}
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
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(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, base__ast_u5351)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*t_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, indexType__ast_u5345)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
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__mrkrD9c2e31kE4GdQtpMdaQ_35;
	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__mrkrD9c2e31kE4GdQtpMdaQ_37);
		addInt__stdZprivateZdigitsutils_u204((&result), (*info_p0).Field1);
		{
			if (!(((NI)0) < (NI)((*info_p0).Field2 + ((NI)1)))) goto LA7_;
			prepareAdd((&result), 2);
appendString((&result), TM__mrkrD9c2e31kE4GdQtpMdaQ_39);
			addInt__stdZprivateZdigitsutils_u204((&result), (NI)((*info_p0).Field2 + ((NI)1)));
		}
LA7_: ;
		prepareAdd((&result), 1);
appendString((&result), TM__mrkrD9c2e31kE4GdQtpMdaQ_41);
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, propagateFieldFlags__semtypinst_u928)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!(n_p1 == 0)) goto LA3_;
		goto BeforeRet_;
	}
LA3_: ;
	switch ((*n_p1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		propagateToOwner__ast_u6637(t_p0, (*(*n_p1)._kind_4.sym).typ, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)138):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)139):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)85):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)88):
	{
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* son_1;
			son_1 = NIM_NIL;
			{
				NI i_1;
				NI colontmp_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_u3197(n_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI)0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA10;
						i_1 = i_2;
						eqcopy___ast_u3255(&son_1, (*n_p1)._kind_6.sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						propagateFieldFlags__semtypinst_u928(t_p0, son_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_2 += ((NI)1);
					} LA10: ;
				}
			}
			eqdestroy___ast_u3252(son_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}
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, eraseTupleVoidFields__semtypinst_u860)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!((*t_p0).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
LA3_: ;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = kidsLen__ast_u5648(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA7;
				i_1 = i_2;
				{
					NIM_BOOL T10_;
					NI pos_1;
					T10_ = (NIM_BOOL)0;
					T10_ = ((*(*(*t_p0).n)._kind_6.sons.p->data[i_1]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)138));
					if (T10_) goto LA11_;
					T10_ = ((*(*t_p0).sons.p->data[i_1]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63));
LA11_: ;
					if (!T10_) goto LA12_;
					pos_1 = i_1;
					{
						NI j_1;
						NI colontmp__2;
						NI colontmp__3;
						NI i_3;
						j_1 = (NI)0;
						colontmp__2 = (NI)0;
						colontmp__3 = (NI)0;
						colontmp__2 = (NI)(i_1 + ((NI)1));
						colontmp__3 = kidsLen__ast_u5648(t_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_3 = colontmp__2;
						{
							while (1) {
								if (!(i_3 < colontmp__3)) goto LA16;
								j_1 = i_3;
								{
									NIM_BOOL T19_;
									NIM_BOOL T20_;
									NI T22_;
									T19_ = (NIM_BOOL)0;
									T20_ = (NIM_BOOL)0;
									T20_ = !(((*(*t_p0).sons.p->data[j_1]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63)));
									if (!(T20_)) goto LA21_;
									T22_ = (NI)0;
									T22_ = len__ast_u3190((*t_p0).n);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									T20_ = (j_1 < T22_);
LA21_: ;
									T19_ = T20_;
									if (!(T19_)) goto LA23_;
									T19_ = !(((*(*(*t_p0).n)._kind_6.sons.p->data[j_1]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)138)));
LA23_: ;
									if (!T19_) goto LA24_;
									eqcopy___ast_u3255(&(*(*t_p0).n)._kind_6.sons.p->data[pos_1], (*(*t_p0).n)._kind_6.sons.p->data[j_1]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqcopy___ast_u3381(&(*t_p0).sons.p->data[pos_1], (*t_p0).sons.p->data[j_1]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									{
										if (!((*(*(*t_p0).n)._kind_6.sons.p->data[pos_1]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3))) goto LA28_;
										(*(*(*(*t_p0).n)._kind_6.sons.p->data[pos_1])._kind_4.sym).position = pos_1;
									}
LA28_: ;
									pos_1 += ((NI)1);
								}
LA24_: ;
								i_3 += ((NI)1);
							} LA16: ;
						}
					}
					setLen__ast_u3718((&(*(*t_p0).n)._kind_6.sons), (pos_1));
					setSonsLen__ast_u6013(t_p0, pos_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto LA5;
				}
LA12_: ;
				i_2 += ((NI)1);
			} LA7: ;
		}
	} LA5: ;
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, returnType__ast_u5354)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, setReturnType__ast_u5357)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* r_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	eqcopy___ast_u3381(&(*n_p0).sons.p->data[((NI)0)], r_p1);
	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;
}
N_LIB_PRIVATE N_NIMCALL(void, eraseVoidParams__semtypinst_u822)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		colontmpD_ = returnType__ast_u5354(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T4_ = !((colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T4_)) goto LA5_;
		colontmpD__2 = returnType__ast_u5354(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T4_ = ((*colontmpD__2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63));
LA5_: ;
		if (!T4_) goto LA6_;
		setReturnType__ast_u5357(t_p0, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA6_: ;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = signatureLen__ast_u5610(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		i_2 = ((NI)1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA10;
				i_1 = i_2;
				{
					NI pos_1;
					if (!((*(*t_p0).sons.p->data[i_1]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63))) goto LA13_;
					pos_1 = i_1;
					{
						NI j_1;
						NI colontmp__2;
						NI colontmp__3;
						NI i_3;
						j_1 = (NI)0;
						colontmp__2 = (NI)0;
						colontmp__3 = (NI)0;
						colontmp__2 = (NI)(i_1 + ((NI)1));
						colontmp__3 = signatureLen__ast_u5610(t_p0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						i_3 = colontmp__2;
						{
							while (1) {
								if (!(i_3 < colontmp__3)) goto LA17;
								j_1 = i_3;
								{
									if (!!(((*(*t_p0).sons.p->data[j_1]).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63)))) goto LA20_;
									eqcopy___ast_u3381(&(*t_p0).sons.p->data[pos_1], (*t_p0).sons.p->data[j_1]);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									eqcopy___ast_u3255(&(*(*t_p0).n)._kind_6.sons.p->data[pos_1], (*(*t_p0).n)._kind_6.sons.p->data[j_1]);
									if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
									pos_1 += ((NI)1);
								}
LA20_: ;
								i_3 += ((NI)1);
							} LA17: ;
						}
					}
					newSons__ast_u6115(t_p0, pos_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					setLen__ast_u3718((&(*(*t_p0).n)._kind_6.sons), (pos_1));
					goto LA8;
				}
LA13_: ;
				i_2 += ((NI)1);
			} LA10: ;
		}
	} LA8: ;
	{
		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_: ;
}
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;
}
N_LIB_PRIVATE N_NIMCALL(void, skipIntLiteralParams__semtypinst_u906)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
NIM_BOOL oldNimErrFin9_;
NIM_BOOL oldNimErrFin3_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* p_1;
		NI i_1;
		p_1 = NIM_NIL;
		i_1 = (NI)0;
		{
			NI i_2;
			NI colontmp_;
			NI T5_;
			NI i_3;
			i_2 = (NI)0;
			colontmp_ = (NI)0;
			T5_ = (*t_p0).sons.len;
			colontmp_ = T5_;
			i_3 = ((NI)0);
			{
				while (1) {
					if (!(i_3 < colontmp_)) goto LA7;
					i_2 = i_3;
					i_1 = i_2;
					eqcopy___ast_u3381(&p_1, (*t_p0).sons.p->data[i_2]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* skipped_1;
						skipped_1 = NIM_NIL;
						{
							if (!(p_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA12_;
							eqdestroy___ast_u3378(skipped_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
							goto LA8;
						}
LA12_: ;
						skipped_1 = skipIntLit__magicsys_u120(p_1, idgen_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						{
							if (!!((skipped_1 == p_1))) goto LA16_;
							eqcopy___ast_u3381(&(*t_p0).sons.p->data[i_1], skipped_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
							{
								if (!(((NI)0) < i_1)) goto LA20_;
								eqsink___ast_u3387(&(*(*(*(*t_p0).n)._kind_6.sons.p->data[i_1])._kind_4.sym).typ, skipped_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
								eqwasMoved___ast_u3375(&skipped_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
							}
LA20_: ;
						}
LA16_: ;
						{
							LA9_:;
						}
						{
							oldNimErrFin9_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3378(skipped_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
							*nimErr_ = oldNimErrFin9_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
					} LA8: ;
					i_3 += ((NI)1);
				} LA7: ;
			}
		}
		{
			LA3_:;
		}
		{
			oldNimErrFin3_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(p_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin3_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	{
		NIM_BOOL T28_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__3;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
		T28_ = (NIM_BOOL)0;
		colontmpD_ = returnType__ast_u5354(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T28_ = !((colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T28_)) goto LA29_;
		colontmpD__2 = returnType__ast_u5354(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T28_ = ((*colontmpD__2).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60));
LA29_: ;
		if (!T28_) goto LA30_;
		colontmpD__3 = NIM_NIL;
		colontmpD__4 = NIM_NIL;
		colontmpD__3 = returnType__ast_u5354(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		colontmpD__4 = skipModifier__ast_u5338(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		setReturnType__ast_u5357(t_p0, colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___ast_u3378(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA30_: ;
	{
		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_: ;
}
static N_INLINE(void, setIndexType__ast_u5360)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* idx_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	eqcopy___ast_u3381(&(*n_p0).sons.p->data[((NI)0)], idx_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
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_TNode__eTSqWXWVL7LuzmZf0c6unQ*, replaceObjBranches__semtypinst_u276)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL oldNimErrFin13_;
NIM_BOOL oldNimErrFin7_;
NIM_BOOL oldNimErrFin3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3255(&result, n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch ((*n_p1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)0) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23):
	{
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)140):
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* branch_1;
		branch_1 = NIM_NIL;
		branch_1 = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
		{
			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 LA3_;
			i_2 = ((NI)0);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* it_1;
					if (!(i_2 < colontmp_)) goto LA6;
					it_1 = NIM_NIL;
					i_1 = i_2;
					eqcopy___ast_u3255(&it_1, (*n_p1)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
					{
						if (!(it_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA10_;
						illFormedAst__semdata_u4665(n_p1, (*(*(*cl_p0).c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
					}
LA10_: ;
					switch ((*it_1).kind) {
					case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)86):
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* cond_1;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* e_1;
						cond_1 = NIM_NIL;
						e_1 = NIM_NIL;
						checkSonsLen__semdata_u4671(it_1, ((NI)2), (*(*(*cl_p0).c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
						eqcopy___ast_u3255(&cond_1, (*it_1)._kind_6.sons.p->data[((NI)0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
						e_1 = (*(*cl_p0).c).semConstExpr((*cl_p0).c, cond_1, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
						if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
						{
							if (!!(((*e_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6)))) goto LA16_;
							internalErrorImpl__msgs_u1598((*(*(*cl_p0).c).graph).config, (*e_1).info, TM__mrkrD9c2e31kE4GdQtpMdaQ_45, (&TM__mrkrD9c2e31kE4GdQtpMdaQ_46));
							if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
						}
LA16_: ;
						{
							NIM_BOOL T20_;
							T20_ = (NIM_BOOL)0;
							T20_ = !(((*e_1)._kind_1.intVal == IL64(0)));
							if (!(T20_)) goto LA21_;
							T20_ = (branch_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
LA21_: ;
							if (!T20_) goto LA22_;
							eqcopy___ast_u3255(&branch_1, (*it_1)._kind_6.sons.p->data[((NI)1)]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
						}
LA22_: ;
						{
							LA13_:;
						}
						{
							oldNimErrFin13_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(e_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							eqdestroy___ast_u3252(cond_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
							*nimErr_ = oldNimErrFin13_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
					}
					break;
					case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)88):
					{
						checkSonsLen__semdata_u4671(it_1, ((NI)1), (*(*(*cl_p0).c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
						{
							if (!(branch_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA29_;
							eqcopy___ast_u3255(&branch_1, (*it_1)._kind_6.sons.p->data[((NI)0)]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
						}
LA29_: ;
					}
					break;
					default:
					{
						illFormedAst__semdata_u4665(n_p1, (*(*(*cl_p0).c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
					}
					break;
					}
					i_2 += ((NI)1);
					{
						LA7_:;
					}
					{
						oldNimErrFin7_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3252(it_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
						*nimErr_ = oldNimErrFin7_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
				} LA6: ;
			}
		}
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T38_;
			if (!!((branch_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA36_;
			T38_ = NIM_NIL;
			T38_ = replaceObjBranches__semtypinst_u276(cl_p0, branch_1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T38_); goto LA3_;}
			eqsink___ast_u3261(&result, T38_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
		}
		goto LA34_;
LA36_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T40_;
			T40_ = NIM_NIL;
			T40_ = newNodeI__ast_u4091(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)138), (*n_p1).info);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T40_); goto LA3_;}
			eqsink___ast_u3261(&result, T40_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA3_;
		}
LA34_: ;
		{
			LA3_:;
		}
		{
			oldNimErrFin3_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(branch_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin3_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		{
			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)0);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T47_;
					if (!(i_4 < colontmp__2)) goto LA46;
					i_3 = i_4;
					T47_ = NIM_NIL;
					T47_ = replaceObjBranches__semtypinst_u276(cl_p0, (*n_p1)._kind_6.sons.p->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T47_); goto BeforeRet_;}
					eqsink___ast_u3261(&(*n_p1)._kind_6.sons.p->data[i_3], T47_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_4 += ((NI)1);
				} LA46: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, replaceTypeVarsTAux__semtypinst_u106)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, NIM_BOOL isInstValue_p2) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* et_1;
NIM_BOOL oldNimErrFin20_;
NIM_BOOL oldNimErrFin28_;
NIM_BOOL oldNimErrFin47_;
NIM_BOOL oldNimErrFin104_;
NIM_BOOL oldNimErrFin85_;
NIM_BOOL oldNimErrFin147_;
NIM_BOOL oldNimErrFin112_;
NIM_BOOL oldNimErrFin169_;
NIM_BOOL oldNimErrFin242_;
NIM_BOOL oldNimErrFin235_;
NIM_BOOL oldNimErrFin226_;
NIM_BOOL oldNimErrFin273_;
NIM_BOOL oldNimErrFin309_;
NIM_BOOL oldNimErrFin298_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	et_1 = NIM_NIL;
	eqcopy___ast_u3381(&result, t_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!(t_p1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA4_;
		eqdestroy___ast_u3378(et_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	eqcopy___ast_u3381(&et_1, t_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T8_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T11_;
		T8_ = (NIM_BOOL)0;
		T8_ = isConcept__types_u3423(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T8_) goto LA9_;
		T11_ = NIM_NIL;
		T11_ = reduceToBase__types_u4300(t_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T11_); goto LA1_;}
		eqsink___ast_u3387(&et_1, T11_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA9_: ;
	{
		NIM_BOOL T14_;
		NIM_BOOL T16_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* lookup_1;
		T14_ = (NIM_BOOL)0;
		T14_ = ((*et_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12) || (*et_1).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)51) && (*et_1).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)54) || (*et_1).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)56) && (*et_1).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)58) || (*et_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60) || (*et_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)62));
		if (T14_) goto LA15_;
		T16_ = (NIM_BOOL)0;
		T16_ = ((*et_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)59));
		if (!(T16_)) goto LA17_;
		T16_ = !((((*et_1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)11)))&63U)))!=0));
LA17_: ;
		T14_ = T16_;
LA15_: ;
		if (!T14_) goto LA18_;
		lookup_1 = NIM_NIL;
		lookup_1 = lookup__layeredtable_u711((&(*cl_p0).typeMap), (*et_1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
		{
			if (!!((lookup_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA23_;
			result = lookup_1;
			eqwasMoved___ast_u3375(&lookup_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
			eqdestroy___ast_u3378(lookup_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(et_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA23_: ;
		{
			LA20_:;
		}
		{
			oldNimErrFin20_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(lookup_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin20_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA18_: ;
	switch ((*t_p1).kind) {
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)9):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T29_;
		colontmpD_ = NIM_NIL;
		T29_ = NIM_NIL;
		T29_ = handleGenericInvocation__semtypinst_u564(cl_p0, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T29_); goto LA28_;}
		eqsink___ast_u3387(&result, T29_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
		{
			colontmpD_ = last__ast_u5278(result);
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			if (!((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52))) goto LA32_;
			(*result).kind = ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53);
		}
LA32_: ;
		{
			LA28_:;
		}
		{
			oldNimErrFin28_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin28_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10):
	{
		NimStringV2 colontmpD__2;
		NimStringV2 colontmpD__3;
		NimStringV2 T42_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T43_;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
		{
			if (!(*cl_p0).allowMetaTypes) goto LA40_;
			eqdestroy___system_u2691(colontmpD__3);
			eqdestroy___system_u2691(colontmpD__2);
			eqdestroy___ast_u3378(et_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA40_: ;
		T42_.len = 0; T42_.p = NIM_NIL;
		colontmpD__2 = typeToString__types_u54(t_p1, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA37_;
		T42_ = rawNewString(colontmpD__2.len + 60);
appendString((&T42_), TM__mrkrD9c2e31kE4GdQtpMdaQ_20);
appendString((&T42_), colontmpD__2);
appendString((&T42_), TM__mrkrD9c2e31kE4GdQtpMdaQ_22);
		colontmpD__3 = T42_;
		liMessage__msgs_u1227((*(*(*cl_p0).c).graph).config, (*cl_p0).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__3, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__mrkrD9c2e31kE4GdQtpMdaQ_23), NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA37_;
		T43_ = NIM_NIL;
		T43_ = errorType__semdata_u4564((*cl_p0).c);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T43_); goto LA37_;}
		eqsink___ast_u3387(&result, T43_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA37_;
		{
			LA37_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__3);
			eqdestroy___system_u2691(colontmpD__2);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61):
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_1;
		n_1 = NIM_NIL;
		{
			if (!(*cl_p0).allowMetaTypes) goto LA50_;
			eqdestroy___ast_u3252(n_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(et_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA50_: ;
		n_1 = prepareNode__semtypinst_u130(cl_p0, (*t_p1).n);
		if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
		{
			if (!!(((*n_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1)))) goto LA54_;
			{
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T60_;
				if (!(((*t_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)42)))&63U)))!=0)) goto LA58_;
				T60_ = NIM_NIL;
				T60_ = (*(*cl_p0).c).semExprWithType((*cl_p0).c, n_1, 16, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T60_); goto LA47_;}
				eqsink___ast_u3261(&n_1, T60_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
			}
			goto LA56_;
LA58_: ;
			{
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T62_;
				T62_ = NIM_NIL;
				T62_ = (*(*cl_p0).c).semConstExpr((*cl_p0).c, n_1, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T62_); goto LA47_;}
				eqsink___ast_u3261(&n_1, T62_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
			}
LA56_: ;
		}
LA54_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T67_;
			if (!((*(*n_1).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA65_;
			T67_ = NIM_NIL;
			T67_ = skipTypes__ast_u5379((*n_1).typField, TM__mrkrD9c2e31kE4GdQtpMdaQ_26);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T67_); goto LA47_;}
			eqsink___ast_u3387(&result, T67_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
		}
		goto LA63_;
LA65_: ;
		{
			if (!(((*t_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)42)))&63U)))!=0)) goto LA69_;
			eqcopy___ast_u3381(&result, (*n_1).typField);
			if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
		}
		goto LA63_;
LA69_: ;
		{
			{
				NIM_BOOL T74_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__4;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T78_;
				T74_ = (NIM_BOOL)0;
				T74_ = !(((*(*n_1).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60)));
				if (!(T74_)) goto LA75_;
				T74_ = !(((*n_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)4)));
LA75_: ;
				if (!T74_) goto LA76_;
				colontmpD__4 = eqdup___ast_u3384((*n_1).typField);
				if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
				T78_ = NIM_NIL;
				T78_ = newTypeS__semdata_u4368(((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60), (*cl_p0).c, colontmpD__4);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T78_); goto LA47_;}
				eqsink___ast_u3387(&result, T78_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
				eqsink___ast_u3261(&(*result).n, n_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
				eqwasMoved___ast_u3249(&n_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
			}
			goto LA72_;
LA76_: ;
			{
				eqcopy___ast_u3381(&result, (*n_1).typField);
				if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
			}
LA72_: ;
		}
LA63_: ;
		{
			LA47_:;
		}
		{
			oldNimErrFin47_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(n_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin47_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)31):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T83_;
		T83_ = NIM_NIL;
		T83_ = skipIntLit__magicsys_u120(t_p1, (*(*cl_p0).c).Sup.idgen);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T83_); goto LA1_;}
		eqsink___ast_u3387(&result, T83_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* lookup_2;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__5;
		lookup_2 = NIM_NIL;
		colontmpD__5 = NIM_NIL;
		lookup_2 = lookup__layeredtable_u711((&(*cl_p0).typeMap), (*t_p1).itemId);
		if (NIM_UNLIKELY(*nimErr_)) goto LA85_;
		{
			if (!!((lookup_2 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA88_;
			eqsink___ast_u3387(&result, lookup_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA85_;
			eqwasMoved___ast_u3375(&lookup_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA85_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T94_;
				if (!!(((*result).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8)))) goto LA92_;
				T94_ = NIM_NIL;
				T94_ = makeTypeDesc__semdata_u4621((*cl_p0).c, result);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T94_); goto LA85_;}
				eqsink___ast_u3387(&result, T94_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA85_;
			}
			goto LA90_;
LA92_: ;
			{
				NIM_BOOL T96_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T100_;
				T96_ = (NIM_BOOL)0;
				T96_ = (((*t_p1).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)9)))&63U)))!=0);
				if (T96_) goto LA97_;
				T96_ = (*cl_p0).skipTypedesc;
LA97_: ;
				if (!T96_) goto LA98_;
				T100_ = NIM_NIL;
				T100_ = base__ast_u5351(result);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T100_); goto LA85_;}
				eqsink___ast_u3387(&result, T100_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA85_;
			}
			goto LA90_;
LA98_: ;
LA90_: ;
		}
		goto LA86_;
LA88_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__6;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__7;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T105_;
			colontmpD__5 = elementType__ast_u5331(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA85_;
			if (!!(((*colontmpD__5).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0)))) goto LA102_;
			colontmpD__6 = NIM_NIL;
			colontmpD__7 = NIM_NIL;
			colontmpD__6 = elementType__ast_u5331(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA104_;
			colontmpD__7 = replaceTypeVarsT__semtypinst_u125(cl_p0, colontmpD__6, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto LA104_;
			T105_ = NIM_NIL;
			T105_ = makeTypeDesc__semdata_u4621((*cl_p0).c, colontmpD__7);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T105_); goto LA104_;}
			eqsink___ast_u3387(&result, T105_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA104_;
			{
				LA104_:;
			}
			{
				oldNimErrFin104_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__7);
				if (NIM_UNLIKELY(*nimErr_)) goto LA85_;
				eqdestroy___ast_u3378(colontmpD__6);
				if (NIM_UNLIKELY(*nimErr_)) goto LA85_;
				*nimErr_ = oldNimErrFin104_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA85_;
		}
		goto LA86_;
LA102_: ;
LA86_: ;
		{
			LA85_:;
		}
		{
			oldNimErrFin85_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(lookup_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin85_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)52):
	{
		eqcopy___ast_u3381(&result, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__8;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T143_;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T155_;
		colontmpD__8 = NIM_NIL;
		{
			if (!!(((*(*cl_p0).c).matchedConcept == ((tyObject_TMatchedConcept__tvh59a8SIGC9ccJV9atmyb8kg*) NIM_NIL)))) goto LA115_;
			eqdestroy___ast_u3378(colontmpD__8);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(et_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA115_: ;
		{
			NIM_BOOL T119_;
			NIM_BOOL T120_;
			NIM_BOOL T122_;
			T119_ = (NIM_BOOL)0;
			T120_ = (NIM_BOOL)0;
			T120_ = containsGenericType__types_u3462(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA112_;
			T119_ = !(T120_);
			if (!(T119_)) goto LA121_;
			T122_ = (NIM_BOOL)0;
			T122_ = ((*t_p1).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
			if (T122_) goto LA123_;
			T122_ = ((*(*t_p1).n).kind >= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)5) && (*(*t_p1).n).kind <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)22));
LA123_: ;
			T119_ = T122_;
LA121_: ;
			if (!T119_) goto LA124_;
			eqdestroy___ast_u3378(colontmpD__8);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqdestroy___ast_u3378(et_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
LA124_: ;
		{
			NIM_BOOL T128_;
			NIM_BOOL T130_;
			T128_ = (NIM_BOOL)0;
			T128_ = ((*t_p1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL));
			if (T128_) goto LA129_;
			T130_ = (NIM_BOOL)0;
			T130_ = !(((*t_p1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
			if (!(T130_)) goto LA131_;
			T130_ = (((*(*t_p1).sym).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)49)))&63U)))!=0);
LA131_: ;
			T128_ = T130_;
LA129_: ;
			if (!T128_) goto LA132_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T138_;
				if (!(((NI)100) < (*cl_p0).recursionLimit)) goto LA136_;
				T138_ = NIM_NIL;
				T138_ = getOrDefault__layeredtable_u519((*cl_p0).localCache, (*t_p1).itemId);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T138_); goto LA112_;}
				eqsink___ast_u3387(&result, T138_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA112_;
				{
					if (!!((result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA141_;
					eqdestroy___ast_u3378(colontmpD__8);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(et_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA141_: ;
			}
LA136_: ;
			(*cl_p0).recursionLimit += ((NI)1);
		}
LA132_: ;
		T143_ = NIM_NIL;
		T143_ = instCopyType__semtypinst_u531(cl_p0, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T143_); goto LA112_;}
		eqsink___ast_u3387(&result, T143_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA112_;
		X5BX5Deq___layeredtable_u742((&(*cl_p0).localCache), (*t_p1).itemId, result);
		if (NIM_UNLIKELY(*nimErr_)) goto LA112_;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = kidsLen__ast_u5648(result);
			if (NIM_UNLIKELY(*nimErr_)) goto LA112_;
			i_2 = ((NI)1);
			{
				while (1) {
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* r_1;
					if (!(i_2 < colontmp_)) goto LA146;
					r_1 = NIM_NIL;
					i_1 = i_2;
					eqcopy___ast_u3381(&r_1, (*result).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA147_;
					{
						tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T152_;
						if (!!((r_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA150_;
						T152_ = NIM_NIL;
						T152_ = replaceTypeVarsT__semtypinst_u125(cl_p0, r_1, NIM_FALSE);
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T152_); goto LA147_;}
						eqsink___ast_u3387(&r_1, T152_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA147_;
						eqcopy___ast_u3381(&(*result).sons.p->data[i_1], r_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA147_;
						propagateToOwner__ast_u6637(result, r_1, NIM_TRUE);
						if (NIM_UNLIKELY(*nimErr_)) goto LA147_;
					}
LA150_: ;
					i_2 += ((NI)1);
					{
						LA147_:;
					}
					{
						oldNimErrFin147_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3378(r_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA112_;
						*nimErr_ = oldNimErrFin147_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA112_;
				} LA146: ;
			}
		}
		T155_ = NIM_NIL;
		T155_ = replaceTypeVarsN__semtypinst_u114(cl_p0, (*result).n, ((NI)0), ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T155_); goto LA112_;}
		eqsink___ast_u3261(&(*result).n, T155_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA112_;
		{
			NIM_BOOL T158_;
			NIM_BOOL T159_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T164_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T165_;
			T158_ = (NIM_BOOL)0;
			T159_ = (NIM_BOOL)0;
			T159_ = !((*cl_p0).allowMetaTypes);
			if (!(T159_)) goto LA160_;
			T159_ = !(((*result).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA160_: ;
			T158_ = T159_;
			if (!(T158_)) goto LA161_;
			colontmpD__8 = base__ast_u5351(result);
			if (NIM_UNLIKELY(*nimErr_)) goto LA112_;
			T158_ = !(((*colontmpD__8).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)0)));
LA161_: ;
			if (!T158_) goto LA162_;
			T164_ = NIM_NIL;
			T164_ = (*(*cl_p0).c).semConstExpr((*cl_p0).c, (*result).n, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T164_); goto LA112_;}
			eqsink___ast_u3261(&(*result).n, T164_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA112_;
			T165_ = NIM_NIL;
			T165_ = base__ast_u5351(result);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T165_); goto LA112_;}
			eqsink___ast_u3387(&(*(*result).n).typField, T165_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA112_;
		}
LA162_: ;
		{
			LA112_:;
		}
		{
			oldNimErrFin112_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__8);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin112_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)11):
	case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)53):
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__9;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T187_;
		colontmpD__9 = NIM_NIL;
		{
			NIM_BOOL T172_;
			NIM_BOOL T174_;
			T172_ = (NIM_BOOL)0;
			T172_ = ((*t_p1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL));
			if (T172_) goto LA173_;
			T174_ = (NIM_BOOL)0;
			T174_ = !(((*t_p1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
			if (!(T174_)) goto LA175_;
			T174_ = (((*(*t_p1).sym).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)49)))&63U)))!=0);
LA175_: ;
			T172_ = T174_;
LA173_: ;
			if (!T172_) goto LA176_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T182_;
				if (!(((NI)100) < (*cl_p0).recursionLimit)) goto LA180_;
				T182_ = NIM_NIL;
				T182_ = getOrDefault__layeredtable_u519((*cl_p0).localCache, (*t_p1).itemId);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T182_); goto LA169_;}
				eqsink___ast_u3387(&result, T182_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA169_;
				{
					if (!!((result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA185_;
					eqdestroy___ast_u3378(colontmpD__9);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___ast_u3378(et_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA185_: ;
			}
LA180_: ;
			(*cl_p0).recursionLimit += ((NI)1);
		}
LA176_: ;
		T187_ = NIM_NIL;
		T187_ = instCopyType__semtypinst_u531(cl_p0, t_p1);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T187_); goto LA169_;}
		eqsink___ast_u3387(&result, T187_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA169_;
		X5BX5Deq___layeredtable_u742((&(*cl_p0).localCache), (*t_p1).itemId, result);
		if (NIM_UNLIKELY(*nimErr_)) goto LA169_;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = kidsLen__ast_u5648(result);
			if (NIM_UNLIKELY(*nimErr_)) goto LA169_;
			i_4 = ((NI)1);
			{
				while (1) {
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T191_;
					if (!(i_4 < colontmp__2)) goto LA190;
					i_3 = i_4;
					T191_ = NIM_NIL;
					T191_ = replaceTypeVarsT__semtypinst_u125(cl_p0, (*result).sons.p->data[i_3], NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T191_); goto LA169_;}
					eqsink___ast_u3387(&(*result).sons.p->data[i_3], T191_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA169_;
					i_4 += ((NI)1);
				} LA190: ;
			}
		}
		colontmpD__9 = last__ast_u5278(result);
		if (NIM_UNLIKELY(*nimErr_)) goto LA169_;
		propagateToOwner__ast_u6637(result, colontmpD__9, NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA169_;
		{
			LA169_:;
		}
		{
			oldNimErrFin169_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3378(colontmpD__9);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin169_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	break;
	default:
	{
		{
			NIM_BOOL T197_;
			NIM_BOOL T199_;
			NIM_BOOL T201_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T222_;
			NIM_BOOL propagateInstValue_1;
			NIM_BOOL T223_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T271_;
			T197_ = (NIM_BOOL)0;
			T197_ = containsGenericType__types_u3462(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (T197_) goto LA198_;
			T199_ = (NIM_BOOL)0;
			T199_ = isInstValue_p2;
			if (!(T199_)) goto LA200_;
			T201_ = (NIM_BOOL)0;
			T201_ = ((*t_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)13) || (*t_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
			if (T201_) goto LA202_;
			T201_ = isRefPtrObject__types_u4254(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA202_: ;
			T199_ = T201_;
LA200_: ;
			T197_ = T199_;
LA198_: ;
			if (!T197_) goto LA203_;
			{
				NIM_BOOL T207_;
				NIM_BOOL T209_;
				T207_ = (NIM_BOOL)0;
				T207_ = ((*t_p1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL));
				if (T207_) goto LA208_;
				T209_ = (NIM_BOOL)0;
				T209_ = !(((*t_p1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
				if (!(T209_)) goto LA210_;
				T209_ = (((*(*t_p1).sym).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)49)))&63U)))!=0);
LA210_: ;
				T207_ = T209_;
LA208_: ;
				if (!T207_) goto LA211_;
				{
					tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T217_;
					if (!(((NI)100) < (*cl_p0).recursionLimit)) goto LA215_;
					T217_ = NIM_NIL;
					T217_ = getOrDefault__layeredtable_u519((*cl_p0).localCache, (*t_p1).itemId);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T217_); goto LA1_;}
					eqsink___ast_u3387(&result, T217_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					{
						if (!!((result == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA220_;
						eqdestroy___ast_u3378(et_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA220_: ;
				}
LA215_: ;
				(*cl_p0).recursionLimit += ((NI)1);
			}
LA211_: ;
			T222_ = NIM_NIL;
			T222_ = instCopyType__semtypinst_u531(cl_p0, t_p1);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T222_); goto LA1_;}
			eqsink___ast_u3387(&result, T222_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			(*result).size = IL64(-1);
			X5BX5Deq___layeredtable_u742((&(*cl_p0).localCache), (*t_p1).itemId, result);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T223_ = (NIM_BOOL)0;
			T223_ = isInstValue_p2;
			if (!(T223_)) goto LA224_;
			T223_ = isRefPtrObject__types_u4254(t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA224_: ;
			propagateInstValue_1 = T223_;
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* resulti_1;
				NI i_5;
				resulti_1 = NIM_NIL;
				i_5 = (NI)0;
				{
					NI i_6;
					NI colontmp__3;
					NI T228_;
					NI i_7;
					i_6 = (NI)0;
					colontmp__3 = (NI)0;
					T228_ = (*result).sons.len;
					colontmp__3 = T228_;
					i_7 = ((NI)0);
					{
						while (1) {
							if (!(i_7 < colontmp__3)) goto LA230;
							i_6 = i_7;
							i_5 = i_6;
							eqcopy___ast_u3381(&resulti_1, (*result).sons.p->data[i_6]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA226_;
							{
								tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* r_2;
								if (!!((resulti_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA233_;
								r_2 = NIM_NIL;
								{
									NIM_BOOL T238_;
									tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA colontmpD__10;
									tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA colontmpD__11;
									NimStringV2 colontmpD__12;
									tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__13;
									NimStringV2 colontmpD__14;
									tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA T243_;
									NimStringV2 T249_;
									T238_ = (NIM_BOOL)0;
									T238_ = ((*resulti_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)10));
									if (!(T238_)) goto LA239_;
									T238_ = !((*cl_p0).allowMetaTypes);
LA239_: ;
									if (!T238_) goto LA240_;
									nimZeroMem((void*)(&colontmpD__10), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
									nimZeroMem((void*)(&colontmpD__11), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
									colontmpD__12.len = 0; colontmpD__12.p = NIM_NIL;
									colontmpD__13 = NIM_NIL;
									colontmpD__14.len = 0; colontmpD__14.p = NIM_NIL;
									{
										if (!!(((*t_p1).sym == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA246_;
										colontmpD__10 = (*(*t_p1).sym).info;
										T243_ = colontmpD__10;
									}
									goto LA244_;
LA246_: ;
									{
										colontmpD__11 = (*cl_p0).info;
										T243_ = colontmpD__11;
									}
LA244_: ;
									T249_.len = 0; T249_.p = NIM_NIL;
									colontmpD__12 = typeToString__types_u54((*result).sons.p->data[i_5], ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)1));
									if (NIM_UNLIKELY(*nimErr_)) goto LA242_;
									colontmpD__13 = owner__ast_u6246(t_p1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA242_;
									T249_ = rawNewString(colontmpD__12.len + (*(*colontmpD__13).name).s.len + 89);
appendString((&T249_), TM__mrkrD9c2e31kE4GdQtpMdaQ_28);
appendString((&T249_), colontmpD__12);
appendString((&T249_), TM__mrkrD9c2e31kE4GdQtpMdaQ_30);
appendString((&T249_), (*(*colontmpD__13).name).s);
appendString((&T249_), TM__mrkrD9c2e31kE4GdQtpMdaQ_31);
									colontmpD__14 = T249_;
									liMessage__msgs_u1227((*(*(*cl_p0).c).graph).config, T243_, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__14, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__mrkrD9c2e31kE4GdQtpMdaQ_32), NIM_FALSE, NIM_FALSE);
									if (NIM_UNLIKELY(*nimErr_)) goto LA242_;
									{
										LA242_:;
									}
									{
										oldNimErrFin242_ = *nimErr_; *nimErr_ = NIM_FALSE;
										eqdestroy___system_u2691(colontmpD__14);
										eqdestroy___ast_u4574(colontmpD__13);
										if (NIM_UNLIKELY(*nimErr_)) goto LA235_;
										eqdestroy___system_u2691(colontmpD__12);
										*nimErr_ = oldNimErrFin242_;
									}
									if (NIM_UNLIKELY(*nimErr_)) goto LA235_;
								}
LA240_: ;
								r_2 = replaceTypeVarsT__semtypinst_u125(cl_p0, resulti_1, propagateInstValue_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA235_;
								{
									tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* r2_1;
									if (!((*result).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17))) goto LA254_;
									r2_1 = NIM_NIL;
									r2_1 = skipTypes__ast_u5379(r_2, TM__mrkrD9c2e31kE4GdQtpMdaQ_33);
									if (NIM_UNLIKELY(*nimErr_)) goto LA235_;
									{
										tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T260_;
										if (!((*r2_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)21) || (*r2_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22))) goto LA258_;
										T260_ = NIM_NIL;
										T260_ = skipTypes__ast_u5379(r2_1, TM__mrkrD9c2e31kE4GdQtpMdaQ_34);
										if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T260_); goto LA235_;}
										eqsink___ast_u3387(&r_2, T260_);
										if (NIM_UNLIKELY(*nimErr_)) goto LA235_;
									}
LA258_: ;
									eqdestroy___ast_u3378(r2_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA235_;
								}
LA254_: ;
								eqcopy___ast_u3381(&(*result).sons.p->data[i_5], r_2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA235_;
								{
									NIM_BOOL T263_;
									T263_ = (NIM_BOOL)0;
									T263_ = !(((*result).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16)));
									if (T263_) goto LA264_;
									T263_ = !((i_5 == ((NI)0)));
LA264_: ;
									if (!T263_) goto LA265_;
									propagateToOwner__ast_u6637(result, r_2, NIM_TRUE);
									if (NIM_UNLIKELY(*nimErr_)) goto LA235_;
								}
LA265_: ;
								{
									LA235_:;
								}
								{
									oldNimErrFin235_ = *nimErr_; *nimErr_ = NIM_FALSE;
									eqdestroy___ast_u3378(r_2);
									if (NIM_UNLIKELY(*nimErr_)) goto LA226_;
									*nimErr_ = oldNimErrFin235_;
								}
								if (NIM_UNLIKELY(*nimErr_)) goto LA226_;
							}
LA233_: ;
							i_7 += ((NI)1);
						} LA230: ;
					}
				}
				{
					LA226_:;
				}
				{
					oldNimErrFin226_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(resulti_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin226_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			T271_ = NIM_NIL;
			T271_ = replaceTypeVarsN__semtypinst_u114(cl_p0, (*result).n, ((*result).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25)), ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T271_); goto LA1_;}
			eqsink___ast_u3261(&(*result).n, T271_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			switch ((*result).kind) {
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)16):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* idx_1;
				idx_1 = NIM_NIL;
				idx_1 = indexType__ast_u5345(result);
				if (NIM_UNLIKELY(*nimErr_)) goto LA273_;
				{
					NimStringV2 argX60gensym275__1;
					if (!!(!(((*idx_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60))))) goto LA276_;
					argX60gensym275__1.len = 0; argX60gensym275__1.p = NIM_NIL;
					argX60gensym275__1 = toFileLineCol__msgs_u701((&TM__mrkrD9c2e31kE4GdQtpMdaQ_42));
					if (NIM_UNLIKELY(*nimErr_)) goto LA278_;
					internalErrorImpl__msgs_u1598((*(*(*cl_p0).c).graph).config, unknownLineInfo__lineinfos_u364, argX60gensym275__1, (&TM__mrkrD9c2e31kE4GdQtpMdaQ_42));
					if (NIM_UNLIKELY(*nimErr_)) goto LA278_;
					{
						LA278_:;
					}
					{
						eqdestroy___system_u2691(argX60gensym275__1);
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA273_;
				}
LA276_: ;
				{
					LA273_:;
				}
				{
					oldNimErrFin273_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3378(idx_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin273_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17):
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18):
			{
				propagateFieldFlags__semtypinst_u928(result, (*result).n);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				{
					NIM_BOOL T286_;
					T286_ = (NIM_BOOL)0;
					T286_ = ((*result).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
					if (!(T286_)) goto LA287_;
					T286_ = (*(*cl_p0).c).computeRequiresInit((*cl_p0).c, result);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA287_: ;
					if (!T286_) goto LA288_;
					(*result).flags |= ((NU64)1)<<(((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)18))) & 63);
				}
LA288_: ;
				{
					if (!((*result).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)18))) goto LA292_;
					eraseTupleVoidFields__semtypinst_u860(result);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA292_: ;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)25):
			{
				eraseVoidParams__semtypinst_u822(result);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				skipIntLiteralParams__semtypinst_u906(result, (*(*cl_p0).c).Sup.idgen);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			break;
			case ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)20):
			{
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__15;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__16;
				colontmpD__15 = NIM_NIL;
				colontmpD__16 = NIM_NIL;
				colontmpD__15 = indexType__ast_u5345(result);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				colontmpD__16 = skipTypes__ast_u5379(colontmpD__15, TM__mrkrD9c2e31kE4GdQtpMdaQ_43);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				setIndexType__ast_u5360(result, colontmpD__16);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__16);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__15);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			}
			break;
			default:
			{
			}
			break;
			}
		}
		goto LA195_;
LA203_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__17;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__18;
			colontmpD__17 = NIM_NIL;
			colontmpD__18 = NIM_NIL;
			eqcopy___ast_u3381(&result, t_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
			{
				NIM_BOOL T301_;
				NIM_BOOL T302_;
				NIM_BOOL T303_;
				tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__19;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__20;
				T301_ = (NIM_BOOL)0;
				T302_ = (NIM_BOOL)0;
				T303_ = (NIM_BOOL)0;
				T303_ = ((*t_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)22));
				if (!(T303_)) goto LA304_;
				T303_ = hasElementType__ast_u5660(t_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
LA304_: ;
				T302_ = T303_;
				if (!(T302_)) goto LA305_;
				colontmpD__17 = elementType__ast_u5331(t_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
				T302_ = ((*colontmpD__17).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
LA305_: ;
				T301_ = T302_;
				if (!(T301_)) goto LA306_;
				colontmpD__18 = elementType__ast_u5331(t_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
				T301_ = !(((*colontmpD__18).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA306_: ;
				if (!T301_) goto LA307_;
				colontmpD__19 = NIM_NIL;
				colontmpD__20 = NIM_NIL;
				colontmpD__19 = elementType__ast_u5331(t_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA309_;
				colontmpD__20 = replaceObjBranches__semtypinst_u276((&(*cl_p0)), (*colontmpD__19).n);
				if (NIM_UNLIKELY(*nimErr_)) goto LA309_;
				(void)(colontmpD__20);
				{
					LA309_:;
				}
				{
					oldNimErrFin309_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3252(colontmpD__20);
					if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
					eqdestroy___ast_u3378(colontmpD__19);
					if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
					*nimErr_ = oldNimErrFin309_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
			}
			goto LA299_;
LA307_: ;
			{
				NIM_BOOL T313_;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T317_;
				T313_ = (NIM_BOOL)0;
				T313_ = !(((*result).n == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
				if (!(T313_)) goto LA314_;
				T313_ = ((*t_p1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17));
LA314_: ;
				if (!T313_) goto LA315_;
				(*result).size = IL64(-1);
				T317_ = NIM_NIL;
				T317_ = replaceObjBranches__semtypinst_u276((&(*cl_p0)), (*result).n);
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T317_); goto LA298_;}
				eqsink___ast_u3261(&(*result).n, T317_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA298_;
			}
			goto LA299_;
LA315_: ;
LA299_: ;
			{
				LA298_:;
			}
			{
				oldNimErrFin298_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__18);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				eqdestroy___ast_u3378(colontmpD__17);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				*nimErr_ = oldNimErrFin298_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA195_: ;
	}
	break;
	}
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(et_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, replaceTypeVarsT__semtypinst_u125)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p1, NIM_BOOL isInstValue_p2) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = replaceTypeVarsTAux__semtypinst_u106(cl_p0, t_p1, isInstValue_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasValuelessStatics__semtypinst_u316)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin24_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_FALSE;
	{
		NIM_BOOL T3_;
		NI T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = safeLen__ast_u3197(n_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (T4_ == ((NI)0));
		if (!(T3_)) goto LA5_;
		T3_ = !(((*n_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1)));
LA5_: ;
		if (!T3_) goto LA6_;
		{
			if (!((*n_p0).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL))) goto LA10_;
			result = NIM_TRUE;
		}
		goto LA8_;
LA10_: ;
		{
			if (!((*(*n_p0).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)60))) goto LA13_;
			result = NIM_TRUE;
		}
		goto LA8_;
LA13_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* base_1;
			if (!((*(*n_p0).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)8))) goto LA16_;
			base_1 = NIM_NIL;
			base_1 = skipTypes__ast_u5379((*n_p0).typField, TM__mrkrD9c2e31kE4GdQtpMdaQ_26);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!((*base_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12))) goto LA20_;
				result = NIM_TRUE;
			}
LA20_: ;
			eqdestroy___ast_u3378(base_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA8_;
LA16_: ;
LA8_: ;
	}
	goto LA1_;
LA6_: ;
	{
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* x_1;
			x_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 LA24_;
				i_2 = ((NI)0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA27;
						i_1 = i_2;
						eqcopy___ast_u3255(&x_1, (*n_p0)._kind_6.sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
						{
							NIM_BOOL T30_;
							T30_ = (NIM_BOOL)0;
							T30_ = hasValuelessStatics__semtypinst_u316(x_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
							if (!T30_) goto LA31_;
							result = NIM_TRUE;
							eqdestroy___ast_u3252(x_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							goto BeforeRet_;
						}
LA31_: ;
						i_2 += ((NI)1);
					} LA27: ;
				}
			}
			{
				LA24_:;
			}
			{
				oldNimErrFin24_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(x_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin24_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, replaceTypeVarsN__semtypinst_u114)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* cl_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, NI start_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* expectedType_p3) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL oldNimErrFin27_;
NIM_BOOL oldNimErrFin17_;
NIM_BOOL oldNimErrFin68_;
NIM_BOOL oldNimErrFin62_;
NIM_BOOL oldNimErrFin56_;
NIM_BOOL oldNimErrFin52_;
NIM_BOOL oldNimErrFin101_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		if (!(n_p1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
LA3_: ;
	result = copyNode__ast_u6736(n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T13_;
		if (!!(((*n_p1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA7_;
		{
			if (!((*(*n_p1).typField).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)61))) goto LA11_;
			(*(*n_p1).typField).flags |= ((NU64)1)<<(((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)42))) & 63);
		}
LA11_: ;
		T13_ = NIM_NIL;
		T13_ = replaceTypeVarsT__semtypinst_u125(cl_p0, (*n_p1).typField, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T13_); goto BeforeRet_;}
		eqsink___ast_u3387(&(*result).typField, T13_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA7_: ;
	switch ((*n_p1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)0) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)4) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23):
	{
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)57):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)56):
	{
		eqcopy___ast_u3255(&result, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T18_;
		colontmpD_ = NIM_NIL;
		T18_ = NIM_NIL;
		{
			NIM_BOOL T21_;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T25_;
			T21_ = (NIM_BOOL)0;
			T21_ = !(((*n_p1).typField == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
			if (!(T21_)) goto LA22_;
			T21_ = ((*n_p1).typField == (*(*n_p1)._kind_4.sym).typ);
LA22_: ;
			if (!T21_) goto LA23_;
			T25_ = NIM_NIL;
			T25_ = replaceTypeVarsS__semtypinst_u110(cl_p0, (*n_p1)._kind_4.sym, (*result).typField);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T25_); goto LA17_;}
			eqsink___ast_u4583(&(*result)._kind_4.sym, T25_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		}
		goto LA19_;
LA23_: ;
		{
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T28_;
			colontmpD__2 = NIM_NIL;
			colontmpD__2 = replaceTypeVarsT__semtypinst_u125(cl_p0, (*(*n_p1)._kind_4.sym).typ, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto LA27_;
			T28_ = NIM_NIL;
			T28_ = replaceTypeVarsS__semtypinst_u110(cl_p0, (*n_p1)._kind_4.sym, colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4574(T28_); goto LA27_;}
			eqsink___ast_u4583(&(*result)._kind_4.sym, T28_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA27_;
			{
				LA27_:;
			}
			{
				oldNimErrFin27_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3378(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
				*nimErr_ = oldNimErrFin27_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		}
LA19_: ;
		{
			NIM_BOOL T33_;
			NIM_BOOL T34_;
			NIM_BOOL T37_;
			tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T41_;
			T33_ = (NIM_BOOL)0;
			T34_ = (NIM_BOOL)0;
			T34_ = ((*(*result)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)19));
			if (!(T34_)) goto LA35_;
			T34_ = !(((*(*result)._kind_4.sym).ast == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)));
LA35_: ;
			T33_ = T34_;
			if (!(T33_)) goto LA36_;
			T37_ = (NIM_BOOL)0;
			T37_ = ((*cl_p0).owner == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL));
			if (T37_) goto LA38_;
			colontmpD_ = owner__ast_u6254((*result)._kind_4.sym);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			T37_ = (colontmpD_ == (*cl_p0).owner);
LA38_: ;
			T33_ = T37_;
LA36_: ;
			if (!T33_) goto LA39_;
			(*(*cl_p0).c).fitDefaultNode.ClE_0? (*(*cl_p0).c).fitDefaultNode.ClP_0((*cl_p0).c, &(*(*result)._kind_4.sym).ast, (*(*result)._kind_4.sym).typ, (*(*cl_p0).c).fitDefaultNode.ClE_0):((TM__mrkrD9c2e31kE4GdQtpMdaQ_47)((*(*cl_p0).c).fitDefaultNode.ClP_0))((*cl_p0).c, &(*(*result)._kind_4.sym).ast, (*(*result)._kind_4.sym).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			T41_ = NIM_NIL;
			T41_ = skipIntLit__magicsys_u120((*(*(*result)._kind_4.sym).ast).typField, (*(*cl_p0).c).Sup.idgen);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T41_); goto LA17_;}
			eqsink___ast_u3387(&(*(*result)._kind_4.sym).typ, T41_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		}
LA39_: ;
		{
			NIM_BOOL T44_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T48_;
			T44_ = (NIM_BOOL)0;
			T44_ = !(((*(*result)._kind_4.sym).typ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
			if (!(T44_)) goto LA45_;
			T44_ = ((*(*(*result)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)63));
LA45_: ;
			if (!T44_) goto LA46_;
			T48_ = NIM_NIL;
			T48_ = newNodeI__ast_u4091(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)138), (*n_p1).info);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T48_); goto LA17_;}
			eqsink___ast_u3261(&result, T48_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		}
LA46_: ;
		{
			LA17_:;
		}
		{
			oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u4574(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin17_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)140):
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* branch_1;
		branch_1 = NIM_NIL;
		branch_1 = ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL);
		{
			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 LA52_;
			i_2 = ((NI)0);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* it_1;
					if (!(i_2 < colontmp_)) goto LA55;
					it_1 = NIM_NIL;
					i_1 = i_2;
					eqcopy___ast_u3255(&it_1, (*n_p1)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA56_;
					{
						if (!(it_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA59_;
						illFormedAst__semdata_u4665(n_p1, (*(*(*cl_p0).c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto LA56_;
					}
LA59_: ;
					switch ((*it_1).kind) {
					case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)86):
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* cond_1;
						cond_1 = NIM_NIL;
						checkSonsLen__semdata_u4671(it_1, ((NI)2), (*(*(*cl_p0).c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
						cond_1 = prepareNode__semtypinst_u130(cl_p0, (*it_1)._kind_6.sons.p->data[((NI)0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
						{
							NIM_BOOL T65_;
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* e_1;
							T65_ = (NIM_BOOL)0;
							T65_ = hasValuelessStatics__semtypinst_u316(cond_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
							if (!!(T65_)) goto LA66_;
							e_1 = NIM_NIL;
							e_1 = (*(*cl_p0).c).semConstExpr((*cl_p0).c, cond_1, ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
							if (NIM_UNLIKELY(*nimErr_)) goto LA68_;
							{
								if (!!(((*e_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6)))) goto LA71_;
								internalErrorImpl__msgs_u1598((*(*(*cl_p0).c).graph).config, (*e_1).info, TM__mrkrD9c2e31kE4GdQtpMdaQ_48, (&TM__mrkrD9c2e31kE4GdQtpMdaQ_49));
								if (NIM_UNLIKELY(*nimErr_)) goto LA68_;
							}
LA71_: ;
							{
								NIM_BOOL T75_;
								T75_ = (NIM_BOOL)0;
								T75_ = !(((*e_1)._kind_1.intVal == IL64(0)));
								if (!(T75_)) goto LA76_;
								T75_ = (branch_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL));
LA76_: ;
								if (!T75_) goto LA77_;
								eqcopy___ast_u3255(&branch_1, (*it_1)._kind_6.sons.p->data[((NI)1)]);
								if (NIM_UNLIKELY(*nimErr_)) goto LA68_;
							}
LA77_: ;
							{
								LA68_:;
							}
							{
								oldNimErrFin68_ = *nimErr_; *nimErr_ = NIM_FALSE;
								eqdestroy___ast_u3252(e_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
								*nimErr_ = oldNimErrFin68_;
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA62_;
						}
LA66_: ;
						{
							LA62_:;
						}
						{
							oldNimErrFin62_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(cond_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA56_;
							*nimErr_ = oldNimErrFin62_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA56_;
					}
					break;
					case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)88):
					{
						checkSonsLen__semdata_u4671(it_1, ((NI)1), (*(*(*cl_p0).c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto LA56_;
						{
							if (!(branch_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL))) goto LA86_;
							eqcopy___ast_u3255(&branch_1, (*it_1)._kind_6.sons.p->data[((NI)0)]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA56_;
						}
LA86_: ;
					}
					break;
					default:
					{
						illFormedAst__semdata_u4665(n_p1, (*(*(*cl_p0).c).graph).config);
						if (NIM_UNLIKELY(*nimErr_)) goto LA56_;
					}
					break;
					}
					i_2 += ((NI)1);
					{
						LA56_:;
					}
					{
						oldNimErrFin56_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3252(it_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
						*nimErr_ = oldNimErrFin56_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
				} LA55: ;
			}
		}
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T95_;
			if (!!((branch_1 == ((tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*) NIM_NIL)))) goto LA93_;
			T95_ = NIM_NIL;
			T95_ = replaceTypeVarsN__semtypinst_u114(cl_p0, branch_1, ((NI)0), ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T95_); goto LA52_;}
			eqsink___ast_u3261(&result, T95_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
		}
		goto LA91_;
LA93_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T97_;
			T97_ = NIM_NIL;
			T97_ = newNodeI__ast_u4091(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)138), (*n_p1).info);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T97_); goto LA52_;}
			eqsink___ast_u3261(&result, T97_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA52_;
		}
LA91_: ;
		{
			LA52_:;
		}
		{
			oldNimErrFin52_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(branch_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin52_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)62):
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_2;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T102_;
		n_2 = NIM_NIL;
		n_2 = prepareNode__semtypinst_u130(cl_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
		T102_ = NIM_NIL;
		{
			if (!(*cl_p0).allowMetaTypes) goto LA105_;
			eqsink___ast_u3261(&result, n_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
			eqwasMoved___ast_u3249(&n_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
		}
		goto LA103_;
LA105_: ;
		{
			tySet_tyEnum_TExprFlag__LJ8tOeZrTQZuHS9cNbj1XCg T108_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T109_;
			T108_ = 0;
			T109_ = NIM_NIL;
			T109_ = (*(*cl_p0).c).semExpr((*cl_p0).c, n_2, T108_, expectedType_p3);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T109_); goto LA101_;}
			eqsink___ast_u3261(&result, T109_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
		}
LA103_: ;
		{
			NIM_BOOL T112_;
			T112_ = (NIM_BOOL)0;
			T112_ = !((*cl_p0).allowMetaTypes);
			if (!(T112_)) goto LA113_;
			T112_ = !((expectedType_p3 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
LA113_: ;
			if (!T112_) goto LA114_;
		}
LA114_: ;
		{
			LA101_:;
		}
		{
			oldNimErrFin101_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(n_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin101_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		{
			NI T121_;
			NI T124_;
			T121_ = (NI)0;
			T121_ = len__ast_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI)0) < T121_)) goto LA122_;
			T124_ = (NI)0;
			T124_ = len__ast_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			newSons__ast_u6108(result, T124_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!(((NI)0) < start_p2)) goto LA127_;
				eqcopy___ast_u3255(&(*result)._kind_6.sons.p->data[((NI)0)], (*n_p1)._kind_6.sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
LA127_: ;
			{
				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 = start_p2;
				{
					while (1) {
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T132_;
						if (!(i_4 < colontmp__2)) goto LA131;
						i_3 = i_4;
						T132_ = NIM_NIL;
						T132_ = replaceTypeVarsN__semtypinst_u114(cl_p0, (*n_p1)._kind_6.sons.p->data[i_3], ((NI)0), ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL));
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3252(T132_); goto BeforeRet_;}
						eqsink___ast_u3261(&(*result)._kind_6.sons.p->data[i_3], T132_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_4 += ((NI)1);
					} LA131: ;
				}
			}
		}
LA122_: ;
	}
	break;
	}
	}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, 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_u3127(cell_1);
			}
LA17_: ;
		}
LA13_: ;
	}
LA3_: ;
	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_u3497(result, cell_1, (*((TNimTypeV2**) (p_p0))));
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___semtypinst_u1585)(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0).owner);
		if (!T3_) goto LA4_;
		eqdestroy___ast_u3469((&(*(*dest_p0).owner)));
		nimRawDispose((*dest_p0).owner, ((NI)8));
	}
LA4_: ;
	eqdestroy___layeredtable_u168((*dest_p0).localCache.data);
	eqdestroy___semdata_u748((*dest_p0).symMap.data);
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = nimDecRefIsLastDyn((*dest_p0).typeMap.nextLayer);
		if (!T8_) goto LA9_;
		eqdestroy___layeredtable_u233((&(*(*dest_p0).typeMap.nextLayer)));
		nimRawDispose((*dest_p0).typeMap.nextLayer, ((NI)8));
	}
LA9_: ;
	eqdestroy___layeredtable_u168((*dest_p0).typeMap.topLayer.data);
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = nimDecRefIsLastCyclicDyn((*dest_p0).c);
		if (!T13_) goto LA14_;
		nimDestroyAndDispose((*dest_p0).c);
	}
LA14_: ;
}
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) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A typeMap_1;
	tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ cl_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	nimZeroMem((void*)(&typeMap_1), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	nimZeroMem((void*)(&cl_1), sizeof(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ));
	shallowCopy__layeredtable_u266(pt_p1, (&typeMap_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	initTypeVars__semtypinst_u1560(p_p0, (&typeMap_1), (*n_p2).info, owner_p3, (&cl_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	cl_1.allowMetaTypes = allowMetaTypes_p4;
	pushInfoContext__msgs_u569((*(*p_p0).graph).config, (*n_p2).info, TM__mrkrD9c2e31kE4GdQtpMdaQ_3);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = replaceTypeVarsN__semtypinst_u114((&cl_1), n_p2, ((NI)0), expectedType_p6);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	popInfoContext__msgs_u593((*(*p_p0).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___semtypinst_u1585((&cl_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___layeredtable_u233((&typeMap_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, baseClass__ast_u5348)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* n_p0) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3381(&result, (*n_p0).sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
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, recomputeFieldPositions__semtypinst_u1654)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* obj_p1, NI* currPosition_p2) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_ = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* b_1;
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD__2;
		T3_ = (NIM_BOOL)0;
		T3_ = !((t_p0 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		colontmpD_ = baseClass__ast_u5348(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = !((colontmpD_ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
LA4_: ;
		if (!T3_) goto LA5_;
		b_1 = NIM_NIL;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = baseClass__ast_u5348(t_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		b_1 = skipTypes__ast_u5379(colontmpD__2, TM__mrkrD9c2e31kE4GdQtpMdaQ_52);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		recomputeFieldPositions__semtypinst_u1654(b_1, (*b_1).n, currPosition_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3378(b_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA5_: ;
	switch ((*obj_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(obj_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA10;
					i_1 = i_2;
					recomputeFieldPositions__semtypinst_u1654(((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL), (*obj_p1)._kind_6.sons.p->data[i_1], currPosition_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI)1);
				} LA10: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)139):
	{
		recomputeFieldPositions__semtypinst_u1654(((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL), (*obj_p1)._kind_6.sons.p->data[((NI)0)], currPosition_p2);
		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(obj_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI)1);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__3;
					if (!(i_4 < colontmp__2)) goto LA14;
					colontmpD__3 = NIM_NIL;
					i_3 = i_4;
					colontmpD__3 = lastSon__ast_u5208((*obj_p1)._kind_6.sons.p->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					recomputeFieldPositions__semtypinst_u1654(((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL), colontmpD__3, currPosition_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_4 += ((NI)1);
					eqdestroy___ast_u3252(colontmpD__3);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				} LA14: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		(*(*obj_p1)._kind_4.sym).position = (*currPosition_p2);
		(*currPosition_p2) += ((NI)1);
	}
	break;
	default:
	{
	}
	break;
	}
	eqdestroy___ast_u3378(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
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) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A typeMap_1;
	tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ cl_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* objType_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	nimZeroMem((void*)(&typeMap_1), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	nimZeroMem((void*)(&cl_1), sizeof(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ));
	objType_1 = NIM_NIL;
	shallowCopy__layeredtable_u266(pt_p1, (&typeMap_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	initTypeVars__semtypinst_u1560(p_p0, (&typeMap_1), info_p2, ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL), (&cl_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	pushInfoContext__msgs_u569((*(*p_p0).graph).config, info_p2, TM__mrkrD9c2e31kE4GdQtpMdaQ_50);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = replaceTypeVarsT__semtypinst_u125((&cl_1), t_p3, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	popInfoContext__msgs_u593((*(*p_p0).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	objType_1 = skipTypes__ast_u5379(result, TM__mrkrD9c2e31kE4GdQtpMdaQ_51);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NI position_1;
		if (!((*objType_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)17))) goto LA4_;
		position_1 = ((NI)0);
		recomputeFieldPositions__semtypinst_u1654(objType_1, (*objType_1).n, (&position_1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA4_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(objType_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___semtypinst_u1585((&cl_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___layeredtable_u233((&typeMap_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, prepareMetatypeForSigmatch__semtypinst_u1696)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* p_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p2, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p3) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* result;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A typeMap_1;
	tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ cl_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	nimZeroMem((void*)(&typeMap_1), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	nimZeroMem((void*)(&cl_1), sizeof(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ));
	shallowCopy__layeredtable_u266(pt_p1, (&typeMap_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	initTypeVars__semtypinst_u1560(p_p0, (&typeMap_1), info_p2, ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL), (&cl_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	cl_1.allowMetaTypes = NIM_TRUE;
	pushInfoContext__msgs_u569((*(*p_p0).graph).config, info_p2, TM__mrkrD9c2e31kE4GdQtpMdaQ_53);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = replaceTypeVarsT__semtypinst_u125((&cl_1), t_p3, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	popInfoContext__msgs_u593((*(*p_p0).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___semtypinst_u1585((&cl_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___layeredtable_u233((&typeMap_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*, prepareTypesInBody__semtypinst_u1646)(tyObject_TContext__4jZ5gUwIaqnMfIYix46Hpw* p_p0, tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A* pt_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p3) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A typeMap_1;
	tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ cl_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	nimZeroMem((void*)(&typeMap_1), sizeof(tyObject_LayeredIdTableObj__PbmRWgwPdgBZOtiSK65Q7A));
	nimZeroMem((void*)(&cl_1), sizeof(tyObject_TReplTypeVars__nNYOjqMFSTdqmL8P8nxCxQ));
	shallowCopy__layeredtable_u266(pt_p1, (&typeMap_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	initTypeVars__semtypinst_u1560(p_p0, (&typeMap_1), (*n_p2).info, owner_p3, (&cl_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	pushInfoContext__msgs_u569((*(*p_p0).graph).config, (*n_p2).info, TM__mrkrD9c2e31kE4GdQtpMdaQ_54);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = prepareNode__semtypinst_u130((&cl_1), n_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	popInfoContext__msgs_u593((*(*p_p0).graph).config);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___semtypinst_u1585((&cl_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___layeredtable_u233((&typeMap_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkConstructedType__semtypinst_u27)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ_p2) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	t_1 = NIM_NIL;
	colontmpD_ = NIM_NIL;
	t_1 = skipTypes__ast_u5379(typ_p2, TM__mrkrD9c2e31kE4GdQtpMdaQ_55);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!((TM__mrkrD9c2e31kE4GdQtpMdaQ_56[(NU)(((*t_1).kind))>>3] &(1U<<((NU)(((*t_1).kind))&7U)))!=0)) goto LA4_;
	}
	goto LA2_;
LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*t_1).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47));
		if (!(T7_)) goto LA8_;
		colontmpD_ = elementType__ast_u5331(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T7_ = ((*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)23) || (*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)47));
LA8_: ;
		if (!T7_) goto LA9_;
		liMessage__msgs_u1227(conf_p0, info_p1, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), TM__mrkrD9c2e31kE4GdQtpMdaQ_57, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__mrkrD9c2e31kE4GdQtpMdaQ_58), NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA2_;
LA9_: ;
	{
		NIM_BOOL T12_;
		NI64 T13_;
		NimStringV2 colontmpD__2;
		NimStringV2 colontmpD__3;
		NimStringV2 T18_;
		T12_ = (NIM_BOOL)0;
		T13_ = (NI64)0;
		T13_ = computeSize__types_u3393(conf_p0, t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T12_ = (T13_ == IL64(-2));
		if (T12_) goto LA14_;
		T12_ = isRecursiveStructuralType__types_u4110(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA14_: ;
		if (!T12_) goto LA15_;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
		T18_.len = 0; T18_.p = NIM_NIL;
		colontmpD__2 = typeToString__types_u54(t_1, ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0));
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		T18_ = rawNewString(colontmpD__2.len + 28);
appendString((&T18_), TM__mrkrD9c2e31kE4GdQtpMdaQ_60);
appendString((&T18_), colontmpD__2);
appendString((&T18_), TM__mrkrD9c2e31kE4GdQtpMdaQ_61);
		colontmpD__3 = T18_;
		liMessage__msgs_u1227(conf_p0, info_p1, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__3, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), (&TM__mrkrD9c2e31kE4GdQtpMdaQ_62), NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
		{
			LA17_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__3);
			eqdestroy___system_u2691(colontmpD__2);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA2_;
LA15_: ;
LA2_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(colontmpD_);
		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_: ;
}
