text: /* Generated by Nim Compiler v1.6.2 */
  #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_Table__hd3qB0wXU9bWPJR7fjShhbA tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA;
  typedef struct tySequence__61s9cbAniKuBrdHwBhMDfQg tySequence__61s9cbAniKuBrdHwBhMDfQg;
  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 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__rplX06U9bjhu9asm5pWdgqsA tyTuple__rplX06U9bjhu9asm5pWdgqsA;
  typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
  typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
  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;
  };
  struct tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA {
  tySequence__61s9cbAniKuBrdHwBhMDfQg* data;
  NI counter;
  };
  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;
  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_Table__hd3qB0wXU9bWPJR7fjShhbA modulesPerPackage;
  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;
  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__rplX06U9bjhu9asm5pWdgqsA {
  NI Field0;
  tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
  tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA Field2;
  };
  struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
  NI Field0;
  NI32 Field1;
  tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
  };
  struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
  NI Field0;
  NI32 Field1;
  NI32 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__61s9cbAniKuBrdHwBhMDfQg {
    TGenericSeq Sup;
    tyTuple__rplX06U9bjhu9asm5pWdgqsA 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__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_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
  static N_INLINE(void, asgnRef)(void** dest, void* src);
  static N_INLINE(void, incRef__system_5363)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5325)(void* usr);
  static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
  static N_INLINE(void, decRef__system_5370)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
  static N_INLINE(void, rtlAddZCT__system_5368)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5319)(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_3588)(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_4336)(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_3727)(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_3723)(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_4592)(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_752)(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_3360)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3716)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3735)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__ast_3378)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
  static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
  N_LIB_PRIVATE N_NIMCALL(void, add__ast_4797)(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_4413)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, astdef__ast_3483)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__ast_4431)(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_745)(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_1117)(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_3896)(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_4832)(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_5272;
  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_3198)(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_3198(a);
  				T31_ = (NI)0;
  				T31_ = len__ast_3198(b);
  				if (!(T30_ == T31_)) goto LA32_;
  				{
  					NI i;
  					NI colontmp_;
  					NI i_2;
  					i = (NI)0;
  					colontmp_ = (NI)0;
  					colontmp_ = len__ast_3198(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_3198(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_5363)(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_5325)(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_5368)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	addZCT__system_5319((&gch__system_5272.zct), c);
  }
  static N_INLINE(void, decRef__system_5370)(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_5368(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_5325(src);
  		incRef__system_5363(T5_);
  	}
  	LA3_: ;
  	{
  		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
  		if (!!(((*dest) == NIM_NIL))) goto LA8_;
  		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  		T10_ = usrToCell__system_5325((*dest));
  		decRef__system_5370(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_3588((*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_3588((*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_4336(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_3198(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_3727((*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_3723((*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_4592(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_752((*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_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*fact).info, ((NI) 3));
  	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(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_3191)(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_3198(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_3735((*(*n)._kind_6.sons->data[((NI) 2)]).typ, TM__6PEpSVg5zYQiUPcMieikwQ_5);
  		result = newNodeI__ast_3360(((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_3378(((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_3191((*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_3723(((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_4797(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_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
  			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716((*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_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 2));
  		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716((*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_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*a).info, ((NI) 2));
  	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(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_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (*a).info, ((NI) 3));
  	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(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_3723(((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_4336(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_4336(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_4336(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_4336(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_3723(((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_3735((*(*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_3588((*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_4336(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_3191(n);
  		if (!(((NI) 1) <= T3_)) goto LA4_;
  		result = shallowCopy__ast_4413(n);
  		{
  			NI i;
  			NI colontmp_;
  			NI i_2;
  			i = (NI)0;
  			colontmp_ = (NI)0;
  			colontmp_ = len__ast_3198(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_3483((*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_3483((*n)._kind_4.sym);
  		result = copyTree__ast_4431(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_3716((*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_3588(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_3198(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_3198(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_3723(((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_4336(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_4413(n);
  		{
  			NI i;
  			NI colontmp_;
  			NI T11_;
  			NI res;
  			i = (NI)0;
  			colontmp_ = (NI)0;
  			T11_ = (NI)0;
  			T11_ = safeLen__ast_3191(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_745(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_752((*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_3723(((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_3723(((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_3723(((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_3723(((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_3723(((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_3723(((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_3727(((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_3735((*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_3727(((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_3198((*(*x)._kind_4.sym).ast);
  		result = newIntNode__ast_3723(((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_4431(check);
  		{
  			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
  			if (!((*access).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA7_;
  			a = copyTree__ast_4431(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_3198(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_1117(conf, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 42), 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_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*key).info, ((NI) 3));
  	asgnRef((void**) (&(*fact)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716((*(*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_3896(((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_3198(it);
  	s = newNodeI__ast_3360(((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_3198(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_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*it).info, ((NI) 3));
  	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716((*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_3378(((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_3198(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_3198(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_4797(s, (*branch)._kind_6.sons->data[j]);
  								i_3 += ((NI) 1);
  							} LA13: ;
  						}
  					}
  				}
  				LA8_: ;
  				i_2 += ((NI) 1);
  			} LA5: ;
  		}
  	}
  	result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
  	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716((*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_3588((*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_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
  			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716((*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_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
  			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716((*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_3483((*n)._kind_4.sym);
  				if (!!((T89_ == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA90_;
  				T92_ = NIM_NIL;
  				T92_ = astdef__ast_3483((*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_4832(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_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
  	asgnRef((void**) (&(*fact)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716((*(*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_3723(((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, compiler_guardsDatInit000)(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;
  }
  
  