/* Generated by Nim Compiler v1.6.14 */
#define NIM_INTBITS 64
#define NIM_EmulateOverflowChecks

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg;
typedef struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw;
typedef struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw tySequence__IeU9azYSNIK3V9b36Ir6NZcw;
typedef struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA;
typedef struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw tyObject_TSym__3r34mwqcVmg5JFNmiaVncw;
typedef struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg;
typedef struct tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg;
typedef struct tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw;
typedef struct tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ;
typedef struct tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg;
typedef struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g;
typedef struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA tyObject_CellSeq__nav876ELHgxScHhs30CKiA;
typedef struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ;
typedef struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ;
typedef struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ;
typedef struct tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw;
typedef struct tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA;
typedef struct tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA;
typedef struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A;
typedef struct tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg;
typedef struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw;
typedef struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw;
typedef struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA;
typedef struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg;
typedef struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA;
typedef struct tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ;
typedef struct tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ;
typedef struct tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ;
typedef struct tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg;
typedef struct tySequence__vKogasEnJSPhbQmA8r4Y9aA tySequence__vKogasEnJSPhbQmA8r4Y9aA;
typedef struct tySequence__RNhZxf20g9beyq5VBOGxhDg tySequence__RNhZxf20g9beyq5VBOGxhDg;
typedef struct tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ;
typedef struct tySequence__lFbCtu5P2Kf7YDYtGjkxAQ tySequence__lFbCtu5P2Kf7YDYtGjkxAQ;
typedef struct tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA;
typedef struct tySequence__ijtae5OneaLys0hN9alAicA tySequence__ijtae5OneaLys0hN9alAicA;
typedef struct tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w;
typedef struct tySequence__SerjNoUujW2dUouVBrJiCw tySequence__SerjNoUujW2dUouVBrJiCw;
typedef struct tyObject_Table__r0v8BdcBPKhl73K8p2VMUA tyObject_Table__r0v8BdcBPKhl73K8p2VMUA;
typedef struct tySequence__K9agbtcb0qPZuSJFXB9cTe6g tySequence__K9agbtcb0qPZuSJFXB9cTe6g;
typedef struct tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg;
typedef struct tySequence__m88qdML9cQOuqGAQn6XWL1A tySequence__m88qdML9cQOuqGAQn6XWL1A;
typedef struct tyObject_Table__1hIWbTQWYT4BmhdESze57A tyObject_Table__1hIWbTQWYT4BmhdESze57A;
typedef struct tySequence__naEbXEp9b9aiW1zXJorqf9cXQ tySequence__naEbXEp9b9aiW1zXJorqf9cXQ;
typedef struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw tyObject_Table__9cHFtxtpgztIcDsypRz9byKw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA;
typedef struct tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw;
typedef struct tySequence__ed0C0uAUZPhvw3RAc5hfYg tySequence__ed0C0uAUZPhvw3RAc5hfYg;
typedef struct tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw;
typedef struct tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg;
typedef struct tySequence__q9cq1Li6c1nMjHpacEbCj0g tySequence__q9cq1Li6c1nMjHpacEbCj0g;
typedef struct tyObject_Table__imojfg883tkWsWJwyshGqQ tyObject_Table__imojfg883tkWsWJwyshGqQ;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table__BCPh85PHtwxox9bv7NLFrlg tyObject_Table__BCPh85PHtwxox9bv7NLFrlg;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ;
typedef struct tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA;
typedef struct tySequence__KgiZ29chkJAD01p9aLRB32qw tySequence__KgiZ29chkJAD01p9aLRB32qw;
typedef struct tyObject_Table__LM44poVdVEn4Mo4N4L8c3A tyObject_Table__LM44poVdVEn4Mo4N4L8c3A;
typedef struct tySequence__rkYRZrbHVYL3nhXlQW3K9bw tySequence__rkYRZrbHVYL3nhXlQW3K9bw;
typedef struct tySequence__IRFEb1e9bxgbJLuB5xrdZsQ tySequence__IRFEb1e9bxgbJLuB5xrdZsQ;
typedef struct tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ;
typedef struct tySequence__YmPd0eWfcTfrVYrthlXPYA tySequence__YmPd0eWfcTfrVYrthlXPYA;
typedef struct tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q;
typedef struct tySequence__Hz5SYwQU29b9aFLt09blvVQPg tySequence__Hz5SYwQU29b9aFLt09blvVQPg;
typedef struct tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table__R7JnJQEipxxOlJWXQz7jWg tyObject_Table__R7JnJQEipxxOlJWXQz7jWg;
typedef struct tySequence__3G9aA9cLXaPxuRxMKm3anacQ tySequence__3G9aA9cLXaPxuRxMKm3anacQ;
typedef struct tySequence__bPFv6ypvvCX2A9a9al8utL2Q tySequence__bPFv6ypvvCX2A9a9al8utL2Q;
typedef struct tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg;
typedef struct tySequence__UM9auNDRkDG41rKPehyYnig tySequence__UM9auNDRkDG41rKPehyYnig;
typedef struct tyTuple__Q066krdfdsSnR5DaFMOk9bQ tyTuple__Q066krdfdsSnR5DaFMOk9bQ;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ;
typedef struct tySequence__qeAsXh2i1GAL5Nl0g3OP8g tySequence__qeAsXh2i1GAL5Nl0g3OP8g;
typedef struct tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg;
typedef struct tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag;
typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg;
typedef struct tySequence__4Murtwnm0Fyc7F9acrytEXw tySequence__4Murtwnm0Fyc7F9acrytEXw;
typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
typedef struct tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw;
typedef struct tySequence__QnmOtn1Iv4LvxOXoMn8Rbg tySequence__QnmOtn1Iv4LvxOXoMn8Rbg;
typedef struct tySequence__oKtVqsc9bQVCNyrijELM4OQ tySequence__oKtVqsc9bQVCNyrijELM4OQ;
typedef struct tySequence__qy6Iwdy00wN560qud54HTg tySequence__qy6Iwdy00wN560qud54HTg;
typedef struct tySequence__k67v9bwvvQDmS1ynyGGUbeQ tySequence__k67v9bwvvQDmS1ynyGGUbeQ;
typedef struct tySequence__cLsClAAfd0MKkoBQVyvdvw tySequence__cLsClAAfd0MKkoBQVyvdvw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__q9bTuOB0JXh1iZ3CSGdRLbg tySequence__q9bTuOB0JXh1iZ3CSGdRLbg;
typedef struct tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw;
typedef struct tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ;
typedef struct tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
typedef struct tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ;
typedef struct tySequence__C3r8jsj9chA4sIlYfDN5aDw tySequence__C3r8jsj9chA4sIlYfDN5aDw;
typedef struct tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ;
typedef struct tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
typedef struct tyTuple__UluY8x0Nj6cp9b0o88wJ0lg tyTuple__UluY8x0Nj6cp9b0o88wJ0lg;
typedef struct tySequence__dlD6tEGzYLLpKVq3XwuFlA tySequence__dlD6tEGzYLLpKVq3XwuFlA;
typedef struct tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ;
typedef struct tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg;
typedef struct tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ;
typedef struct tyTuple__rZZA0skon1OsHdiEvT8RZQ tyTuple__rZZA0skon1OsHdiEvT8RZQ;
typedef struct tySequence__6OFCSvqRaxyEgUqWtnZSlw tySequence__6OFCSvqRaxyEgUqWtnZSlw;
typedef struct tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q;
typedef struct tySequence__UnGSk9aaLosDroi2QDrlOfQ tySequence__UnGSk9aaLosDroi2QDrlOfQ;
typedef struct tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA;
typedef struct tyTuple__q13Zt16VkCqu6Zg5jWqwHA tyTuple__q13Zt16VkCqu6Zg5jWqwHA;
typedef struct tyTuple__aWN9bNzF9bubXNJV9ciomgpfA tyTuple__aWN9bNzF9bubXNJV9ciomgpfA;
typedef struct tySequence__m4PVWjcAAjfxlwJxLkKn8A tySequence__m4PVWjcAAjfxlwJxLkKn8A;
typedef struct tyTuple__RWXAsQlFoGYyEQZp1G65sg tyTuple__RWXAsQlFoGYyEQZp1G65sg;
typedef struct tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg;
typedef struct tyTuple__RmGJuqOgEaHckHndh0LEsw tyTuple__RmGJuqOgEaHckHndh0LEsw;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__J4cxakKjhKxTIJR9bojMmXw tyTuple__J4cxakKjhKxTIJR9bojMmXw;
typedef struct tySequence__i89c5kdtWKzK3OEiI81pkkw tySequence__i89c5kdtWKzK3OEiI81pkkw;
typedef struct tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A;
typedef struct tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ;
typedef struct tySequence__GR8qmV1kNRcoQ2g76VFy3A tySequence__GR8qmV1kNRcoQ2g76VFy3A;
typedef struct tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg;
typedef struct tyTuple__a7QginWFapakKbWJBJ2vfA tyTuple__a7QginWFapakKbWJBJ2vfA;
typedef struct tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyTuple__kbX6x85REySUrk9auORL0vw tyTuple__kbX6x85REySUrk9auORL0vw;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g;
typedef struct tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q;
typedef struct tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A;
typedef struct tyTuple__nF9cH4hinXgGEUwO4G2bshw tyTuple__nF9cH4hinXgGEUwO4G2bshw;
typedef struct tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw;
typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
typedef struct tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA;
typedef struct tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA;
typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
typedef struct tyTuple__PsEhl3dzznmmJiLAuIXZOg tyTuple__PsEhl3dzznmmJiLAuIXZOg;
typedef struct tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w;
typedef struct tyTuple__Db8CrQifKGIsKc3w71w7Lw tyTuple__Db8CrQifKGIsKc3w71w7Lw;
typedef struct tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg;
typedef struct tySequence__lo3S1lKyiPLhGGB9cBawd6A tySequence__lo3S1lKyiPLhGGB9cBawd6A;
typedef struct tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ;
typedef struct tyTuple__FEYH9alRJhHD0uTKF2vnIqw tyTuple__FEYH9alRJhHD0uTKF2vnIqw;
typedef struct tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA;
typedef struct tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA;
typedef struct tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw;
typedef struct tyTuple__VUJ5Hjm4tKAResBsRHJvYg tyTuple__VUJ5Hjm4tKAResBsRHJvYg;
typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg;
typedef NU8 tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw {
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg flags;
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
} _kind_4;
struct {tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
} _kind_5;
struct {tySequence__IeU9azYSNIK3V9b36Ir6NZcw* sons;
} _kind_6;
};
};
typedef NU8 tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ kind;
tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg {
NI32 module;
NI32 item;
};
struct tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA {
  RootObj Sup;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg itemId;
};
typedef NU8 tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw;
typedef NU16 tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag;
typedef NU64 tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA;
typedef NU32 tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ;
typedef NU8 tyEnum_TLocKind__pD6N6rEUmrrqJbKE02Sezw;
typedef NU8 tyEnum_TStorageLoc__JIS9cieRcL9cZccyO9bM9aBmFQ;
typedef NU16 tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw;
struct tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw {
tyEnum_TLocKind__pD6N6rEUmrrqJbKE02Sezw k;
tyEnum_TStorageLoc__JIS9cieRcL9cZccyO9bM9aBmFQ storage;
tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw flags;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* lode;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* r;
};
struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw {
  tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA Sup;
tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind;
union{
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* gcUnsafetyReason;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* transformedBody;
} _kind_1;
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* guard;
NI bitsize;
NI alignment;
} _kind_2;
};
tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag magic;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* name;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA flags;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ast;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
NI position;
NI offset;
tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw loc;
tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg* annex;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* constraint;
};
typedef NU8 tySet_tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag[35];
struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg {
NI id;
NimStringDesc* s;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* next;
NI h;
};
struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ {
void* bottom;
};
struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA {
NI len;
NI cap;
tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
};
typedef tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* tyArray__1eFxjkcKGHnofywkmCV8oQ[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* tyArray__KxTmKT9a3kTkdwYfqXhEYSw[32];
typedef tyArray__KxTmKT9a3kTkdwYfqXhEYSw tyArray__ATT5LBefmjy9bg8ApRmg3rw[24];
typedef tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* tyArray__RxhBwkGQwTHLKhoK685Xfg[256];
struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A {
tyArray__RxhBwkGQwTHLKhoK685Xfg data;
};
typedef tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* tyArray__DrxDrI9bg9apB70ydOoNZrWw[2];
struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw {
tyArray__DrxDrI9bg9apB70ydOoNZrWw link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA {
tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* Field0;
NI Field1;
};
typedef tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyArray__wsokuoa9bVBSU4gPLKbFaaw[30];
struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw {
NI len;
tyArray__wsokuoa9bVBSU4gPLKbFaaw chunks;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw* next;
};
struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ {
NI minLargeObj;
NI maxLargeObj;
tyArray__1eFxjkcKGHnofywkmCV8oQ freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__ATT5LBefmjy9bg8ApRmg3rw matrix;
tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A chunkStarts;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* root;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* deleted;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* last;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw bottomData;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw heapLinks;
};
struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA {
NI counter;
NI max;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* head;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ** data;
};
struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ {
tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA zct;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA decStack;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA tempStack;
NI recGcLock;
tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ region;
tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg stat;
tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA marked;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA additionalRoots;
NI gcThreadId;
};
struct tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg {
tySequence__IeU9azYSNIK3V9b36Ir6NZcw* s;
tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g;
NIM_BOOL beSmart;
};
typedef NU8 tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg;
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
struct tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ {
tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
};
struct tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opNot;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opContains;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opLe;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opLt;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opAnd;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opOr;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opIsNil;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opEq;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opAdd;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opSub;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opMul;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opDiv;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opLen;
};
typedef NU8 tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg[9];
typedef NU8 tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg;
typedef NU8 tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg;
typedef NU64 tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw;
struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA {
  tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA Sup;
tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind;
tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg callConv;
tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw flags;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* sons;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw loc;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typeInst;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg uniqueId;
};
struct tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA {
tySequence__ijtae5OneaLys0hN9alAicA* data;
NI counter;
};
struct tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w {
tySequence__SerjNoUujW2dUouVBrJiCw* data;
NI counter;
};
struct tyObject_Table__r0v8BdcBPKhl73K8p2VMUA {
tySequence__K9agbtcb0qPZuSJFXB9cTe6g* data;
NI counter;
};
typedef tyObject_Table__r0v8BdcBPKhl73K8p2VMUA tyArray__46hjIasL27aUz9c7kgtWooQ[5];
struct tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg {
tySequence__m88qdML9cQOuqGAQn6XWL1A* data;
NI counter;
};
struct tyObject_Table__1hIWbTQWYT4BmhdESze57A {
tySequence__naEbXEp9b9aiW1zXJorqf9cXQ* data;
NI counter;
};
struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
typedef NU8 tyEnum_TBackend__zoooocqvga73vZuhGAAy6A;
typedef NU8 tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w;
typedef NU8 tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ;
typedef NU64 tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg;
struct tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA {
tyEnum_TBackend__zoooocqvga73vZuhGAAy6A backend;
tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w selectedGC;
tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ cCompiler;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg globalOptions;
};
struct tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw {
NI counter;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* data;
};
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw {
NI elems;
NI counter;
NI max;
tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* head;
tySequence__q9cq1Li6c1nMjHpacEbCj0g* data;
tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyObject_Table__imojfg883tkWsWJwyshGqQ {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyObject_Table__BCPh85PHtwxox9bv7NLFrlg {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
struct tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA {
tySequence__KgiZ29chkJAD01p9aLRB32qw* data;
NI counter;
};
struct tyObject_Table__LM44poVdVEn4Mo4N4L8c3A {
tySequence__rkYRZrbHVYL3nhXlQW3K9bw* data;
NI counter;
};
typedef tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tyArray__9atk2qEPO7ASGmt9cDlOE9b9cg[65];
struct tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ {
tySequence__YmPd0eWfcTfrVYrthlXPYA* data;
NI counter;
};
struct tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, tyProc__I6rzVhdiYtUh7jwWJQoeyw) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__EQOAUyRkp9c3eeiGlHvCThA) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, NI32 fileIdx);
struct tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q {
tySequence__Hz5SYwQU29b9aFLt09blvVQPg* data;
NI counter;
};
struct tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyObject_Table__R7JnJQEipxxOlJWXQz7jWg {
tySequence__3G9aA9cLXaPxuRxMKm3anacQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(void, tyProc__1CO5eEh25fBKUWGagpikwg) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
typedef N_NIMCALL_PTR(void, tyProc__VcUg5jOhttLagdxUmVN8Tg) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__XOkru1xuh2bHzmkw1UYzLA) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* actual);
struct tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg {
tySequence__RNhZxf20g9beyq5VBOGxhDg* ifaces;
tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ* packed_0;
tySequence__lFbCtu5P2Kf7YDYtGjkxAQ* encoders;
tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA typeInstCache;
tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w procInstCache;
tyArray__46hjIasL27aUz9c7kgtWooQ attachedOps;
tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg methodsPerType;
tyObject_Table__1hIWbTQWYT4BmhdESze57A enumToStringProcs;
tyObject_Table__9cHFtxtpgztIcDsypRz9byKw emittedTypeInfo;
tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA startupPackedConfig;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw packageSyms;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw deps;
tyObject_Table__imojfg883tkWsWJwyshGqQ importDeps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table__BCPh85PHtwxox9bv7NLFrlg inclToMod;
tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache;
RootObj* vm;
tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* usageSym;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* owners;
tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA suggestSymbols;
tyObject_Table__LM44poVdVEn4Mo4N4L8c3A suggestErrors;
tySequence__IRFEb1e9bxgbJLuB5xrdZsQ* methods;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* systemModule;
tyArray__9atk2qEPO7ASGmt9cDlOE9b9cg sysTypes;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw compilerprocs;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw exposed;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw packageTypes;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* emptyNode;
tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ canonTypes;
tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw symBodyHashes;
tyProc__I6rzVhdiYtUh7jwWJQoeyw importModuleCallback;
tyProc__EQOAUyRkp9c3eeiGlHvCThA includeFileCallback;
tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q cacheSeqs;
tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g cacheCounters;
tyObject_Table__R7JnJQEipxxOlJWXQz7jWg cacheTables;
tySequence__bPFv6ypvvCX2A9a9al8utL2Q* passes;
tyProc__1CO5eEh25fBKUWGagpikwg onDefinition;
tyProc__1CO5eEh25fBKUWGagpikwg onDefinitionResolveForward;
tyProc__1CO5eEh25fBKUWGagpikwg onUsage;
tySequence__IeU9azYSNIK3V9b36Ir6NZcw* globalDestructors;
tyProc__VcUg5jOhttLagdxUmVN8Tg strongSemCheck;
tyProc__XOkru1xuh2bHzmkw1UYzLA compatibleProps;
tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen;
tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg operators;
};
struct tyTuple__Q066krdfdsSnR5DaFMOk9bQ {
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field0;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field1;
};
typedef NU8 tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw;
struct TNimNode {
tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ;
typedef NU8 tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef NU16 tySet_tyEnum_TRenderFlag__ppo9aY4M5jqJlCPC7ZH9bmwA;
struct tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module;
tySequence__qeAsXh2i1GAL5Nl0g3OP8g* converters;
tySequence__qeAsXh2i1GAL5Nl0g3OP8g* patterns;
tySequence__qeAsXh2i1GAL5Nl0g3OP8g* pureEnums;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw interf;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw interfHidden;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* uniqueName;
};
typedef NU8 tyEnum_ModuleStatus__K6X1Kd9cJ9a0hyG1Twv69bMNg;
struct tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg {
tySequence__4Murtwnm0Fyc7F9acrytEXw* nodes;
};
typedef NU8 tySet_tyEnum_ModuleBackendFlag__1OX8mHZmOJcGSH2EQV6eCQ;
struct tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ {
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw {
tySequence__IHUFRsFxZNv7YydiUO2esQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag {
NimStringDesc* definedSymbols;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA moduleFlags;
tySequence__PXIzfWocnrafGz5p3CP5LA* includes;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* imports;
tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg toReplay;
tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg topLevel;
tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg bodies;
tySequence__b89aLriiJnVTD186H6zNIgg* exports;
tySequence__b89aLriiJnVTD186H6zNIgg* hidden;
tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw* reexports;
tySequence__b89aLriiJnVTD186H6zNIgg* compilerProcs;
tySequence__48JTohSgTy339bRxHzUD8KA* converters;
tySequence__48JTohSgTy339bRxHzUD8KA* methods;
tySequence__48JTohSgTy339bRxHzUD8KA* trmacros;
tySequence__48JTohSgTy339bRxHzUD8KA* pureEnums;
tySequence__QnmOtn1Iv4LvxOXoMn8Rbg* macroUsages;
tySequence__oKtVqsc9bQVCNyrijELM4OQ* typeInstCache;
tySequence__qy6Iwdy00wN560qud54HTg* procInstCache;
tySequence__k67v9bwvvQDmS1ynyGGUbeQ* attachedOps;
tySequence__cLsClAAfd0MKkoBQVyvdvw* methodsPerType;
tySequence__oKtVqsc9bQVCNyrijELM4OQ* enumToStringProcs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* emittedTypeInfo;
tySet_tyEnum_ModuleBackendFlag__1OX8mHZmOJcGSH2EQV6eCQ backendFlags;
tySequence__q9bTuOB0JXh1iZ3CSGdRLbg* syms;
tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw* types;
tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ strings;
tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw numbers;
tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA cfg;
};
struct tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ {
tySequence__C3r8jsj9chA4sIlYfDN5aDw* data;
NI counter;
};
struct tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg {
tyEnum_ModuleStatus__K6X1Kd9cJ9a0hyG1Twv69bMNg status;
NIM_BOOL symsInit;
NIM_BOOL typesInit;
NIM_BOOL loadedButAliveSetChanged;
tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag fromDisk;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* syms;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* types;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module;
tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ iface;
tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ ifaceHidden;
};
struct tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ {
tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* data;
NI counter;
};
struct tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ {
NI32 thisModule;
NI32 lastFile;
NU32 lastLit;
tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ filenames;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* pendingTypes;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* pendingSyms;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw typeMarker;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw symMarker;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
};
struct tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ {
NU32 module;
NI32 item;
};
struct tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg {
NI module;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ packed_0;
};
struct tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ {
tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg id;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
};
struct tyTuple__UluY8x0Nj6cp9b0o88wJ0lg {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__dlD6tEGzYLLpKVq3XwuFlA* Field2;
};
struct tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q {
NI module;
tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg sym;
tySequence__UnGSk9aaLosDroi2QDrlOfQ* concreteTypes;
tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA* inst;
};
struct tyTuple__rZZA0skon1OsHdiEvT8RZQ {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__6OFCSvqRaxyEgUqWtnZSlw* Field2;
};
struct tyTuple__q13Zt16VkCqu6Zg5jWqwHA {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field2;
};
struct tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg {
tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg id;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
};
struct tyTuple__RWXAsQlFoGYyEQZp1G65sg {
NI Field0;
tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg Field1;
};
struct tyTuple__aWN9bNzF9bubXNJV9ciomgpfA {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__m4PVWjcAAjfxlwJxLkKn8A* Field2;
};
struct tyTuple__RmGJuqOgEaHckHndh0LEsw {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg Field2;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
};
struct tyTuple__J4cxakKjhKxTIJR9bojMmXw {
NI Field0;
NI32 Field1;
tySequence__i89c5kdtWKzK3OEiI81pkkw* Field2;
};
struct tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ {
NI Field0;
NI32 Field1;
tySequence__GR8qmV1kNRcoQ2g76VFy3A* Field2;
};
struct tyTuple__a7QginWFapakKbWJBJ2vfA {
tySequence__ed0C0uAUZPhvw3RAc5hfYg* Field0;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field1;
};
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* Field2;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyTuple__kbX6x85REySUrk9auORL0vw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field2;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q {
tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A* root;
NI entries;
};
struct tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q Field2;
};
typedef N_NIMCALL_PTR(tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw*, tyProc__kqPx9c4py2HW6KcFMhNvxtg) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__9c6qRjwy7Es8UkDTIUwAfFA) (tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* topLevelStmt);
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__mv4BsRs5VEnhcxzV6pQU5w) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
struct tyTuple__nF9cH4hinXgGEUwO4G2bshw {
tyProc__kqPx9c4py2HW6KcFMhNvxtg Field0;
tyProc__9c6qRjwy7Es8UkDTIUwAfFA Field1;
tyProc__mv4BsRs5VEnhcxzV6pQU5w Field2;
NIM_BOOL Field3;
};
struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
NU32 Field0;
NimStringDesc* Field1;
};
struct tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA {
NU16 line;
NI16 col;
NU32 file;
};
struct tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA {
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind;
tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg flags;
NI32 operand;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typeId_0;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA info;
};
struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
NU32 Field0;
NI32 Field1;
};
struct tyTuple__PsEhl3dzznmmJiLAuIXZOg {
NU32 Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
};
struct tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA Field1;
};
struct tyTuple__Db8CrQifKGIsKc3w71w7Lw {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
};
struct tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ key;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ sym;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* concreteTypes;
};
typedef NU8 tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ;
struct tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ {
tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field2;
};
struct tyTuple__FEYH9alRJhHD0uTKF2vnIqw {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
NI Field1;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field2;
};
typedef NU8 tyEnum_TLibKind__tW9cjoYNrpn2JX4q6fqRnxQ;
struct tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA {
tyEnum_TLibKind__tW9cjoYNrpn2JX4q6fqRnxQ kind;
NIM_BOOL generated;
NIM_BOOL isOverriden;
NU32 name;
NI32 path;
};
struct tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA {
tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind;
NU32 name;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typ;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA flags;
tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag magic;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA info;
NI32 ast;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ owner;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ guard;
NI bitsize;
NI alignment;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
NI position;
NI offset;
NU32 externalName;
tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw locFlags;
tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA annex;
NI32 constraint;
};
struct tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw {
tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind;
tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg callConv;
tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw flags;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* types;
NI32 n;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ sym;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ owner;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typeInst;
NI32 nonUniqueId;
};
struct tyTuple__VUJ5Hjm4tKAResBsRHJvYg {
NI Field0;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* Field1;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* Field2;
};
struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
NI Field0;
NI32 Field1;
NU32 Field2;
};
struct tySequence__UM9auNDRkDG41rKPehyYnig {
  TGenericSeq Sup;
  tyTuple__Q066krdfdsSnR5DaFMOk9bQ data[SEQ_DECL_SIZE];
};
struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw {
  TGenericSeq Sup;
  tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* data[SEQ_DECL_SIZE];
};
struct tySequence__vKogasEnJSPhbQmA8r4Y9aA {
  TGenericSeq Sup;
  tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* data[SEQ_DECL_SIZE];
};
struct tySequence__RNhZxf20g9beyq5VBOGxhDg {
  TGenericSeq Sup;
  tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ data[SEQ_DECL_SIZE];
};
struct tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ {
  TGenericSeq Sup;
  tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg data[SEQ_DECL_SIZE];
};
struct tySequence__lFbCtu5P2Kf7YDYtGjkxAQ {
  TGenericSeq Sup;
  tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ data[SEQ_DECL_SIZE];
};
struct tySequence__dlD6tEGzYLLpKVq3XwuFlA {
  TGenericSeq Sup;
  tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ data[SEQ_DECL_SIZE];
};
struct tySequence__ijtae5OneaLys0hN9alAicA {
  TGenericSeq Sup;
  tyTuple__UluY8x0Nj6cp9b0o88wJ0lg data[SEQ_DECL_SIZE];
};
struct tySequence__6OFCSvqRaxyEgUqWtnZSlw {
  TGenericSeq Sup;
  tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q data[SEQ_DECL_SIZE];
};
struct tySequence__SerjNoUujW2dUouVBrJiCw {
  TGenericSeq Sup;
  tyTuple__rZZA0skon1OsHdiEvT8RZQ data[SEQ_DECL_SIZE];
};
struct tySequence__K9agbtcb0qPZuSJFXB9cTe6g {
  TGenericSeq Sup;
  tyTuple__q13Zt16VkCqu6Zg5jWqwHA data[SEQ_DECL_SIZE];
};
struct tySequence__m4PVWjcAAjfxlwJxLkKn8A {
  TGenericSeq Sup;
  tyTuple__RWXAsQlFoGYyEQZp1G65sg data[SEQ_DECL_SIZE];
};
struct tySequence__m88qdML9cQOuqGAQn6XWL1A {
  TGenericSeq Sup;
  tyTuple__aWN9bNzF9bubXNJV9ciomgpfA data[SEQ_DECL_SIZE];
};
struct tySequence__naEbXEp9b9aiW1zXJorqf9cXQ {
  TGenericSeq Sup;
  tyTuple__RmGJuqOgEaHckHndh0LEsw data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__ed0C0uAUZPhvw3RAc5hfYg {
  TGenericSeq Sup;
  tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* data[SEQ_DECL_SIZE];
};
struct tySequence__q9cq1Li6c1nMjHpacEbCj0g {
  TGenericSeq Sup;
  tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* data[SEQ_DECL_SIZE];
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
  TGenericSeq Sup;
  tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence__i89c5kdtWKzK3OEiI81pkkw {
  TGenericSeq Sup;
  tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A data[SEQ_DECL_SIZE];
};
struct tySequence__KgiZ29chkJAD01p9aLRB32qw {
  TGenericSeq Sup;
  tyTuple__J4cxakKjhKxTIJR9bojMmXw data[SEQ_DECL_SIZE];
};
struct tySequence__GR8qmV1kNRcoQ2g76VFy3A {
  TGenericSeq Sup;
  tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg* data[SEQ_DECL_SIZE];
};
struct tySequence__rkYRZrbHVYL3nhXlQW3K9bw {
  TGenericSeq Sup;
  tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ data[SEQ_DECL_SIZE];
};
struct tySequence__IRFEb1e9bxgbJLuB5xrdZsQ {
  TGenericSeq Sup;
  tyTuple__a7QginWFapakKbWJBJ2vfA data[SEQ_DECL_SIZE];
};
struct tySequence__YmPd0eWfcTfrVYrthlXPYA {
  TGenericSeq Sup;
  tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__Hz5SYwQU29b9aFLt09blvVQPg {
  TGenericSeq Sup;
  tyTuple__kbX6x85REySUrk9auORL0vw data[SEQ_DECL_SIZE];
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence__3G9aA9cLXaPxuRxMKm3anacQ {
  TGenericSeq Sup;
  tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g data[SEQ_DECL_SIZE];
};
struct tySequence__bPFv6ypvvCX2A9a9al8utL2Q {
  TGenericSeq Sup;
  tyTuple__nF9cH4hinXgGEUwO4G2bshw data[SEQ_DECL_SIZE];
};
struct tySequence__qeAsXh2i1GAL5Nl0g3OP8g {
  TGenericSeq Sup;
  tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg data[SEQ_DECL_SIZE];
};
struct tySequence__PXIzfWocnrafGz5p3CP5LA {
  TGenericSeq Sup;
  tyTuple__0q9cmhneJEKnQERTpXXdz6Q data[SEQ_DECL_SIZE];
};
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct tySequence__4Murtwnm0Fyc7F9acrytEXw {
  TGenericSeq Sup;
  tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA data[SEQ_DECL_SIZE];
};
struct tySequence__b89aLriiJnVTD186H6zNIgg {
  TGenericSeq Sup;
  tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE];
};
struct tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw {
  TGenericSeq Sup;
  tyTuple__PsEhl3dzznmmJiLAuIXZOg data[SEQ_DECL_SIZE];
};
struct tySequence__QnmOtn1Iv4LvxOXoMn8Rbg {
  TGenericSeq Sup;
  tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w data[SEQ_DECL_SIZE];
};
struct tySequence__oKtVqsc9bQVCNyrijELM4OQ {
  TGenericSeq Sup;
  tyTuple__Db8CrQifKGIsKc3w71w7Lw data[SEQ_DECL_SIZE];
};
struct tySequence__qy6Iwdy00wN560qud54HTg {
  TGenericSeq Sup;
  tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg data[SEQ_DECL_SIZE];
};
struct tySequence__k67v9bwvvQDmS1ynyGGUbeQ {
  TGenericSeq Sup;
  tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ data[SEQ_DECL_SIZE];
};
struct tySequence__cLsClAAfd0MKkoBQVyvdvw {
  TGenericSeq Sup;
  tyTuple__FEYH9alRJhHD0uTKF2vnIqw data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__q9bTuOB0JXh1iZ3CSGdRLbg {
  TGenericSeq Sup;
  tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA data[SEQ_DECL_SIZE];
};
struct tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw {
  TGenericSeq Sup;
  tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw data[SEQ_DECL_SIZE];
};
struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
  TGenericSeq Sup;
  NI64 data[SEQ_DECL_SIZE];
};
struct tySequence__lo3S1lKyiPLhGGB9cBawd6A {
  TGenericSeq Sup;
  tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ data[SEQ_DECL_SIZE];
};
struct tySequence__C3r8jsj9chA4sIlYfDN5aDw {
  TGenericSeq Sup;
  tyTuple__VUJ5Hjm4tKAResBsRHJvYg data[SEQ_DECL_SIZE];
};
struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ {
  TGenericSeq Sup;
  tyTuple__UvldbCB6B9ayi9bGYW7vJNLA data[SEQ_DECL_SIZE];
};
struct tySequence__UnGSk9aaLosDroi2QDrlOfQ {
  TGenericSeq Sup;
  tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, invalidateFacts__guards_745)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasSubTree__guards_732)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTree__guards_680)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameOpr__guards_640)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* a, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* b);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
