/* Generated by Nim Compiler v1.6.10 */
#define NIM_INTBITS 32

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA;
typedef struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA;
typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
typedef struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ tySequence__4mZLwkxT8rbt9bf3wXrXYNQ;
typedef struct tySequence__rQHmYk1HzcwNxKBymIFHpA tySequence__rQHmYk1HzcwNxKBymIFHpA;
typedef struct tySequence__XMM60DtBsc6xYsIpNANkrA tySequence__XMM60DtBsc6xYsIpNANkrA;
typedef struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw;
typedef struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg;
typedef struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg;
typedef struct tySequence__mWRMiYLthG9coLjkbElCxkw tySequence__mWRMiYLthG9coLjkbElCxkw;
typedef struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyObject_Table__iowAVDkco3qpbEH0z8OmkQ;
typedef struct tySequence__bTDCDwD2P7TodzbAefLcSw tySequence__bTDCDwD2P7TodzbAefLcSw;
typedef struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w;
typedef struct tySequence__3MPVXAHA08SszBrU4ffqEg tySequence__3MPVXAHA08SszBrU4ffqEg;
typedef struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw tyObject_Table__KcymdZjUsmGSK8BxmvoJgw;
typedef struct tySequence__YCf5zJHm4JI06qpmKwPUWg tySequence__YCf5zJHm4JI06qpmKwPUWg;
typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ tySequence__eHqUwlHGGaPw0TDPDeL79cQ;
typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg;
typedef struct tySequence__FdVaeFbf9a05PXbYlgHL9ahw tySequence__FdVaeFbf9a05PXbYlgHL9ahw;
typedef struct tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw;
typedef struct tySequence__1XdfDDoNvZorxGg2DV0QnA tySequence__1XdfDDoNvZorxGg2DV0QnA;
typedef struct tySequence__s9byh6WFJ16lPMcmqdaMTHA tySequence__s9byh6WFJ16lPMcmqdaMTHA;
typedef struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw tyObject_Table__Ue6w4c82v7gc7t2qntTbAw;
typedef struct tySequence__1U9bG8RcAedEeYkQLZjVFKA tySequence__1U9bG8RcAedEeYkQLZjVFKA;
typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
typedef struct tySequence__MAQKEADohlpnXTModtugbQ tySequence__MAQKEADohlpnXTModtugbQ;
typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
typedef struct tySequence__nw2ozGiJbajPUc4Cj4vzYw tySequence__nw2ozGiJbajPUc4Cj4vzYw;
typedef struct tyTuple__EFqgCXJ4d8PgqOdFJmldsQ tyTuple__EFqgCXJ4d8PgqOdFJmldsQ;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA;
typedef struct tySequence__vv5mGmK03BCr5e3LTZA5Hw tySequence__vv5mGmK03BCr5e3LTZA5Hw;
typedef struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w;
typedef struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ;
typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw;
typedef struct tySequence__29bS0n2QNyO1R7e0qMMOvLA tySequence__29bS0n2QNyO1R7e0qMMOvLA;
typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
typedef struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg tySequence__REuPuHuSlOkZ0Q5oqzDrQg;
typedef struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA tySequence__I9aQmO9asXXWJ58UI9c8BCSzA;
typedef struct tySequence__NyaOkf8ZwxP6rkRF5TOkew tySequence__NyaOkf8ZwxP6rkRF5TOkew;
typedef struct tySequence__L9bOt8CaTEmIjgtuZvp6syg tySequence__L9bOt8CaTEmIjgtuZvp6syg;
typedef struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ tySequence__im8UB2GsZvUaQ4a1wKGWhQ;
typedef struct tySequence__xxnXDLpoqBo8zJzP9b1073g tySequence__xxnXDLpoqBo8zJzP9b1073g;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__DfmUmNgVGnYaiV1I6227tw tySequence__DfmUmNgVGnYaiV1I6227tw;
typedef struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA tySequence__t8Uv4lEJ4lkuECvP9c6JMhA;
typedef struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg;
typedef struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
typedef struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g tyObject_Table__CE4eiu6FavV1vmUiTXQ70g;
typedef struct tySequence__9bT7o0CflHuiE4VhmtqBPCw tySequence__9bT7o0CflHuiE4VhmtqBPCw;
typedef struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw;
typedef struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q tyObject_Table__TRm6MPqklA8EYBmBMY117Q;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
typedef struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ;
typedef struct tySequence__O5RcspOP32YJ4YtU5ppxxA tySequence__O5RcspOP32YJ4YtU5ppxxA;
typedef struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg;
typedef struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ;
typedef struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ;
typedef struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg tyTuple__o67sDX0wYbEuhI9cJYAbDtg;
typedef struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA;
typedef struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg;
typedef struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA tySequence__ipEvhpHAmm8ZCn9bZAOdNYA;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q tyTuple__9aNnDWBFMF44sfFinBpMT4Q;
typedef struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg;
typedef struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g tySequence__159bHWBGAOOs6U7OZ9cQlO0g;
typedef struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ tyTuple__VrD6plbUKJjYKM0lCr3hGQ;
typedef struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA;
typedef struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA tyTuple__1ZbjBgxAbnye0IFMZ6w4OA;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__OvnOYJpJ1WQyVNnkDTodqw tyTuple__OvnOYJpJ1WQyVNnkDTodqw;
typedef struct tySequence__4fyguUt3ZraOklN6h0Tjkw tySequence__4fyguUt3ZraOklN6h0Tjkw;
typedef struct tyObject_SymInfoPair__mXtIz9c3umFizQ9bw79aldIEw tyObject_SymInfoPair__mXtIz9c3umFizQ9bw79aldIEw;
typedef struct tyTuple__tz45FTGkfpDYgeKnoipqHQ tyTuple__tz45FTGkfpDYgeKnoipqHQ;
typedef struct tySequence__i7xpiUsxyv6cQ1xK3JbcGQ tySequence__i7xpiUsxyv6cQ1xK3JbcGQ;
typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A;
typedef struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ tyTuple__3i6hlQmqrn6m7tuVN8FHjQ;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
typedef struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ;
typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
typedef struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow;
typedef struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg;
typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
typedef struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA tyTuple__Q7r9caOmeWqQGZCIBHhGRUA;
typedef struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg;
typedef struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw tyTuple__XyJ8LOAZzVVXSsmt09b8uWw;
typedef struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA;
typedef struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw tySequence__vC9cvg0R8tfBaOXXi3sfMzw;
typedef struct tyTuple__9aoobCDZB4x41HJSOmh0mwA tyTuple__9aoobCDZB4x41HJSOmh0mwA;
typedef struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA tyTuple__g0Q6Qx15nK53ce9aLo7YyrA;
typedef struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw;
typedef struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw;
typedef struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA;
typedef struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ;
typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
} _kind_4;
struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
};
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
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__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
NI32 module;
NI32 item;
};
struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
  RootObj Sup;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
  tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_1;
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
NI bitsize;
NI alignment;
} _kind_2;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU8 tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg[35];
struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
NI id;
NimStringDesc* s;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
NI h;
};
struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
tyArray__0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
struct tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q {
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* s;
tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g;
NIM_BOOL beSmart;
};
typedef NU8 tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA;
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA {
tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
};
struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opNot;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opContains;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLe;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLt;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAnd;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opOr;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opIsNil;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opEq;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAdd;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opSub;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opMul;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opDiv;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLen;
};
typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
  tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
};
struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw {
tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg* data;
NI counter;
};
struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg {
tySequence__mWRMiYLthG9coLjkbElCxkw* data;
NI counter;
};
struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ {
tySequence__bTDCDwD2P7TodzbAefLcSw* data;
NI counter;
};
typedef tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ[5];
struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w {
tySequence__3MPVXAHA08SszBrU4ffqEg* data;
NI counter;
};
struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw {
tySequence__YCf5zJHm4JI06qpmKwPUWg* data;
NI counter;
};
struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ {
tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
};
struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* data;
};
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
NI elems;
NI counter;
NI max;
tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
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__eJdcv3ds6oTpWvWwTDiw9bg {
tySequence__FdVaeFbf9a05PXbYlgHL9ahw* data;
NI counter;
};
struct tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw {
tySequence__1XdfDDoNvZorxGg2DV0QnA* data;
NI counter;
};
typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__9bjuenwQUcqO3lbmS2wX7uA[65];
struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw {
tySequence__1U9bG8RcAedEeYkQLZjVFKA* data;
NI counter;
};
struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, tyProc__VHDwJFdIqpwtpUGuxiXUwg) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__mjUN9alLJ31lnSKkUsuyWMw) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
tySequence__23SMqauuRsbDANhthj9bWlA* data;
NI counter;
};
struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
NI counter;
};
typedef N_NIMCALL_PTR(void, tyProc__TjycsqkDBjsxd4da6KYTng) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
typedef N_NIMCALL_PTR(void, tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__J7Jq15ZScfKLqcLx8sEz9cA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual);
struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ {
tySequence__4mZLwkxT8rbt9bf3wXrXYNQ* ifaces;
tySequence__rQHmYk1HzcwNxKBymIFHpA* packed_0;
tySequence__XMM60DtBsc6xYsIpNANkrA* encoders;
tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw typeInstCache;
tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg procInstCache;
tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ attachedOps;
tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w methodsPerType;
tyObject_Table__KcymdZjUsmGSK8BxmvoJgw enumToStringProcs;
tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA emittedTypeInfo;
tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ startupPackedConfig;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageSyms;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA deps;
tyObject_Table__fdKWDDO1P17zvuQPReVgRA importDeps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ inclToMod;
tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
RootObj* vm;
tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* usageSym;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* owners;
tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg suggestSymbols;
tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw suggestErrors;
tySequence__s9byh6WFJ16lPMcmqdaMTHA* methods;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* systemModule;
tyArray__9bjuenwQUcqO3lbmS2wX7uA sysTypes;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA compilerprocs;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA exposed;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageTypes;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* emptyNode;
tyObject_Table__Ue6w4c82v7gc7t2qntTbAw canonTypes;
tyObject_Table__G1v8c16HePOldLeucwe05Q symBodyHashes;
tyProc__VHDwJFdIqpwtpUGuxiXUwg importModuleCallback;
tyProc__mjUN9alLJ31lnSKkUsuyWMw includeFileCallback;
tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
tyObject_Table__NttoEzoiq5CiphZe81oadg cacheCounters;
tyObject_Table__nagDFX4QHx0s6Fvma9blmSg cacheTables;
tySequence__MAQKEADohlpnXTModtugbQ* passes;
tyProc__TjycsqkDBjsxd4da6KYTng onDefinition;
tyProc__TjycsqkDBjsxd4da6KYTng onDefinitionResolveForward;
tyProc__TjycsqkDBjsxd4da6KYTng onUsage;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* globalDestructors;
tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ strongSemCheck;
tyProc__J7Jq15ZScfKLqcLx8sEz9cA compatibleProps;
tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA operators;
};
struct tyTuple__EFqgCXJ4d8PgqOdFJmldsQ {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field0;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field1;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef NU16 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
tySequence__vv5mGmK03BCr5e3LTZA5Hw* converters;
tySequence__vv5mGmK03BCr5e3LTZA5Hw* patterns;
tySequence__vv5mGmK03BCr5e3LTZA5Hw* pureEnums;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interf;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interfHidden;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* uniqueName;
};
typedef NU8 tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q;
struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw {
tySequence__29bS0n2QNyO1R7e0qMMOvLA* nodes;
};
typedef NU8 tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g;
struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg {
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ {
tySequence__IHUFRsFxZNv7YydiUO2esQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ {
NimStringDesc* definedSymbols;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw moduleFlags;
tySequence__PXIzfWocnrafGz5p3CP5LA* includes;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* imports;
tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw toReplay;
tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw topLevel;
tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw bodies;
tySequence__b89aLriiJnVTD186H6zNIgg* exports;
tySequence__b89aLriiJnVTD186H6zNIgg* hidden;
tySequence__REuPuHuSlOkZ0Q5oqzDrQg* reexports;
tySequence__b89aLriiJnVTD186H6zNIgg* compilerProcs;
tySequence__48JTohSgTy339bRxHzUD8KA* converters;
tySequence__48JTohSgTy339bRxHzUD8KA* methods;
tySequence__48JTohSgTy339bRxHzUD8KA* trmacros;
tySequence__48JTohSgTy339bRxHzUD8KA* pureEnums;
tySequence__I9aQmO9asXXWJ58UI9c8BCSzA* macroUsages;
tySequence__NyaOkf8ZwxP6rkRF5TOkew* typeInstCache;
tySequence__L9bOt8CaTEmIjgtuZvp6syg* procInstCache;
tySequence__im8UB2GsZvUaQ4a1wKGWhQ* attachedOps;
tySequence__xxnXDLpoqBo8zJzP9b1073g* methodsPerType;
tySequence__NyaOkf8ZwxP6rkRF5TOkew* enumToStringProcs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* emittedTypeInfo;
tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g backendFlags;
tySequence__DfmUmNgVGnYaiV1I6227tw* syms;
tySequence__t8Uv4lEJ4lkuECvP9c6JMhA* types;
tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg strings;
tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ numbers;
tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ cfg;
};
struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g {
tySequence__9bT7o0CflHuiE4VhmtqBPCw* data;
NI counter;
};
struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w {
tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q status;
NIM_BOOL symsInit;
NIM_BOOL typesInit;
NIM_BOOL loadedButAliveSetChanged;
tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ fromDisk;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* syms;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* types;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
tyObject_Table__CE4eiu6FavV1vmUiTXQ70g iface;
tyObject_Table__CE4eiu6FavV1vmUiTXQ70g ifaceHidden;
};
struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q {
tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* data;
NI counter;
};
struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw {
NI32 thisModule;
NI32 lastFile;
NU32 lastLit;
tyObject_Table__TRm6MPqklA8EYBmBMY117Q filenames;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* pendingTypes;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* pendingSyms;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA typeMarker;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA symMarker;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
};
struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ {
NU32 module;
NI32 item;
};
struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ {
NI module;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ packed_0;
};
struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg {
tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
};
struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__O5RcspOP32YJ4YtU5ppxxA* Field2;
};
struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg {
NI module;
tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ sym;
tySequence__ipEvhpHAmm8ZCn9bZAOdNYA* concreteTypes;
tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
};
struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA* Field2;
};
struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field2;
};
struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA {
tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
};
struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ {
NI Field0;
tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field1;
};
struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__159bHWBGAOOs6U7OZ9cQlO0g* Field2;
};
struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA 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__mXtIz9c3umFizQ9bw79aldIEw {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
};
struct tyTuple__OvnOYJpJ1WQyVNnkDTodqw {
NI Field0;
NI32 Field1;
tySequence__4fyguUt3ZraOklN6h0Tjkw* Field2;
};
struct tyTuple__tz45FTGkfpDYgeKnoipqHQ {
NI Field0;
NI32 Field1;
tySequence__i7xpiUsxyv6cQ1xK3JbcGQ* Field2;
};
struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A {
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* Field0;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
};
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__facALICuu8zUj0hjvbTLFg* Field2;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
NI entries;
};
struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
};
typedef N_NIMCALL_PTR(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, tyProc__jkSFMhvPZ1AdGcvT2dK9a2w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__A7Sdoem70tRxSEmKrf9cmyg) (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* topLevelStmt);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__EAEKmBUgKFg29agoUGtzDEQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ {
tyProc__jkSFMhvPZ1AdGcvT2dK9a2w Field0;
tyProc__A7Sdoem70tRxSEmKrf9cmyg Field1;
tyProc__EAEKmBUgKFg29agoUGtzDEQ Field2;
NIM_BOOL Field3;
};
struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
NU32 Field0;
NimStringDesc* Field1;
};
struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg {
NU16 line;
NI16 col;
NU32 file;
};
struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow {
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
NI32 operand;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeId_0;
tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
};
struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
NU32 Field0;
NI32 Field1;
};
struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA {
NU32 Field0;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
};
struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg Field1;
};
struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
};
struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ key;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* concreteTypes;
};
typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
struct tyTuple__9aoobCDZB4x41HJSOmh0mwA {
tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg Field0;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
};
struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
NI Field1;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
};
typedef NU8 tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ;
struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw {
tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ kind;
NIM_BOOL generated;
NIM_BOOL isOverriden;
NU32 name;
NI32 path;
};
struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw {
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
NU32 name;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typ;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
NI32 ast;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ guard;
NI bitsize;
NI alignment;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
NU32 externalName;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA locFlags;
tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw annex;
NI32 constraint;
};
struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA {
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* types;
NI32 n;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeInst;
NI32 nonUniqueId;
};
struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ {
NI Field0;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* Field1;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* Field2;
};
struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
NI Field0;
NI32 Field1;
NU32 Field2;
};
struct tySequence__nw2ozGiJbajPUc4Cj4vzYw {
  TGenericSeq Sup;
  tyTuple__EFqgCXJ4d8PgqOdFJmldsQ data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
  TGenericSeq Sup;
  tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
};
struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ {
  TGenericSeq Sup;
  tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA data[SEQ_DECL_SIZE];
};
struct tySequence__rQHmYk1HzcwNxKBymIFHpA {
  TGenericSeq Sup;
  tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w data[SEQ_DECL_SIZE];
};
struct tySequence__XMM60DtBsc6xYsIpNANkrA {
  TGenericSeq Sup;
  tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw data[SEQ_DECL_SIZE];
};
struct tySequence__O5RcspOP32YJ4YtU5ppxxA {
  TGenericSeq Sup;
  tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg data[SEQ_DECL_SIZE];
};
struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg {
  TGenericSeq Sup;
  tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ data[SEQ_DECL_SIZE];
};
struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA {
  TGenericSeq Sup;
  tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg data[SEQ_DECL_SIZE];
};
struct tySequence__mWRMiYLthG9coLjkbElCxkw {
  TGenericSeq Sup;
  tyTuple__o67sDX0wYbEuhI9cJYAbDtg data[SEQ_DECL_SIZE];
};
struct tySequence__bTDCDwD2P7TodzbAefLcSw {
  TGenericSeq Sup;
  tyTuple__9aNnDWBFMF44sfFinBpMT4Q data[SEQ_DECL_SIZE];
};
struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g {
  TGenericSeq Sup;
  tyTuple__VrD6plbUKJjYKM0lCr3hGQ data[SEQ_DECL_SIZE];
};
struct tySequence__3MPVXAHA08SszBrU4ffqEg {
  TGenericSeq Sup;
  tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg data[SEQ_DECL_SIZE];
};
struct tySequence__YCf5zJHm4JI06qpmKwPUWg {
  TGenericSeq Sup;
  tyTuple__1ZbjBgxAbnye0IFMZ6w4OA data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ {
  TGenericSeq Sup;
  tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* data[SEQ_DECL_SIZE];
};
struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
  TGenericSeq Sup;
  tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* 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__4fyguUt3ZraOklN6h0Tjkw {
  TGenericSeq Sup;
  tyObject_SymInfoPair__mXtIz9c3umFizQ9bw79aldIEw data[SEQ_DECL_SIZE];
};
struct tySequence__FdVaeFbf9a05PXbYlgHL9ahw {
  TGenericSeq Sup;
  tyTuple__OvnOYJpJ1WQyVNnkDTodqw data[SEQ_DECL_SIZE];
};
struct tySequence__i7xpiUsxyv6cQ1xK3JbcGQ {
  TGenericSeq Sup;
  tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* data[SEQ_DECL_SIZE];
};
struct tySequence__1XdfDDoNvZorxGg2DV0QnA {
  TGenericSeq Sup;
  tyTuple__tz45FTGkfpDYgeKnoipqHQ data[SEQ_DECL_SIZE];
};
struct tySequence__s9byh6WFJ16lPMcmqdaMTHA {
  TGenericSeq Sup;
  tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A data[SEQ_DECL_SIZE];
};
struct tySequence__1U9bG8RcAedEeYkQLZjVFKA {
  TGenericSeq Sup;
  tyTuple__3i6hlQmqrn6m7tuVN8FHjQ data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__23SMqauuRsbDANhthj9bWlA {
  TGenericSeq Sup;
  tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence__pHNq3oXj9av2sEUdqaqeZjw {
  TGenericSeq Sup;
  tyTuple__wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
};
struct tySequence__MAQKEADohlpnXTModtugbQ {
  TGenericSeq Sup;
  tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ data[SEQ_DECL_SIZE];
};
struct tySequence__vv5mGmK03BCr5e3LTZA5Hw {
  TGenericSeq Sup;
  tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA 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__29bS0n2QNyO1R7e0qMMOvLA {
  TGenericSeq Sup;
  tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow data[SEQ_DECL_SIZE];
};
struct tySequence__b89aLriiJnVTD186H6zNIgg {
  TGenericSeq Sup;
  tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE];
};
struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg {
  TGenericSeq Sup;
  tyTuple__Q7r9caOmeWqQGZCIBHhGRUA data[SEQ_DECL_SIZE];
};
struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA {
  TGenericSeq Sup;
  tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg data[SEQ_DECL_SIZE];
};
struct tySequence__NyaOkf8ZwxP6rkRF5TOkew {
  TGenericSeq Sup;
  tyTuple__XyJ8LOAZzVVXSsmt09b8uWw data[SEQ_DECL_SIZE];
};
struct tySequence__L9bOt8CaTEmIjgtuZvp6syg {
  TGenericSeq Sup;
  tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA data[SEQ_DECL_SIZE];
};
struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ {
  TGenericSeq Sup;
  tyTuple__9aoobCDZB4x41HJSOmh0mwA data[SEQ_DECL_SIZE];
};
struct tySequence__xxnXDLpoqBo8zJzP9b1073g {
  TGenericSeq Sup;
  tyTuple__g0Q6Qx15nK53ce9aLo7YyrA data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__DfmUmNgVGnYaiV1I6227tw {
  TGenericSeq Sup;
  tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw data[SEQ_DECL_SIZE];
};
struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA {
  TGenericSeq Sup;
  tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA data[SEQ_DECL_SIZE];
};
struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
  TGenericSeq Sup;
  NI64 data[SEQ_DECL_SIZE];
};
struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw {
  TGenericSeq Sup;
  tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ data[SEQ_DECL_SIZE];
};
struct tySequence__9bT7o0CflHuiE4VhmtqBPCw {
  TGenericSeq Sup;
  tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ data[SEQ_DECL_SIZE];
};
struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ {
  TGenericSeq Sup;
  tyTuple__UvldbCB6B9ayi9bGYW7vJNLA data[SEQ_DECL_SIZE];
};
struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA {
  TGenericSeq Sup;
  tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, invalidateFacts__guards_745)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasSubTree__guards_732)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTree__guards_680)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameOpr__guards_640)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* a, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* b);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