static N_INLINE(NI, len__ast_3155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5340)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5302)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5347)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5345)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5296)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, doesImply__guards_1022)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg facts, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* prop);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, factImplies__guards_993)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* prop);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag, getMagic__trees_137)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* op);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, tilde___guards_990)(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg x);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, impliesIsNil__guards_902)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* eq);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, valueIsNil__guards_891)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipConv__types_3661)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, impliesEq__guards_767)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* eq);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLocation__guards_53)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isValue__guards_46)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, valuesUnequal__guards_763)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameValue__astalgo_119)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inSet__nimsets_7)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* elem);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, impliesLe__guards_948)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, leValue__astalgo_135)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, impliesGe__guards_918)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, pred__guards_325)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyNode__ast_4324)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, impliesLt__guards_975)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, impliesIn__guards_864)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* loc, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* aSet);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, compareSets__guards_857)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalSets__nimsets_216)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, intersectSets__nimsets_195)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, leImpliesIn__guards_795)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* aSet);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIntNode__ast_3715)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, firstOrd__types_1406)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, geImpliesIn__guards_824)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* aSet);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIntNode__ast_3711)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, lastOrd__types_1532)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_417)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, minus___int495056_637)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, getInt__ast_4593)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, toInt128__types_1431)(NI arg);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_945)(NI64 a, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, neg__guards_126)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, swapArgs__guards_117)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* newOp);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeI__ast_3324)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NI children);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newSymNode__ast_3704)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, skipTypes__ast_3723)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeIT__ast_3342)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
static N_INLINE(NI, safeLen__ast_3148)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_4798)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildCall__guards_185)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* op, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, canon__guards_345)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, shallowCopy__ast_4414)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, astdef__ast_3462)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyTree__ast_4432)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildCall__guards_191)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* op, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, minusOne__guards_259)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, negate__guards_231)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* res, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o);
N_LIB_PRIVATE N_NIMCALL(NI64, barplusbar___saturate_1)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, reassociation__guards_290)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, barplusbar___guards_199)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, barstarbar___guards_215)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(NI64, barstarbar___saturate_52)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, zero__guards_255)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLetLocation__guards_94)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* m, NIM_BOOL isApprox);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConstExpr__trees_146)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLet__guards_56)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isVar__guards_75)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, barminusbar___guards_207)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(NI64, barminusbar___saturate_13)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, ple__guards_1104)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__types_299)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, NIM_BOOL allowEnumWithHoles);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_938)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, one__guards_257)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, bardivbar___guards_223)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMinusOne__guards_1093)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, pleViaModel__guards_1100)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg model, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* aa, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* bb);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tySequence__UM9auNDRkDG41rKPehyYnig)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, applyReplacements__guards_1437)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySequence__UM9auNDRkDG41rKPehyYnig* rep);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, replaceSubTree__guards_1425)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* by);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, pleViaModelRec__guards_1479)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildProperFieldCheck__guards_1783)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* access, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* check, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1128)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg, tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__renderer_46)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TRenderFlag__ppo9aY4M5jqJlCPC7ZH9bmwA renderFlags);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildOf__guards_1660)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* loc, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, settype__guards_1656)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newType__ast_3884)(tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg id, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__magicsys_136)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* father, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* son, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* id);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildElse__guards_1682)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, usefulFact__guards_499)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, lastSon__ast_4833)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, addFact__guards_609)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nn);
N_LIB_PRIVATE N_NIMCALL(void, addFactLe__guards_1643)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
static NIM_CONST tySet_tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag TM__lf9coCS0CxBb8QizHhZZpAA_2 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x42, 0x92, 0x18, 0x00, 0x00, 0x90, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00}
;
static NIM_CONST tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ TM__lf9coCS0CxBb8QizHhZZpAA_3 = {((NI) 1),
((NI) 2)}
;
static NIM_CONST tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ TM__lf9coCS0CxBb8QizHhZZpAA_4 = {((NI) 2),
((NI) 1)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__lf9coCS0CxBb8QizHhZZpAA_5 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag TM__lf9coCS0CxBb8QizHhZZpAA_6 = {
0x00, 0x02, 0x00, 0x00, 0xf0, 0xc0, 0xfb, 0x81,
0x41, 0x42, 0x92, 0x18, 0x00, 0x00, 0x90, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00}
;
N_LIB_PRIVATE NIM_CONST tySet_tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag someAdd__guards_21 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x28, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00}
;
N_LIB_PRIVATE NIM_CONST tySet_tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag someMul__guards_23 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00}
;
N_LIB_PRIVATE TNimType NTItupleLa58pnode_b58pnodeT__Q066krdfdsSnR5DaFMOk9bQ_;
extern TNimType NTIpnode__PzkjRjFZybhcKJ9c8COQy5g_;
N_LIB_PRIVATE TNimType NTItreplacements__UM9auNDRkDG41rKPehyYnig_;
extern TNimType NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_;
STRING_LITERAL(TM__lf9coCS0CxBb8QizHhZZpAA_9, "/home/runner/work/nightlies/nightlies/nim/compiler/guards.nim", 61);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__lf9coCS0CxBb8QizHhZZpAA_8 = {((NimStringDesc*) &TM__lf9coCS0CxBb8QizHhZZpAA_9),
((NI) 1058),
((NI) 13)}
;
static NIM_CONST tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg TM__lf9coCS0CxBb8QizHhZZpAA_10 = {((NI32) -1), ((NI32) -1)}
;
extern tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ gch__system_5249;
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameOpr__guards_640)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* a, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* b) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*a).magic) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 70):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 73):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 78):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 81):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 84):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 87):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 91) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 92):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 116):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 119):
	{
		result = ((TM__lf9coCS0CxBb8QizHhZZpAA_2[(NU)((*b).magic)>>3] &(1U<<((NU)((*b).magic)&7U)))!=0);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 71):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 74):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 76):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 79):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 82):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 85):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 88):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 117):
	{
		result = ((*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 71) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 74) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 76) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 79) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 82) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 85) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 88) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 117));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 72):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 75):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 77):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 80):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 83):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 86):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 89):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 118):
	{
		result = ((*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 72) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 75) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 77) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 80) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 83) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 86) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 89) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 118));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 36) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 39):
	{
		result = ((*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 36) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 37) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 38) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 39));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53):
	{
		result = ((*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 47):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 52):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 54):
	{
		result = ((*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 47) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 54) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 52));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 48):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 55):
	{
		result = ((*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 48) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 55));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 49):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 56):
	{
		result = ((*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 49) || (*b).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 56));
	}
	break;
	default:
	{
		result = (a == b);
	}
	break;
	}
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__system_1741(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, len__ast_3155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTree__guards_680)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = NIM_FALSE;
	{
		if (!(a == b)) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T7_ = !((a == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
		if (!(T7_)) goto LA8_;
		T7_ = !((b == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
		LA8_: ;
		T6_ = T7_;
		if (!(T6_)) goto LA9_;
		T6_ = ((*a).kind == (*b).kind);
		LA9_: ;
		if (!T6_) goto LA10_;
		switch ((*a).kind) {
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
		{
			result = ((*a)._kind_4.sym == (*b)._kind_4.sym);
			{
				NIM_BOOL T15_;
				NIM_BOOL T19_;
				T15_ = (NIM_BOOL)0;
				T15_ = !(result);
				if (!(T15_)) goto LA16_;
				T15_ = !(((*(*a)._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0)));
				LA16_: ;
				if (!T15_) goto LA17_;
				T19_ = (NIM_BOOL)0;
				T19_ = ((*(*a)._kind_4.sym).magic == (*(*b)._kind_4.sym).magic);
				if (T19_) goto LA20_;
				T19_ = sameOpr__guards_640((*a)._kind_4.sym, (*b)._kind_4.sym);
				LA20_: ;
				result = T19_;
			}
			LA17_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
		{
			result = ((*(*a)._kind_5.ident).id == (*(*b)._kind_5.ident).id);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15):
		{
			result = ((*a)._kind_1.intVal == (*b)._kind_1.intVal);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 16) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 18):
		{
			result = ((*a)._kind_2.floatVal == (*b)._kind_2.floatVal);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22):
		{
			result = eqStrings((*a)._kind_3.strVal, (*b)._kind_3.strVal);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4):
		{
			result = ((*a).typ == (*b).typ);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
		{
			result = NIM_TRUE;
		}
		break;
		default:
		{
			{
				NI T30_;
				NI T31_;
				T30_ = (NI)0;
				T30_ = len__ast_3155(a);
				T31_ = (NI)0;
				T31_ = len__ast_3155(b);
				if (!(T30_ == T31_)) goto LA32_;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len__ast_3155(a);
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA36;
							i = i_2;
							{
								NIM_BOOL T39_;
								T39_ = (NIM_BOOL)0;
								T39_ = sameTree__guards_680((*a)._kind_6.sons->data[i], (*b)._kind_6.sons->data[i]);
								if (!!(T39_)) goto LA40_;
								goto BeforeRet_;
							}
							LA40_: ;
							i_2 += ((NI) 1);
						} LA36: ;
					}
				}
				result = NIM_TRUE;
			}
			LA32_: ;
		}
		break;
		}
	}
	goto LA1_;
	LA10_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasSubTree__guards_732)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTree__guards_680(n, x);
		if (!T3_) goto LA4_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA4_: ;
	{
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
		{
			result = sameTree__guards_680(n, x);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 76):
		{
		}
		break;
		default:
		{
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3155(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA12;
						i = i_2;
						{
							NIM_BOOL T15_;
							T15_ = (NIM_BOOL)0;
							T15_ = hasSubTree__guards_732((*n)._kind_6.sons->data[i], x);
							if (!T15_) goto LA16_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA16_: ;
						i_2 += ((NI) 1);
					} LA12: ;
				}
			}
		}
		break;
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5340)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5302)(void* usr) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* result;
	NI T1_;
	result = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5345)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	addZCT__system_5296((&gch__system_5249.zct), c);
}
static N_INLINE(void, decRef__system_5347)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__system_5345(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T5_ = usrToCell__system_5302(src);
		incRef__system_5340(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T10_ = usrToCell__system_5302((*dest));
		decRef__system_5347(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(void, invalidateFacts__guards_745)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (((*s) ? (*s)->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = !(((*s)->data[i] == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
					if (!(T7_)) goto LA8_;
					T7_ = hasSubTree__guards_732((*s)->data[i], n);
					LA8_: ;
					if (!T7_) goto LA9_;
					asgnRef((void**) (&(*s)->data[i]), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
				}
				LA9_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, invalidateFacts__guards_760)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	invalidateFacts__guards_745((&(*m).s), n);
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, tilde___guards_990)(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg x) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	switch (x) {
	case ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 0):
	{
		result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 0);
	}
	break;
	case ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1):
	{
		result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
	}
	break;
	case ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2):
	{
		result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, valueIsNil__guards_891)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23))) goto LA3_;
		result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38))) goto LA6_;
		result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
	}
	goto LA1_;
	LA6_: ;
	{
		result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 0);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, impliesIsNil__guards_902)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* eq) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	switch ((*(*(*fact)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 143):
	{
		{
			NIM_BOOL T4_;
			T4_ = (NIM_BOOL)0;
			T4_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 1)], (*eq)._kind_6.sons->data[((NI) 1)]);
			if (!T4_) goto LA5_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 70):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 73):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 78):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 81):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 84):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 87):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 91) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 92):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 116):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 119):
	{
		{
			NIM_BOOL T10_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T13_;
			T10_ = (NIM_BOOL)0;
			T10_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 1)], (*eq)._kind_6.sons->data[((NI) 1)]);
			if (!T10_) goto LA11_;
			T13_ = NIM_NIL;
			T13_ = skipConv__types_3661((*fact)._kind_6.sons->data[((NI) 2)]);
			result = valueIsNil__guards_891(T13_);
		}
		goto LA8_;
		LA11_: ;
		{
			NIM_BOOL T15_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
			T15_ = (NIM_BOOL)0;
			T15_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], (*eq)._kind_6.sons->data[((NI) 1)]);
			if (!T15_) goto LA16_;
			T18_ = NIM_NIL;
			T18_ = skipConv__types_3661((*fact)._kind_6.sons->data[((NI) 1)]);
			result = valueIsNil__guards_891(T18_);
		}
		goto LA8_;
		LA16_: ;
		LA8_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 110):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 109):
	{
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isValue__guards_46)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLocation__guards_53)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = isValue__guards_46(n);
	result = !(T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, valuesUnequal__guards_763)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = isValue__guards_46(a);
		if (!(T3_)) goto LA4_;
		T3_ = isValue__guards_46(b);
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NIM_BOOL)0;
		T7_ = sameValue__astalgo_119(a, b);
		result = !(T7_);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, impliesEq__guards_767)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* eq) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T1_;
	NI loc;
	NI val;
	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = isLocation__guards_53((*eq)._kind_6.sons->data[((NI) 1)]);
		if (!T4_) goto LA5_;
		T1_ = TM__lf9coCS0CxBb8QizHhZZpAA_3;
	}
	goto LA2_;
	LA5_: ;
	{
		T1_ = TM__lf9coCS0CxBb8QizHhZZpAA_4;
	}
	LA2_: ;
	loc = T1_.Field0;
	val = T1_.Field1;
	switch ((*(*(*fact)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 70):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 73):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 78):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 81):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 84):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 87):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 91) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 92):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 116):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 119):
	{
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 1)], (*eq)._kind_6.sons->data[loc]);
			if (!T11_) goto LA12_;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], (*eq)._kind_6.sons->data[val]);
				if (!T16_) goto LA17_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			}
			goto LA14_;
			LA17_: ;
			{
				NIM_BOOL T20_;
				T20_ = (NIM_BOOL)0;
				T20_ = valuesUnequal__guards_763((*fact)._kind_6.sons->data[((NI) 2)], (*eq)._kind_6.sons->data[val]);
				if (!T20_) goto LA21_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
			}
			goto LA14_;
			LA21_: ;
			LA14_: ;
		}
		goto LA9_;
		LA12_: ;
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], (*eq)._kind_6.sons->data[loc]);
			if (!T24_) goto LA25_;
			{
				NIM_BOOL T29_;
				T29_ = (NIM_BOOL)0;
				T29_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 1)], (*eq)._kind_6.sons->data[val]);
				if (!T29_) goto LA30_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			}
			goto LA27_;
			LA30_: ;
			{
				NIM_BOOL T33_;
				T33_ = (NIM_BOOL)0;
				T33_ = valuesUnequal__guards_763((*fact)._kind_6.sons->data[((NI) 1)], (*eq)._kind_6.sons->data[val]);
				if (!T33_) goto LA34_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
			}
			goto LA27_;
			LA34_: ;
			LA27_: ;
		}
		goto LA9_;
		LA25_: ;
		LA9_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 134):
	{
		{
			NIM_BOOL T39_;
			T39_ = (NIM_BOOL)0;
			T39_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], (*eq)._kind_6.sons->data[loc]);
			if (!(T39_)) goto LA40_;
			T39_ = isValue__guards_46((*eq)._kind_6.sons->data[val]);
			LA40_: ;
			if (!T39_) goto LA41_;
			{
				NIM_BOOL T45_;
				T45_ = (NIM_BOOL)0;
				T45_ = inSet__nimsets_7((*fact)._kind_6.sons->data[((NI) 1)], (*eq)._kind_6.sons->data[val]);
				if (!T45_) goto LA46_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			}
			goto LA43_;
			LA46_: ;
			{
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
			}
			LA43_: ;
		}
		LA41_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 110):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 109):
	{
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, pred__guards_325)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*n)._kind_1.intVal == (IL64(-9223372036854775807) - IL64(1))));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = copyNode__ast_4324(n);
		(*result)._kind_1.intVal -= ((NI) 1);
	}
	goto LA1_;
	LA5_: ;
	{
		result = n;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, impliesGe__guards_918)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	switch ((*(*(*fact)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 70):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 73):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 78):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 81):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 84):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 87):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 91) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 92):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 116):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 119):
	{
		{
			NIM_BOOL T4_;
			T4_ = (NIM_BOOL)0;
			T4_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 1)], x);
			if (!T4_) goto LA5_;
			{
				NIM_BOOL T9_;
				T9_ = (NIM_BOOL)0;
				T9_ = isValue__guards_46((*fact)._kind_6.sons->data[((NI) 2)]);
				if (!(T9_)) goto LA10_;
				T9_ = isValue__guards_46(c);
				LA10_: ;
				if (!T9_) goto LA11_;
				{
					NIM_BOOL T15_;
					T15_ = (NIM_BOOL)0;
					T15_ = leValue__astalgo_135(c, (*fact)._kind_6.sons->data[((NI) 2)]);
					if (!T15_) goto LA16_;
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
				}
				goto LA13_;
				LA16_: ;
				{
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
				}
				LA13_: ;
			}
			LA11_: ;
		}
		goto LA2_;
		LA5_: ;
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], x);
			if (!T20_) goto LA21_;
			{
				NIM_BOOL T25_;
				T25_ = (NIM_BOOL)0;
				T25_ = isValue__guards_46((*fact)._kind_6.sons->data[((NI) 1)]);
				if (!(T25_)) goto LA26_;
				T25_ = isValue__guards_46(c);
				LA26_: ;
				if (!T25_) goto LA27_;
				{
					NIM_BOOL T31_;
					T31_ = (NIM_BOOL)0;
					T31_ = leValue__astalgo_135(c, (*fact)._kind_6.sons->data[((NI) 1)]);
					if (!T31_) goto LA32_;
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
				}
				goto LA29_;
				LA32_: ;
				{
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
				}
				LA29_: ;
			}
			LA27_: ;
		}
		goto LA2_;
		LA21_: ;
		LA2_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 72):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 75):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 77):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 80):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 83):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 86):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 89):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 118):
	{
		{
			NIM_BOOL T38_;
			T38_ = (NIM_BOOL)0;
			T38_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 1)], x);
			if (!T38_) goto LA39_;
			{
				NIM_BOOL T43_;
				T43_ = (NIM_BOOL)0;
				T43_ = isValue__guards_46((*fact)._kind_6.sons->data[((NI) 2)]);
				if (!(T43_)) goto LA44_;
				T43_ = isValue__guards_46(c);
				LA44_: ;
				if (!T43_) goto LA45_;
				{
					NIM_BOOL T49_;
					T49_ = (NIM_BOOL)0;
					T49_ = leValue__astalgo_135((*fact)._kind_6.sons->data[((NI) 2)], c);
					if (!T49_) goto LA50_;
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
				}
				LA50_: ;
			}
			LA45_: ;
		}
		goto LA36_;
		LA39_: ;
		{
			NIM_BOOL T53_;
			T53_ = (NIM_BOOL)0;
			T53_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], x);
			if (!T53_) goto LA54_;
			{
				NIM_BOOL T58_;
				T58_ = (NIM_BOOL)0;
				T58_ = isValue__guards_46((*fact)._kind_6.sons->data[((NI) 1)]);
				if (!(T58_)) goto LA59_;
				T58_ = isValue__guards_46(c);
				LA59_: ;
				if (!T58_) goto LA60_;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T64_;
					NIM_BOOL T65_;
					T64_ = NIM_NIL;
					T64_ = pred__guards_325(c);
					T65_ = (NIM_BOOL)0;
					T65_ = leValue__astalgo_135(T64_, (*fact)._kind_6.sons->data[((NI) 1)]);
					if (!T65_) goto LA66_;
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
				}
				LA66_: ;
			}
			LA60_: ;
		}
		goto LA36_;
		LA54_: ;
		LA36_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 71):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 74):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 76):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 79):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 82):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 85):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 88):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 117):
	{
		{
			NIM_BOOL T71_;
			T71_ = (NIM_BOOL)0;
			T71_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 1)], x);
			if (!T71_) goto LA72_;
			{
				NIM_BOOL T76_;
				T76_ = (NIM_BOOL)0;
				T76_ = isValue__guards_46((*fact)._kind_6.sons->data[((NI) 2)]);
				if (!(T76_)) goto LA77_;
				T76_ = isValue__guards_46(c);
				LA77_: ;
				if (!T76_) goto LA78_;
				{
					NIM_BOOL T82_;
					T82_ = (NIM_BOOL)0;
					T82_ = leValue__astalgo_135((*fact)._kind_6.sons->data[((NI) 2)], c);
					if (!T82_) goto LA83_;
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
				}
				LA83_: ;
			}
			LA78_: ;
		}
		goto LA69_;
		LA72_: ;
		{
			NIM_BOOL T86_;
			T86_ = (NIM_BOOL)0;
			T86_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], x);
			if (!T86_) goto LA87_;
			{
				NIM_BOOL T91_;
				T91_ = (NIM_BOOL)0;
				T91_ = isValue__guards_46((*fact)._kind_6.sons->data[((NI) 1)]);
				if (!(T91_)) goto LA92_;
				T91_ = isValue__guards_46(c);
				LA92_: ;
				if (!T91_) goto LA93_;
				{
					NIM_BOOL T97_;
					T97_ = (NIM_BOOL)0;
					T97_ = leValue__astalgo_135(c, (*fact)._kind_6.sons->data[((NI) 1)]);
					if (!T97_) goto LA98_;
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
				}
				LA98_: ;
			}
			LA93_: ;
		}
		goto LA69_;
		LA87_: ;
		LA69_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 110):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 109):
	{
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, impliesLe__guards_948)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
{	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isLocation__guards_53(x);
		if (!!(T3_)) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isValue__guards_46(c);
			if (!T8_) goto LA9_;
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = leValue__astalgo_135(x, x);
				if (!T13_) goto LA14_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
				goto BeforeRet_;
			}
			goto LA11_;
			LA14_: ;
			{
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
				goto BeforeRet_;
			}
			LA11_: ;
		}
		LA9_: ;
		result = impliesGe__guards_918(fact, c, x);
		goto BeforeRet_;
	}
	LA4_: ;
	switch ((*(*(*fact)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 70):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 73):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 78):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 81):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 84):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 87):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 91) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 92):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 116):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 119):
	{
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 1)], x);
			if (!T20_) goto LA21_;
			{
				NIM_BOOL T25_;
				T25_ = (NIM_BOOL)0;
				T25_ = isValue__guards_46((*fact)._kind_6.sons->data[((NI) 2)]);
				if (!(T25_)) goto LA26_;
				T25_ = isValue__guards_46(c);
				LA26_: ;
				if (!T25_) goto LA27_;
				{
					NIM_BOOL T31_;
					T31_ = (NIM_BOOL)0;
					T31_ = leValue__astalgo_135((*fact)._kind_6.sons->data[((NI) 2)], c);
					if (!T31_) goto LA32_;
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
				}
				goto LA29_;
				LA32_: ;
				{
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
				}
				LA29_: ;
			}
			LA27_: ;
		}
		goto LA18_;
		LA21_: ;
		{
			NIM_BOOL T36_;
			T36_ = (NIM_BOOL)0;
			T36_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], x);
			if (!T36_) goto LA37_;
			{
				NIM_BOOL T41_;
				T41_ = (NIM_BOOL)0;
				T41_ = isValue__guards_46((*fact)._kind_6.sons->data[((NI) 1)]);
				if (!(T41_)) goto LA42_;
				T41_ = isValue__guards_46(c);
				LA42_: ;
				if (!T41_) goto LA43_;
				{
					NIM_BOOL T47_;
					T47_ = (NIM_BOOL)0;
					T47_ = leValue__astalgo_135((*fact)._kind_6.sons->data[((NI) 1)], c);
					if (!T47_) goto LA48_;
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
				}
				goto LA45_;
				LA48_: ;
				{
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
				}
				LA45_: ;
			}
			LA43_: ;
		}
		goto LA18_;
		LA37_: ;
		LA18_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 72):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 75):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 77):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 80):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 83):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 86):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 89):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 118):
	{
		{
			NIM_BOOL T54_;
			T54_ = (NIM_BOOL)0;
			T54_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 1)], x);
			if (!T54_) goto LA55_;
			{
				NIM_BOOL T59_;
				T59_ = (NIM_BOOL)0;
				T59_ = isValue__guards_46((*fact)._kind_6.sons->data[((NI) 2)]);
				if (!(T59_)) goto LA60_;
				T59_ = isValue__guards_46(c);
				LA60_: ;
				if (!T59_) goto LA61_;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T65_;
					NIM_BOOL T66_;
					T65_ = NIM_NIL;
					T65_ = pred__guards_325(c);
					T66_ = (NIM_BOOL)0;
					T66_ = leValue__astalgo_135((*fact)._kind_6.sons->data[((NI) 2)], T65_);
					if (!T66_) goto LA67_;
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
				}
				LA67_: ;
			}
			LA61_: ;
		}
		goto LA52_;
		LA55_: ;
		{
			NIM_BOOL T70_;
			T70_ = (NIM_BOOL)0;
			T70_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], x);
			if (!T70_) goto LA71_;
			{
				NIM_BOOL T75_;
				T75_ = (NIM_BOOL)0;
				T75_ = isValue__guards_46((*fact)._kind_6.sons->data[((NI) 1)]);
				if (!(T75_)) goto LA76_;
				T75_ = isValue__guards_46(c);
				LA76_: ;
				if (!T75_) goto LA77_;
				{
					NIM_BOOL T81_;
					T81_ = (NIM_BOOL)0;
					T81_ = leValue__astalgo_135(c, (*fact)._kind_6.sons->data[((NI) 1)]);
					if (!T81_) goto LA82_;
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
				}
				LA82_: ;
			}
			LA77_: ;
		}
		goto LA52_;
		LA71_: ;
		LA52_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 71):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 74):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 76):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 79):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 82):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 85):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 88):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 117):
	{
		{
			NIM_BOOL T87_;
			T87_ = (NIM_BOOL)0;
			T87_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 1)], x);
			if (!T87_) goto LA88_;
			{
				NIM_BOOL T92_;
				T92_ = (NIM_BOOL)0;
				T92_ = isValue__guards_46((*fact)._kind_6.sons->data[((NI) 2)]);
				if (!(T92_)) goto LA93_;
				T92_ = isValue__guards_46(c);
				LA93_: ;
				if (!T92_) goto LA94_;
				{
					NIM_BOOL T98_;
					T98_ = (NIM_BOOL)0;
					T98_ = leValue__astalgo_135((*fact)._kind_6.sons->data[((NI) 2)], c);
					if (!T98_) goto LA99_;
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
				}
				LA99_: ;
			}
			LA94_: ;
		}
		goto LA85_;
		LA88_: ;
		{
			NIM_BOOL T102_;
			T102_ = (NIM_BOOL)0;
			T102_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], x);
			if (!T102_) goto LA103_;
			{
				NIM_BOOL T107_;
				T107_ = (NIM_BOOL)0;
				T107_ = isValue__guards_46((*fact)._kind_6.sons->data[((NI) 1)]);
				if (!(T107_)) goto LA108_;
				T107_ = isValue__guards_46(c);
				LA108_: ;
				if (!T107_) goto LA109_;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T113_;
					NIM_BOOL T114_;
					T113_ = NIM_NIL;
					T113_ = pred__guards_325((*fact)._kind_6.sons->data[((NI) 1)]);
					T114_ = (NIM_BOOL)0;
					T114_ = leValue__astalgo_135(c, T113_);
					if (!T114_) goto LA115_;
					result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
				}
				LA115_: ;
			}
			LA109_: ;
		}
		goto LA85_;
		LA103_: ;
		LA85_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 110):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 109):
	{
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, impliesLt__guards_975)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* p;
	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	p = pred__guards_325(c);
	{
		if (!!((p == c))) goto LA3_;
		result = impliesLe__guards_948(fact, x, p);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* q;
		q = pred__guards_325(x);
		{
			if (!!((q == x))) goto LA8_;
			result = impliesLe__guards_948(fact, q, c);
		}
		LA8_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, compareSets__guards_857)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = equalSets__nimsets_216(((tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ*) NIM_NIL), a, b);
		if (!T3_) goto LA4_;
		result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T7_;
		NI T8_;
		T7_ = NIM_NIL;
		T7_ = intersectSets__nimsets_195(((tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ*) NIM_NIL), a, b);
		T8_ = (NI)0;
		T8_ = len__ast_3155(T7_);
		if (!(T8_ == ((NI) 0))) goto LA9_;
		result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
	}
	goto LA1_;
	LA9_: ;
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, leImpliesIn__guards_795)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* aSet) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* value;
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T5_;
		if (!((*c).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*c).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15))) goto LA3_;
		T5_ = firstOrd__types_1406(((tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ*) NIM_NIL), (*x).typ);
		value = newIntNode__ast_3715((*c).kind, T5_);
		{
			NI i;
			NI pos;
			NI neg;
			if (!((NI64)((*c)._kind_1.intVal - (*value)._kind_1.intVal) < IL64(1000))) goto LA8_;
			i = (NI)0;
			pos = (NI)0;
			neg = (NI)0;
			{
				while (1) {
					if (!((*value)._kind_1.intVal <= (*c)._kind_1.intVal)) goto LA11;
					{
						NIM_BOOL T14_;
						T14_ = (NIM_BOOL)0;
						T14_ = inSet__nimsets_7(aSet, value);
						if (!T14_) goto LA15_;
						pos += ((NI) 1);
					}
					goto LA12_;
					LA15_: ;
					{
						neg += ((NI) 1);
					}
					LA12_: ;
					i += ((NI) 1);
					(*value)._kind_1.intVal += ((NI) 1);
				} LA11: ;
			}
			{
				if (!(pos == i)) goto LA20_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			}
			goto LA18_;
			LA20_: ;
			{
				if (!(neg == i)) goto LA23_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
			}
			goto LA18_;
			LA23_: ;
			LA18_: ;
		}
		LA8_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, geImpliesIn__guards_824)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* aSet) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* value;
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ max;
		if (!((*c).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*c).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15))) goto LA3_;
		value = newIntNode__ast_3711((*c).kind, (*c)._kind_1.intVal);
		max = lastOrd__types_1532(((tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ*) NIM_NIL), (*x).typ);
		{
			tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T7_;
			tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T8_;
			tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T9_;
			NIM_BOOL T10_;
			NI i;
			NI pos;
			NI neg;
			T7_ = getInt__ast_4593(value);
			T8_ = minus___int495056_637(max, T7_);
			T9_ = toInt128__types_1431(((NI) 1000));
			T10_ = (NIM_BOOL)0;
			T10_ = lt___int495056_417(T8_, T9_);
			if (!T10_) goto LA11_;
			i = (NI)0;
			pos = (NI)0;
			neg = (NI)0;
			{
				while (1) {
					NIM_BOOL T15_;
					T15_ = (NIM_BOOL)0;
					T15_ = lteq___int495056_945((*value)._kind_1.intVal, max);
					if (!T15_) goto LA14;
					{
						NIM_BOOL T18_;
						T18_ = (NIM_BOOL)0;
						T18_ = inSet__nimsets_7(aSet, value);
						if (!T18_) goto LA19_;
						pos += ((NI) 1);
					}
					goto LA16_;
					LA19_: ;
					{
						neg += ((NI) 1);
					}
					LA16_: ;
					i += ((NI) 1);
					(*value)._kind_1.intVal += ((NI) 1);
				} LA14: ;
			}
			{
				if (!(pos == i)) goto LA24_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			}
			goto LA22_;
			LA24_: ;
			{
				if (!(neg == i)) goto LA27_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
			}
			goto LA22_;
			LA27_: ;
			LA22_: ;
		}
		LA11_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, impliesIn__guards_864)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* loc, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* aSet) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	switch ((*(*(*fact)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 70):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 73):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 78):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 81):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 84):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 87):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 91) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 92):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 116):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 119):
	{
		{
			NIM_BOOL T4_;
			T4_ = (NIM_BOOL)0;
			T4_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 1)], loc);
			if (!T4_) goto LA5_;
			{
				NIM_BOOL T9_;
				T9_ = (NIM_BOOL)0;
				T9_ = inSet__nimsets_7(aSet, (*fact)._kind_6.sons->data[((NI) 2)]);
				if (!T9_) goto LA10_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			}
			goto LA7_;
			LA10_: ;
			{
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
			}
			LA7_: ;
		}
		goto LA2_;
		LA5_: ;
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], loc);
			if (!T14_) goto LA15_;
			{
				NIM_BOOL T19_;
				T19_ = (NIM_BOOL)0;
				T19_ = inSet__nimsets_7(aSet, (*fact)._kind_6.sons->data[((NI) 1)]);
				if (!T19_) goto LA20_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			}
			goto LA17_;
			LA20_: ;
			{
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
			}
			LA17_: ;
		}
		goto LA2_;
		LA15_: ;
		LA2_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 134):
	{
		{
			NIM_BOOL T26_;
			T26_ = (NIM_BOOL)0;
			T26_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], loc);
			if (!T26_) goto LA27_;
			result = compareSets__guards_857((*fact)._kind_6.sons->data[((NI) 1)], aSet);
		}
		LA27_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 71):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 74):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 76):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 79):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 82):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 85):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 88):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 117):
	{
		{
			NIM_BOOL T32_;
			T32_ = (NIM_BOOL)0;
			T32_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 1)], loc);
			if (!T32_) goto LA33_;
			result = leImpliesIn__guards_795((*fact)._kind_6.sons->data[((NI) 1)], (*fact)._kind_6.sons->data[((NI) 2)], aSet);
		}
		goto LA30_;
		LA33_: ;
		{
			NIM_BOOL T36_;
			T36_ = (NIM_BOOL)0;
			T36_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], loc);
			if (!T36_) goto LA37_;
			result = geImpliesIn__guards_824((*fact)._kind_6.sons->data[((NI) 2)], (*fact)._kind_6.sons->data[((NI) 1)], aSet);
		}
		goto LA30_;
		LA37_: ;
		LA30_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 72):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 75):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 77):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 80):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 83):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 86):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 89):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 118):
	{
		{
			NIM_BOOL T42_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T45_;
			T42_ = (NIM_BOOL)0;
			T42_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 1)], loc);
			if (!T42_) goto LA43_;
			T45_ = NIM_NIL;
			T45_ = pred__guards_325((*fact)._kind_6.sons->data[((NI) 2)]);
			result = leImpliesIn__guards_795((*fact)._kind_6.sons->data[((NI) 1)], T45_, aSet);
		}
		goto LA40_;
		LA43_: ;
		{
			NIM_BOOL T47_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T50_;
			T47_ = (NIM_BOOL)0;
			T47_ = sameTree__guards_680((*fact)._kind_6.sons->data[((NI) 2)], loc);
			if (!T47_) goto LA48_;
			T50_ = NIM_NIL;
			T50_ = pred__guards_325((*fact)._kind_6.sons->data[((NI) 1)]);
			result = geImpliesIn__guards_824((*fact)._kind_6.sons->data[((NI) 2)], T50_, aSet);
		}
		goto LA40_;
		LA48_: ;
		LA40_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 110):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 109):
	{
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, factImplies__guards_993)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* prop) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T1_;
{	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	T1_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
	T1_ = getMagic__trees_137(fact);
	switch (T1_) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T3_;
		arg = (*fact)._kind_6.sons->data[((NI) 1)];
		T3_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T3_ = getMagic__trees_137(arg);
		switch (T3_) {
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 143):
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 87):
		{
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T5_;
			T5_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T5_ = factImplies__guards_993(arg, prop);
			result = tilde___guards_990(T5_);
			goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 109):
		{
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg a;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg b;
			a = factImplies__guards_993((*arg)._kind_6.sons->data[((NI) 1)], prop);
			b = factImplies__guards_993((*arg)._kind_6.sons->data[((NI) 2)], prop);
			{
				if (!(a == b)) goto LA9_;
				result = tilde___guards_990(a);
				goto BeforeRet_;
			}
			LA9_: ;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 0);
			goto BeforeRet_;
		}
		break;
		default:
		{
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 0);
			goto BeforeRet_;
		}
		break;
		}
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 109):
	{
		result = factImplies__guards_993((*fact)._kind_6.sons->data[((NI) 1)], prop);
		{
			if (!!((result == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 0)))) goto LA15_;
			goto BeforeRet_;
		}
		LA15_: ;
		result = factImplies__guards_993((*fact)._kind_6.sons->data[((NI) 2)], prop);
		goto BeforeRet_;
	}
	break;
	default:
	{
	}
	break;
	}
	switch ((*(*(*prop)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96):
	{
		tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T19_;
		T19_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
		T19_ = factImplies__guards_993(fact, (*prop)._kind_6.sons->data[((NI) 1)]);
		result = tilde___guards_990(T19_);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 143):
	{
		result = impliesIsNil__guards_902(fact, prop);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 70):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 73):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 78):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 81):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 84):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 87):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 91) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 92):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 116):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 119):
	{
		result = impliesEq__guards_767(fact, prop);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 71):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 74):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 76):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 79):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 82):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 85):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 88):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 117):
	{
		result = impliesLe__guards_948(fact, (*prop)._kind_6.sons->data[((NI) 1)], (*prop)._kind_6.sons->data[((NI) 2)]);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 72):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 75):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 77):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 80):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 83):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 86):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 89):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 118):
	{
		result = impliesLt__guards_975(fact, (*prop)._kind_6.sons->data[((NI) 1)], (*prop)._kind_6.sons->data[((NI) 2)]);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 134):
	{
		result = impliesIn__guards_864(fact, (*prop)._kind_6.sons->data[((NI) 2)], (*prop)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	default:
	{
		result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 0);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, doesImply__guards_1022)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg facts, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* prop) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
{	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** f;
		NI i;
		NI L;
		NI T2_;
		f = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
		i = ((NI) 0);
		T2_ = (facts.s ? facts.s->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				f = &facts.s->data[i];
				{
					if (!!(((*f) == 0))) goto LA7_;
					result = factImplies__guards_993((*f), prop);
					{
						if (!!((result == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 0)))) goto LA11_;
						goto BeforeRet_;
					}
					LA11_: ;
				}
				LA7_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, swapArgs__guards_117)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* newOp) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*fact).info, ((NI) 3));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(newOp));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), (*fact)._kind_6.sons->data[((NI) 2)]);
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), (*fact)._kind_6.sons->data[((NI) 1)]);
	return result;
}
static N_INLINE(NI, safeLen__ast_3148)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 0) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__ast_3155(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, neg__guards_126)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T5_;
{	result = NIM_NIL;
	{
		if (!(n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA3_;
		result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
	T5_ = getMagic__trees_137(n);
	switch (T5_) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96):
	{
		result = (*n)._kind_6.sons->data[((NI) 1)];
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 72):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 75):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 77):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 80):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 83):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 86):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 89):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 118):
	{
		result = swapArgs__guards_117(n, (*o).opLe);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 71):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 74):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 76):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 79):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 82):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 85):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 88):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 117):
	{
		result = swapArgs__guards_117(n, (*o).opLt);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 134):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39)))) goto LA12_;
			result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
			goto BeforeRet_;
		}
		LA12_: ;
		t = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 2)]).typ, TM__lf9coCS0CxBb8QizHhZZpAA_5);
		result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, ((NI) 3));
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), (*n)._kind_6.sons->data[((NI) 0)]);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), (*n)._kind_6.sons->data[((NI) 2)]);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s;
			if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14))) goto LA16_;
			s = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39), (*n).info, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e;
				e = NIM_NIL;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen__ast_3148((*t).n);
					i_2 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* eAsNode;
							if (!(i_2 < colontmp_)) goto LA21;
							i = i_2;
							e = (*(*t).n)._kind_6.sons->data[i];
							eAsNode = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), ((NI64) ((*(*e)._kind_4.sym).position)));
							{
								NIM_BOOL T24_;
								T24_ = (NIM_BOOL)0;
								T24_ = inSet__nimsets_7((*n)._kind_6.sons->data[((NI) 1)], eAsNode);
								if (!!(T24_)) goto LA25_;
								add__ast_4798(s, eAsNode);
							}
							LA25_: ;
							i_2 += ((NI) 1);
						} LA21: ;
					}
				}
			}
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), s);
		}
		goto LA14_;
		LA16_: ;
		{
			result = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
		}
		LA14_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 110):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
		a = neg__guards_126((*n)._kind_6.sons->data[((NI) 1)], o);
		b = neg__guards_126((*n)._kind_6.sons->data[((NI) 2)], o);
		{
			NIM_BOOL T31_;
			T31_ = (NIM_BOOL)0;
			T31_ = !((a == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
			if (!(T31_)) goto LA32_;
			T31_ = !((b == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
			LA32_: ;
			if (!T31_) goto LA33_;
			result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, ((NI) 3));
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704((*o).opAnd));
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), a);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), b);
		}
		goto LA29_;
		LA33_: ;
		{
			if (!!((a == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA36_;
			result = a;
		}
		goto LA29_;
		LA36_: ;
		{
			if (!!((b == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA39_;
			result = b;
		}
		goto LA29_;
		LA39_: ;
		LA29_: ;
	}
	break;
	default:
	{
		result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, ((NI) 2));
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704((*o).opNot));
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), n);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildCall__guards_185)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* op, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*a).info, ((NI) 2));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(op));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), a);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, impliesNotNil__guards_1044)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	T1_ = NIM_NIL;
	T1_ = buildCall__guards_185((*m.g).operators.opIsNil, arg);
	T2_ = NIM_NIL;
	T2_ = neg__guards_126(T1_, (&(*m.g).operators));
	result = doesImply__guards_1022(m, T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildCall__guards_191)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* op, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29), (*a).info, ((NI) 3));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(op));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), a);
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), b);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, minusOne__guards_259)(void) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(-1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, negate__guards_231)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* res, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b_2;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*b).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*b).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*b)._kind_1.intVal == (IL64(-9223372036854775807) - IL64(1))));
		LA4_: ;
		if (!T3_) goto LA5_;
		b_2 = copyNode__ast_4324(b);
		(*b_2)._kind_1.intVal = -((*b_2)._kind_1.intVal);
		{
			if (!((*a).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*a).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15))) goto LA9_;
			(*b_2)._kind_1.intVal = barplusbar___saturate_1((*b_2)._kind_1.intVal, (*a)._kind_1.intVal);
			result = b_2;
		}
		goto LA7_;
		LA9_: ;
		{
			result = buildCall__guards_191((*o).opAdd, a, b_2);
		}
		LA7_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b_3;
		if (!((*b).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 16) && (*b).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 18))) goto LA13_;
		b_3 = copyNode__ast_4324(b);
		(*b_3)._kind_2.floatVal = -((*b_3)._kind_2.floatVal);
		result = buildCall__guards_191((*o).opAdd, a, b_3);
	}
	goto LA1_;
	LA13_: ;
	{
		result = res;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, barplusbar___guards_199)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = copyNode__ast_4324(a);
	{
		if (!((*a).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*a).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15))) goto LA3_;
		(*result)._kind_1.intVal = barplusbar___saturate_1((*a)._kind_1.intVal, (*b)._kind_1.intVal);
	}
	goto LA1_;
	LA3_: ;
	{
		(*result)._kind_2.floatVal = ((NF)((*a)._kind_2.floatVal) + (NF)((*b)._kind_2.floatVal));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, barstarbar___guards_215)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = copyNode__ast_4324(a);
	{
		if (!((*a).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*a).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15))) goto LA3_;
		(*result)._kind_1.intVal = barstarbar___saturate_52((*a)._kind_1.intVal, (*b)._kind_1.intVal);
	}
	goto LA1_;
	LA3_: ;
	{
		(*result)._kind_2.floatVal = ((NF)((*a)._kind_2.floatVal) * (NF)((*b)._kind_2.floatVal));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, zero__guards_255)(void) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, reassociation__guards_290)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T1_;
	result = NIM_NIL;
	result = n;
	T1_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
	T1_ = getMagic__trees_137(result);
	switch (T1_) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53):
	{
		{
			NIM_BOOL T5_;
			NIM_BOOL T6_;
			tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T8_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T12_;
			T5_ = (NIM_BOOL)0;
			T6_ = (NIM_BOOL)0;
			T6_ = isValue__guards_46((*result)._kind_6.sons->data[((NI) 2)]);
			if (!(T6_)) goto LA7_;
			T8_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
			T8_ = getMagic__trees_137((*result)._kind_6.sons->data[((NI) 1)]);
			T6_ = (T8_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46) || T8_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53) || T8_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51));
			LA7_: ;
			T5_ = T6_;
			if (!(T5_)) goto LA9_;
			T5_ = isValue__guards_46((*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)]);
			LA9_: ;
			if (!T5_) goto LA10_;
			T12_ = NIM_NIL;
			T12_ = barplusbar___guards_199((*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)], (*result)._kind_6.sons->data[((NI) 2)]);
			result = buildCall__guards_191((*o).opAdd, (*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)], T12_);
			{
				if (!((*(*result)._kind_6.sons->data[((NI) 2)])._kind_1.intVal == IL64(0))) goto LA15_;
				result = (*result)._kind_6.sons->data[((NI) 1)];
			}
			LA15_: ;
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 48):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 55):
	{
		{
			NIM_BOOL T20_;
			NIM_BOOL T21_;
			tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T23_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T27_;
			T20_ = (NIM_BOOL)0;
			T21_ = (NIM_BOOL)0;
			T21_ = isValue__guards_46((*result)._kind_6.sons->data[((NI) 2)]);
			if (!(T21_)) goto LA22_;
			T23_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
			T23_ = getMagic__trees_137((*result)._kind_6.sons->data[((NI) 1)]);
			T21_ = (T23_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 48) || T23_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 55));
			LA22_: ;
			T20_ = T21_;
			if (!(T20_)) goto LA24_;
			T20_ = isValue__guards_46((*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)]);
			LA24_: ;
			if (!T20_) goto LA25_;
			T27_ = NIM_NIL;
			T27_ = barstarbar___guards_215((*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)], (*result)._kind_6.sons->data[((NI) 2)]);
			result = buildCall__guards_191((*o).opMul, (*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)], T27_);
			{
				if (!((*(*result)._kind_6.sons->data[((NI) 2)])._kind_1.intVal == IL64(1))) goto LA30_;
				result = (*result)._kind_6.sons->data[((NI) 1)];
			}
			goto LA28_;
			LA30_: ;
			{
				if (!((*(*result)._kind_6.sons->data[((NI) 2)])._kind_1.intVal == IL64(0))) goto LA33_;
				result = zero__guards_255();
			}
			goto LA28_;
			LA33_: ;
			LA28_: ;
		}
		LA25_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLet__guards_56)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA3_;
		{
			if (!((2097696 &((NU32)1<<((NU)((*(*n)._kind_4.sym).kind)&31U)))!=0)) goto LA7_;
			result = NIM_TRUE;
		}
		goto LA5_;
		LA7_: ;
		{
			NIM_BOOL T10_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T12_;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3));
			if (!(T10_)) goto LA11_;
			T12_ = NIM_NIL;
			T12_ = skipTypes__ast_3723((*(*n)._kind_4.sym).typ, TM__lf9coCS0CxBb8QizHhZZpAA_5);
			T10_ = !(((*T12_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23)));
			LA11_: ;
			if (!T10_) goto LA13_;
			result = NIM_TRUE;
		}
		goto LA5_;
		LA13_: ;
		LA5_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isVar__guards_75)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
	if (!(T2_)) goto LA3_;
	T2_ = ((2304 &((NU32)1<<((NU)((*(*n)._kind_4.sym).kind)&31U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((131072 & (*(*n)._kind_4.sym).flags) == 0);
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLetLocation__guards_94)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* m, NIM_BOOL isApprox) {
	NIM_BOOL result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
	NI derefs;
	NIM_BOOL T18_;
{	result = (NIM_BOOL)0;
	n = m;
	derefs = ((NI) 0);
	{
		while (1) {
			switch ((*n).kind) {
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 67):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 66):
			{
				n = (*n)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65):
			{
				n = (*n)._kind_6.sons->data[((NI) 0)];
				derefs += ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
			{
				{
					NIM_BOOL T8_;
					NIM_BOOL T9_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T12_;
					T8_ = (NIM_BOOL)0;
					T9_ = (NIM_BOOL)0;
					T9_ = isConstExpr__trees_146((*n)._kind_6.sons->data[((NI) 1)]);
					if (T9_) goto LA10_;
					T9_ = isLet__guards_56((*n)._kind_6.sons->data[((NI) 1)]);
					LA10_: ;
					T8_ = T9_;
					if (T8_) goto LA11_;
					T12_ = NIM_NIL;
					T12_ = skipConv__types_3661((*n)._kind_6.sons->data[((NI) 1)]);
					T8_ = isConstExpr__trees_146(T12_);
					LA11_: ;
					if (!T8_) goto LA13_;
					n = (*n)._kind_6.sons->data[((NI) 0)];
				}
				goto LA6_;
				LA13_: ;
				{
					goto BeforeRet_;
				}
				LA6_: ;
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 60):
			{
				n = (*n)._kind_6.sons->data[((NI) 1)];
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	T18_ = (NIM_BOOL)0;
	T18_ = isLet__guards_56(n);
	if (!(T18_)) goto LA19_;
	T18_ = (derefs <= isApprox);
	LA19_: ;
	result = T18_;
	{
		NIM_BOOL T22_;
		T22_ = (NIM_BOOL)0;
		T22_ = !(result);
		if (!(T22_)) goto LA23_;
		T22_ = isApprox;
		LA23_: ;
		if (!T22_) goto LA24_;
		result = isVar__guards_75(n);
	}
	LA24_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, barminusbar___guards_207)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = copyNode__ast_4324(a);
	{
		if (!((*a).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*a).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15))) goto LA3_;
		(*result)._kind_1.intVal = barminusbar___saturate_13((*a)._kind_1.intVal, (*b)._kind_1.intVal);
	}
	goto LA1_;
	LA3_: ;
	{
		(*result)._kind_2.floatVal = ((NF)((*a)._kind_2.floatVal) - (NF)((*b)._kind_2.floatVal));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, canon__guards_345)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T20_;
	tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T44_;
	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = safeLen__ast_3148(n);
		if (!(((NI) 1) <= T3_)) goto LA4_;
		result = shallowCopy__ast_4414(n);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i]), canon__guards_345((*n)._kind_6.sons->data[i], o));
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T11_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T14_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T15_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
		T10_ = (NIM_BOOL)0;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
		if (!(T11_)) goto LA12_;
		T11_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9));
		LA12_: ;
		T10_ = T11_;
		if (!(T10_)) goto LA13_;
		T14_ = NIM_NIL;
		T14_ = astdef__ast_3462((*n)._kind_4.sym);
		T15_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T15_ = getMagic__trees_137(T14_);
		T10_ = ((TM__lf9coCS0CxBb8QizHhZZpAA_6[(NU)(T15_)>>3] &(1U<<((NU)(T15_)&7U)))!=0);
		LA13_: ;
		if (!T10_) goto LA16_;
		T18_ = NIM_NIL;
		T18_ = astdef__ast_3462((*n)._kind_4.sym);
		result = copyTree__ast_4432(T18_);
	}
	goto LA1_;
	LA16_: ;
	{
		result = n;
	}
	LA1_: ;
	T20_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
	T20_ = getMagic__trees_137(result);
	switch (T20_) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 70):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 48):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 63):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 64):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 73):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 78):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 81):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 84):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 87):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 91) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 92):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 116):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 119):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 55):
	{
		{
			NIM_BOOL T24_;
			NIM_BOOL T26_;
			T24_ = (NIM_BOOL)0;
			T24_ = isValue__guards_46((*result)._kind_6.sons->data[((NI) 1)]);
			if (!(T24_)) goto LA25_;
			T26_ = (NIM_BOOL)0;
			T26_ = isValue__guards_46((*result)._kind_6.sons->data[((NI) 2)]);
			T24_ = !(T26_);
			LA25_: ;
			if (!T24_) goto LA27_;
			result = swapArgs__guards_117(result, (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
		}
		LA27_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 9):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T30_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T31_;
		T30_ = NIM_NIL;
		T30_ = buildCall__guards_185((*o).opLen, (*result)._kind_6.sons->data[((NI) 1)]);
		T31_ = NIM_NIL;
		T31_ = minusOne__guards_259();
		result = buildCall__guards_191((*o).opAdd, T30_, T31_);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 47):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 52):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 54):
	{
		result = negate__guards_231((*result)._kind_6.sons->data[((NI) 1)], (*result)._kind_6.sons->data[((NI) 2)], result, o);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 36) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 39):
	{
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704((*o).opLen));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 72):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 77):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 80):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 83):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 86):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 89):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 118):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* y;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* p;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* minus;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T42_;
		y = canon__guards_345((*n)._kind_6.sons->data[((NI) 2)], o);
		p = pred__guards_325(y);
		{
			if (!!((p == y))) goto LA37_;
			minus = p;
		}
		goto LA35_;
		LA37_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T40_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T41_;
			T40_ = NIM_NIL;
			T40_ = minusOne__guards_259();
			T41_ = NIM_NIL;
			T41_ = buildCall__guards_191((*o).opAdd, y, T40_);
			minus = canon__guards_345(T41_, o);
		}
		LA35_: ;
		T42_ = NIM_NIL;
		T42_ = canon__guards_345((*n)._kind_6.sons->data[((NI) 1)], o);
		result = buildCall__guards_191((*o).opLe, T42_, minus);
	}
	break;
	default:
	{
	}
	break;
	}
	result = skipConv__types_3661(result);
	result = reassociation__guards_290(result, o);
	T44_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
	T44_ = getMagic__trees_137(result);
	switch (T44_) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 71):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 74):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 76):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 79):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 82):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 85):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 88):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 117):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* y_2;
		x = (*result)._kind_6.sons->data[((NI) 1)];
		y_2 = (*result)._kind_6.sons->data[((NI) 2)];
		{
			NIM_BOOL T48_;
			NIM_BOOL T49_;
			NIM_BOOL T50_;
			NI T52_;
			tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T57_;
			T48_ = (NIM_BOOL)0;
			T49_ = (NIM_BOOL)0;
			T50_ = (NIM_BOOL)0;
			T50_ = ((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32));
			if (!(T50_)) goto LA51_;
			T52_ = (NI)0;
			T52_ = len__ast_3155(x);
			T50_ = (T52_ == ((NI) 3));
			LA51_: ;
			T49_ = T50_;
			if (!(T49_)) goto LA53_;
			T49_ = isValue__guards_46((*x)._kind_6.sons->data[((NI) 2)]);
			LA53_: ;
			T48_ = T49_;
			if (!(T48_)) goto LA54_;
			T48_ = isLetLocation__guards_94((*x)._kind_6.sons->data[((NI) 1)], NIM_TRUE);
			LA54_: ;
			if (!T48_) goto LA55_;
			T57_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
			T57_ = getMagic__trees_137(x);
			switch (T57_) {
			case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 47):
			case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 52):
			case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 54):
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T59_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T60_;
				T59_ = NIM_NIL;
				T59_ = buildCall__guards_191((*o).opAdd, y_2, (*x)._kind_6.sons->data[((NI) 2)]);
				T60_ = NIM_NIL;
				T60_ = reassociation__guards_290(T59_, o);
				result = buildCall__guards_191((*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym, (*x)._kind_6.sons->data[((NI) 1)], T60_);
			}
			break;
			case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46):
			case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51):
			case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53):
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* plus;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T62_;
				T62_ = NIM_NIL;
				T62_ = negate__guards_231(y_2, (*x)._kind_6.sons->data[((NI) 2)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), o);
				plus = reassociation__guards_290(T62_, o);
				{
					if (!!((plus == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA65_;
					result = buildCall__guards_191((*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym, (*x)._kind_6.sons->data[((NI) 1)], plus);
				}
				LA65_: ;
			}
			break;
			default:
			{
			}
			break;
			}
		}
		goto LA46_;
		LA55_: ;
		{
			NIM_BOOL T69_;
			NIM_BOOL T70_;
			NIM_BOOL T71_;
			NI T73_;
			tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T78_;
			T69_ = (NIM_BOOL)0;
			T70_ = (NIM_BOOL)0;
			T71_ = (NIM_BOOL)0;
			T71_ = ((*y_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*y_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*y_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*y_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*y_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*y_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*y_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32));
			if (!(T71_)) goto LA72_;
			T73_ = (NI)0;
			T73_ = len__ast_3155(y_2);
			T71_ = (T73_ == ((NI) 3));
			LA72_: ;
			T70_ = T71_;
			if (!(T70_)) goto LA74_;
			T70_ = isValue__guards_46((*y_2)._kind_6.sons->data[((NI) 2)]);
			LA74_: ;
			T69_ = T70_;
			if (!(T69_)) goto LA75_;
			T69_ = isLetLocation__guards_94((*y_2)._kind_6.sons->data[((NI) 1)], NIM_TRUE);
			LA75_: ;
			if (!T69_) goto LA76_;
			T78_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
			T78_ = getMagic__trees_137(y_2);
			switch (T78_) {
			case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 47):
			case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 52):
			case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 54):
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T80_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T81_;
				T80_ = NIM_NIL;
				T80_ = buildCall__guards_191((*o).opAdd, x, (*y_2)._kind_6.sons->data[((NI) 2)]);
				T81_ = NIM_NIL;
				T81_ = reassociation__guards_290(T80_, o);
				result = buildCall__guards_191((*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym, (*y_2)._kind_6.sons->data[((NI) 1)], T81_);
			}
			break;
			case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46):
			case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51):
			case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53):
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* plus_2;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T83_;
				T83_ = NIM_NIL;
				T83_ = negate__guards_231(x, (*y_2)._kind_6.sons->data[((NI) 2)], ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), o);
				plus_2 = reassociation__guards_290(T83_, o);
				{
					NIM_BOOL T86_;
					NIM_BOOL T88_;
					T86_ = (NIM_BOOL)0;
					T86_ = !((plus_2 == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
					if (!(T86_)) goto LA87_;
					T88_ = (NIM_BOOL)0;
					T88_ = isLetLocation__guards_94(x, NIM_TRUE);
					T86_ = !(T88_);
					LA87_: ;
					if (!T86_) goto LA89_;
					result = buildCall__guards_191((*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym, plus_2, (*y_2)._kind_6.sons->data[((NI) 1)]);
				}
				LA89_: ;
			}
			break;
			default:
			{
			}
			break;
			}
		}
		goto LA46_;
		LA76_: ;
		{
			NIM_BOOL T93_;
			NIM_BOOL T94_;
			tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T96_;
			T93_ = (NIM_BOOL)0;
			T94_ = (NIM_BOOL)0;
			T94_ = isValue__guards_46(x);
			if (!(T94_)) goto LA95_;
			T96_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
			T96_ = getMagic__trees_137(y_2);
			T94_ = (T96_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46) || T96_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53) || T96_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51));
			LA95_: ;
			T93_ = T94_;
			if (!(T93_)) goto LA97_;
			T93_ = ((*(*y_2)._kind_6.sons->data[((NI) 2)]).kind == (*x).kind);
			LA97_: ;
			if (!T93_) goto LA98_;
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), barminusbar___guards_207(x, (*y_2)._kind_6.sons->data[((NI) 2)]));
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), (*y_2)._kind_6.sons->data[((NI) 1)]);
		}
		goto LA46_;
		LA98_: ;
		{
			NIM_BOOL T101_;
			NIM_BOOL T102_;
			tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T104_;
			T101_ = (NIM_BOOL)0;
			T102_ = (NIM_BOOL)0;
			T102_ = isValue__guards_46(x);
			if (!(T102_)) goto LA103_;
			T104_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
			T104_ = getMagic__trees_137(y_2);
			T102_ = (T104_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 47) || T104_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 54) || T104_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 52));
			LA103_: ;
			T101_ = T102_;
			if (!(T101_)) goto LA105_;
			T101_ = ((*(*y_2)._kind_6.sons->data[((NI) 2)]).kind == (*x).kind);
			LA105_: ;
			if (!T101_) goto LA106_;
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), barplusbar___guards_199(x, (*y_2)._kind_6.sons->data[((NI) 2)]));
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), (*y_2)._kind_6.sons->data[((NI) 1)]);
		}
		goto LA46_;
		LA106_: ;
		LA46_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, one__guards_257)(void) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, bardivbar___guards_223)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = copyNode__ast_4324(a);
	{
		if (!((*a).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*a).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15))) goto LA3_;
		(*result)._kind_1.intVal = (NI64)((*a)._kind_1.intVal / (*b)._kind_1.intVal);
	}
	goto LA1_;
	LA3_: ;
	{
		(*result)._kind_2.floatVal = ((NF)((*a)._kind_2.floatVal) / (NF)((*b)._kind_2.floatVal));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMinusOne__guards_1093)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15));
	if (!(T1_)) goto LA2_;
	T1_ = ((*n)._kind_1.intVal == IL64(-1));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__systemZmemory_7(p, ((int) 0), size);
}
static N_NIMCALL(void, Marker_tySequence__UM9auNDRkDG41rKPehyYnig)(void* p, NI op) {
	tySequence__UM9auNDRkDG41rKPehyYnig* a;
	NI T1_;
	a = (tySequence__UM9auNDRkDG41rKPehyYnig*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field0, op);
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, replaceSubTree__guards_1425)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* by) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTree__guards_680(n, x);
		if (!T3_) goto LA4_;
		result = by;
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = hasSubTree__guards_732(n, x);
		if (!T7_) goto LA8_;
		result = shallowCopy__ast_4414(n);
		{
			NI i;
			NI colontmp_;
			NI T11_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T11_ = (NI)0;
			T11_ = safeLen__ast_3148(n);
			colontmp_ = (NI)(T11_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA13;
					i = res;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i]), replaceSubTree__guards_1425((*n)._kind_6.sons->data[i], x, by));
					res += ((NI) 1);
				} LA13: ;
			}
		}
	}
	goto LA1_;
	LA8_: ;
	{
		result = n;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, applyReplacements__guards_1437)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySequence__UM9auNDRkDG41rKPehyYnig* rep) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	{
		tyTuple__Q066krdfdsSnR5DaFMOk9bQ* x;
		NI i;
		NI L;
		NI T2_;
		x = (tyTuple__Q066krdfdsSnR5DaFMOk9bQ*)0;
		i = ((NI) 0);
		T2_ = (rep ? rep->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				x = (&rep->data[i]);
				result = replaceSubTree__guards_1425(result, (*x).Field0, (*x).Field1);
				i += ((NI) 1);
			} LA4: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, pleViaModelRec__guards_1479)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
{	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (((*m).s ? (*m).s->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				fact = (*m).s->data[i];
				{
					NIM_BOOL T7_;
					tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T9_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* y;
					T7_ = (NIM_BOOL)0;
					T7_ = !((fact == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
					if (!(T7_)) goto LA8_;
					T9_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
					T9_ = getMagic__trees_137(fact);
					T7_ = (T9_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 71) || T9_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 74) || T9_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 76) || T9_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 79) || T9_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 82) || T9_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 85) || T9_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 88) || T9_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 117));
					LA8_: ;
					if (!T7_) goto LA10_;
					asgnRef((void**) (&(*m).s->data[i]), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
					x = (*fact)._kind_6.sons->data[((NI) 1)];
					y = (*fact)._kind_6.sons->data[((NI) 2)];
					{
						NIM_BOOL T14_;
						T14_ = (NIM_BOOL)0;
						T14_ = sameTree__guards_680(x, a);
						if (!T14_) goto LA15_;
						{
							tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T19_;
							T19_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
							T19_ = ple__guards_1104((*m), y, b);
							if (!(T19_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2))) goto LA20_;
							result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
							goto BeforeRet_;
						}
						LA20_: ;
						{
							NIM_BOOL T24_;
							NIM_BOOL T25_;
							tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T26_;
							tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T28_;
							T24_ = (NIM_BOOL)0;
							T25_ = (NIM_BOOL)0;
							T26_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
							T26_ = getMagic__trees_137(y);
							T25_ = (T26_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46) || T26_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53) || T26_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51));
							if (!(T25_)) goto LA27_;
							T28_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
							T28_ = getMagic__trees_137(b);
							T25_ = (T28_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46) || T28_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53) || T28_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51));
							LA27_: ;
							T24_ = T25_;
							if (!(T24_)) goto LA29_;
							T24_ = sameTree__guards_680((*y)._kind_6.sons->data[((NI) 1)], (*b)._kind_6.sons->data[((NI) 1)]);
							LA29_: ;
							if (!T24_) goto LA30_;
							{
								tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T34_;
								T34_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
								T34_ = ple__guards_1104((*m), (*b)._kind_6.sons->data[((NI) 2)], (*y)._kind_6.sons->data[((NI) 2)]);
								if (!(T34_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2))) goto LA35_;
								result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
								goto BeforeRet_;
							}
							LA35_: ;
						}
						LA30_: ;
					}
					LA15_: ;
					{
						tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T39_;
						T39_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
						T39_ = ple__guards_1104((*m), a, x);
						if (!(T39_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2))) goto LA40_;
						{
							tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T44_;
							T44_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
							T44_ = ple__guards_1104((*m), y, b);
							if (!(T44_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2))) goto LA45_;
							result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
							goto BeforeRet_;
						}
						LA45_: ;
					}
					LA40_: ;
					result = impliesLe__guards_948(fact, a, b);
					{
						if (!!((result == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 0)))) goto LA49_;
						goto BeforeRet_;
					}
					LA49_: ;
				}
				LA10_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, pleViaModel__guards_1100)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg model, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* aa, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* bb) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	tySequence__UM9auNDRkDG41rKPehyYnig* replacements;
	tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg m;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_2;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b_2;
	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	replacements = NIM_NIL;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** fact;
		NI i;
		NI L;
		NI T2_;
		fact = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
		i = ((NI) 0);
		T2_ = (model.s ? model.s->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				fact = &model.s->data[i];
				{
					NIM_BOOL T7_;
					tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T9_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
					T7_ = (NIM_BOOL)0;
					T7_ = !(((*fact) == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
					if (!(T7_)) goto LA8_;
					T9_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
					T9_ = getMagic__trees_137((*fact));
					T7_ = ((TM__lf9coCS0CxBb8QizHhZZpAA_2[(NU)(T9_)>>3] &(1U<<((NU)(T9_)&7U)))!=0);
					LA8_: ;
					if (!T7_) goto LA10_;
					a = (*(*fact))._kind_6.sons->data[((NI) 1)];
					b = (*(*fact))._kind_6.sons->data[((NI) 2)];
					{
						tyTuple__Q066krdfdsSnR5DaFMOk9bQ T16_;
						NI T17_;
						if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA14_;
						nimZeroMem((void*)(&T16_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
						T16_.Field0 = a;
						T16_.Field1 = b;
						replacements = (tySequence__UM9auNDRkDG41rKPehyYnig*) incrSeqV3((TGenericSeq*)(replacements), (&NTItreplacements__UM9auNDRkDG41rKPehyYnig_));
						T17_ = replacements->Sup.len++;
						asgnRef((void**) (&replacements->data[T17_].Field0), T16_.Field0);
						asgnRef((void**) (&replacements->data[T17_].Field1), T16_.Field1);
					}
					goto LA12_;
					LA14_: ;
					{
						tyTuple__Q066krdfdsSnR5DaFMOk9bQ T19_;
						NI T20_;
						nimZeroMem((void*)(&T19_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
						T19_.Field0 = b;
						T19_.Field1 = a;
						replacements = (tySequence__UM9auNDRkDG41rKPehyYnig*) incrSeqV3((TGenericSeq*)(replacements), (&NTItreplacements__UM9auNDRkDG41rKPehyYnig_));
						T20_ = replacements->Sup.len++;
						asgnRef((void**) (&replacements->data[T20_].Field0), T19_.Field0);
						asgnRef((void**) (&replacements->data[T20_].Field1), T19_.Field1);
					}
					LA12_: ;
				}
				LA10_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
	nimZeroMem((void*)(&m), sizeof(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg));
	a_2 = aa;
	b_2 = bb;
	{
		NI T23_;
		T23_ = (replacements ? replacements->Sup.len : 0);
		if (!(((NI) 0) < T23_)) goto LA24_;
		m.s = NIM_NIL;
		m.g = model.g;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** fact_2;
			NI i_2;
			NI L_2;
			NI T27_;
			fact_2 = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
			i_2 = ((NI) 0);
			T27_ = (model.s ? model.s->Sup.len : 0);
			L_2 = T27_;
			{
				while (1) {
					if (!(i_2 < L_2)) goto LA29;
					fact_2 = &model.s->data[i_2];
					{
						NIM_BOOL T32_;
						tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T34_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T37_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T38_;
						NI T39_;
						T32_ = (NIM_BOOL)0;
						T32_ = !(((*fact_2) == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
						if (!(T32_)) goto LA33_;
						T34_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
						T34_ = getMagic__trees_137((*fact_2));
						T32_ = !(((TM__lf9coCS0CxBb8QizHhZZpAA_2[(NU)(T34_)>>3] &(1U<<((NU)(T34_)&7U)))!=0));
						LA33_: ;
						if (!T32_) goto LA35_;
						T37_ = NIM_NIL;
						T37_ = applyReplacements__guards_1437((*fact_2), replacements);
						T38_ = NIM_NIL;
						T38_ = canon__guards_345(T37_, (&(*m.g).operators));
						m.s = (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)(m.s), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_));
						T39_ = m.s->Sup.len++;
						asgnRef((void**) (&m.s->data[T39_]), T38_);
					}
					LA35_: ;
					i_2 += ((NI) 1);
				} LA29: ;
			}
		}
		a_2 = applyReplacements__guards_1437(aa, replacements);
		b_2 = applyReplacements__guards_1437(bb, replacements);
	}
	goto LA21_;
	LA24_: ;
	{
		genericSeqAssign((&m.s), model.s, (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_));
		m.g = model.g;
		m.beSmart = model.beSmart;
	}
	LA21_: ;
	result = pleViaModelRec__guards_1479((&m), a_2, b_2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, ple__guards_1104)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
{	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isValue__guards_46(a);
		if (!(T3_)) goto LA4_;
		T3_ = isValue__guards_46(b);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = leValue__astalgo_135(a, b);
			if (!T9_) goto LA10_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
		}
		goto LA7_;
		LA10_: ;
		{
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 1);
		}
		LA7_: ;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NIM_BOOL T15_;
		NIM_BOOL T16_;
		T15_ = (NIM_BOOL)0;
		T16_ = (NIM_BOOL)0;
		T16_ = isValue__guards_46(b);
		if (!(T16_)) goto LA17_;
		T16_ = !(((*a).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA17_: ;
		T15_ = T16_;
		if (!(T15_)) goto LA18_;
		T15_ = isOrdinalType__types_299((*a).typ, NIM_FALSE);
		LA18_: ;
		if (!T15_) goto LA19_;
		{
			tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T23_;
			NIM_BOOL T24_;
			T23_ = lastOrd__types_1532(((tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ*) NIM_NIL), (*a).typ);
			T24_ = (NIM_BOOL)0;
			T24_ = lteq___int495056_938(T23_, (*b)._kind_1.intVal);
			if (!T24_) goto LA25_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			goto BeforeRet_;
		}
		LA25_: ;
	}
	LA19_: ;
	{
		NIM_BOOL T29_;
		NIM_BOOL T30_;
		T29_ = (NIM_BOOL)0;
		T30_ = (NIM_BOOL)0;
		T30_ = isValue__guards_46(a);
		if (!(T30_)) goto LA31_;
		T30_ = !(((*b).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA31_: ;
		T29_ = T30_;
		if (!(T29_)) goto LA32_;
		T29_ = isOrdinalType__types_299((*b).typ, NIM_FALSE);
		LA32_: ;
		if (!T29_) goto LA33_;
		{
			tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T37_;
			NIM_BOOL T38_;
			T37_ = firstOrd__types_1406(((tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ*) NIM_NIL), (*b).typ);
			T38_ = (NIM_BOOL)0;
			T38_ = lteq___int495056_945((*a)._kind_1.intVal, T37_);
			if (!T38_) goto LA39_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			goto BeforeRet_;
		}
		LA39_: ;
	}
	LA33_: ;
	{
		NIM_BOOL T43_;
		T43_ = (NIM_BOOL)0;
		T43_ = sameTree__guards_680(a, b);
		if (!T43_) goto LA44_;
		result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
		goto BeforeRet_;
	}
	LA44_: ;
	{
		NIM_BOOL T48_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T49_;
		T48_ = (NIM_BOOL)0;
		T49_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T49_ = getMagic__trees_137(b);
		T48_ = (T49_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 36) || T49_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 37) || T49_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 38) || T49_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 39));
		if (!(T48_)) goto LA50_;
		T48_ = isValue__guards_46(a);
		LA50_: ;
		if (!T48_) goto LA51_;
		{
			if (!((*a)._kind_1.intVal <= IL64(0))) goto LA55_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			goto BeforeRet_;
		}
		LA55_: ;
	}
	LA51_: ;
	{
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T59_;
		T59_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T59_ = getMagic__trees_137(b);
		if (!(T59_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46) || T59_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53) || T59_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51))) goto LA60_;
		{
			NIM_BOOL T64_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T65_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T66_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T68_;
			T64_ = (NIM_BOOL)0;
			T65_ = NIM_NIL;
			T65_ = zero__guards_255();
			T66_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T66_ = ple__guards_1104(m, T65_, (*b)._kind_6.sons->data[((NI) 2)]);
			T64_ = (T66_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			if (!(T64_)) goto LA67_;
			T68_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T68_ = ple__guards_1104(m, a, (*b)._kind_6.sons->data[((NI) 1)]);
			T64_ = (T68_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			LA67_: ;
			if (!T64_) goto LA69_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			goto BeforeRet_;
		}
		LA69_: ;
		{
			NIM_BOOL T73_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T74_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T75_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T77_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T78_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T79_;
			T73_ = (NIM_BOOL)0;
			T74_ = NIM_NIL;
			T74_ = zero__guards_255();
			T75_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T75_ = ple__guards_1104(m, (*b)._kind_6.sons->data[((NI) 2)], T74_);
			T73_ = (T75_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			if (!(T73_)) goto LA76_;
			T77_ = NIM_NIL;
			T77_ = buildCall__guards_191((*m.g).operators.opSub, a, (*b)._kind_6.sons->data[((NI) 2)]);
			T78_ = NIM_NIL;
			T78_ = canon__guards_345(T77_, (&(*m.g).operators));
			T79_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T79_ = ple__guards_1104(m, T78_, (*b)._kind_6.sons->data[((NI) 1)]);
			T73_ = (T79_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			LA76_: ;
			if (!T73_) goto LA80_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			goto BeforeRet_;
		}
		LA80_: ;
	}
	LA60_: ;
	{
		NIM_BOOL T84_;
		NIM_BOOL T85_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T86_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T88_;
		tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T89_;
		tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T91_;
		T84_ = (NIM_BOOL)0;
		T85_ = (NIM_BOOL)0;
		T86_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T86_ = getMagic__trees_137(a);
		T85_ = (T86_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46) || T86_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53) || T86_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51));
		if (!(T85_)) goto LA87_;
		T88_ = NIM_NIL;
		T88_ = zero__guards_255();
		T89_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
		T89_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 2)], T88_);
		T85_ = (T89_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
		LA87_: ;
		T84_ = T85_;
		if (!(T84_)) goto LA90_;
		T91_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
		T91_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 1)], b);
		T84_ = (T91_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
		LA90_: ;
		if (!T84_) goto LA92_;
		result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
		goto BeforeRet_;
	}
	LA92_: ;
	{
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T96_;
		T96_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T96_ = getMagic__trees_137(b);
		if (!(T96_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 48) || T96_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 55))) goto LA97_;
		{
			NIM_BOOL T101_;
			NIM_BOOL T102_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T103_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T105_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T106_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T108_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T109_;
			T101_ = (NIM_BOOL)0;
			T102_ = (NIM_BOOL)0;
			T103_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T103_ = ple__guards_1104(m, a, (*b)._kind_6.sons->data[((NI) 1)]);
			T102_ = (T103_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			if (!(T102_)) goto LA104_;
			T105_ = NIM_NIL;
			T105_ = one__guards_257();
			T106_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T106_ = ple__guards_1104(m, T105_, (*b)._kind_6.sons->data[((NI) 2)]);
			T102_ = (T106_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			LA104_: ;
			T101_ = T102_;
			if (!(T101_)) goto LA107_;
			T108_ = NIM_NIL;
			T108_ = zero__guards_255();
			T109_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T109_ = ple__guards_1104(m, T108_, (*b)._kind_6.sons->data[((NI) 1)]);
			T101_ = (T109_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			LA107_: ;
			if (!T101_) goto LA110_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			goto BeforeRet_;
		}
		LA110_: ;
	}
	LA97_: ;
	{
		NIM_BOOL T114_;
		NIM_BOOL T115_;
		NIM_BOOL T116_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T117_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T120_;
		T114_ = (NIM_BOOL)0;
		T115_ = (NIM_BOOL)0;
		T116_ = (NIM_BOOL)0;
		T117_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T117_ = getMagic__trees_137(a);
		T116_ = (T117_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 48) || T117_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 55));
		if (!(T116_)) goto LA118_;
		T116_ = isValue__guards_46((*a)._kind_6.sons->data[((NI) 2)]);
		LA118_: ;
		T115_ = T116_;
		if (!(T115_)) goto LA119_;
		T120_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T120_ = getMagic__trees_137((*a)._kind_6.sons->data[((NI) 1)]);
		T115_ = (T120_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 49) || T120_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 56));
		LA119_: ;
		T114_ = T115_;
		if (!(T114_)) goto LA121_;
		T114_ = isValue__guards_46((*(*a)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)]);
		LA121_: ;
		if (!T114_) goto LA122_;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T126_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T127_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T128_;
			T126_ = NIM_NIL;
			T126_ = bardivbar___guards_223((*(*a)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)], (*a)._kind_6.sons->data[((NI) 2)]);
			T127_ = NIM_NIL;
			T127_ = buildCall__guards_191((*m.g).operators.opDiv, (*(*a)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)], T126_);
			T128_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T128_ = ple__guards_1104(m, T127_, b);
			if (!(T128_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2))) goto LA129_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			goto BeforeRet_;
		}
		LA129_: ;
	}
	LA122_: ;
	{
		NIM_BOOL T133_;
		NIM_BOOL T134_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T135_;
		NIM_BOOL T137_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T138_;
		NIM_BOOL T140_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		NIM_BOOL T142_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dc;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* y;
		NIM_BOOL T145_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T146_;
		NIM_BOOL T148_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x2;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ec;
		T133_ = (NIM_BOOL)0;
		T134_ = (NIM_BOOL)0;
		T135_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T135_ = getMagic__trees_137(a);
		T134_ = ((someAdd__guards_21[(NU)(T135_)>>3] &(1U<<((NU)(T135_)&7U)))!=0);
		if (!(T134_)) goto LA136_;
		T137_ = (NIM_BOOL)0;
		T138_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T138_ = getMagic__trees_137((*a)._kind_6.sons->data[((NI) 1)]);
		T137_ = ((someMul__guards_23[(NU)(T138_)>>3] &(1U<<((NU)(T138_)&7U)))!=0);
		if (!(T137_)) goto LA139_;
		T140_ = (NIM_BOOL)0;
		x = (*(*a)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)];
		T140_ = NIM_TRUE;
		if (!(T140_)) goto LA141_;
		T142_ = (NIM_BOOL)0;
		dc = (*(*a)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)];
		T142_ = ((*(*(*a)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*(*(*a)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15));
		if (!(T142_)) goto LA143_;
		y = (*a)._kind_6.sons->data[((NI) 2)];
		T142_ = NIM_TRUE;
		LA143_: ;
		T140_ = T142_;
		LA141_: ;
		T137_ = T140_;
		LA139_: ;
		T134_ = T137_;
		LA136_: ;
		T133_ = T134_;
		if (!(T133_)) goto LA144_;
		T145_ = (NIM_BOOL)0;
		T146_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T146_ = getMagic__trees_137(b);
		T145_ = ((someMul__guards_23[(NU)(T146_)>>3] &(1U<<((NU)(T146_)&7U)))!=0);
		if (!(T145_)) goto LA147_;
		T148_ = (NIM_BOOL)0;
		x2 = (*b)._kind_6.sons->data[((NI) 1)];
		T148_ = NIM_TRUE;
		if (!(T148_)) goto LA149_;
		ec = (*b)._kind_6.sons->data[((NI) 2)];
		T148_ = ((*(*b)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*(*b)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15));
		LA149_: ;
		T145_ = T148_;
		LA147_: ;
		T133_ = T145_;
		LA144_: ;
		if (!T133_) goto LA150_;
		{
			NIM_BOOL T154_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ec1;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T157_;
			T154_ = (NIM_BOOL)0;
			T154_ = sameTree__guards_680(x, x2);
			if (!T154_) goto LA155_;
			T157_ = NIM_NIL;
			T157_ = minusOne__guards_259();
			ec1 = buildCall__guards_191((*m.g).operators.opAdd, ec, T157_);
			{
				NIM_BOOL T160_;
				NIM_BOOL T161_;
				NIM_BOOL T162_;
				NIM_BOOL T163_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T164_;
				tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T165_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T167_;
				tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T168_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T170_;
				tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T171_;
				tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T173_;
				tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T175_;
				T160_ = (NIM_BOOL)0;
				T161_ = (NIM_BOOL)0;
				T162_ = (NIM_BOOL)0;
				T163_ = (NIM_BOOL)0;
				T164_ = NIM_NIL;
				T164_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(1));
				T165_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
				T165_ = ple__guards_1104(m, T164_, x);
				T163_ = (T165_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
				if (!(T163_)) goto LA166_;
				T167_ = NIM_NIL;
				T167_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(1));
				T168_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
				T168_ = ple__guards_1104(m, T167_, ec);
				T163_ = (T168_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
				LA166_: ;
				T162_ = T163_;
				if (!(T162_)) goto LA169_;
				T170_ = NIM_NIL;
				T170_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(1));
				T171_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
				T171_ = ple__guards_1104(m, T170_, dc);
				T162_ = (T171_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
				LA169_: ;
				T161_ = T162_;
				if (!(T161_)) goto LA172_;
				T173_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
				T173_ = ple__guards_1104(m, dc, ec1);
				T161_ = (T173_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
				LA172_: ;
				T160_ = T161_;
				if (!(T160_)) goto LA174_;
				T175_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
				T175_ = ple__guards_1104(m, y, x);
				T160_ = (T175_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
				LA174_: ;
				if (!T160_) goto LA176_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
				goto BeforeRet_;
			}
			LA176_: ;
		}
		LA155_: ;
	}
	goto LA131_;
	LA150_: ;
	{
		NIM_BOOL T179_;
		NIM_BOOL T180_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T181_;
		NIM_BOOL T183_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x_2;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dc_2;
		NIM_BOOL T186_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T187_;
		NIM_BOOL T189_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T190_;
		NIM_BOOL T192_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x2_2;
		NIM_BOOL T194_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ec_2;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* y_2;
		T179_ = (NIM_BOOL)0;
		T180_ = (NIM_BOOL)0;
		T181_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T181_ = getMagic__trees_137(a);
		T180_ = ((someMul__guards_23[(NU)(T181_)>>3] &(1U<<((NU)(T181_)&7U)))!=0);
		if (!(T180_)) goto LA182_;
		T183_ = (NIM_BOOL)0;
		x_2 = (*a)._kind_6.sons->data[((NI) 1)];
		T183_ = NIM_TRUE;
		if (!(T183_)) goto LA184_;
		dc_2 = (*a)._kind_6.sons->data[((NI) 2)];
		T183_ = ((*(*a)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*(*a)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15));
		LA184_: ;
		T180_ = T183_;
		LA182_: ;
		T179_ = T180_;
		if (!(T179_)) goto LA185_;
		T186_ = (NIM_BOOL)0;
		T187_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T187_ = getMagic__trees_137(b);
		T186_ = ((someAdd__guards_21[(NU)(T187_)>>3] &(1U<<((NU)(T187_)&7U)))!=0);
		if (!(T186_)) goto LA188_;
		T189_ = (NIM_BOOL)0;
		T190_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T190_ = getMagic__trees_137((*b)._kind_6.sons->data[((NI) 1)]);
		T189_ = ((someMul__guards_23[(NU)(T190_)>>3] &(1U<<((NU)(T190_)&7U)))!=0);
		if (!(T189_)) goto LA191_;
		T192_ = (NIM_BOOL)0;
		x2_2 = (*(*b)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)];
		T192_ = NIM_TRUE;
		if (!(T192_)) goto LA193_;
		T194_ = (NIM_BOOL)0;
		ec_2 = (*(*b)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)];
		T194_ = ((*(*(*b)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*(*(*b)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15));
		if (!(T194_)) goto LA195_;
		y_2 = (*b)._kind_6.sons->data[((NI) 2)];
		T194_ = NIM_TRUE;
		LA195_: ;
		T192_ = T194_;
		LA193_: ;
		T189_ = T192_;
		LA191_: ;
		T186_ = T189_;
		LA188_: ;
		T179_ = T186_;
		LA185_: ;
		if (!T179_) goto LA196_;
		{
			NIM_BOOL T200_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ec1_2;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T203_;
			T200_ = (NIM_BOOL)0;
			T200_ = sameTree__guards_680(x_2, x2_2);
			if (!T200_) goto LA201_;
			T203_ = NIM_NIL;
			T203_ = minusOne__guards_259();
			ec1_2 = buildCall__guards_191((*m.g).operators.opAdd, ec_2, T203_);
			{
				NIM_BOOL T206_;
				NIM_BOOL T207_;
				NIM_BOOL T208_;
				NIM_BOOL T209_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T210_;
				tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T211_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T213_;
				tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T214_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T216_;
				tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T217_;
				tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T219_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T221_;
				tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T222_;
				T206_ = (NIM_BOOL)0;
				T207_ = (NIM_BOOL)0;
				T208_ = (NIM_BOOL)0;
				T209_ = (NIM_BOOL)0;
				T210_ = NIM_NIL;
				T210_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(1));
				T211_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
				T211_ = ple__guards_1104(m, T210_, x_2);
				T209_ = (T211_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
				if (!(T209_)) goto LA212_;
				T213_ = NIM_NIL;
				T213_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(1));
				T214_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
				T214_ = ple__guards_1104(m, T213_, ec_2);
				T209_ = (T214_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
				LA212_: ;
				T208_ = T209_;
				if (!(T208_)) goto LA215_;
				T216_ = NIM_NIL;
				T216_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), IL64(1));
				T217_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
				T217_ = ple__guards_1104(m, T216_, dc_2);
				T208_ = (T217_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
				LA215_: ;
				T207_ = T208_;
				if (!(T207_)) goto LA218_;
				T219_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
				T219_ = ple__guards_1104(m, dc_2, ec1_2);
				T207_ = (T219_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
				LA218_: ;
				T206_ = T207_;
				if (!(T206_)) goto LA220_;
				T221_ = NIM_NIL;
				T221_ = zero__guards_255();
				T222_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
				T222_ = ple__guards_1104(m, y_2, T221_);
				T206_ = (T222_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
				LA220_: ;
				if (!T206_) goto LA223_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
				goto BeforeRet_;
			}
			LA223_: ;
		}
		LA201_: ;
	}
	goto LA131_;
	LA196_: ;
	LA131_: ;
	{
		NIM_BOOL T227_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T228_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T230_;
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T231_;
		T227_ = (NIM_BOOL)0;
		T228_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T228_ = getMagic__trees_137(a);
		T227_ = (T228_ >= ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46) && T228_ <= ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 48) || T228_ >= ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51) && T228_ <= ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 55) || T228_ >= ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 63) && T228_ <= ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 64));
		if (!(T227_)) goto LA229_;
		T230_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T230_ = getMagic__trees_137(a);
		T231_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T231_ = getMagic__trees_137(b);
		T227_ = (T230_ == T231_);
		LA229_: ;
		if (!T227_) goto LA232_;
		{
			NIM_BOOL T236_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T238_;
			T236_ = (NIM_BOOL)0;
			T236_ = sameTree__guards_680((*a)._kind_6.sons->data[((NI) 1)], (*b)._kind_6.sons->data[((NI) 1)]);
			if (!(T236_)) goto LA237_;
			T238_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T238_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 2)], (*b)._kind_6.sons->data[((NI) 2)]);
			T236_ = (T238_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			LA237_: ;
			if (!T236_) goto LA239_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			goto BeforeRet_;
		}
		goto LA234_;
		LA239_: ;
		{
			NIM_BOOL T242_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T244_;
			T242_ = (NIM_BOOL)0;
			T242_ = sameTree__guards_680((*a)._kind_6.sons->data[((NI) 2)], (*b)._kind_6.sons->data[((NI) 2)]);
			if (!(T242_)) goto LA243_;
			T244_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T244_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 1)], (*b)._kind_6.sons->data[((NI) 1)]);
			T242_ = (T244_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			LA243_: ;
			if (!T242_) goto LA245_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			goto BeforeRet_;
		}
		goto LA234_;
		LA245_: ;
		LA234_: ;
	}
	LA232_: ;
	{
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T249_;
		T249_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T249_ = getMagic__trees_137(a);
		if (!(T249_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 49) || T249_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 56))) goto LA250_;
		{
			NIM_BOOL T254_;
			NIM_BOOL T255_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T256_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T257_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T259_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T260_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T262_;
			T254_ = (NIM_BOOL)0;
			T255_ = (NIM_BOOL)0;
			T256_ = NIM_NIL;
			T256_ = one__guards_257();
			T257_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T257_ = ple__guards_1104(m, T256_, (*a)._kind_6.sons->data[((NI) 2)]);
			T255_ = (T257_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			if (!(T255_)) goto LA258_;
			T259_ = NIM_NIL;
			T259_ = zero__guards_255();
			T260_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T260_ = ple__guards_1104(m, T259_, b);
			T255_ = (T260_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			LA258_: ;
			T254_ = T255_;
			if (!(T254_)) goto LA261_;
			T262_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T262_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 1)], b);
			T254_ = (T262_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			LA261_: ;
			if (!T254_) goto LA263_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			goto BeforeRet_;
		}
		LA263_: ;
		{
			tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T267_;
			T267_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
			T267_ = getMagic__trees_137(b);
			if (!(T267_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 49) || T267_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 56))) goto LA268_;
			{
				NIM_BOOL T272_;
				tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T274_;
				T272_ = (NIM_BOOL)0;
				T272_ = sameTree__guards_680((*a)._kind_6.sons->data[((NI) 1)], (*b)._kind_6.sons->data[((NI) 1)]);
				if (!(T272_)) goto LA273_;
				T274_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
				T274_ = ple__guards_1104(m, (*b)._kind_6.sons->data[((NI) 2)], (*a)._kind_6.sons->data[((NI) 2)]);
				T272_ = (T274_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
				LA273_: ;
				if (!T272_) goto LA275_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
				goto BeforeRet_;
			}
			LA275_: ;
		}
		LA268_: ;
		{
			NIM_BOOL T279_;
			NIM_BOOL T280_;
			tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T282_;
			T279_ = (NIM_BOOL)0;
			T280_ = (NIM_BOOL)0;
			T280_ = isValue__guards_46((*a)._kind_6.sons->data[((NI) 2)]);
			if (!(T280_)) goto LA281_;
			T282_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
			T282_ = getMagic__trees_137(b);
			T280_ = (T282_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46) || T282_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53) || T282_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51));
			LA281_: ;
			T279_ = T280_;
			if (!(T279_)) goto LA283_;
			T279_ = isMinusOne__guards_1093((*b)._kind_6.sons->data[((NI) 2)]);
			LA283_: ;
			if (!T279_) goto LA284_;
			{
				NIM_BOOL T288_;
				tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T289_;
				T288_ = (NIM_BOOL)0;
				T289_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
				T289_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 2)], (*a)._kind_6.sons->data[((NI) 1)]);
				T288_ = (T289_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
				if (!(T288_)) goto LA290_;
				T288_ = sameTree__guards_680((*a)._kind_6.sons->data[((NI) 1)], (*b)._kind_6.sons->data[((NI) 1)]);
				LA290_: ;
				if (!T288_) goto LA291_;
				result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
				goto BeforeRet_;
			}
			LA291_: ;
		}
		LA284_: ;
	}
	LA250_: ;
	{
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T295_;
		T295_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T295_ = getMagic__trees_137(b);
		if (!(T295_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 64))) goto LA296_;
		{
			NIM_BOOL T300_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T301_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T303_;
			T300_ = (NIM_BOOL)0;
			T301_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T301_ = ple__guards_1104(m, a, (*b)._kind_6.sons->data[((NI) 1)]);
			T300_ = (T301_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			if (T300_) goto LA302_;
			T303_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T303_ = ple__guards_1104(m, a, (*b)._kind_6.sons->data[((NI) 2)]);
			T300_ = (T303_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			LA302_: ;
			if (!T300_) goto LA304_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			goto BeforeRet_;
		}
		LA304_: ;
	}
	LA296_: ;
	{
		tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T308_;
		T308_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
		T308_ = getMagic__trees_137(a);
		if (!(T308_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 63))) goto LA309_;
		{
			NIM_BOOL T313_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T314_;
			tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T316_;
			T313_ = (NIM_BOOL)0;
			T314_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T314_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 1)], b);
			T313_ = (T314_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			if (T313_) goto LA315_;
			T316_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
			T316_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 2)], b);
			T313_ = (T316_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2));
			LA315_: ;
			if (!T313_) goto LA317_;
			result = ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2);
			goto BeforeRet_;
		}
		LA317_: ;
	}
	LA309_: ;
	result = pleViaModel__guards_1100(m, a, b);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg, proveLe__guards_1628)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	result = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
	T1_ = NIM_NIL;
	T1_ = buildCall__guards_191((*m.g).operators.opLe, a, b);
	x = canon__guards_345(T1_, (&(*m.g).operators));
	result = ple__guards_1104(m, (*x)._kind_6.sons->data[((NI) 1)], (*x)._kind_6.sons->data[((NI) 2)]);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* y;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T7_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T8_;
		tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T9_;
		if (!(result == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 0))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = one__guards_257();
		T7_ = NIM_NIL;
		T7_ = buildCall__guards_191((*m.g).operators.opAdd, b, T6_);
		T8_ = NIM_NIL;
		T8_ = buildCall__guards_191((*m.g).operators.opLe, T7_, a);
		y = canon__guards_345(T8_, (&(*m.g).operators));
		T9_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
		T9_ = ple__guards_1104(m, (*y)._kind_6.sons->data[((NI) 1)], (*y)._kind_6.sons->data[((NI) 2)]);
		result = tilde___guards_990(T9_);
	}
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, lowBound__guards_261)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T1_;
	result = NIM_NIL;
	T1_ = firstOrd__types_1406(conf, (*x).typ);
	result = newIntNode__ast_3715(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), T1_);
	(*result).info = (*x).info;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, highBound__guards_265)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
	result = NIM_NIL;
	typ = skipTypes__ast_3723((*x).typ, TM__lf9coCS0CxBb8QizHhZZpAA_5);
	{
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T5_;
		if (!((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16))) goto LA3_;
		T5_ = lastOrd__types_1532(conf, typ);
		result = newIntNode__ast_3715(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NI T13_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24));
		if (!(T8_)) goto LA9_;
		T8_ = ((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
		LA9_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA10_;
		T7_ = ((*(*x)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10));
		LA10_: ;
		if (!T7_) goto LA11_;
		T13_ = (NI)0;
		T13_ = len__ast_3155((*(*x)._kind_4.sym).ast);
		result = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), ((NI64) ((NI)(T13_ - ((NI) 1)))));
	}
	goto LA1_;
	LA11_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T15_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T16_;
		T15_ = NIM_NIL;
		T15_ = buildCall__guards_185((*o).opLen, x);
		T16_ = NIM_NIL;
		T16_ = minusOne__guards_259();
		result = buildCall__guards_191((*o).opAdd, T15_, T16_);
	}
	LA1_: ;
	(*result).info = (*x).info;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildProperFieldCheck__guards_1783)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* access, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* check, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		if (!((*(*check)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39))) goto LA3_;
		result = copyTree__ast_4432(check);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
			if (!((*access).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45))) goto LA7_;
			a = copyTree__ast_4432(access);
			asgnRef((void**) (&(*a)._kind_6.sons->data[((NI) 1)]), (*check)._kind_6.sons->data[((NI) 2)]);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), a);
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T10_;
		T10_ = NIM_NIL;
		T10_ = buildProperFieldCheck__guards_1783(access, (*check)._kind_6.sons->data[((NI) 1)], o);
		result = neg__guards_126(T10_, o);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkFieldAccess__guards_1809)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* check;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				check = buildProperFieldCheck__guards_1783((*n)._kind_6.sons->data[((NI) 0)], (*n)._kind_6.sons->data[i], (&(*m.g).operators));
				{
					NIM_BOOL T6_;
					tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg T8_;
					NimStringDesc* T11_;
					T6_ = (NIM_BOOL)0;
					T6_ = !((check == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
					if (!(T6_)) goto LA7_;
					T8_ = (tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg)0;
					T8_ = doesImply__guards_1022(m, check);
					T6_ = !((T8_ == ((tyEnum_TImplication__IpKb3A5pjRWQdH9cJ0v9cKgg) 2)));
					LA7_: ;
					if (!T6_) goto LA9_;
					T11_ = NIM_NIL;
					T11_ = renderTree__renderer_46((*n)._kind_6.sons->data[((NI) 0)], 0);
					liMessage__msgs_1128(conf, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 43), T11_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__lf9coCS0CxBb8QizHhZZpAA_8, NIM_FALSE);
					goto LA1;
				}
				LA9_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	} LA1: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addAsgnFact__guards_1739)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* key, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* value) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact;
	NI T1_;
	fact = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*key).info, ((NI) 3));
	asgnRef((void**) (&(*fact)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704((*(*m).g).operators.opEq));
	asgnRef((void**) (&(*fact)._kind_6.sons->data[((NI) 1)]), key);
	asgnRef((void**) (&(*fact)._kind_6.sons->data[((NI) 2)]), value);
	unsureAsgnRef((void**) (&(*m).s), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
	T1_ = (*m).s->Sup.len++;
	asgnRef((void**) (&(*m).s->data[T1_]), fact);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, interestingCaseExpr__guards_114)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* m) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = isLetLocation__guards_94(m, NIM_TRUE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, settype__guards_1656)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen;
	result = NIM_NIL;
	result = newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19), TM__lf9coCS0CxBb8QizHhZZpAA_10, (*(*n).typ).owner);
	idgen = NIM_NIL;
	addSonSkipIntLit__magicsys_136(result, (*n).typ, idgen);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildOf__guards_1660)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* loc, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s;
	NI T1_;
	result = NIM_NIL;
	T1_ = (NI)0;
	T1_ = len__ast_3155(it);
	s = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39), (*it).info, (NI)(T1_ - ((NI) 1)));
	asgnRef((void**) (&(*s).typ), settype__guards_1656(loc));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = len__ast_3155(it);
		colontmp_ = (NI)(T3_ - ((NI) 1));
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA5;
				i = i_2;
				asgnRef((void**) (&(*s)._kind_6.sons->data[i]), (*it)._kind_6.sons->data[i]);
				i_2 += ((NI) 1);
			} LA5: ;
		}
	}
	result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*it).info, ((NI) 3));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704((*o).opContains));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), s);
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), loc);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildElse__guards_1682)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = settype__guards_1656((*n)._kind_6.sons->data[((NI) 0)]);
	s = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39), (*n).info, T1_);
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		colontmp_ = (NI)(T3_ - ((NI) 1));
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch;
				if (!(i_2 < colontmp_)) goto LA5;
				i = i_2;
				branch = (*n)._kind_6.sons->data[i];
				{
					if (!((*branch).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85))) goto LA8_;
					{
						NI j;
						NI colontmp__2;
						NI T11_;
						NI i_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T11_ = (NI)0;
						T11_ = len__ast_3155(branch);
						colontmp__2 = (NI)(T11_ - ((NI) 1));
						i_3 = ((NI) 0);
						{
							while (1) {
								if (!(i_3 < colontmp__2)) goto LA13;
								j = i_3;
								add__ast_4798(s, (*branch)._kind_6.sons->data[j]);
								i_3 += ((NI) 1);
							} LA13: ;
						}
					}
				}
				LA8_: ;
				i_2 += ((NI) 1);
			} LA5: ;
		}
	}
	result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, ((NI) 3));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704((*o).opContains));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), s);
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), (*n)._kind_6.sons->data[((NI) 0)]);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addCaseBranchFacts__guards_1764)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI i) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch;
	branch = (*n)._kind_6.sons->data[i];
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T5_;
		NI T6_;
		if (!((*branch).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = buildOf__guards_1660(branch, (*n)._kind_6.sons->data[((NI) 0)], (&(*(*m).g).operators));
		unsureAsgnRef((void**) (&(*m).s), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
		T6_ = (*m).s->Sup.len++;
		asgnRef((void**) (&(*m).s->data[T6_]), T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T8_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T9_;
		NI T10_;
		T8_ = NIM_NIL;
		T8_ = buildElse__guards_1682(n, (&(*(*m).g).operators));
		T9_ = NIM_NIL;
		T9_ = neg__guards_126(T8_, (&(*(*m).g).operators));
		unsureAsgnRef((void**) (&(*m).s), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
		T10_ = (*m).s->Sup.len++;
		asgnRef((void**) (&(*m).s->data[T10_]), T9_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, usefulFact__guards_499)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T1_;
	result = NIM_NIL;
	T1_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
	T1_ = getMagic__trees_137(n);
	switch (T1_) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 70):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 73):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 78):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 81):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 84):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 87):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 91) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 92):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 116):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 119):
	{
		{
			NIM_BOOL T5_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
			NIM_BOOL T8_;
			T5_ = (NIM_BOOL)0;
			T6_ = NIM_NIL;
			T6_ = skipConv__types_3661((*n)._kind_6.sons->data[((NI) 2)]);
			T5_ = ((*T6_).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23));
			if (!(T5_)) goto LA7_;
			T8_ = (NIM_BOOL)0;
			T8_ = isLetLocation__guards_94((*n)._kind_6.sons->data[((NI) 1)], NIM_FALSE);
			if (T8_) goto LA9_;
			T8_ = isVar__guards_75((*n)._kind_6.sons->data[((NI) 1)]);
			LA9_: ;
			T5_ = T8_;
			LA7_: ;
			if (!T5_) goto LA10_;
			result = buildCall__guards_185((*o).opIsNil, (*n)._kind_6.sons->data[((NI) 1)]);
		}
		goto LA3_;
		LA10_: ;
		{
			{
				NIM_BOOL T15_;
				T15_ = (NIM_BOOL)0;
				T15_ = isLetLocation__guards_94((*n)._kind_6.sons->data[((NI) 1)], NIM_TRUE);
				if (T15_) goto LA16_;
				T15_ = isLetLocation__guards_94((*n)._kind_6.sons->data[((NI) 2)], NIM_TRUE);
				LA16_: ;
				if (!T15_) goto LA17_;
				result = n;
			}
			goto LA13_;
			LA17_: ;
			{
				NIM_BOOL T20_;
				tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T21_;
				tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T23_;
				T20_ = (NIM_BOOL)0;
				T21_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
				T21_ = getMagic__trees_137((*n)._kind_6.sons->data[((NI) 1)]);
				T20_ = (T21_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 36) || T21_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 37) || T21_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 38) || T21_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 39));
				if (T20_) goto LA22_;
				T23_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
				T23_ = getMagic__trees_137((*n)._kind_6.sons->data[((NI) 2)]);
				T20_ = (T23_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 36) || T23_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 37) || T23_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 38) || T23_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 39));
				LA22_: ;
				if (!T20_) goto LA24_;
				result = n;
			}
			goto LA13_;
			LA24_: ;
			LA13_: ;
		}
		LA3_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 71) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 72):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 74) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 77):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 79) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 80):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 82) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 83):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 85) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 86):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 88) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 89):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 117) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 118):
	{
		{
			NIM_BOOL T29_;
			T29_ = (NIM_BOOL)0;
			T29_ = isLetLocation__guards_94((*n)._kind_6.sons->data[((NI) 1)], NIM_TRUE);
			if (T29_) goto LA30_;
			T29_ = isLetLocation__guards_94((*n)._kind_6.sons->data[((NI) 2)], NIM_TRUE);
			LA30_: ;
			if (!T29_) goto LA31_;
			result = n;
		}
		goto LA27_;
		LA31_: ;
		{
			NIM_BOOL T34_;
			tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T35_;
			tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T37_;
			T34_ = (NIM_BOOL)0;
			T35_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
			T35_ = getMagic__trees_137((*n)._kind_6.sons->data[((NI) 1)]);
			T34_ = (T35_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 36) || T35_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 37) || T35_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 38) || T35_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 39));
			if (T34_) goto LA36_;
			T37_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
			T37_ = getMagic__trees_137((*n)._kind_6.sons->data[((NI) 2)]);
			T34_ = (T37_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 36) || T37_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 37) || T37_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 38) || T37_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 39));
			LA36_: ;
			if (!T34_) goto LA38_;
			result = n;
		}
		goto LA27_;
		LA38_: ;
		LA27_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 143):
	{
		{
			NIM_BOOL T43_;
			T43_ = (NIM_BOOL)0;
			T43_ = isLetLocation__guards_94((*n)._kind_6.sons->data[((NI) 1)], NIM_FALSE);
			if (T43_) goto LA44_;
			T43_ = isVar__guards_75((*n)._kind_6.sons->data[((NI) 1)]);
			LA44_: ;
			if (!T43_) goto LA45_;
			result = n;
		}
		LA45_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 134):
	{
		{
			NIM_BOOL T50_;
			T50_ = (NIM_BOOL)0;
			T50_ = isLetLocation__guards_94((*n)._kind_6.sons->data[((NI) 1)], NIM_TRUE);
			if (!T50_) goto LA51_;
			result = n;
		}
		LA51_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 109):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
		a = usefulFact__guards_499((*n)._kind_6.sons->data[((NI) 1)], o);
		b = usefulFact__guards_499((*n)._kind_6.sons->data[((NI) 2)], o);
		{
			NIM_BOOL T56_;
			T56_ = (NIM_BOOL)0;
			T56_ = !((a == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
			if (!(T56_)) goto LA57_;
			T56_ = !((b == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
			LA57_: ;
			if (!T56_) goto LA58_;
			result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, ((NI) 3));
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704((*o).opAnd));
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), a);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), b);
		}
		goto LA54_;
		LA58_: ;
		{
			if (!!((a == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA61_;
			result = a;
		}
		goto LA54_;
		LA61_: ;
		{
			if (!!((b == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA64_;
			result = b;
		}
		goto LA54_;
		LA64_: ;
		LA54_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_2;
		a_2 = usefulFact__guards_499((*n)._kind_6.sons->data[((NI) 1)], o);
		{
			if (!!((a_2 == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA69_;
			result = neg__guards_126(a_2, o);
		}
		LA69_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 110):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_3;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T72_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b_2;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T73_;
		T72_ = NIM_NIL;
		T72_ = usefulFact__guards_499((*n)._kind_6.sons->data[((NI) 1)], o);
		a_3 = neg__guards_126(T72_, o);
		T73_ = NIM_NIL;
		T73_ = usefulFact__guards_499((*n)._kind_6.sons->data[((NI) 2)], o);
		b_2 = neg__guards_126(T73_, o);
		{
			NIM_BOOL T76_;
			T76_ = (NIM_BOOL)0;
			T76_ = !((a_3 == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
			if (!(T76_)) goto LA77_;
			T76_ = !((b_2 == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
			LA77_: ;
			if (!T76_) goto LA78_;
			result = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, ((NI) 3));
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704((*o).opAnd));
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), a_3);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), b_2);
			result = neg__guards_126(result, o);
		}
		LA78_: ;
	}
	break;
	default:
	{
		{
			NIM_BOOL T83_;
			T83_ = (NIM_BOOL)0;
			T83_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
			if (!(T83_)) goto LA84_;
			T83_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9));
			LA84_: ;
			if (!T83_) goto LA85_;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T89_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T92_;
				T89_ = NIM_NIL;
				T89_ = astdef__ast_3462((*n)._kind_4.sym);
				if (!!((T89_ == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA90_;
				T92_ = NIM_NIL;
				T92_ = astdef__ast_3462((*n)._kind_4.sym);
				result = usefulFact__guards_499(T92_, o);
			}
			LA90_: ;
		}
		goto LA81_;
		LA85_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T96_;
			if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA94_;
			T96_ = NIM_NIL;
			T96_ = lastSon__ast_4833(n);
			result = usefulFact__guards_499(T96_, o);
		}
		goto LA81_;
		LA94_: ;
		LA81_: ;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addFact__guards_609)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nn) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
	n = usefulFact__guards_499(nn, (&(*(*m).g).operators));
	{
		if (!!((n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA3_;
		{
			NI T9_;
			if (!!((*m).beSmart)) goto LA7_;
			unsureAsgnRef((void**) (&(*m).s), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
			T9_ = (*m).s->Sup.len++;
			asgnRef((void**) (&(*m).s->data[T9_]), n);
		}
		goto LA5_;
		LA7_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c;
			c = canon__guards_345(n, (&(*(*m).g).operators));
			{
				tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T13_;
				T13_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
				T13_ = getMagic__trees_137(c);
				if (!(T13_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 109))) goto LA14_;
				addFact__guards_609(m, (*c)._kind_6.sons->data[((NI) 1)]);
				addFact__guards_609(m, (*c)._kind_6.sons->data[((NI) 2)]);
			}
			goto LA11_;
			LA14_: ;
			{
				NI T17_;
				unsureAsgnRef((void**) (&(*m).s), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
				T17_ = (*m).s->Sup.len++;
				asgnRef((void**) (&(*m).s->data[T17_]), c);
			}
			LA11_: ;
		}
		LA5_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addFactNeg__guards_632)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
	n_2 = neg__guards_126(n, (&(*(*m).g).operators));
	{
		if (!!((n_2 == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA3_;
		addFact__guards_609(m, n_2);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addFactLe__guards_1643)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	NI T3_;
	T1_ = NIM_NIL;
	T1_ = buildCall__guards_191((*(*m).g).operators.opLe, a, b);
	T2_ = NIM_NIL;
	T2_ = canon__guards_345(T1_, (&(*(*m).g).operators));
	unsureAsgnRef((void**) (&(*m).s), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
	T3_ = (*m).s->Sup.len++;
	asgnRef((void**) (&(*m).s->data[T3_]), T2_);
}
N_LIB_PRIVATE N_NIMCALL(void, addFactLt__guards_1651)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* bb;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	T1_ = NIM_NIL;
	T1_ = minusOne__guards_259();
	bb = buildCall__guards_191((*(*m).g).operators.opAdd, b, T1_);
	addFactLe__guards_1643(m, a, bb);
}
N_LIB_PRIVATE N_NIMCALL(void, addDiscriminantFact__guards_1726)(tyObject_TModel__tS0Q7dyUUn29b4OkYBwt3pg* m, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fact;
	NI T1_;
	fact = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info, ((NI) 3));
	asgnRef((void**) (&(*fact)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704((*(*m).g).operators.opEq));
	asgnRef((void**) (&(*fact)._kind_6.sons->data[((NI) 1)]), (*n)._kind_6.sons->data[((NI) 0)]);
	asgnRef((void**) (&(*fact)._kind_6.sons->data[((NI) 2)]), (*n)._kind_6.sons->data[((NI) 1)]);
	unsureAsgnRef((void**) (&(*m).s), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
	T1_ = (*m).s->Sup.len++;
	asgnRef((void**) (&(*m).s->data[T1_]), fact);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, buildAdd__guards_494)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, NI64 b, tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg* o) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		if (!!((b == IL64(0)))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), b);
		T1_ = buildCall__guards_191((*o).opAdd, a, T6_);
	}
	goto LA2_;
	LA4_: ;
	{
		T1_ = a;
	}
	LA2_: ;
	result = canon__guards_345(T1_, o);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, simpleSlice__guards_1048)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	NI64 result;
	result = (NI64)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTree__guards_680(a, b);
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag T9_;
			T8_ = (NIM_BOOL)0;
			T9_ = (tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag)0;
			T9_ = getMagic__trees_137(a);
			T8_ = (T9_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46) || T9_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53) || T9_ == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51));
			if (!(T8_)) goto LA10_;
			T8_ = ((*(*a)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*(*a)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15));
			LA10_: ;
			if (!T8_) goto LA11_;
			result = (*(*a)._kind_6.sons->data[((NI) 2)])._kind_1.intVal;
		}
		goto LA6_;
		LA11_: ;
		{
			result = IL64(0);
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		result = IL64(-1);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, atmguardsdotnim_DatInit000)(void) {
static TNimNode* TM__lf9coCS0CxBb8QizHhZZpAA_7_2[2];
static TNimNode TM__lf9coCS0CxBb8QizHhZZpAA_0[3];
NTItupleLa58pnode_b58pnodeT__Q066krdfdsSnR5DaFMOk9bQ_.size = sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ);
NTItupleLa58pnode_b58pnodeT__Q066krdfdsSnR5DaFMOk9bQ_.align = NIM_ALIGNOF(tyTuple__Q066krdfdsSnR5DaFMOk9bQ);
NTItupleLa58pnode_b58pnodeT__Q066krdfdsSnR5DaFMOk9bQ_.kind = 18;
NTItupleLa58pnode_b58pnodeT__Q066krdfdsSnR5DaFMOk9bQ_.base = 0;
NTItupleLa58pnode_b58pnodeT__Q066krdfdsSnR5DaFMOk9bQ_.flags = 2;
TM__lf9coCS0CxBb8QizHhZZpAA_7_2[0] = &TM__lf9coCS0CxBb8QizHhZZpAA_0[1];
TM__lf9coCS0CxBb8QizHhZZpAA_0[1].kind = 1;
TM__lf9coCS0CxBb8QizHhZZpAA_0[1].offset = offsetof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ, Field0);
TM__lf9coCS0CxBb8QizHhZZpAA_0[1].typ = (&NTIpnode__PzkjRjFZybhcKJ9c8COQy5g_);
TM__lf9coCS0CxBb8QizHhZZpAA_0[1].name = "Field0";
TM__lf9coCS0CxBb8QizHhZZpAA_7_2[1] = &TM__lf9coCS0CxBb8QizHhZZpAA_0[2];
TM__lf9coCS0CxBb8QizHhZZpAA_0[2].kind = 1;
TM__lf9coCS0CxBb8QizHhZZpAA_0[2].offset = offsetof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ, Field1);
TM__lf9coCS0CxBb8QizHhZZpAA_0[2].typ = (&NTIpnode__PzkjRjFZybhcKJ9c8COQy5g_);
TM__lf9coCS0CxBb8QizHhZZpAA_0[2].name = "Field1";
TM__lf9coCS0CxBb8QizHhZZpAA_0[0].len = 2; TM__lf9coCS0CxBb8QizHhZZpAA_0[0].kind = 2; TM__lf9coCS0CxBb8QizHhZZpAA_0[0].sons = &TM__lf9coCS0CxBb8QizHhZZpAA_7_2[0];
NTItupleLa58pnode_b58pnodeT__Q066krdfdsSnR5DaFMOk9bQ_.node = &TM__lf9coCS0CxBb8QizHhZZpAA_0[0];
NTItreplacements__UM9auNDRkDG41rKPehyYnig_.size = sizeof(tySequence__UM9auNDRkDG41rKPehyYnig*);
NTItreplacements__UM9auNDRkDG41rKPehyYnig_.align = NIM_ALIGNOF(tySequence__UM9auNDRkDG41rKPehyYnig*);
NTItreplacements__UM9auNDRkDG41rKPehyYnig_.kind = 24;
NTItreplacements__UM9auNDRkDG41rKPehyYnig_.base = (&NTItupleLa58pnode_b58pnodeT__Q066krdfdsSnR5DaFMOk9bQ_);
NTItreplacements__UM9auNDRkDG41rKPehyYnig_.flags = 2;
NTItreplacements__UM9auNDRkDG41rKPehyYnig_.marker = Marker_tySequence__UM9auNDRkDG41rKPehyYnig;
}