static N_INLINE(NI, len__ast_3151)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, doesImply__guards_1022)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q facts, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prop);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, factImplies__guards_993)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prop);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg, getMagic__trees_137)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, tilde___guards_990)(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA x);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesIsNil__guards_902)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eq);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, valueIsNil__guards_891)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__types_3589)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesEq__guards_767)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eq);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLocation__guards_53)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isValue__guards_46)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, valuesUnequal__guards_763)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameValue__astalgo_119)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inSet__nimsets_7)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elem);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesLe__guards_948)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, leValue__astalgo_135)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesGe__guards_918)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pred__guards_325)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__ast_4311)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesLt__guards_975)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesIn__guards_864)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, compareSets__guards_857)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalSets__nimsets_216)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, intersectSets__nimsets_195)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, leImpliesIn__guards_795)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__ast_3702)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_Int128__9a9axPfb75jdWY25AamJewkA intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__types_1353)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, geImpliesIn__guards_824)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__ast_3698)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lastOrd__types_1465)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_305)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_474)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, getInt__ast_4567)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__types_1378)(NI arg);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_761)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, neg__guards_126)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, swapArgs__guards_117)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* newOp);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3320)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3691)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3710)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__ast_3338)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
static N_INLINE(NI, safeLen__ast_3144)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_4772)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildCall__guards_185)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canon__guards_345)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, shallowCopy__ast_4388)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, astdef__ast_3458)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__ast_4406)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildCall__guards_191)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, minusOne__guards_259)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, negate__guards_231)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o);
N_LIB_PRIVATE N_NIMCALL(NI64, barplusbar___saturate_1)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, reassociation__guards_290)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barplusbar___guards_199)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barstarbar___guards_215)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NI64, barstarbar___saturate_52)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, zero__guards_255)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLetLocation__guards_94)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m, NIM_BOOL isApprox);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConstExpr__trees_146)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLet__guards_56)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isVar__guards_75)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barminusbar___guards_207)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NI64, barminusbar___saturate_13)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, ple__guards_1104)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__types_299)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, NIM_BOOL allowEnumWithHoles);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_754)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, one__guards_257)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, bardivbar___guards_223)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMinusOne__guards_1093)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, pleViaModel__guards_1100)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q model, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aa, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__nw2ozGiJbajPUc4Cj4vzYw)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyReplacements__guards_1437)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__nw2ozGiJbajPUc4Cj4vzYw* rep);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, replaceSubTree__guards_1425)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* by);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, pleViaModelRec__guards_1479)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildProperFieldCheck__guards_1774)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* access, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1118)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__renderer_46)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildOf__guards_1651)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, settype__guards_1647)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newType__ast_3871)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__magicsys_136)(tyObject_TType__facALICuu8zUj0hjvbTLFg* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* son, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* id);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildElse__guards_1673)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, usefulFact__guards_499)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__ast_4807)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addFact__guards_609)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nn);
N_LIB_PRIVATE N_NIMCALL(void, addFactLe__guards_1634)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
static NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg TM__6PEpSVg5zYQiUPcMieikwQ_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__6PEpSVg5zYQiUPcMieikwQ_3 = {((NI) 1),
((NI) 2)}
;
static NIM_CONST tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ TM__6PEpSVg5zYQiUPcMieikwQ_4 = {((NI) 2),
((NI) 1)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__6PEpSVg5zYQiUPcMieikwQ_5 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg TM__6PEpSVg5zYQiUPcMieikwQ_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__shZhZOdbVC5nnFvcXQAImg 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__shZhZOdbVC5nnFvcXQAImg 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__EFqgCXJ4d8PgqOdFJmldsQ_;
extern TNimType NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_;
N_LIB_PRIVATE TNimType NTItreplacements__nw2ozGiJbajPUc4Cj4vzYw_;
extern TNimType NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_9, "/home/runner/work/nightlies/nightlies/nim/compiler/guards.nim", 61);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__6PEpSVg5zYQiUPcMieikwQ_8 = {((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_9),
((NI) 1058),
((NI) 13)}
;
static NIM_CONST tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g TM__6PEpSVg5zYQiUPcMieikwQ_10 = {((NI32) -1), ((NI32) -1)}
;
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217;
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameOpr__guards_640)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* a, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* b) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*a).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		result = ((TM__6PEpSVg5zYQiUPcMieikwQ_2[(NU)((*b).magic)>>3] &(1U<<((NU)((*b).magic)&7U)))!=0);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	{
		result = ((*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		result = ((*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 36) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39):
	{
		result = ((*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 36) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 38) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53):
	{
		result = ((*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
	{
		result = ((*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55):
	{
		result = ((*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56):
	{
		result = ((*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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_1735)(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_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, len__ast_3151)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
		if (!(T7_)) goto LA8_;
		T7_ = !((b == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) 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__G4E4Gxe7oI2Cm03rkiOzQw) 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__shZhZOdbVC5nnFvcXQAImg) 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__G4E4Gxe7oI2Cm03rkiOzQw) 2):
		{
			result = ((*(*a)._kind_5.ident).id == (*(*b)._kind_5.ident).id);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
		{
			result = ((*a)._kind_1.intVal == (*b)._kind_1.intVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
		{
			result = ((*a)._kind_2.floatVal == (*b)._kind_2.floatVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
		{
			result = eqStrings((*a)._kind_3.strVal, (*b)._kind_3.strVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
		{
			result = ((*a).typ == (*b).typ);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
		{
			result = NIM_TRUE;
		}
		break;
		default:
		{
			{
				NI T30_;
				NI T31_;
				T30_ = (NI)0;
				T30_ = len__ast_3151(a);
				T31_ = (NI)0;
				T31_ = len__ast_3151(b);
				if (!(T30_ == T31_)) goto LA32_;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len__ast_3151(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__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
		{
			result = sameTree__guards_680(n, x);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76):
		{
		}
		break;
		default:
		{
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3151(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)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* 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)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__system_5264((&gch__system_5217.zct), c);
}
static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* 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_5313(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__system_5270(src);
		incRef__system_5308(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__system_5270((*dest));
		decRef__system_5315(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(void, invalidateFacts__guards_745)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__bROa11lyF5vxEN9aYNbHmhw*) 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__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
				}
				LA9_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, invalidateFacts__guards_760)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	invalidateFacts__guards_745((&(*m).s), n);
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, tilde___guards_990)(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA x) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	switch (x) {
	case ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0):
	{
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0);
	}
	break;
	case ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1):
	{
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
	}
	break;
	case ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2):
	{
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, valueIsNil__guards_891)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38))) goto LA6_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
	}
	goto LA1_;
	LA6_: ;
	{
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesIsNil__guards_902)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eq) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	switch ((*(*(*fact)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__t4F29a8ejY1DFQTYTML9c9byA) 2);
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		{
			NIM_BOOL T10_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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_3589((*fact)._kind_6.sons->data[((NI) 2)]);
			result = valueIsNil__guards_891(T13_);
		}
		goto LA8_;
		LA11_: ;
		{
			NIM_BOOL T15_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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_3589((*fact)._kind_6.sons->data[((NI) 1)]);
			result = valueIsNil__guards_891(T18_);
		}
		goto LA8_;
		LA16_: ;
		LA8_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109):
	{
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isValue__guards_46)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLocation__guards_53)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__t4F29a8ejY1DFQTYTML9c9byA, impliesEq__guards_767)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eq) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T1_;
	NI loc;
	NI val;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)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__6PEpSVg5zYQiUPcMieikwQ_3;
	}
	goto LA2_;
	LA5_: ;
	{
		T1_ = TM__6PEpSVg5zYQiUPcMieikwQ_4;
	}
	LA2_: ;
	loc = T1_.Field0;
	val = T1_.Field1;
	switch ((*(*(*fact)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__t4F29a8ejY1DFQTYTML9c9byA) 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__t4F29a8ejY1DFQTYTML9c9byA) 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__t4F29a8ejY1DFQTYTML9c9byA) 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__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			goto LA27_;
			LA34_: ;
			LA27_: ;
		}
		goto LA9_;
		LA25_: ;
		LA9_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA43_;
			LA46_: ;
			{
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			LA43_: ;
		}
		LA41_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109):
	{
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pred__guards_325)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*n)._kind_1.intVal == (IL64(-9223372036854775807) - IL64(1))));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = copyNode__ast_4311(n);
		(*result)._kind_1.intVal -= ((NI) 1);
	}
	goto LA1_;
	LA5_: ;
	{
		result = n;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesGe__guards_918)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	switch ((*(*(*fact)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				goto LA13_;
				LA16_: ;
				{
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 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__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				goto LA29_;
				LA32_: ;
				{
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA29_: ;
			}
			LA27_: ;
		}
		goto LA2_;
		LA21_: ;
		LA2_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__t4F29a8ejY1DFQTYTML9c9byA) 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__bROa11lyF5vxEN9aYNbHmhw* 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__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				LA66_: ;
			}
			LA60_: ;
		}
		goto LA36_;
		LA54_: ;
		LA36_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__t4F29a8ejY1DFQTYTML9c9byA) 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__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				LA98_: ;
			}
			LA93_: ;
		}
		goto LA69_;
		LA87_: ;
		LA69_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109):
	{
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesLe__guards_948)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
{	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)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__t4F29a8ejY1DFQTYTML9c9byA) 2);
				goto BeforeRet_;
			}
			goto LA11_;
			LA14_: ;
			{
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 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__shZhZOdbVC5nnFvcXQAImg) 70):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				goto LA29_;
				LA32_: ;
				{
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 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__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				goto LA45_;
				LA48_: ;
				{
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA45_: ;
			}
			LA43_: ;
		}
		goto LA18_;
		LA37_: ;
		LA18_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__bROa11lyF5vxEN9aYNbHmhw* 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__t4F29a8ejY1DFQTYTML9c9byA) 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__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA82_: ;
			}
			LA77_: ;
		}
		goto LA52_;
		LA71_: ;
		LA52_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__t4F29a8ejY1DFQTYTML9c9byA) 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__bROa11lyF5vxEN9aYNbHmhw* 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__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA115_: ;
			}
			LA109_: ;
		}
		goto LA85_;
		LA103_: ;
		LA85_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109):
	{
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesLt__guards_975)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	p = pred__guards_325(c);
	{
		if (!!((p == c))) goto LA3_;
		result = impliesLe__guards_948(fact, x, p);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__t4F29a8ejY1DFQTYTML9c9byA, compareSets__guards_857)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = equalSets__nimsets_216(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), a, b);
		if (!T3_) goto LA4_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		NI T8_;
		T7_ = NIM_NIL;
		T7_ = intersectSets__nimsets_195(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), a, b);
		T8_ = (NI)0;
		T8_ = len__ast_3151(T7_);
		if (!(T8_ == ((NI) 0))) goto LA9_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
	}
	goto LA1_;
	LA9_: ;
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, leImpliesIn__guards_795)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T5_;
		if (!((*c).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*c).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = firstOrd__types_1353(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), (*x).typ);
		value = newIntNode__ast_3702((*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__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA18_;
			LA20_: ;
			{
				if (!(neg == i)) goto LA23_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			goto LA18_;
			LA23_: ;
			LA18_: ;
		}
		LA8_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, geImpliesIn__guards_824)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA max;
		if (!((*c).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*c).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		value = newIntNode__ast_3698((*c).kind, (*c)._kind_1.intVal);
		max = lastOrd__types_1465(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), (*x).typ);
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T7_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T8_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T9_;
			NIM_BOOL T10_;
			NI i;
			NI pos;
			NI neg;
			T7_ = getInt__ast_4567(value);
			T8_ = minus___int495056_474(max, T7_);
			T9_ = toInt128__types_1378(((NI) 1000));
			T10_ = (NIM_BOOL)0;
			T10_ = lt___int495056_305(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_761((*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__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA22_;
			LA24_: ;
			{
				if (!(neg == i)) goto LA27_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			goto LA22_;
			LA27_: ;
			LA22_: ;
		}
		LA11_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesIn__guards_864)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	switch ((*(*(*fact)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA7_;
			LA10_: ;
			{
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 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__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA17_;
			LA20_: ;
			{
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			LA17_: ;
		}
		goto LA2_;
		LA15_: ;
		LA2_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__shZhZOdbVC5nnFvcXQAImg) 71):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__shZhZOdbVC5nnFvcXQAImg) 72):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		{
			NIM_BOOL T42_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__bROa11lyF5vxEN9aYNbHmhw* 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__shZhZOdbVC5nnFvcXQAImg) 96):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109):
	{
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, factImplies__guards_993)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prop) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T1_;
{	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	T1_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T1_ = getMagic__trees_137(fact);
	switch (T1_) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T3_;
		arg = (*fact)._kind_6.sons->data[((NI) 1)];
		T3_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T3_ = getMagic__trees_137(arg);
		switch (T3_) {
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 143):
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
		{
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T5_;
			T5_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T5_ = factImplies__guards_993(arg, prop);
			result = tilde___guards_990(T5_);
			goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109):
		{
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA a;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA 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__t4F29a8ejY1DFQTYTML9c9byA) 0);
			goto BeforeRet_;
		}
		break;
		default:
		{
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0);
			goto BeforeRet_;
		}
		break;
		}
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109):
	{
		result = factImplies__guards_993((*fact)._kind_6.sons->data[((NI) 1)], prop);
		{
			if (!!((result == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 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__shZhZOdbVC5nnFvcXQAImg) 96):
	{
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T19_;
		T19_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T19_ = factImplies__guards_993(fact, (*prop)._kind_6.sons->data[((NI) 1)]);
		result = tilde___guards_990(T19_);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 143):
	{
		result = impliesIsNil__guards_902(fact, prop);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		result = impliesEq__guards_767(fact, prop);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	{
		result = impliesLe__guards_948(fact, (*prop)._kind_6.sons->data[((NI) 1)], (*prop)._kind_6.sons->data[((NI) 2)]);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		result = impliesLt__guards_975(fact, (*prop)._kind_6.sons->data[((NI) 1)], (*prop)._kind_6.sons->data[((NI) 2)]);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__t4F29a8ejY1DFQTYTML9c9byA) 0);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, doesImply__guards_1022)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q facts, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prop) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
{	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** f;
		NI i;
		NI L;
		NI T2_;
		f = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)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__t4F29a8ejY1DFQTYTML9c9byA) 0)))) goto LA11_;
						goto BeforeRet_;
					}
					LA11_: ;
				}
				LA7_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, swapArgs__guards_117)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* newOp) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*fact).info, ((NI) 3));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3691(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_3144)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__ast_3151(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, neg__guards_126)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T5_;
{	result = NIM_NIL;
	{
		if (!(n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA3_;
		result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T5_ = getMagic__trees_137(n);
	switch (T5_) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96):
	{
		result = (*n)._kind_6.sons->data[((NI) 1)];
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		result = swapArgs__guards_117(n, (*o).opLe);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	{
		result = swapArgs__guards_117(n, (*o).opLt);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 134):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39)))) goto LA12_;
			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
			goto BeforeRet_;
		}
		LA12_: ;
		t = skipTypes__ast_3710((*(*n)._kind_6.sons->data[((NI) 2)]).typ, TM__6PEpSVg5zYQiUPcMieikwQ_5);
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__bROa11lyF5vxEN9aYNbHmhw* s;
			if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14))) goto LA16_;
			s = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (*n).info, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
				e = NIM_NIL;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen__ast_3144((*t).n);
					i_2 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eAsNode;
							if (!(i_2 < colontmp_)) goto LA21;
							i = i_2;
							e = (*(*t).n)._kind_6.sons->data[i];
							eAsNode = newIntNode__ast_3698(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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_4772(s, eAsNode);
							}
							LA25_: ;
							i_2 += ((NI) 1);
						} LA21: ;
					}
				}
			}
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), s);
		}
		goto LA14_;
		LA16_: ;
		{
			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
		}
		LA14_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
			if (!(T31_)) goto LA32_;
			T31_ = !((b == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
			LA32_: ;
			if (!T31_) goto LA33_;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3691((*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__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA36_;
			result = a;
		}
		goto LA29_;
		LA36_: ;
		{
			if (!!((b == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA39_;
			result = b;
		}
		goto LA29_;
		LA39_: ;
		LA29_: ;
	}
	break;
	default:
	{
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 2));
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3691((*o).opNot));
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), n);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildCall__guards_185)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*a).info, ((NI) 2));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3691(op));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), a);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesNotNil__guards_1044)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)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__bROa11lyF5vxEN9aYNbHmhw*, buildCall__guards_191)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (*a).info, ((NI) 3));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3691(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__bROa11lyF5vxEN9aYNbHmhw*, minusOne__guards_259)(void) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newIntNode__ast_3698(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(-1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, negate__guards_231)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b_2;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*b).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*b).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*b)._kind_1.intVal == (IL64(-9223372036854775807) - IL64(1))));
		LA4_: ;
		if (!T3_) goto LA5_;
		b_2 = copyNode__ast_4311(b);
		(*b_2)._kind_1.intVal = -((*b_2)._kind_1.intVal);
		{
			if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__bROa11lyF5vxEN9aYNbHmhw* b_3;
		if (!((*b).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) && (*b).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18))) goto LA13_;
		b_3 = copyNode__ast_4311(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__bROa11lyF5vxEN9aYNbHmhw*, barplusbar___guards_199)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = copyNode__ast_4311(a);
	{
		if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__bROa11lyF5vxEN9aYNbHmhw*, barstarbar___guards_215)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = copyNode__ast_4311(a);
	{
		if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__bROa11lyF5vxEN9aYNbHmhw*, zero__guards_255)(void) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newIntNode__ast_3698(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, reassociation__guards_290)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T1_;
	result = NIM_NIL;
	result = n;
	T1_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T1_ = getMagic__trees_137(result);
	switch (T1_) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53):
	{
		{
			NIM_BOOL T5_;
			NIM_BOOL T6_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T8_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__shZhZOdbVC5nnFvcXQAImg)0;
			T8_ = getMagic__trees_137((*result)._kind_6.sons->data[((NI) 1)]);
			T6_ = (T8_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) || T8_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53) || T8_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__shZhZOdbVC5nnFvcXQAImg) 48):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55):
	{
		{
			NIM_BOOL T20_;
			NIM_BOOL T21_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T23_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__shZhZOdbVC5nnFvcXQAImg)0;
			T23_ = getMagic__trees_137((*result)._kind_6.sons->data[((NI) 1)]);
			T21_ = (T23_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48) || T23_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__facALICuu8zUj0hjvbTLFg* T12_;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			if (!(T10_)) goto LA11_;
			T12_ = NIM_NIL;
			T12_ = skipTypes__ast_3710((*(*n)._kind_4.sym).typ, TM__6PEpSVg5zYQiUPcMieikwQ_5);
			T10_ = !(((*T12_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 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__bROa11lyF5vxEN9aYNbHmhw* 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__G4E4Gxe7oI2Cm03rkiOzQw) 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__bROa11lyF5vxEN9aYNbHmhw* m, NIM_BOOL isApprox) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	NI derefs;
	NIM_BOOL T18_;
{	result = (NIM_BOOL)0;
	n = m;
	derefs = ((NI) 0);
	{
		while (1) {
			switch ((*n).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
			{
				n = (*n)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
			{
				n = (*n)._kind_6.sons->data[((NI) 0)];
				derefs += ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
			{
				{
					NIM_BOOL T8_;
					NIM_BOOL T9_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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_3589((*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__G4E4Gxe7oI2Cm03rkiOzQw) 58):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__bROa11lyF5vxEN9aYNbHmhw*, barminusbar___guards_207)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = copyNode__ast_4311(a);
	{
		if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__bROa11lyF5vxEN9aYNbHmhw*, canon__guards_345)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T20_;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T44_;
	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = safeLen__ast_3144(n);
		if (!(((NI) 1) <= T3_)) goto LA4_;
		result = shallowCopy__ast_4388(n);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3151(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__bROa11lyF5vxEN9aYNbHmhw* T14_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T15_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
		T10_ = (NIM_BOOL)0;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T11_)) goto LA12_;
		T11_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
		LA12_: ;
		T10_ = T11_;
		if (!(T10_)) goto LA13_;
		T14_ = NIM_NIL;
		T14_ = astdef__ast_3458((*n)._kind_4.sym);
		T15_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T15_ = getMagic__trees_137(T14_);
		T10_ = ((TM__6PEpSVg5zYQiUPcMieikwQ_6[(NU)(T15_)>>3] &(1U<<((NU)(T15_)&7U)))!=0);
		LA13_: ;
		if (!T10_) goto LA16_;
		T18_ = NIM_NIL;
		T18_ = astdef__ast_3458((*n)._kind_4.sym);
		result = copyTree__ast_4406(T18_);
	}
	goto LA1_;
	LA16_: ;
	{
		result = n;
	}
	LA1_: ;
	T20_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T20_ = getMagic__trees_137(result);
	switch (T20_) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 63):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 64):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__shZhZOdbVC5nnFvcXQAImg) 9):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__shZhZOdbVC5nnFvcXQAImg) 47):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__shZhZOdbVC5nnFvcXQAImg) 36) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39):
	{
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3691((*o).opLen));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* minus;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__bROa11lyF5vxEN9aYNbHmhw* T40_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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_3589(result);
	result = reassociation__guards_290(result, o);
	T44_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T44_ = getMagic__trees_137(result);
	switch (T44_) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__shZhZOdbVC5nnFvcXQAImg T57_;
			T48_ = (NIM_BOOL)0;
			T49_ = (NIM_BOOL)0;
			T50_ = (NIM_BOOL)0;
			T50_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
			if (!(T50_)) goto LA51_;
			T52_ = (NI)0;
			T52_ = len__ast_3151(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__shZhZOdbVC5nnFvcXQAImg)0;
			T57_ = getMagic__trees_137(x);
			switch (T57_) {
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T59_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__shZhZOdbVC5nnFvcXQAImg) 46):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* plus;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T62_;
				T62_ = NIM_NIL;
				T62_ = negate__guards_231(y_2, (*x)._kind_6.sons->data[((NI) 2)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), o);
				plus = reassociation__guards_290(T62_, o);
				{
					if (!!((plus == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) 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__shZhZOdbVC5nnFvcXQAImg T78_;
			T69_ = (NIM_BOOL)0;
			T70_ = (NIM_BOOL)0;
			T71_ = (NIM_BOOL)0;
			T71_ = ((*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
			if (!(T71_)) goto LA72_;
			T73_ = (NI)0;
			T73_ = len__ast_3151(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__shZhZOdbVC5nnFvcXQAImg)0;
			T78_ = getMagic__trees_137(y_2);
			switch (T78_) {
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T80_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__shZhZOdbVC5nnFvcXQAImg) 46):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* plus_2;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T83_;
				T83_ = NIM_NIL;
				T83_ = negate__guards_231(x, (*y_2)._kind_6.sons->data[((NI) 2)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) 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__bROa11lyF5vxEN9aYNbHmhw*) 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__shZhZOdbVC5nnFvcXQAImg T96_;
			T93_ = (NIM_BOOL)0;
			T94_ = (NIM_BOOL)0;
			T94_ = isValue__guards_46(x);
			if (!(T94_)) goto LA95_;
			T96_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T96_ = getMagic__trees_137(y_2);
			T94_ = (T96_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) || T96_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53) || T96_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__shZhZOdbVC5nnFvcXQAImg T104_;
			T101_ = (NIM_BOOL)0;
			T102_ = (NIM_BOOL)0;
			T102_ = isValue__guards_46(x);
			if (!(T102_)) goto LA103_;
			T104_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T104_ = getMagic__trees_137(y_2);
			T102_ = (T104_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47) || T104_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54) || T104_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__bROa11lyF5vxEN9aYNbHmhw*, one__guards_257)(void) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newIntNode__ast_3698(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, bardivbar___guards_223)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = copyNode__ast_4311(a);
	{
		if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__nw2ozGiJbajPUc4Cj4vzYw)(void* p, NI op) {
	tySequence__nw2ozGiJbajPUc4Cj4vzYw* a;
	NI T1_;
	a = (tySequence__nw2ozGiJbajPUc4Cj4vzYw*)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__bROa11lyF5vxEN9aYNbHmhw*, replaceSubTree__guards_1425)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* by) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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_4388(n);
		{
			NI i;
			NI colontmp_;
			NI T11_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T11_ = (NI)0;
			T11_ = safeLen__ast_3144(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__bROa11lyF5vxEN9aYNbHmhw*, applyReplacements__guards_1437)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__nw2ozGiJbajPUc4Cj4vzYw* rep) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	{
		tyTuple__EFqgCXJ4d8PgqOdFJmldsQ* x;
		NI i;
		NI L;
		NI T2_;
		x = (tyTuple__EFqgCXJ4d8PgqOdFJmldsQ*)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__t4F29a8ejY1DFQTYTML9c9byA, pleViaModelRec__guards_1479)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
{	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)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__bROa11lyF5vxEN9aYNbHmhw* fact;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				fact = (*m).s->data[i];
				{
					NIM_BOOL T7_;
					tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T9_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y;
					T7_ = (NIM_BOOL)0;
					T7_ = !((fact == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
					if (!(T7_)) goto LA8_;
					T9_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
					T9_ = getMagic__trees_137(fact);
					T7_ = (T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71) || T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74) || T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76) || T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79) || T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82) || T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85) || T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88) || T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117));
					LA8_: ;
					if (!T7_) goto LA10_;
					asgnRef((void**) (&(*m).s->data[i]), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) 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__t4F29a8ejY1DFQTYTML9c9byA T19_;
							T19_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
							T19_ = ple__guards_1104((*m), y, b);
							if (!(T19_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2))) goto LA20_;
							result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
							goto BeforeRet_;
						}
						LA20_: ;
						{
							NIM_BOOL T24_;
							NIM_BOOL T25_;
							tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T26_;
							tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T28_;
							T24_ = (NIM_BOOL)0;
							T25_ = (NIM_BOOL)0;
							T26_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
							T26_ = getMagic__trees_137(y);
							T25_ = (T26_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) || T26_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53) || T26_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51));
							if (!(T25_)) goto LA27_;
							T28_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
							T28_ = getMagic__trees_137(b);
							T25_ = (T28_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) || T28_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53) || T28_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__t4F29a8ejY1DFQTYTML9c9byA T34_;
								T34_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
								T34_ = ple__guards_1104((*m), (*b)._kind_6.sons->data[((NI) 2)], (*y)._kind_6.sons->data[((NI) 2)]);
								if (!(T34_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2))) goto LA35_;
								result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
								goto BeforeRet_;
							}
							LA35_: ;
						}
						LA30_: ;
					}
					LA15_: ;
					{
						tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T39_;
						T39_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
						T39_ = ple__guards_1104((*m), a, x);
						if (!(T39_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2))) goto LA40_;
						{
							tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T44_;
							T44_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
							T44_ = ple__guards_1104((*m), y, b);
							if (!(T44_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2))) goto LA45_;
							result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
							goto BeforeRet_;
						}
						LA45_: ;
					}
					LA40_: ;
					result = impliesLe__guards_948(fact, a, b);
					{
						if (!!((result == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0)))) goto LA49_;
						goto BeforeRet_;
					}
					LA49_: ;
				}
				LA10_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, pleViaModel__guards_1100)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q model, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aa, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bb) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tySequence__nw2ozGiJbajPUc4Cj4vzYw* replacements;
	tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q m;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b_2;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	replacements = NIM_NIL;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** fact;
		NI i;
		NI L;
		NI T2_;
		fact = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)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__shZhZOdbVC5nnFvcXQAImg T9_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
					T7_ = (NIM_BOOL)0;
					T7_ = !(((*fact) == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
					if (!(T7_)) goto LA8_;
					T9_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
					T9_ = getMagic__trees_137((*fact));
					T7_ = ((TM__6PEpSVg5zYQiUPcMieikwQ_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__EFqgCXJ4d8PgqOdFJmldsQ T16_;
						NI T17_;
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA14_;
						nimZeroMem((void*)(&T16_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
						T16_.Field0 = a;
						T16_.Field1 = b;
						replacements = (tySequence__nw2ozGiJbajPUc4Cj4vzYw*) incrSeqV3((TGenericSeq*)(replacements), (&NTItreplacements__nw2ozGiJbajPUc4Cj4vzYw_));
						T17_ = replacements->Sup.len++;
						asgnRef((void**) (&replacements->data[T17_].Field0), T16_.Field0);
						asgnRef((void**) (&replacements->data[T17_].Field1), T16_.Field1);
					}
					goto LA12_;
					LA14_: ;
					{
						tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T19_;
						NI T20_;
						nimZeroMem((void*)(&T19_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
						T19_.Field0 = b;
						T19_.Field1 = a;
						replacements = (tySequence__nw2ozGiJbajPUc4Cj4vzYw*) incrSeqV3((TGenericSeq*)(replacements), (&NTItreplacements__nw2ozGiJbajPUc4Cj4vzYw_));
						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__yUzvq5GhzqHyDCdSXqIv1Q));
	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__bROa11lyF5vxEN9aYNbHmhw** fact_2;
			NI i_2;
			NI L_2;
			NI T27_;
			fact_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)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__shZhZOdbVC5nnFvcXQAImg T34_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T38_;
						NI T39_;
						T32_ = (NIM_BOOL)0;
						T32_ = !(((*fact_2) == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
						if (!(T32_)) goto LA33_;
						T34_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
						T34_ = getMagic__trees_137((*fact_2));
						T32_ = !(((TM__6PEpSVg5zYQiUPcMieikwQ_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__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(m.s), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
						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__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
		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__t4F29a8ejY1DFQTYTML9c9byA, ple__guards_1104)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
{	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)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__t4F29a8ejY1DFQTYTML9c9byA) 2);
		}
		goto LA7_;
		LA10_: ;
		{
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 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__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA17_: ;
		T15_ = T16_;
		if (!(T15_)) goto LA18_;
		T15_ = isOrdinalType__types_299((*a).typ, NIM_FALSE);
		LA18_: ;
		if (!T15_) goto LA19_;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T23_;
			NIM_BOOL T24_;
			T23_ = lastOrd__types_1465(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), (*a).typ);
			T24_ = (NIM_BOOL)0;
			T24_ = lteq___int495056_754(T23_, (*b)._kind_1.intVal);
			if (!T24_) goto LA25_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 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__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA31_: ;
		T29_ = T30_;
		if (!(T29_)) goto LA32_;
		T29_ = isOrdinalType__types_299((*b).typ, NIM_FALSE);
		LA32_: ;
		if (!T29_) goto LA33_;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T37_;
			NIM_BOOL T38_;
			T37_ = firstOrd__types_1353(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), (*b).typ);
			T38_ = (NIM_BOOL)0;
			T38_ = lteq___int495056_761((*a)._kind_1.intVal, T37_);
			if (!T38_) goto LA39_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 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__t4F29a8ejY1DFQTYTML9c9byA) 2);
		goto BeforeRet_;
	}
	LA44_: ;
	{
		NIM_BOOL T48_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T49_;
		T48_ = (NIM_BOOL)0;
		T49_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T49_ = getMagic__trees_137(b);
		T48_ = (T49_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 36) || T49_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37) || T49_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 38) || T49_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA55_: ;
	}
	LA51_: ;
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T59_;
		T59_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T59_ = getMagic__trees_137(b);
		if (!(T59_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) || T59_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53) || T59_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51))) goto LA60_;
		{
			NIM_BOOL T64_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T65_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T66_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T68_;
			T64_ = (NIM_BOOL)0;
			T65_ = NIM_NIL;
			T65_ = zero__guards_255();
			T66_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T66_ = ple__guards_1104(m, T65_, (*b)._kind_6.sons->data[((NI) 2)]);
			T64_ = (T66_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (!(T64_)) goto LA67_;
			T68_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T68_ = ple__guards_1104(m, a, (*b)._kind_6.sons->data[((NI) 1)]);
			T64_ = (T68_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA67_: ;
			if (!T64_) goto LA69_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA69_: ;
		{
			NIM_BOOL T73_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T74_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T75_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T77_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T78_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T79_;
			T73_ = (NIM_BOOL)0;
			T74_ = NIM_NIL;
			T74_ = zero__guards_255();
			T75_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T75_ = ple__guards_1104(m, (*b)._kind_6.sons->data[((NI) 2)], T74_);
			T73_ = (T75_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 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__t4F29a8ejY1DFQTYTML9c9byA)0;
			T79_ = ple__guards_1104(m, T78_, (*b)._kind_6.sons->data[((NI) 1)]);
			T73_ = (T79_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA76_: ;
			if (!T73_) goto LA80_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA80_: ;
	}
	LA60_: ;
	{
		NIM_BOOL T84_;
		NIM_BOOL T85_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T86_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T88_;
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T89_;
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T91_;
		T84_ = (NIM_BOOL)0;
		T85_ = (NIM_BOOL)0;
		T86_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T86_ = getMagic__trees_137(a);
		T85_ = (T86_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) || T86_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53) || T86_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51));
		if (!(T85_)) goto LA87_;
		T88_ = NIM_NIL;
		T88_ = zero__guards_255();
		T89_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T89_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 2)], T88_);
		T85_ = (T89_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
		LA87_: ;
		T84_ = T85_;
		if (!(T84_)) goto LA90_;
		T91_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T91_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 1)], b);
		T84_ = (T91_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
		LA90_: ;
		if (!T84_) goto LA92_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
		goto BeforeRet_;
	}
	LA92_: ;
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T96_;
		T96_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T96_ = getMagic__trees_137(b);
		if (!(T96_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48) || T96_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55))) goto LA97_;
		{
			NIM_BOOL T101_;
			NIM_BOOL T102_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T103_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T105_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T106_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T108_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T109_;
			T101_ = (NIM_BOOL)0;
			T102_ = (NIM_BOOL)0;
			T103_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T103_ = ple__guards_1104(m, a, (*b)._kind_6.sons->data[((NI) 1)]);
			T102_ = (T103_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (!(T102_)) goto LA104_;
			T105_ = NIM_NIL;
			T105_ = one__guards_257();
			T106_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T106_ = ple__guards_1104(m, T105_, (*b)._kind_6.sons->data[((NI) 2)]);
			T102_ = (T106_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA104_: ;
			T101_ = T102_;
			if (!(T101_)) goto LA107_;
			T108_ = NIM_NIL;
			T108_ = zero__guards_255();
			T109_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T109_ = ple__guards_1104(m, T108_, (*b)._kind_6.sons->data[((NI) 1)]);
			T101_ = (T109_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA107_: ;
			if (!T101_) goto LA110_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA110_: ;
	}
	LA97_: ;
	{
		NIM_BOOL T114_;
		NIM_BOOL T115_;
		NIM_BOOL T116_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T117_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T120_;
		T114_ = (NIM_BOOL)0;
		T115_ = (NIM_BOOL)0;
		T116_ = (NIM_BOOL)0;
		T117_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T117_ = getMagic__trees_137(a);
		T116_ = (T117_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48) || T117_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__shZhZOdbVC5nnFvcXQAImg)0;
		T120_ = getMagic__trees_137((*a)._kind_6.sons->data[((NI) 1)]);
		T115_ = (T120_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T120_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__bROa11lyF5vxEN9aYNbHmhw* T126_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T127_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA 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__t4F29a8ejY1DFQTYTML9c9byA)0;
			T128_ = ple__guards_1104(m, T127_, b);
			if (!(T128_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2))) goto LA129_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA129_: ;
	}
	LA122_: ;
	{
		NIM_BOOL T133_;
		NIM_BOOL T134_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T135_;
		NIM_BOOL T137_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T138_;
		NIM_BOOL T140_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		NIM_BOOL T142_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dc;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y;
		NIM_BOOL T145_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T146_;
		NIM_BOOL T148_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ec;
		T133_ = (NIM_BOOL)0;
		T134_ = (NIM_BOOL)0;
		T135_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)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__shZhZOdbVC5nnFvcXQAImg)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__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*(*a)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__shZhZOdbVC5nnFvcXQAImg)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__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*b)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
		LA149_: ;
		T145_ = T148_;
		LA147_: ;
		T133_ = T145_;
		LA144_: ;
		if (!T133_) goto LA150_;
		{
			NIM_BOOL T154_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ec1;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__bROa11lyF5vxEN9aYNbHmhw* T164_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T165_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T167_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T168_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T170_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T171_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T173_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T175_;
				T160_ = (NIM_BOOL)0;
				T161_ = (NIM_BOOL)0;
				T162_ = (NIM_BOOL)0;
				T163_ = (NIM_BOOL)0;
				T164_ = NIM_NIL;
				T164_ = newIntNode__ast_3698(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				T165_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T165_ = ple__guards_1104(m, T164_, x);
				T163_ = (T165_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				if (!(T163_)) goto LA166_;
				T167_ = NIM_NIL;
				T167_ = newIntNode__ast_3698(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				T168_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T168_ = ple__guards_1104(m, T167_, ec);
				T163_ = (T168_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA166_: ;
				T162_ = T163_;
				if (!(T162_)) goto LA169_;
				T170_ = NIM_NIL;
				T170_ = newIntNode__ast_3698(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				T171_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T171_ = ple__guards_1104(m, T170_, dc);
				T162_ = (T171_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA169_: ;
				T161_ = T162_;
				if (!(T161_)) goto LA172_;
				T173_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T173_ = ple__guards_1104(m, dc, ec1);
				T161_ = (T173_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA172_: ;
				T160_ = T161_;
				if (!(T160_)) goto LA174_;
				T175_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T175_ = ple__guards_1104(m, y, x);
				T160_ = (T175_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA174_: ;
				if (!T160_) goto LA176_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				goto BeforeRet_;
			}
			LA176_: ;
		}
		LA155_: ;
	}
	goto LA131_;
	LA150_: ;
	{
		NIM_BOOL T179_;
		NIM_BOOL T180_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T181_;
		NIM_BOOL T183_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dc_2;
		NIM_BOOL T186_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T187_;
		NIM_BOOL T189_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T190_;
		NIM_BOOL T192_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x2_2;
		NIM_BOOL T194_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ec_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y_2;
		T179_ = (NIM_BOOL)0;
		T180_ = (NIM_BOOL)0;
		T181_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)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__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*a)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
		LA184_: ;
		T180_ = T183_;
		LA182_: ;
		T179_ = T180_;
		if (!(T179_)) goto LA185_;
		T186_ = (NIM_BOOL)0;
		T187_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)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__shZhZOdbVC5nnFvcXQAImg)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__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*(*b)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__bROa11lyF5vxEN9aYNbHmhw* ec1_2;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__bROa11lyF5vxEN9aYNbHmhw* T210_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T211_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T213_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T214_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T216_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T217_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T219_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T221_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T222_;
				T206_ = (NIM_BOOL)0;
				T207_ = (NIM_BOOL)0;
				T208_ = (NIM_BOOL)0;
				T209_ = (NIM_BOOL)0;
				T210_ = NIM_NIL;
				T210_ = newIntNode__ast_3698(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				T211_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T211_ = ple__guards_1104(m, T210_, x_2);
				T209_ = (T211_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				if (!(T209_)) goto LA212_;
				T213_ = NIM_NIL;
				T213_ = newIntNode__ast_3698(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				T214_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T214_ = ple__guards_1104(m, T213_, ec_2);
				T209_ = (T214_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA212_: ;
				T208_ = T209_;
				if (!(T208_)) goto LA215_;
				T216_ = NIM_NIL;
				T216_ = newIntNode__ast_3698(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				T217_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T217_ = ple__guards_1104(m, T216_, dc_2);
				T208_ = (T217_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA215_: ;
				T207_ = T208_;
				if (!(T207_)) goto LA218_;
				T219_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T219_ = ple__guards_1104(m, dc_2, ec1_2);
				T207_ = (T219_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA218_: ;
				T206_ = T207_;
				if (!(T206_)) goto LA220_;
				T221_ = NIM_NIL;
				T221_ = zero__guards_255();
				T222_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T222_ = ple__guards_1104(m, y_2, T221_);
				T206_ = (T222_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA220_: ;
				if (!T206_) goto LA223_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				goto BeforeRet_;
			}
			LA223_: ;
		}
		LA201_: ;
	}
	goto LA131_;
	LA196_: ;
	LA131_: ;
	{
		NIM_BOOL T227_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T228_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T230_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T231_;
		T227_ = (NIM_BOOL)0;
		T228_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T228_ = getMagic__trees_137(a);
		T227_ = (T228_ >= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) && T228_ <= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48) || T228_ >= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51) && T228_ <= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55) || T228_ >= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 63) && T228_ <= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 64));
		if (!(T227_)) goto LA229_;
		T230_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T230_ = getMagic__trees_137(a);
		T231_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T231_ = getMagic__trees_137(b);
		T227_ = (T230_ == T231_);
		LA229_: ;
		if (!T227_) goto LA232_;
		{
			NIM_BOOL T236_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA 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__t4F29a8ejY1DFQTYTML9c9byA)0;
			T238_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 2)], (*b)._kind_6.sons->data[((NI) 2)]);
			T236_ = (T238_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA237_: ;
			if (!T236_) goto LA239_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		goto LA234_;
		LA239_: ;
		{
			NIM_BOOL T242_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA 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__t4F29a8ejY1DFQTYTML9c9byA)0;
			T244_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 1)], (*b)._kind_6.sons->data[((NI) 1)]);
			T242_ = (T244_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA243_: ;
			if (!T242_) goto LA245_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		goto LA234_;
		LA245_: ;
		LA234_: ;
	}
	LA232_: ;
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T249_;
		T249_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T249_ = getMagic__trees_137(a);
		if (!(T249_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T249_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56))) goto LA250_;
		{
			NIM_BOOL T254_;
			NIM_BOOL T255_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T256_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T257_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T259_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T260_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T262_;
			T254_ = (NIM_BOOL)0;
			T255_ = (NIM_BOOL)0;
			T256_ = NIM_NIL;
			T256_ = one__guards_257();
			T257_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T257_ = ple__guards_1104(m, T256_, (*a)._kind_6.sons->data[((NI) 2)]);
			T255_ = (T257_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (!(T255_)) goto LA258_;
			T259_ = NIM_NIL;
			T259_ = zero__guards_255();
			T260_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T260_ = ple__guards_1104(m, T259_, b);
			T255_ = (T260_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA258_: ;
			T254_ = T255_;
			if (!(T254_)) goto LA261_;
			T262_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T262_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 1)], b);
			T254_ = (T262_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA261_: ;
			if (!T254_) goto LA263_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA263_: ;
		{
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T267_;
			T267_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T267_ = getMagic__trees_137(b);
			if (!(T267_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T267_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56))) goto LA268_;
			{
				NIM_BOOL T272_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA 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__t4F29a8ejY1DFQTYTML9c9byA)0;
				T274_ = ple__guards_1104(m, (*b)._kind_6.sons->data[((NI) 2)], (*a)._kind_6.sons->data[((NI) 2)]);
				T272_ = (T274_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA273_: ;
				if (!T272_) goto LA275_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				goto BeforeRet_;
			}
			LA275_: ;
		}
		LA268_: ;
		{
			NIM_BOOL T279_;
			NIM_BOOL T280_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg 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__shZhZOdbVC5nnFvcXQAImg)0;
			T282_ = getMagic__trees_137(b);
			T280_ = (T282_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) || T282_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53) || T282_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__t4F29a8ejY1DFQTYTML9c9byA T289_;
				T288_ = (NIM_BOOL)0;
				T289_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T289_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 2)], (*a)._kind_6.sons->data[((NI) 1)]);
				T288_ = (T289_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 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__t4F29a8ejY1DFQTYTML9c9byA) 2);
				goto BeforeRet_;
			}
			LA291_: ;
		}
		LA284_: ;
	}
	LA250_: ;
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T295_;
		T295_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T295_ = getMagic__trees_137(b);
		if (!(T295_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 64))) goto LA296_;
		{
			NIM_BOOL T300_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T301_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T303_;
			T300_ = (NIM_BOOL)0;
			T301_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T301_ = ple__guards_1104(m, a, (*b)._kind_6.sons->data[((NI) 1)]);
			T300_ = (T301_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (T300_) goto LA302_;
			T303_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T303_ = ple__guards_1104(m, a, (*b)._kind_6.sons->data[((NI) 2)]);
			T300_ = (T303_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA302_: ;
			if (!T300_) goto LA304_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA304_: ;
	}
	LA296_: ;
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T308_;
		T308_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T308_ = getMagic__trees_137(a);
		if (!(T308_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 63))) goto LA309_;
		{
			NIM_BOOL T313_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T314_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T316_;
			T313_ = (NIM_BOOL)0;
			T314_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T314_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 1)], b);
			T313_ = (T314_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (T313_) goto LA315_;
			T316_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T316_ = ple__guards_1104(m, (*a)._kind_6.sons->data[((NI) 2)], b);
			T313_ = (T316_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA315_: ;
			if (!T313_) goto LA317_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA317_: ;
	}
	LA309_: ;
	result = pleViaModel__guards_1100(m, a, b);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, proveLe__guards_1619)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)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__bROa11lyF5vxEN9aYNbHmhw* y;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T9_;
		if (!(result == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 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__t4F29a8ejY1DFQTYTML9c9byA)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__bROa11lyF5vxEN9aYNbHmhw*, lowBound__guards_261)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
	result = NIM_NIL;
	T1_ = firstOrd__types_1353(conf, (*x).typ);
	result = newIntNode__ast_3702(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), T1_);
	(*result).info = (*x).info;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, highBound__guards_265)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
	result = NIM_NIL;
	typ = skipTypes__ast_3710((*x).typ, TM__6PEpSVg5zYQiUPcMieikwQ_5);
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T5_;
		if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA3_;
		T5_ = lastOrd__types_1465(conf, typ);
		result = newIntNode__ast_3702(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__9a3YiReNVD0IJHWFKgXRe9ag) 24));
		if (!(T8_)) goto LA9_;
		T8_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		LA9_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA10_;
		T7_ = ((*(*x)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10));
		LA10_: ;
		if (!T7_) goto LA11_;
		T13_ = (NI)0;
		T13_ = len__ast_3151((*(*x)._kind_4.sym).ast);
		result = newIntNode__ast_3698(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((NI)(T13_ - ((NI) 1)))));
	}
	goto LA1_;
	LA11_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__bROa11lyF5vxEN9aYNbHmhw*, buildProperFieldCheck__guards_1774)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* access, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		if (!((*(*check)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39))) goto LA3_;
		result = copyTree__ast_4406(check);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			if (!((*access).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA7_;
			a = copyTree__ast_4406(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__bROa11lyF5vxEN9aYNbHmhw* T10_;
		T10_ = NIM_NIL;
		T10_ = buildProperFieldCheck__guards_1774(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_1800)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3151(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				check = buildProperFieldCheck__guards_1774((*n)._kind_6.sons->data[((NI) 0)], (*n)._kind_6.sons->data[i], (&(*m.g).operators));
				{
					NIM_BOOL T6_;
					tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T8_;
					NimStringDesc* T11_;
					T6_ = (NIM_BOOL)0;
					T6_ = !((check == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
					if (!(T6_)) goto LA7_;
					T8_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
					T8_ = doesImply__guards_1022(m, check);
					T6_ = !((T8_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2)));
					LA7_: ;
					if (!T6_) goto LA9_;
					T11_ = NIM_NIL;
					T11_ = renderTree__renderer_46((*n)._kind_6.sons->data[((NI) 0)], 0);
					liMessage__msgs_1118(conf, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 43), T11_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__6PEpSVg5zYQiUPcMieikwQ_8, NIM_FALSE);
					goto LA1;
				}
				LA9_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	} LA1: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addAsgnFact__guards_1730)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact;
	NI T1_;
	fact = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*key).info, ((NI) 3));
	asgnRef((void**) (&(*fact)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3691((*(*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__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
	T1_ = (*m).s->Sup.len++;
	asgnRef((void**) (&(*m).s->data[T1_]), fact);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, interestingCaseExpr__guards_114)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = isLetLocation__guards_94(m, NIM_TRUE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, settype__guards_1647)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
	result = NIM_NIL;
	result = newType__ast_3871(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19), TM__6PEpSVg5zYQiUPcMieikwQ_10, (*(*n).typ).owner);
	idgen = NIM_NIL;
	addSonSkipIntLit__magicsys_136(result, (*n).typ, idgen);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildOf__guards_1651)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
	NI T1_;
	result = NIM_NIL;
	T1_ = (NI)0;
	T1_ = len__ast_3151(it);
	s = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (*it).info, (NI)(T1_ - ((NI) 1)));
	asgnRef((void**) (&(*s).typ), settype__guards_1647(loc));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = len__ast_3151(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_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*it).info, ((NI) 3));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3691((*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__bROa11lyF5vxEN9aYNbHmhw*, buildElse__guards_1673)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = settype__guards_1647((*n)._kind_6.sons->data[((NI) 0)]);
	s = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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_3151(n);
		colontmp_ = (NI)(T3_ - ((NI) 1));
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
				if (!(i_2 < colontmp_)) goto LA5;
				i = i_2;
				branch = (*n)._kind_6.sons->data[i];
				{
					if (!((*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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_3151(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_4772(s, (*branch)._kind_6.sons->data[j]);
								i_3 += ((NI) 1);
							} LA13: ;
						}
					}
				}
				LA8_: ;
				i_2 += ((NI) 1);
			} LA5: ;
		}
	}
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3691((*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_1755)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
	branch = (*n)._kind_6.sons->data[i];
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		NI T6_;
		if (!((*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = buildOf__guards_1651(branch, (*n)._kind_6.sons->data[((NI) 0)], (&(*(*m).g).operators));
		unsureAsgnRef((void**) (&(*m).s), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
		T6_ = (*m).s->Sup.len++;
		asgnRef((void**) (&(*m).s->data[T6_]), T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		NI T10_;
		T8_ = NIM_NIL;
		T8_ = buildElse__guards_1673(n, (&(*(*m).g).operators));
		T9_ = NIM_NIL;
		T9_ = neg__guards_126(T8_, (&(*(*m).g).operators));
		unsureAsgnRef((void**) (&(*m).s), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
		T10_ = (*m).s->Sup.len++;
		asgnRef((void**) (&(*m).s->data[T10_]), T9_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, usefulFact__guards_499)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T1_;
	result = NIM_NIL;
	T1_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T1_ = getMagic__trees_137(n);
	switch (T1_) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		{
			NIM_BOOL T5_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
			NIM_BOOL T8_;
			T5_ = (NIM_BOOL)0;
			T6_ = NIM_NIL;
			T6_ = skipConv__types_3589((*n)._kind_6.sons->data[((NI) 2)]);
			T5_ = ((*T6_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__shZhZOdbVC5nnFvcXQAImg T21_;
				tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T23_;
				T20_ = (NIM_BOOL)0;
				T21_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
				T21_ = getMagic__trees_137((*n)._kind_6.sons->data[((NI) 1)]);
				T20_ = (T21_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 36) || T21_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37) || T21_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 38) || T21_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39));
				if (T20_) goto LA22_;
				T23_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
				T23_ = getMagic__trees_137((*n)._kind_6.sons->data[((NI) 2)]);
				T20_ = (T23_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 36) || T23_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37) || T23_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 38) || T23_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39));
				LA22_: ;
				if (!T20_) goto LA24_;
				result = n;
			}
			goto LA13_;
			LA24_: ;
			LA13_: ;
		}
		LA3_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__shZhZOdbVC5nnFvcXQAImg T35_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T37_;
			T34_ = (NIM_BOOL)0;
			T35_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T35_ = getMagic__trees_137((*n)._kind_6.sons->data[((NI) 1)]);
			T34_ = (T35_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 36) || T35_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37) || T35_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 38) || T35_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39));
			if (T34_) goto LA36_;
			T37_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T37_ = getMagic__trees_137((*n)._kind_6.sons->data[((NI) 2)]);
			T34_ = (T37_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 36) || T37_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37) || T37_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 38) || T37_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39));
			LA36_: ;
			if (!T34_) goto LA38_;
			result = n;
		}
		goto LA27_;
		LA38_: ;
		LA27_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__shZhZOdbVC5nnFvcXQAImg) 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__shZhZOdbVC5nnFvcXQAImg) 109):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
			if (!(T56_)) goto LA57_;
			T56_ = !((b == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
			LA57_: ;
			if (!T56_) goto LA58_;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3691((*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__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA61_;
			result = a;
		}
		goto LA54_;
		LA61_: ;
		{
			if (!!((b == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA64_;
			result = b;
		}
		goto LA54_;
		LA64_: ;
		LA54_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
		a_2 = usefulFact__guards_499((*n)._kind_6.sons->data[((NI) 1)], o);
		{
			if (!!((a_2 == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA69_;
			result = neg__guards_126(a_2, o);
		}
		LA69_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_3;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T72_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
			if (!(T76_)) goto LA77_;
			T76_ = !((b_2 == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
			LA77_: ;
			if (!T76_) goto LA78_;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3691((*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__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T83_)) goto LA84_;
			T83_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
			LA84_: ;
			if (!T83_) goto LA85_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T89_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T92_;
				T89_ = NIM_NIL;
				T89_ = astdef__ast_3458((*n)._kind_4.sym);
				if (!!((T89_ == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA90_;
				T92_ = NIM_NIL;
				T92_ = astdef__ast_3458((*n)._kind_4.sym);
				result = usefulFact__guards_499(T92_, o);
			}
			LA90_: ;
		}
		goto LA81_;
		LA85_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T96_;
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA94_;
			T96_ = NIM_NIL;
			T96_ = lastSon__ast_4807(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__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nn) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	n = usefulFact__guards_499(nn, (&(*(*m).g).operators));
	{
		if (!!((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
		{
			NI T9_;
			if (!!((*m).beSmart)) goto LA7_;
			unsureAsgnRef((void**) (&(*m).s), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
			T9_ = (*m).s->Sup.len++;
			asgnRef((void**) (&(*m).s->data[T9_]), n);
		}
		goto LA5_;
		LA7_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c;
			c = canon__guards_345(n, (&(*(*m).g).operators));
			{
				tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T13_;
				T13_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
				T13_ = getMagic__trees_137(c);
				if (!(T13_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 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__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
				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__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
	n_2 = neg__guards_126(n, (&(*(*m).g).operators));
	{
		if (!!((n_2 == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
		addFact__guards_609(m, n_2);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addFactLe__guards_1634)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
	T3_ = (*m).s->Sup.len++;
	asgnRef((void**) (&(*m).s->data[T3_]), T2_);
}
N_LIB_PRIVATE N_NIMCALL(void, addFactLt__guards_1642)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bb;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	T1_ = NIM_NIL;
	T1_ = minusOne__guards_259();
	bb = buildCall__guards_191((*(*m).g).operators.opAdd, b, T1_);
	addFactLe__guards_1634(m, a, bb);
}
N_LIB_PRIVATE N_NIMCALL(void, addDiscriminantFact__guards_1717)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact;
	NI T1_;
	fact = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
	asgnRef((void**) (&(*fact)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3691((*(*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__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
	T1_ = (*m).s->Sup.len++;
	asgnRef((void**) (&(*m).s->data[T1_]), fact);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildAdd__guards_494)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, NI64 b, tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		if (!!((b == IL64(0)))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = newIntNode__ast_3698(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__shZhZOdbVC5nnFvcXQAImg T9_;
			T8_ = (NIM_BOOL)0;
			T9_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T9_ = getMagic__trees_137(a);
			T8_ = (T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) || T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53) || T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51));
			if (!(T8_)) goto LA10_;
			T8_ = ((*(*a)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*a)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__6PEpSVg5zYQiUPcMieikwQ_7_2[2];
static TNimNode TM__6PEpSVg5zYQiUPcMieikwQ_0[3];
NTItupleLa58pnode_b58pnodeT__EFqgCXJ4d8PgqOdFJmldsQ_.size = sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ);
NTItupleLa58pnode_b58pnodeT__EFqgCXJ4d8PgqOdFJmldsQ_.align = NIM_ALIGNOF(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ);
NTItupleLa58pnode_b58pnodeT__EFqgCXJ4d8PgqOdFJmldsQ_.kind = 18;
NTItupleLa58pnode_b58pnodeT__EFqgCXJ4d8PgqOdFJmldsQ_.base = 0;
TM__6PEpSVg5zYQiUPcMieikwQ_7_2[0] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[1];
TM__6PEpSVg5zYQiUPcMieikwQ_0[1].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[1].offset = offsetof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ, Field0);
TM__6PEpSVg5zYQiUPcMieikwQ_0[1].typ = (&NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[1].name = "Field0";
TM__6PEpSVg5zYQiUPcMieikwQ_7_2[1] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[2];
TM__6PEpSVg5zYQiUPcMieikwQ_0[2].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[2].offset = offsetof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ, Field1);
TM__6PEpSVg5zYQiUPcMieikwQ_0[2].typ = (&NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[2].name = "Field1";
TM__6PEpSVg5zYQiUPcMieikwQ_0[0].len = 2; TM__6PEpSVg5zYQiUPcMieikwQ_0[0].kind = 2; TM__6PEpSVg5zYQiUPcMieikwQ_0[0].sons = &TM__6PEpSVg5zYQiUPcMieikwQ_7_2[0];
NTItupleLa58pnode_b58pnodeT__EFqgCXJ4d8PgqOdFJmldsQ_.node = &TM__6PEpSVg5zYQiUPcMieikwQ_0[0];
NTItreplacements__nw2ozGiJbajPUc4Cj4vzYw_.size = sizeof(tySequence__nw2ozGiJbajPUc4Cj4vzYw*);
NTItreplacements__nw2ozGiJbajPUc4Cj4vzYw_.align = NIM_ALIGNOF(tySequence__nw2ozGiJbajPUc4Cj4vzYw*);
NTItreplacements__nw2ozGiJbajPUc4Cj4vzYw_.kind = 24;
NTItreplacements__nw2ozGiJbajPUc4Cj4vzYw_.base = (&NTItupleLa58pnode_b58pnodeT__EFqgCXJ4d8PgqOdFJmldsQ_);
NTItreplacements__nw2ozGiJbajPUc4Cj4vzYw_.marker = Marker_tySequence__nw2ozGiJbajPUc4Cj4vzYw;
}

