/* Generated by Nim Compiler v1.3.5 */
/*   (c) 2020 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 64

/* section: NIM_merge_HEADERS */

#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

/* section: NIM_merge_FRAME_DEFINES */
#define nimfr_(x, y)
#define nimln_(x, y)

/* section: NIM_merge_FORWARD_TYPES */
typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_Operators__apNm0zcYroUpNRird62c9aQ tyObject_Operators__apNm0zcYroUpNRird62c9aQ;
typedef struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tySequence__Ef05srmQTDulnBdXR4Ja6Q tySequence__Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA tySequence__DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ tySequence__DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
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 NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA;
typedef struct tySequence__MvZmat48bhe9b6x9aUD58D5Q tySequence__MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tySequence__nw2ozGiJbajPUc4Cj4vzYw tySequence__nw2ozGiJbajPUc4Cj4vzYw;
typedef struct tyTuple__EFqgCXJ4d8PgqOdFJmldsQ tyTuple__EFqgCXJ4d8PgqOdFJmldsQ;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple__zwpS6d6iewrdlBSTNFoyVA tyTuple__zwpS6d6iewrdlBSTNFoyVA;

/* section: NIM_merge_TYPES */
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_TIdObj__iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* data;
};
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
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__JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence__Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
} _kind_1;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_2;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
NI alignment;
} _kind_4;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* 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;
};
struct tyObject_Operators__apNm0zcYroUpNRird62c9aQ {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opNot;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opContains;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opLe;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opLt;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opAnd;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opOr;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opIsNil;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opEq;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opAdd;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opSub;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opMul;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opDiv;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opLen;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* 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__JpsEh5i1AcKChGYbg7aV4w* sym;
} _kind_4;
struct {tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
NimStringDesc* comment;
};
typedef NU8 tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg[34];
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
struct tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q {
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* s;
tyObject_Operators__apNm0zcYroUpNRird62c9aQ o;
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;
};
typedef NU64 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tyArray__PsPyPA45AAjHu4uDGHNjTg[6];
struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray__PsPyPA45AAjHu4uDGHNjTg attachedOps;
tySequence__MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
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 tyTuple__zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};

/* section: NIM_merge_SEQ_TYPES */
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__Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence__MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple__zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};

/* section: NIM_merge_PROC_HEADERS */
static N_INLINE(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, createMagic__MzNJxZ0htpjW89c9b2wBN5rQ)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, invalidateFacts__9bzGtUmtFxPwHyzLculgoSA)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasSubTree__MsjoJ819bWzwqrafMUbvZUQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTree__Uv9a9aANFtV79cIvUP5jEeyVA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameOpr__PxH8Zivvp3Un9ckV9c1ofpBA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, doesImply__TghwFZPkC6wzh9bOuwSr8jQ)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* facts, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prop);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, factImplies__ag9bsj603QsRYxrYUB8C9cMQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prop);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg, getMagic__4W1ZJaFiusqlhViRx9cbM9bw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, tilde___nnERY7FtzBMOEK1oaVzB1g)(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA x);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesIsNil__t9c54XcpWxP4FFmaGo7UFXw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eq);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, valueIsNil__toR49cyD1VaoDQ1st9avzzXw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__BH9abOhPX8pH0DnEWlRxmlw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesEq__t9c54XcpWxP4FFmaGo7UFXw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eq);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLocation__MH3XlBsw9ahhEwy5cK9cHBHA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, valuesUnequal__Uv9a9aANFtV79cIvUP5jEeyVA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameValue__uOYuOsiCZAbEPMGwBL8r8g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inSet__b4nxsJCvqXRlyalSWskgNA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elem);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesLe__zW7m5VCjU13sae0oFr8Uww)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, leValue__uOYuOsiCZAbEPMGwBL8r8g_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesGe__zW7m5VCjU13sae0oFr8Uww_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pred__sCNrMHnQvxnk67uE0fPE6w)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesLt__zW7m5VCjU13sae0oFr8Uww_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesIn__HL9bcwSOMkA5y4aYejstDyA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, compareSets__uX14XLtbeJxCxyMrK1w8tQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalSets__Jr5d2PbcnAZ0pFa4Ny88lg_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, intersectSets__DJXyM0ZYUUgI9bAP6orixDA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, leImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__4YOyxaxo739b3eaIho5QEcA)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_Int128__9a9axPfb75jdWY25AamJewkA intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__hjogdnp59cMX1rwmjikBhqw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, geImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__zcNs9blLGYB6i9aGKob9bpzRw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lastOrd__hjogdnp59cMX1rwmjikBhqw_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___7c5Zw7H31uJfWmmhZe9aEqw_3)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___Sp7OcCEIFoBYolB6PB1fAg_2)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, getInt__Ml9bTZ5dXYSLBfnGRkErokw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__161i7kexvUAISxPtGBRWYw)(NI arg);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___xL5gyZrjbGMarSdRAXOo9ag)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, neg__Jdq9bmYnl9bApH9aGfXEZQN8Q)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, swapArgs__HwkqKTJeHjmJRQe2q847cg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* newOp);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__I2DV2TmmOysY1ZEGW19b9bRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, add__P8dDSotTW25BkfbyspojGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildCall__rQdL9bdBvS9aqkRykTzQFSAw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, astdef__PBkjYIaAGbtrZ8DiUArHcw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__Dsjo9bte8vGxzhtcSrsTyiQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildCall__bzqLNgd7GiDpqZUsYKdenA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, minusOne__FWKgXUNtQfE7EUZKj6yRDQ)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, negate__ozAjEhyMPuZLnzTVOjeVwA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(NI64, barplusbar___AMT0epkRpHisEnmPCWqESg)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barplusbar___9aW9bU7lixsz3Yv9aqmOB2BFg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barstarbar___9aW9bU7lixsz3Yv9aqmOB2BFg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NI64, barstarbar___AMT0epkRpHisEnmPCWqESg_2)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, zero__FWKgXUNtQfE7EUZKj6yRDQ_2)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m, NIM_BOOL isApprox);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConstExpr__9cP6JNeOKqczaXCI4Zo4SBQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLet__MH3XlBsw9ahhEwy5cK9cHBHA_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isVar__MH3XlBsw9ahhEwy5cK9cHBHA_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barminusbar___9aW9bU7lixsz3Yv9aqmOB2BFg_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NI64, barminusbar___AMT0epkRpHisEnmPCWqESg_3)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, ple__gquZ4TuLCn9anC5O4OWI4Og_2)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__6euCPZwUsyXzP1vAm4IthA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NIM_BOOL allowEnumWithHoles);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___nr9cP9b0OL9cabygV9bo19cJgZA)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, one__FWKgXUNtQfE7EUZKj6yRDQ_3)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, bardivbar___9aW9bU7lixsz3Yv9aqmOB2BFg_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMinusOne__MH3XlBsw9ahhEwy5cK9cHBHA_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, pleViaModel__G9bUxQOJUHpRPU6xPkealOw)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* model, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aa, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bb);
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(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyReplacements__b6iA67SQaAf7h31PeZXmQQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__nw2ozGiJbajPUc4Cj4vzYw* rep);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, replaceSubTree__L5ySkEBBMvbFl1v5oW7tYg)(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__BXeoQpkXTRCPZ40rIGcsCA)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildProperFieldCheck__9czJQa7AVwwBTDjddykusKg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* access, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__Q6JNH4uRwLyZrj0dJakHew)(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__ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildOf__MGKHwffiWyEzWzB6rWIB9ag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, settype__nWHoIj7eHK9ad9brJqEijt9ag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newType__SNqpa06pdVCLFFBR28119aQ)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildElse__Jdq9bmYnl9bApH9aGfXEZQN8Q_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__UPSW0jLTX5qJL51YMUAHgw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addFact__ybuIey7mglQLm61kxh9aaLg)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nn);
N_LIB_PRIVATE N_NIMCALL(void, addFactLe__i9aAoMzJNp9aw6KruJgPZ0Ng)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);

/* section: NIM_merge_DATA */
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_2, "<=", 2);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_3, "<", 1);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_4, "and", 3);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_5, "or", 2);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_6, "isnil", 5);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_7, "==", 2);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_8, "+", 1);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_9, "-", 1);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_10, "*", 1);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_11, "div", 3);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_12, "len", 3);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_13, "not", 3);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_14, "contains", 8);
static NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg TM__6PEpSVg5zYQiUPcMieikwQ_15 = {
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}
;
static NIM_CONST tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ TM__6PEpSVg5zYQiUPcMieikwQ_16 = {((NI) 1),
((NI) 2)}
;
static NIM_CONST tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ TM__6PEpSVg5zYQiUPcMieikwQ_17 = {((NI) 2),
((NI) 1)}
;
static NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg TM__6PEpSVg5zYQiUPcMieikwQ_18 = {
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}
;
N_LIB_PRIVATE NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg someAdd__zsb09bV9aQEXvpjZmyMwZvKA = {
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}
;
N_LIB_PRIVATE NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg someMul__SEELPgz9b0o9c1cvwttwifGg = {
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}
;
N_LIB_PRIVATE TNimType NTI__EFqgCXJ4d8PgqOdFJmldsQ_;
extern TNimType NTI__fKfcLzXYiz5jNu3NH3Tv8Q_;
N_LIB_PRIVATE TNimType NTI__nw2ozGiJbajPUc4Cj4vzYw_;
N_LIB_PRIVATE TNimType NTI__apNm0zcYroUpNRird62c9aQ_;
extern TNimType NTI__K9bspPztfoWajecnwjyHuYQ_;
extern TNimType NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_22, "/home/runner/work/nim4py/nim4py/Nim/compiler/guards.nim", 55);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__6PEpSVg5zYQiUPcMieikwQ_21 = {((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_22),
((NI) 1076),
((NI) 13)}
;

/* section: NIM_merge_VARS */
extern NIM_BOOL nimInErrorMode__759bT87luu8XGcbkw13FUjA;

/* section: NIM_merge_PROCS */
static N_INLINE(void, unsureAsgnRef)(void** dest, void* src) {
	(*dest) = src;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (NIM_BOOL*)0;
	result = (&nimInErrorMode__759bT87luu8XGcbkw13FUjA);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initOperators__3Mq69aIkPINTsOZ4I5g1jZA)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* Result) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T1_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T2_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T3_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T4_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T5_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T6_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T7_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T8_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T9_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T10_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T11_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T12_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T13_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	unsureAsgnRef((void**)&(*Result).opNot, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).opContains, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).opLe, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).opLt, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).opAnd, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).opOr, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).opIsNil, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).opEq, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).opAdd, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).opSub, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).opMul, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).opDiv, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).opLen, NIM_NIL);
	T1_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_2), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).opLe = T1_;
	T2_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T2_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_3), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).opLt = T2_;
	T3_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T3_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_4), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).opAnd = T3_;
	T4_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T4_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_5), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).opOr = T4_;
	T5_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T5_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_6), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 143));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).opIsNil = T5_;
	T6_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T6_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_7), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).opEq = T6_;
	T7_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T7_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_8), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).opAdd = T7_;
	T8_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T8_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_9), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).opSub = T8_;
	T9_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T9_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_10), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).opMul = T9_;
	T10_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T10_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_11), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).opDiv = T10_;
	T11_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T11_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_12), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).opLen = T11_;
	T12_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T12_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_13), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).opNot = T12_;
	T13_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T13_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_14), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 134));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).opContains = T13_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameOpr__PxH8Zivvp3Un9ckV9c1ofpBA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* 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_15[(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__9bGgqEk7RXXl6eqM9c1HdELAsystem)(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__9bGgqEk7RXXl6eqM9c1HdELAsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(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__Uv9a9aANFtV79cIvUP5jEeyVA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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 == NIM_NIL));
		if (!(T7_)) goto LA8_;
		T7_ = !((b == 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_;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T21_;
				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_;
				T21_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T21_ = (*a)._kind_4.sym;
				T19_ = sameOpr__PxH8Zivvp3Un9ckV9c1ofpBA(T21_, (*b)._kind_4.sym);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA20_: ;
				result = T19_;
			}
			LA17_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
		{
			result = ((*(*a)._kind_5.ident).Sup.id == (*(*b)._kind_5.ident).Sup.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 T31_;
				NI T32_;
				T31_ = (NI)0;
				T31_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T32_ = (NI)0;
				T32_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T31_ == T32_)) goto LA33_;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA37;
							i = i_2;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T40_;
								NIM_BOOL T41_;
								T40_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T40_ = (*a)._kind_6.sons->data[i];
								T41_ = (NIM_BOOL)0;
								T41_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T40_, (*b)._kind_6.sons->data[i]);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!!(T41_)) goto LA42_;
								goto BeforeRet_;
							}
							LA42_: ;
							i_2 += ((NI) 1);
						} LA37: ;
					}
				}
				result = NIM_TRUE;
			}
			LA33_: ;
		}
		break;
		}
	}
	goto LA1_;
	LA10_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasSubTree__MsjoJ819bWzwqrafMUbvZUQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(n, x);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA4_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI T8_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T8_ = (NI)0;
			T8_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp_ = (NI)(T8_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA10;
					i = res;
					{
						NIM_BOOL T13_;
						T13_ = (NIM_BOOL)0;
						T13_ = hasSubTree__MsjoJ819bWzwqrafMUbvZUQ((*n)._kind_6.sons->data[i], x);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T13_) goto LA14_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA14_: ;
					res += ((NI) 1);
				} LA10: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, invalidateFacts__9bzGtUmtFxPwHyzLculgoSA)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		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] == NIM_NIL));
					if (!(T7_)) goto LA8_;
					T7_ = hasSubTree__MsjoJ819bWzwqrafMUbvZUQ((*s)->data[i], n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					LA8_: ;
					if (!T7_) goto LA9_;
					(*s)->data[i] = NIM_NIL;
				}
				LA9_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, invalidateFacts__no3iuruVlFxE0wQ8HA9b4ZA)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	invalidateFacts__9bzGtUmtFxPwHyzLculgoSA((&(*m).s), n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, tilde___nnERY7FtzBMOEK1oaVzB1g)(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__toR49cyD1VaoDQ1st9avzzXw)(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__t9c54XcpWxP4FFmaGo7UFXw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eq) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	switch ((*(*(*fact)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 143):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
			NIM_BOOL T5_;
			T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T4_ = (*fact)._kind_6.sons->data[((NI) 1)];
			T5_ = (NIM_BOOL)0;
			T5_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T4_, (*eq)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T5_) goto LA6_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
		}
		LA6_: ;
	}
	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):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
			NIM_BOOL T12_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
			T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T11_ = (*fact)._kind_6.sons->data[((NI) 1)];
			T12_ = (NIM_BOOL)0;
			T12_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T11_, (*eq)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T12_) goto LA13_;
			T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T15_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*fact)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = valueIsNil__toR49cyD1VaoDQ1st9avzzXw(T15_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA9_;
		LA13_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
			NIM_BOOL T18_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
			T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T17_ = (*fact)._kind_6.sons->data[((NI) 2)];
			T18_ = (NIM_BOOL)0;
			T18_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T17_, (*eq)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T18_) goto LA19_;
			T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T21_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*fact)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = valueIsNil__toR49cyD1VaoDQ1st9avzzXw(T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA9_;
		LA19_: ;
		LA9_: ;
	}
	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(NIM_BOOL, isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2)(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__MH3XlBsw9ahhEwy5cK9cHBHA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = !(T1_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, valuesUnequal__Uv9a9aANFtV79cIvUP5jEeyVA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_)) goto LA4_;
		T3_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NIM_BOOL)0;
		T7_ = sameValue__uOYuOsiCZAbEPMGwBL8r8g(a, b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = !(T7_);
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesEq__t9c54XcpWxP4FFmaGo7UFXw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eq) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T1_;
	NI loc;
	NI val;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = isLocation__MH3XlBsw9ahhEwy5cK9cHBHA((*eq)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T4_) goto LA5_;
		T1_ = TM__6PEpSVg5zYQiUPcMieikwQ_16;
	}
	goto LA2_;
	LA5_: ;
	{
		T1_ = TM__6PEpSVg5zYQiUPcMieikwQ_17;
	}
	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):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
			NIM_BOOL T12_;
			T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T11_ = (*fact)._kind_6.sons->data[((NI) 1)];
			T12_ = (NIM_BOOL)0;
			T12_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T11_, (*eq)._kind_6.sons->data[loc]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T12_) goto LA13_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
				NIM_BOOL T18_;
				T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T17_ = (*fact)._kind_6.sons->data[((NI) 2)];
				T18_ = (NIM_BOOL)0;
				T18_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T17_, (*eq)._kind_6.sons->data[val]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T18_) goto LA19_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA15_;
			LA19_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
				NIM_BOOL T23_;
				T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T22_ = (*fact)._kind_6.sons->data[((NI) 2)];
				T23_ = (NIM_BOOL)0;
				T23_ = valuesUnequal__Uv9a9aANFtV79cIvUP5jEeyVA_2(T22_, (*eq)._kind_6.sons->data[val]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T23_) goto LA24_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			goto LA15_;
			LA24_: ;
			LA15_: ;
		}
		goto LA9_;
		LA13_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
			NIM_BOOL T28_;
			T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T27_ = (*fact)._kind_6.sons->data[((NI) 2)];
			T28_ = (NIM_BOOL)0;
			T28_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T27_, (*eq)._kind_6.sons->data[loc]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T28_) goto LA29_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
				NIM_BOOL T34_;
				T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T33_ = (*fact)._kind_6.sons->data[((NI) 1)];
				T34_ = (NIM_BOOL)0;
				T34_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T33_, (*eq)._kind_6.sons->data[val]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T34_) goto LA35_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA31_;
			LA35_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T38_;
				NIM_BOOL T39_;
				T38_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T38_ = (*fact)._kind_6.sons->data[((NI) 1)];
				T39_ = (NIM_BOOL)0;
				T39_ = valuesUnequal__Uv9a9aANFtV79cIvUP5jEeyVA_2(T38_, (*eq)._kind_6.sons->data[val]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T39_) goto LA40_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			goto LA31_;
			LA40_: ;
			LA31_: ;
		}
		goto LA9_;
		LA29_: ;
		LA9_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 134):
	{
		{
			NIM_BOOL T45_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T46_;
			T45_ = (NIM_BOOL)0;
			T46_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T46_ = (*fact)._kind_6.sons->data[((NI) 2)];
			T45_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T46_, (*eq)._kind_6.sons->data[loc]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T45_)) goto LA47_;
			T45_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*eq)._kind_6.sons->data[val]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA47_: ;
			if (!T45_) goto LA48_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T52_;
				NIM_BOOL T53_;
				T52_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T52_ = (*fact)._kind_6.sons->data[((NI) 1)];
				T53_ = (NIM_BOOL)0;
				T53_ = inSet__b4nxsJCvqXRlyalSWskgNA(T52_, (*eq)._kind_6.sons->data[val]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T53_) goto LA54_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA50_;
			LA54_: ;
			{
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			LA50_: ;
		}
		LA48_: ;
	}
	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(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pred__sCNrMHnQvxnk67uE0fPE6w)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		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__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_1.intVal -= ((NI) 1);
	}
	goto LA1_;
	LA5_: ;
	{
		result = n;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesGe__zW7m5VCjU13sae0oFr8Uww_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 1)], x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T4_) goto LA5_;
			{
				NIM_BOOL T9_;
				T9_ = (NIM_BOOL)0;
				T9_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T9_)) goto LA10_;
				T9_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA10_: ;
				if (!T9_) goto LA11_;
				{
					NIM_BOOL T15_;
					T15_ = (NIM_BOOL)0;
					T15_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(c, (*fact)._kind_6.sons->data[((NI) 2)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 2)], x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T20_) goto LA21_;
			{
				NIM_BOOL T25_;
				T25_ = (NIM_BOOL)0;
				T25_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T25_)) goto LA26_;
				T25_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA26_: ;
				if (!T25_) goto LA27_;
				{
					NIM_BOOL T31_;
					T31_ = (NIM_BOOL)0;
					T31_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(c, (*fact)._kind_6.sons->data[((NI) 1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 1)], x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T38_) goto LA39_;
			{
				NIM_BOOL T43_;
				T43_ = (NIM_BOOL)0;
				T43_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T43_)) goto LA44_;
				T43_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA44_: ;
				if (!T43_) goto LA45_;
				{
					NIM_BOOL T49_;
					T49_ = (NIM_BOOL)0;
					T49_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2((*fact)._kind_6.sons->data[((NI) 2)], c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T49_) goto LA50_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA50_: ;
			}
			LA45_: ;
		}
		goto LA36_;
		LA39_: ;
		{
			NIM_BOOL T53_;
			T53_ = (NIM_BOOL)0;
			T53_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 2)], x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T53_) goto LA54_;
			{
				NIM_BOOL T58_;
				T58_ = (NIM_BOOL)0;
				T58_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T58_)) goto LA59_;
				T58_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA59_: ;
				if (!T58_) goto LA60_;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T64_;
					NIM_BOOL T65_;
					T64_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T64_ = pred__sCNrMHnQvxnk67uE0fPE6w(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T65_ = (NIM_BOOL)0;
					T65_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(T64_, (*fact)._kind_6.sons->data[((NI) 1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 1)], x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T71_) goto LA72_;
			{
				NIM_BOOL T76_;
				T76_ = (NIM_BOOL)0;
				T76_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T76_)) goto LA77_;
				T76_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA77_: ;
				if (!T76_) goto LA78_;
				{
					NIM_BOOL T82_;
					T82_ = (NIM_BOOL)0;
					T82_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2((*fact)._kind_6.sons->data[((NI) 2)], c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T82_) goto LA83_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA83_: ;
			}
			LA78_: ;
		}
		goto LA69_;
		LA72_: ;
		{
			NIM_BOOL T86_;
			T86_ = (NIM_BOOL)0;
			T86_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 2)], x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T86_) goto LA87_;
			{
				NIM_BOOL T91_;
				T91_ = (NIM_BOOL)0;
				T91_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T91_)) goto LA92_;
				T91_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA92_: ;
				if (!T91_) goto LA93_;
				{
					NIM_BOOL T97_;
					T97_ = (NIM_BOOL)0;
					T97_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(c, (*fact)._kind_6.sons->data[((NI) 1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesLe__zW7m5VCjU13sae0oFr8Uww)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isLocation__MH3XlBsw9ahhEwy5cK9cHBHA(x);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T3_)) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T8_) goto LA9_;
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(x, x);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				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__zW7m5VCjU13sae0oFr8Uww_2(fact, c, x);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		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__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 1)], x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T20_) goto LA21_;
			{
				NIM_BOOL T25_;
				T25_ = (NIM_BOOL)0;
				T25_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T25_)) goto LA26_;
				T25_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA26_: ;
				if (!T25_) goto LA27_;
				{
					NIM_BOOL T31_;
					T31_ = (NIM_BOOL)0;
					T31_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2((*fact)._kind_6.sons->data[((NI) 2)], c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 2)], x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T36_) goto LA37_;
			{
				NIM_BOOL T41_;
				T41_ = (NIM_BOOL)0;
				T41_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T41_)) goto LA42_;
				T41_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA42_: ;
				if (!T41_) goto LA43_;
				{
					NIM_BOOL T47_;
					T47_ = (NIM_BOOL)0;
					T47_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2((*fact)._kind_6.sons->data[((NI) 1)], c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 1)], x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T54_) goto LA55_;
			{
				NIM_BOOL T59_;
				T59_ = (NIM_BOOL)0;
				T59_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T59_)) goto LA60_;
				T59_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA60_: ;
				if (!T59_) goto LA61_;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T65_;
					NIM_BOOL T66_;
					T65_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T65_ = pred__sCNrMHnQvxnk67uE0fPE6w(c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T66_ = (NIM_BOOL)0;
					T66_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2((*fact)._kind_6.sons->data[((NI) 2)], T65_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T66_) goto LA67_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				LA67_: ;
			}
			LA61_: ;
		}
		goto LA52_;
		LA55_: ;
		{
			NIM_BOOL T70_;
			T70_ = (NIM_BOOL)0;
			T70_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 2)], x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T70_) goto LA71_;
			{
				NIM_BOOL T75_;
				T75_ = (NIM_BOOL)0;
				T75_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T75_)) goto LA76_;
				T75_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA76_: ;
				if (!T75_) goto LA77_;
				{
					NIM_BOOL T81_;
					T81_ = (NIM_BOOL)0;
					T81_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(c, (*fact)._kind_6.sons->data[((NI) 1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 1)], x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T87_) goto LA88_;
			{
				NIM_BOOL T92_;
				T92_ = (NIM_BOOL)0;
				T92_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T92_)) goto LA93_;
				T92_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA93_: ;
				if (!T92_) goto LA94_;
				{
					NIM_BOOL T98_;
					T98_ = (NIM_BOOL)0;
					T98_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2((*fact)._kind_6.sons->data[((NI) 2)], c);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T98_) goto LA99_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				LA99_: ;
			}
			LA94_: ;
		}
		goto LA85_;
		LA88_: ;
		{
			NIM_BOOL T102_;
			T102_ = (NIM_BOOL)0;
			T102_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 2)], x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T102_) goto LA103_;
			{
				NIM_BOOL T107_;
				T107_ = (NIM_BOOL)0;
				T107_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T107_)) goto LA108_;
				T107_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA108_: ;
				if (!T107_) goto LA109_;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T113_;
					NIM_BOOL T114_;
					T113_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T113_ = pred__sCNrMHnQvxnk67uE0fPE6w((*fact)._kind_6.sons->data[((NI) 1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T114_ = (NIM_BOOL)0;
					T114_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(c, T113_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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__zW7m5VCjU13sae0oFr8Uww_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	p = pred__sCNrMHnQvxnk67uE0fPE6w(c);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((p == c))) goto LA3_;
		result = impliesLe__zW7m5VCjU13sae0oFr8Uww(fact, x, p);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* q;
		q = pred__sCNrMHnQvxnk67uE0fPE6w(x);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((q == x))) goto LA8_;
			result = impliesLe__zW7m5VCjU13sae0oFr8Uww(fact, q, c);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA8_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, compareSets__uX14XLtbeJxCxyMrK1w8tQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = equalSets__Jr5d2PbcnAZ0pFa4Ny88lg_2(NIM_NIL, a, b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		NI T8_;
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = intersectSets__DJXyM0ZYUUgI9bAP6orixDA(NIM_NIL, a, b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T8_ = (NI)0;
		T8_ = len__P89cqdlERShb9alU3iC0yj8wast(T7_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T8_ == ((NI) 0))) goto LA9_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
	}
	goto LA1_;
	LA9_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, leImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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__hjogdnp59cMX1rwmjikBhqw(NIM_NIL, (*x).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		value = newIntNode__4YOyxaxo739b3eaIho5QEcA((*c).kind, T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			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__b4nxsJCvqXRlyalSWskgNA(aSet, value);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						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_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, geImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
		tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw T5_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA max;
		if (!((*c).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*c).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw)0;
		T5_ = (*c).kind;
		value = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(T5_, (*c)._kind_1.intVal);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		max = lastOrd__hjogdnp59cMX1rwmjikBhqw_2(NIM_NIL, (*x).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T8_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T9_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T10_;
			NIM_BOOL T11_;
			NI i;
			NI pos;
			NI neg;
			T8_ = getInt__Ml9bTZ5dXYSLBfnGRkErokw(value);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T9_ = minus___Sp7OcCEIFoBYolB6PB1fAg_2(max, T8_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T10_ = toInt128__161i7kexvUAISxPtGBRWYw(((NI) 1000));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T11_ = (NIM_BOOL)0;
			T11_ = lt___7c5Zw7H31uJfWmmhZe9aEqw_3(T9_, T10_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T11_) goto LA12_;
			i = (NI)0;
			pos = (NI)0;
			neg = (NI)0;
			{
				while (1) {
					NIM_BOOL T16_;
					T16_ = (NIM_BOOL)0;
					T16_ = lteq___xL5gyZrjbGMarSdRAXOo9ag((*value)._kind_1.intVal, max);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T16_) goto LA15;
					{
						NIM_BOOL T19_;
						T19_ = (NIM_BOOL)0;
						T19_ = inSet__b4nxsJCvqXRlyalSWskgNA(aSet, value);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T19_) goto LA20_;
						pos += ((NI) 1);
					}
					goto LA17_;
					LA20_: ;
					{
						neg += ((NI) 1);
					}
					LA17_: ;
					i += ((NI) 1);
					(*value)._kind_1.intVal += ((NI) 1);
				} LA15: ;
			}
			{
				if (!(pos == i)) goto LA25_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA23_;
			LA25_: ;
			{
				if (!(neg == i)) goto LA28_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			goto LA23_;
			LA28_: ;
			LA23_: ;
		}
		LA12_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesIn__HL9bcwSOMkA5y4aYejstDyA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 1)], loc);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T4_) goto LA5_;
			{
				NIM_BOOL T9_;
				T9_ = (NIM_BOOL)0;
				T9_ = inSet__b4nxsJCvqXRlyalSWskgNA(aSet, (*fact)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				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__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 2)], loc);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA15_;
			{
				NIM_BOOL T19_;
				T19_ = (NIM_BOOL)0;
				T19_ = inSet__b4nxsJCvqXRlyalSWskgNA(aSet, (*fact)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				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__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 2)], loc);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T26_) goto LA27_;
			result = compareSets__uX14XLtbeJxCxyMrK1w8tQ((*fact)._kind_6.sons->data[((NI) 1)], aSet);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		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_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
			T32_ = (NIM_BOOL)0;
			T32_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 1)], loc);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T32_) goto LA33_;
			T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T35_ = (*fact)._kind_6.sons->data[((NI) 1)];
			result = leImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA(T35_, (*fact)._kind_6.sons->data[((NI) 2)], aSet);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA30_;
		LA33_: ;
		{
			NIM_BOOL T37_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T40_;
			T37_ = (NIM_BOOL)0;
			T37_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 2)], loc);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T37_) goto LA38_;
			T40_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T40_ = (*fact)._kind_6.sons->data[((NI) 2)];
			result = geImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA_2(T40_, (*fact)._kind_6.sons->data[((NI) 1)], aSet);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA30_;
		LA38_: ;
		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 T44_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T47_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T48_;
			T44_ = (NIM_BOOL)0;
			T44_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 1)], loc);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T44_) goto LA45_;
			T47_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T47_ = (*fact)._kind_6.sons->data[((NI) 1)];
			T48_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T48_ = pred__sCNrMHnQvxnk67uE0fPE6w((*fact)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = leImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA(T47_, T48_, aSet);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA42_;
		LA45_: ;
		{
			NIM_BOOL T50_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T53_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T54_;
			T50_ = (NIM_BOOL)0;
			T50_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact)._kind_6.sons->data[((NI) 2)], loc);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T50_) goto LA51_;
			T53_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T53_ = (*fact)._kind_6.sons->data[((NI) 2)];
			T54_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T54_ = pred__sCNrMHnQvxnk67uE0fPE6w((*fact)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = geImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA_2(T53_, T54_, aSet);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA42_;
		LA51_: ;
		LA42_: ;
	}
	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, factImplies__ag9bsj603QsRYxrYUB8C9cMQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prop) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	T1_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T1_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(fact);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	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__4W1ZJaFiusqlhViRx9cbM9bw(arg);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		switch (T3_) {
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 143):
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
		{
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T5_;
			T5_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T5_ = factImplies__ag9bsj603QsRYxrYUB8C9cMQ(arg, prop);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = tilde___nnERY7FtzBMOEK1oaVzB1g(T5_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109):
		{
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA a;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA b;
			a = factImplies__ag9bsj603QsRYxrYUB8C9cMQ((*arg)._kind_6.sons->data[((NI) 1)], prop);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			b = factImplies__ag9bsj603QsRYxrYUB8C9cMQ((*arg)._kind_6.sons->data[((NI) 2)], prop);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!(a == b)) goto LA9_;
				result = tilde___nnERY7FtzBMOEK1oaVzB1g(a);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				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__ag9bsj603QsRYxrYUB8C9cMQ((*fact)._kind_6.sons->data[((NI) 1)], prop);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((result == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0)))) goto LA15_;
			goto BeforeRet_;
		}
		LA15_: ;
		result = factImplies__ag9bsj603QsRYxrYUB8C9cMQ((*fact)._kind_6.sons->data[((NI) 2)], prop);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		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__ag9bsj603QsRYxrYUB8C9cMQ(fact, (*prop)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = tilde___nnERY7FtzBMOEK1oaVzB1g(T19_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 143):
	{
		result = impliesIsNil__t9c54XcpWxP4FFmaGo7UFXw(fact, prop);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	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__t9c54XcpWxP4FFmaGo7UFXw_2(fact, prop);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	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):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
		T23_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T23_ = (*prop)._kind_6.sons->data[((NI) 1)];
		result = impliesLe__zW7m5VCjU13sae0oFr8Uww(fact, T23_, (*prop)._kind_6.sons->data[((NI) 2)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	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):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
		T25_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T25_ = (*prop)._kind_6.sons->data[((NI) 1)];
		result = impliesLt__zW7m5VCjU13sae0oFr8Uww_3(fact, T25_, (*prop)._kind_6.sons->data[((NI) 2)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 134):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
		T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T27_ = (*prop)._kind_6.sons->data[((NI) 2)];
		result = impliesIn__HL9bcwSOMkA5y4aYejstDyA(fact, T27_, (*prop)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, doesImply__TghwFZPkC6wzh9bOuwSr8jQ)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* facts, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prop) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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__ag9bsj603QsRYxrYUB8C9cMQ((*f), prop);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!((result == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0)))) goto LA11_;
						goto BeforeRet_;
					}
					LA11_: ;
				}
				LA7_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(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) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, swapArgs__HwkqKTJeHjmJRQe2q847cg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* newOp) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*fact).info, ((NI) 3));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(newOp);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_6.sons->data[((NI) 0)] = T1_;
	(*result)._kind_6.sons->data[((NI) 1)] = (*fact)._kind_6.sons->data[((NI) 2)];
	(*result)._kind_6.sons->data[((NI) 2)] = (*fact)._kind_6.sons->data[((NI) 1)];
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, neg__Jdq9bmYnl9bApH9aGfXEZQN8Q)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T5_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!(n == NIM_NIL)) goto LA3_;
		result = NIM_NIL;
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T5_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	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__HwkqKTJeHjmJRQe2q847cg(n, (*o).opLe);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	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__HwkqKTJeHjmJRQe2q847cg(n, (*o).opLt);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 134):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39)))) goto LA12_;
			result = NIM_NIL;
			goto BeforeRet_;
		}
		LA12_: ;
		t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 2)]).typ, IL64(36134350135273744));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 0)] = (*n)._kind_6.sons->data[((NI) 0)];
		(*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__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (*n).info, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
				e = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast((*t).n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((*(*e)._kind_4.sym).position)));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								NIM_BOOL T24_;
								T24_ = (NIM_BOOL)0;
								T24_ = inSet__b4nxsJCvqXRlyalSWskgNA((*n)._kind_6.sons->data[((NI) 1)], eAsNode);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!!(T24_)) goto LA25_;
								add__P8dDSotTW25BkfbyspojGg(s, eAsNode);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA25_: ;
							i_2 += ((NI) 1);
						} LA21: ;
					}
				}
			}
			(*result)._kind_6.sons->data[((NI) 1)] = s;
		}
		goto LA14_;
		LA16_: ;
		{
			result = NIM_NIL;
		}
		LA14_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		a = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q((*n)._kind_6.sons->data[((NI) 1)], o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		b = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q((*n)._kind_6.sons->data[((NI) 2)], o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T31_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
			T31_ = (NIM_BOOL)0;
			T31_ = !((a == NIM_NIL));
			if (!(T31_)) goto LA32_;
			T31_ = !((b == NIM_NIL));
			LA32_: ;
			if (!T31_) goto LA33_;
			result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T35_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opAnd);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result)._kind_6.sons->data[((NI) 0)] = T35_;
			(*result)._kind_6.sons->data[((NI) 1)] = a;
			(*result)._kind_6.sons->data[((NI) 2)] = b;
		}
		goto LA29_;
		LA33_: ;
		{
			if (!!((a == NIM_NIL))) goto LA37_;
			result = a;
		}
		goto LA29_;
		LA37_: ;
		{
			if (!!((b == NIM_NIL))) goto LA40_;
			result = b;
		}
		goto LA29_;
		LA40_: ;
		LA29_: ;
	}
	break;
	default:
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
		result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 2));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T43_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T43_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opNot);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 0)] = T43_;
		(*result)._kind_6.sons->data[((NI) 1)] = n;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildCall__rQdL9bdBvS9aqkRykTzQFSAw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*a).info, ((NI) 2));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(op);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_6.sons->data[((NI) 0)] = T1_;
	(*result)._kind_6.sons->data[((NI) 1)] = a;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesNotNil__x6MUw3H3bS3WZ5DYhXX61Q)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	nimZeroMem((void*)(&T1_), sizeof(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q));
	T1_.s = (*m).s;
	nimCopyMem((void*)(&T1_.o), (NIM_CONST void*)(&(*m).o), sizeof(T1_.o));
	T1_.beSmart = (*m).beSmart;
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = buildCall__rQdL9bdBvS9aqkRykTzQFSAw((*m).o.opIsNil, arg);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(T2_, (&(*m).o));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = doesImply__TghwFZPkC6wzh9bOuwSr8jQ((&T1_), T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildCall__bzqLNgd7GiDpqZUsYKdenA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (*a).info, ((NI) 3));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(op);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_6.sons->data[((NI) 0)] = T1_;
	(*result)._kind_6.sons->data[((NI) 1)] = a;
	(*result)._kind_6.sons->data[((NI) 2)] = b;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, minusOne__FWKgXUNtQfE7EUZKj6yRDQ)(void) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(-1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, negate__ozAjEhyMPuZLnzTVOjeVwA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		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__Dsjo9bte8vGxzhtcSrsTyiQ_2(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*b_2)._kind_1.intVal = -((*b_2)._kind_1.intVal);
		{
			NI64 T11_;
			NI64 T12_;
			if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA9_;
			T11_ = (NI64)0;
			T11_ = (*b_2)._kind_1.intVal;
			T12_ = (NI64)0;
			T12_ = barplusbar___AMT0epkRpHisEnmPCWqESg(T11_, (*a)._kind_1.intVal);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*b_2)._kind_1.intVal = T12_;
			result = b_2;
		}
		goto LA7_;
		LA9_: ;
		{
			result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, a, b_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA7_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b_3;
		if (!((*b).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) && (*b).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18))) goto LA15_;
		b_3 = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*b_3)._kind_2.floatVal = -((*b_3)._kind_2.floatVal);
		result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, a, b_3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA15_: ;
	{
		result = res;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barplusbar___9aW9bU7lixsz3Yv9aqmOB2BFg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(a);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI64 T5_;
		NI64 T6_;
		if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (NI64)0;
		T5_ = (*a)._kind_1.intVal;
		T6_ = (NI64)0;
		T6_ = barplusbar___AMT0epkRpHisEnmPCWqESg(T5_, (*b)._kind_1.intVal);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_1.intVal = T6_;
	}
	goto LA1_;
	LA3_: ;
	{
		(*result)._kind_2.floatVal = ((NF)((*a)._kind_2.floatVal) + (NF)((*b)._kind_2.floatVal));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barstarbar___9aW9bU7lixsz3Yv9aqmOB2BFg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(a);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI64 T5_;
		NI64 T6_;
		if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (NI64)0;
		T5_ = (*a)._kind_1.intVal;
		T6_ = (NI64)0;
		T6_ = barstarbar___AMT0epkRpHisEnmPCWqESg_2(T5_, (*b)._kind_1.intVal);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_1.intVal = T6_;
	}
	goto LA1_;
	LA3_: ;
	{
		(*result)._kind_2.floatVal = ((NF)((*a)._kind_2.floatVal) * (NF)((*b)._kind_2.floatVal));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, zero__FWKgXUNtQfE7EUZKj6yRDQ_2)(void) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	T1_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T1_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	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_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
			T5_ = (NIM_BOOL)0;
			T6_ = (NIM_BOOL)0;
			T6_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*result)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T6_)) goto LA7_;
			T8_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T8_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*result)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			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__MH3XlBsw9ahhEwy5cK9cHBHA_2((*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA9_: ;
			if (!T5_) goto LA10_;
			T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = (*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)];
			T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T13_ = (*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)];
			T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T14_ = barplusbar___9aW9bU7lixsz3Yv9aqmOB2BFg(T13_, (*result)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, T12_, T14_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!((*(*result)._kind_6.sons->data[((NI) 2)])._kind_1.intVal == IL64(0))) goto LA17_;
				result = (*result)._kind_6.sons->data[((NI) 1)];
			}
			LA17_: ;
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55):
	{
		{
			NIM_BOOL T22_;
			NIM_BOOL T23_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T25_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
			T22_ = (NIM_BOOL)0;
			T23_ = (NIM_BOOL)0;
			T23_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*result)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T23_)) goto LA24_;
			T25_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T25_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*result)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T23_ = (T25_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48) || T25_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55));
			LA24_: ;
			T22_ = T23_;
			if (!(T22_)) goto LA26_;
			T22_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA26_: ;
			if (!T22_) goto LA27_;
			T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T29_ = (*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)];
			T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T30_ = (*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)];
			T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T31_ = barstarbar___9aW9bU7lixsz3Yv9aqmOB2BFg_2(T30_, (*result)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opMul, T29_, T31_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!((*(*result)._kind_6.sons->data[((NI) 2)])._kind_1.intVal == IL64(1))) goto LA34_;
				result = (*result)._kind_6.sons->data[((NI) 1)];
			}
			goto LA32_;
			LA34_: ;
			{
				if (!((*(*result)._kind_6.sons->data[((NI) 2)])._kind_1.intVal == IL64(0))) goto LA37_;
				result = zero__FWKgXUNtQfE7EUZKj6yRDQ_2();
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA32_;
			LA37_: ;
			LA32_: ;
		}
		LA27_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLet__MH3XlBsw9ahhEwy5cK9cHBHA_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			if (!(T10_)) goto LA11_;
			T12_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T12_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_4.sym).typ, IL64(36134350135273744));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T10_ = !(((8388608 &((NU64)1<<((NU)((*T12_).kind)&63U)))!=0));
			LA11_: ;
			if (!T10_) goto LA13_;
			result = NIM_TRUE;
		}
		goto LA5_;
		LA13_: ;
		LA5_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isVar__MH3XlBsw9ahhEwy5cK9cHBHA_4)(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__k0CAmeGJ0QkU2k18EA9c3PA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m, NIM_BOOL isApprox) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	NI derefs;
	NIM_BOOL T18_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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__9cP6JNeOKqczaXCI4Zo4SBQ_2((*n)._kind_6.sons->data[((NI) 1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (T9_) goto LA10_;
					T9_ = isLet__MH3XlBsw9ahhEwy5cK9cHBHA_3((*n)._kind_6.sons->data[((NI) 1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					LA10_: ;
					T8_ = T9_;
					if (T8_) goto LA11_;
					T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T12_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*n)._kind_6.sons->data[((NI) 1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T8_ = isConstExpr__9cP6JNeOKqczaXCI4Zo4SBQ_2(T12_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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__MH3XlBsw9ahhEwy5cK9cHBHA_3(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	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__MH3XlBsw9ahhEwy5cK9cHBHA_4(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA24_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barminusbar___9aW9bU7lixsz3Yv9aqmOB2BFg_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(a);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI64 T5_;
		NI64 T6_;
		if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (NI64)0;
		T5_ = (*a)._kind_1.intVal;
		T6_ = (NI64)0;
		T6_ = barminusbar___AMT0epkRpHisEnmPCWqESg_3(T5_, (*b)._kind_1.intVal);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_1.intVal = T6_;
	}
	goto LA1_;
	LA3_: ;
	{
		(*result)._kind_2.floatVal = ((NF)((*a)._kind_2.floatVal) - (NF)((*b)._kind_2.floatVal));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T21_;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T49_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(((NI) 1) <= T3_)) goto LA4_;
		result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T9_ = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_2((*n)._kind_6.sons->data[i], o);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result)._kind_6.sons->data[i] = T9_;
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T11_;
		NIM_BOOL T12_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T16_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
		T11_ = (NIM_BOOL)0;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T12_)) goto LA13_;
		T12_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
		LA13_: ;
		T11_ = T12_;
		if (!(T11_)) goto LA14_;
		T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T15_ = astdef__PBkjYIaAGbtrZ8DiUArHcw((*n)._kind_4.sym);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T16_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T16_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(T15_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T11_ = ((TM__6PEpSVg5zYQiUPcMieikwQ_18[(NU)(T16_)>>3] &(1U<<((NU)(T16_)&7U)))!=0);
		LA14_: ;
		if (!T11_) goto LA17_;
		T19_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T19_ = astdef__PBkjYIaAGbtrZ8DiUArHcw((*n)._kind_4.sym);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(T19_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA17_: ;
	{
		result = n;
	}
	LA1_: ;
	T21_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T21_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch (T21_) {
	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 T25_;
			NIM_BOOL T27_;
			T25_ = (NIM_BOOL)0;
			T25_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*result)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T25_)) goto LA26_;
			T27_ = (NIM_BOOL)0;
			T27_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*result)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T25_ = !(T27_);
			LA26_: ;
			if (!T25_) goto LA28_;
			result = swapArgs__HwkqKTJeHjmJRQe2q847cg(result, (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA28_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 9):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T31_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		T31_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T31_ = (*o).opAdd;
		T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T32_ = buildCall__rQdL9bdBvS9aqkRykTzQFSAw((*o).opLen, (*result)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T33_ = minusOne__FWKgXUNtQfE7EUZKj6yRDQ();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = buildCall__bzqLNgd7GiDpqZUsYKdenA(T31_, T32_, T33_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
		T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T35_ = (*result)._kind_6.sons->data[((NI) 1)];
		result = negate__ozAjEhyMPuZLnzTVOjeVwA(T35_, (*result)._kind_6.sons->data[((NI) 2)], result, o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 36) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
		T37_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T37_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opLen);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 0)] = T37_;
	}
	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_TSym__JpsEh5i1AcKChGYbg7aV4w* T46_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T47_;
		y = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_2((*n)._kind_6.sons->data[((NI) 2)], o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		p = pred__sCNrMHnQvxnk67uE0fPE6w(y);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((p == y))) goto LA41_;
			minus = p;
		}
		goto LA39_;
		LA41_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T44_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T45_;
			T44_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T44_ = minusOne__FWKgXUNtQfE7EUZKj6yRDQ();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T45_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T45_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, y, T44_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			minus = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_2(T45_, o);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA39_: ;
		T46_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T46_ = (*o).opLe;
		T47_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T47_ = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_2((*n)._kind_6.sons->data[((NI) 1)], o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = buildCall__bzqLNgd7GiDpqZUsYKdenA(T46_, T47_, minus);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
	}
	break;
	}
	result = skipConv__BH9abOhPX8pH0DnEWlRxmlw(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_3(result, o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T49_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T49_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch (T49_) {
	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 T53_;
			NIM_BOOL T54_;
			NIM_BOOL T55_;
			NI T57_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T62_;
			T53_ = (NIM_BOOL)0;
			T54_ = (NIM_BOOL)0;
			T55_ = (NIM_BOOL)0;
			T55_ = ((*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 (!(T55_)) goto LA56_;
			T57_ = (NI)0;
			T57_ = len__P89cqdlERShb9alU3iC0yj8wast(x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T55_ = (T57_ == ((NI) 3));
			LA56_: ;
			T54_ = T55_;
			if (!(T54_)) goto LA58_;
			T54_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*x)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA58_: ;
			T53_ = T54_;
			if (!(T53_)) goto LA59_;
			T53_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*x)._kind_6.sons->data[((NI) 1)], NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA59_: ;
			if (!T53_) goto LA60_;
			T62_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T62_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			switch (T62_) {
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T64_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T65_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T66_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T67_;
				T64_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T64_ = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
				T65_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T65_ = (*x)._kind_6.sons->data[((NI) 1)];
				T66_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T66_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, y_2, (*x)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T67_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T67_ = reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_3(T66_, o);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = buildCall__bzqLNgd7GiDpqZUsYKdenA(T64_, T65_, T67_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* plus;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T69_;
				T69_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T69_ = negate__ozAjEhyMPuZLnzTVOjeVwA(y_2, (*x)._kind_6.sons->data[((NI) 2)], NIM_NIL, o);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				plus = reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_3(T69_, o);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T74_;
					if (!!((plus == NIM_NIL))) goto LA72_;
					T74_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
					T74_ = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
					result = buildCall__bzqLNgd7GiDpqZUsYKdenA(T74_, (*x)._kind_6.sons->data[((NI) 1)], plus);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA72_: ;
			}
			break;
			default:
			{
			}
			break;
			}
		}
		goto LA51_;
		LA60_: ;
		{
			NIM_BOOL T77_;
			NIM_BOOL T78_;
			NIM_BOOL T79_;
			NI T81_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T86_;
			T77_ = (NIM_BOOL)0;
			T78_ = (NIM_BOOL)0;
			T79_ = (NIM_BOOL)0;
			T79_ = ((*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 (!(T79_)) goto LA80_;
			T81_ = (NI)0;
			T81_ = len__P89cqdlERShb9alU3iC0yj8wast(y_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T79_ = (T81_ == ((NI) 3));
			LA80_: ;
			T78_ = T79_;
			if (!(T78_)) goto LA82_;
			T78_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*y_2)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA82_: ;
			T77_ = T78_;
			if (!(T77_)) goto LA83_;
			T77_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*y_2)._kind_6.sons->data[((NI) 1)], NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA83_: ;
			if (!T77_) goto LA84_;
			T86_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T86_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(y_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			switch (T86_) {
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T88_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T89_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T90_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T91_;
				T88_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T88_ = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
				T89_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T89_ = (*y_2)._kind_6.sons->data[((NI) 1)];
				T90_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T90_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, x, (*y_2)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T91_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T91_ = reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_3(T90_, o);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = buildCall__bzqLNgd7GiDpqZUsYKdenA(T88_, T89_, T91_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* plus_2;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T93_;
				T93_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T93_ = negate__ozAjEhyMPuZLnzTVOjeVwA(x, (*y_2)._kind_6.sons->data[((NI) 2)], NIM_NIL, o);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				plus_2 = reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_3(T93_, o);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T96_;
					NIM_BOOL T98_;
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T101_;
					T96_ = (NIM_BOOL)0;
					T96_ = !((plus_2 == NIM_NIL));
					if (!(T96_)) goto LA97_;
					T98_ = (NIM_BOOL)0;
					T98_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA(x, NIM_TRUE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T96_ = !(T98_);
					LA97_: ;
					if (!T96_) goto LA99_;
					T101_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
					T101_ = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
					result = buildCall__bzqLNgd7GiDpqZUsYKdenA(T101_, plus_2, (*y_2)._kind_6.sons->data[((NI) 1)]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA99_: ;
			}
			break;
			default:
			{
			}
			break;
			}
		}
		goto LA51_;
		LA84_: ;
		{
			NIM_BOOL T104_;
			NIM_BOOL T105_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T107_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T111_;
			T104_ = (NIM_BOOL)0;
			T105_ = (NIM_BOOL)0;
			T105_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T105_)) goto LA106_;
			T107_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T107_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(y_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T105_ = (T107_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) || T107_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53) || T107_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51));
			LA106_: ;
			T104_ = T105_;
			if (!(T104_)) goto LA108_;
			T104_ = ((*(*y_2)._kind_6.sons->data[((NI) 2)]).kind == (*x).kind);
			LA108_: ;
			if (!T104_) goto LA109_;
			T111_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T111_ = barminusbar___9aW9bU7lixsz3Yv9aqmOB2BFg_3(x, (*y_2)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result)._kind_6.sons->data[((NI) 1)] = T111_;
			(*result)._kind_6.sons->data[((NI) 2)] = (*y_2)._kind_6.sons->data[((NI) 1)];
		}
		goto LA51_;
		LA109_: ;
		{
			NIM_BOOL T113_;
			NIM_BOOL T114_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T116_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T120_;
			T113_ = (NIM_BOOL)0;
			T114_ = (NIM_BOOL)0;
			T114_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T114_)) goto LA115_;
			T116_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T116_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(y_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T114_ = (T116_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47) || T116_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54) || T116_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52));
			LA115_: ;
			T113_ = T114_;
			if (!(T113_)) goto LA117_;
			T113_ = ((*(*y_2)._kind_6.sons->data[((NI) 2)]).kind == (*x).kind);
			LA117_: ;
			if (!T113_) goto LA118_;
			T120_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T120_ = barplusbar___9aW9bU7lixsz3Yv9aqmOB2BFg(x, (*y_2)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result)._kind_6.sons->data[((NI) 1)] = T120_;
			(*result)._kind_6.sons->data[((NI) 2)] = (*y_2)._kind_6.sons->data[((NI) 1)];
		}
		goto LA51_;
		LA118_: ;
		LA51_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, one__FWKgXUNtQfE7EUZKj6yRDQ_3)(void) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, bardivbar___9aW9bU7lixsz3Yv9aqmOB2BFg_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(a);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		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_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMinusOne__MH3XlBsw9ahhEwy5cK9cHBHA_5)(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_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__L5ySkEBBMvbFl1v5oW7tYg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* by) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(n, x);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		result = by;
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = hasSubTree__MsjoJ819bWzwqrafMUbvZUQ(n, x);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T7_) goto LA8_;
		result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i;
			NI colontmp_;
			NI T11_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T11_ = (NI)0;
			T11_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp_ = (NI)(T11_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
					if (!(res <= colontmp_)) goto LA13;
					i = res;
					T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T14_ = replaceSubTree__L5ySkEBBMvbFl1v5oW7tYg((*n)._kind_6.sons->data[i], x, by);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*result)._kind_6.sons->data[i] = T14_;
					res += ((NI) 1);
				} LA13: ;
			}
		}
	}
	goto LA1_;
	LA8_: ;
	{
		result = n;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyReplacements__b6iA67SQaAf7h31PeZXmQQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__nw2ozGiJbajPUc4Cj4vzYw* rep) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	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__L5ySkEBBMvbFl1v5oW7tYg(result, (*x).Field0, (*x).Field1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, pleViaModelRec__BXeoQpkXTRCPZ40rIGcsCA)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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 == NIM_NIL));
					if (!(T7_)) goto LA8_;
					T9_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
					T9_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(fact);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					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_;
					(*m).s->data[i] = 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__Uv9a9aANFtV79cIvUP5jEeyVA(x, a);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T14_) goto LA15_;
						{
							tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T19_;
							T19_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
							T19_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2((&(*m)), y, b);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							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_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
							T24_ = (NIM_BOOL)0;
							T25_ = (NIM_BOOL)0;
							T26_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
							T26_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(y);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							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__4W1ZJaFiusqlhViRx9cbM9bw(b);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T25_ = (T28_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) || T28_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53) || T28_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51));
							LA27_: ;
							T24_ = T25_;
							if (!(T24_)) goto LA29_;
							T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T30_ = (*y)._kind_6.sons->data[((NI) 1)];
							T24_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T30_, (*b)._kind_6.sons->data[((NI) 1)]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							LA29_: ;
							if (!T24_) goto LA31_;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
								tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T36_;
								T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T35_ = (*b)._kind_6.sons->data[((NI) 2)];
								T36_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
								T36_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2((&(*m)), T35_, (*y)._kind_6.sons->data[((NI) 2)]);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!(T36_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2))) goto LA37_;
								result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
								goto BeforeRet_;
							}
							LA37_: ;
						}
						LA31_: ;
					}
					LA15_: ;
					{
						tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T41_;
						T41_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
						T41_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2((&(*m)), a, x);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!(T41_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2))) goto LA42_;
						{
							tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T46_;
							T46_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
							T46_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2((&(*m)), y, b);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!(T46_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2))) goto LA47_;
							result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
							goto BeforeRet_;
						}
						LA47_: ;
					}
					LA42_: ;
					result = impliesLe__zW7m5VCjU13sae0oFr8Uww(fact, a, b);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					{
						if (!!((result == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0)))) goto LA51_;
						goto BeforeRet_;
					}
					LA51_: ;
				}
				LA10_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, pleViaModel__G9bUxQOJUHpRPU6xPkealOw)(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;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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) == NIM_NIL));
					if (!(T7_)) goto LA8_;
					T9_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
					T9_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*fact));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T7_ = ((TM__6PEpSVg5zYQiUPcMieikwQ_15[(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), (&NTI__nw2ozGiJbajPUc4Cj4vzYw_));
						T17_ = replacements->Sup.len++;
						replacements->data[T17_].Field0 = T16_.Field0;
						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), (&NTI__nw2ozGiJbajPUc4Cj4vzYw_));
						T20_ = replacements->Sup.len++;
						replacements->data[T20_].Field0 = T19_.Field0;
						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;
		genericAssign((void*)(&m.o), (void*)(&(*model).o), (&NTI__apNm0zcYroUpNRird62c9aQ_));
		{
			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) == NIM_NIL));
						if (!(T32_)) goto LA33_;
						T34_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
						T34_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*fact_2));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T32_ = !(((TM__6PEpSVg5zYQiUPcMieikwQ_15[(NU)(T34_)>>3] &(1U<<((NU)(T34_)&7U)))!=0));
						LA33_: ;
						if (!T32_) goto LA35_;
						T37_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T37_ = applyReplacements__b6iA67SQaAf7h31PeZXmQQ((*fact_2), replacements);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T38_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T38_ = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_2(T37_, (&m.o));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						m.s = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(m.s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
						T39_ = m.s->Sup.len++;
						m.s->data[T39_] = T38_;
					}
					LA35_: ;
					i_2 += ((NI) 1);
				} LA29: ;
			}
		}
		a_2 = applyReplacements__b6iA67SQaAf7h31PeZXmQQ(aa, replacements);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		b_2 = applyReplacements__b6iA67SQaAf7h31PeZXmQQ(bb, replacements);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA21_;
	LA24_: ;
	{
		genericSeqAssign((&m.s), (*model).s, (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
		genericAssign((void*)(&m.o), (void*)(&(*model).o), (&NTI__apNm0zcYroUpNRird62c9aQ_));
		m.beSmart = (*model).beSmart;
	}
	LA21_: ;
	result = pleViaModelRec__BXeoQpkXTRCPZ40rIGcsCA((&m), a_2, b_2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, ple__gquZ4TuLCn9anC5O4OWI4Og_2)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_)) goto LA4_;
		T3_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(a, b);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			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__MH3XlBsw9ahhEwy5cK9cHBHA_2(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T16_)) goto LA17_;
		T16_ = !(((*a).typ == NIM_NIL));
		LA17_: ;
		T15_ = T16_;
		if (!(T15_)) goto LA18_;
		T15_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA((*a).typ, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA18_: ;
		if (!T15_) goto LA19_;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T23_;
			NIM_BOOL T24_;
			T23_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2(NIM_NIL, (*a).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T24_ = (NIM_BOOL)0;
			T24_ = lteq___nr9cP9b0OL9cabygV9bo19cJgZA(T23_, (*b)._kind_1.intVal);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			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__MH3XlBsw9ahhEwy5cK9cHBHA_2(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T30_)) goto LA31_;
		T30_ = !(((*b).typ == NIM_NIL));
		LA31_: ;
		T29_ = T30_;
		if (!(T29_)) goto LA32_;
		T29_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA((*b).typ, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA32_: ;
		if (!T29_) goto LA33_;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T37_;
			NIM_BOOL T38_;
			T37_ = firstOrd__hjogdnp59cMX1rwmjikBhqw(NIM_NIL, (*b).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T38_ = (NIM_BOOL)0;
			T38_ = lteq___xL5gyZrjbGMarSdRAXOo9ag((*a)._kind_1.intVal, T37_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T38_) goto LA39_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA39_: ;
	}
	LA33_: ;
	{
		NIM_BOOL T43_;
		T43_ = (NIM_BOOL)0;
		T43_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(a, b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		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__4W1ZJaFiusqlhViRx9cbM9bw(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		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__MH3XlBsw9ahhEwy5cK9cHBHA_2(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		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__4W1ZJaFiusqlhViRx9cbM9bw(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		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_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T65_ = zero__FWKgXUNtQfE7EUZKj6yRDQ_2();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T66_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T66_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T65_, (*b)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T64_ = (T66_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (!(T64_)) goto LA67_;
			T68_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T68_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, a, (*b)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			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_TModel__yUzvq5GhzqHyDCdSXqIv1Q T77_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T78_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T79_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T80_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T81_;
			T73_ = (NIM_BOOL)0;
			T74_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T74_ = zero__FWKgXUNtQfE7EUZKj6yRDQ_2();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T75_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T75_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*b)._kind_6.sons->data[((NI) 2)], T74_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T73_ = (T75_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (!(T73_)) goto LA76_;
			nimZeroMem((void*)(&T77_), sizeof(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q));
			T77_.s = (*m).s;
			nimCopyMem((void*)(&T77_.o), (NIM_CONST void*)(&(*m).o), sizeof(T77_.o));
			T77_.beSmart = (*m).beSmart;
			T78_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T78_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opSub, a, (*b)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T79_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T79_ = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_2(T78_, (&(*m).o));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T80_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T80_ = T79_;
			T81_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T81_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2((&T77_), T80_, (*b)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T73_ = (T81_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA76_: ;
			if (!T73_) goto LA82_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA82_: ;
	}
	LA60_: ;
	{
		NIM_BOOL T86_;
		NIM_BOOL T87_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T88_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T90_;
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T91_;
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T93_;
		T86_ = (NIM_BOOL)0;
		T87_ = (NIM_BOOL)0;
		T88_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T88_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T87_ = (T88_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) || T88_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53) || T88_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51));
		if (!(T87_)) goto LA89_;
		T90_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T90_ = zero__FWKgXUNtQfE7EUZKj6yRDQ_2();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T91_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T91_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*a)._kind_6.sons->data[((NI) 2)], T90_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T87_ = (T91_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
		LA89_: ;
		T86_ = T87_;
		if (!(T86_)) goto LA92_;
		T93_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T93_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*a)._kind_6.sons->data[((NI) 1)], b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T86_ = (T93_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
		LA92_: ;
		if (!T86_) goto LA94_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
		goto BeforeRet_;
	}
	LA94_: ;
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T98_;
		T98_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T98_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T98_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48) || T98_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55))) goto LA99_;
		{
			NIM_BOOL T103_;
			NIM_BOOL T104_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T105_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T107_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T108_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T110_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T111_;
			T103_ = (NIM_BOOL)0;
			T104_ = (NIM_BOOL)0;
			T105_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T105_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, a, (*b)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T104_ = (T105_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (!(T104_)) goto LA106_;
			T107_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T107_ = one__FWKgXUNtQfE7EUZKj6yRDQ_3();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T108_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T108_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T107_, (*b)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T104_ = (T108_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA106_: ;
			T103_ = T104_;
			if (!(T103_)) goto LA109_;
			T110_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T110_ = zero__FWKgXUNtQfE7EUZKj6yRDQ_2();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T111_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T111_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T110_, (*b)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T103_ = (T111_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA109_: ;
			if (!T103_) goto LA112_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA112_: ;
	}
	LA99_: ;
	{
		NIM_BOOL T116_;
		NIM_BOOL T117_;
		NIM_BOOL T118_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T119_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T122_;
		T116_ = (NIM_BOOL)0;
		T117_ = (NIM_BOOL)0;
		T118_ = (NIM_BOOL)0;
		T119_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T119_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T118_ = (T119_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48) || T119_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55));
		if (!(T118_)) goto LA120_;
		T118_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*a)._kind_6.sons->data[((NI) 2)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA120_: ;
		T117_ = T118_;
		if (!(T117_)) goto LA121_;
		T122_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T122_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*a)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T117_ = (T122_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T122_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56));
		LA121_: ;
		T116_ = T117_;
		if (!(T116_)) goto LA123_;
		T116_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*(*a)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		LA123_: ;
		if (!T116_) goto LA124_;
		{
			tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q T128_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T129_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T130_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T131_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T132_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T133_;
			nimZeroMem((void*)(&T128_), sizeof(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q));
			T128_.s = (*m).s;
			nimCopyMem((void*)(&T128_.o), (NIM_CONST void*)(&(*m).o), sizeof(T128_.o));
			T128_.beSmart = (*m).beSmart;
			T129_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T129_ = (*(*a)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)];
			T130_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T130_ = (*(*a)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)];
			T131_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T131_ = bardivbar___9aW9bU7lixsz3Yv9aqmOB2BFg_4(T130_, (*a)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T132_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T132_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opDiv, T129_, T131_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T133_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T133_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2((&T128_), T132_, b);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T133_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2))) goto LA134_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA134_: ;
	}
	LA124_: ;
	{
		NIM_BOOL T138_;
		NIM_BOOL T139_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T140_;
		NIM_BOOL T142_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T143_;
		NIM_BOOL T145_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		NIM_BOOL T147_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dc;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y;
		NIM_BOOL T150_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T151_;
		NIM_BOOL T153_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ec;
		T138_ = (NIM_BOOL)0;
		T139_ = (NIM_BOOL)0;
		T140_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T140_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T139_ = ((someAdd__zsb09bV9aQEXvpjZmyMwZvKA[(NU)(T140_)>>3] &(1U<<((NU)(T140_)&7U)))!=0);
		if (!(T139_)) goto LA141_;
		T142_ = (NIM_BOOL)0;
		T143_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T143_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*a)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T142_ = ((someMul__SEELPgz9b0o9c1cvwttwifGg[(NU)(T143_)>>3] &(1U<<((NU)(T143_)&7U)))!=0);
		if (!(T142_)) goto LA144_;
		T145_ = (NIM_BOOL)0;
		x = (*(*a)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)];
		T145_ = NIM_TRUE;
		if (!(T145_)) goto LA146_;
		T147_ = (NIM_BOOL)0;
		dc = (*(*a)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)];
		T147_ = ((*(*(*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 (!(T147_)) goto LA148_;
		y = (*a)._kind_6.sons->data[((NI) 2)];
		T147_ = NIM_TRUE;
		LA148_: ;
		T145_ = T147_;
		LA146_: ;
		T142_ = T145_;
		LA144_: ;
		T139_ = T142_;
		LA141_: ;
		T138_ = T139_;
		if (!(T138_)) goto LA149_;
		T150_ = (NIM_BOOL)0;
		T151_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T151_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T150_ = ((someMul__SEELPgz9b0o9c1cvwttwifGg[(NU)(T151_)>>3] &(1U<<((NU)(T151_)&7U)))!=0);
		if (!(T150_)) goto LA152_;
		T153_ = (NIM_BOOL)0;
		x2 = (*b)._kind_6.sons->data[((NI) 1)];
		T153_ = NIM_TRUE;
		if (!(T153_)) goto LA154_;
		ec = (*b)._kind_6.sons->data[((NI) 2)];
		T153_ = ((*(*b)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*b)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
		LA154_: ;
		T150_ = T153_;
		LA152_: ;
		T138_ = T150_;
		LA149_: ;
		if (!T138_) goto LA155_;
		{
			NIM_BOOL T159_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ec1;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T162_;
			T159_ = (NIM_BOOL)0;
			T159_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(x, x2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T159_) goto LA160_;
			T162_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T162_ = minusOne__FWKgXUNtQfE7EUZKj6yRDQ();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			ec1 = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opAdd, ec, T162_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T165_;
				NIM_BOOL T166_;
				NIM_BOOL T167_;
				NIM_BOOL T168_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T169_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T170_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T172_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T173_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T175_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T176_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T178_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T180_;
				T165_ = (NIM_BOOL)0;
				T166_ = (NIM_BOOL)0;
				T167_ = (NIM_BOOL)0;
				T168_ = (NIM_BOOL)0;
				T169_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T169_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T170_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T170_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T169_, x);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T168_ = (T170_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				if (!(T168_)) goto LA171_;
				T172_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T172_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T173_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T173_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T172_, ec);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T168_ = (T173_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA171_: ;
				T167_ = T168_;
				if (!(T167_)) goto LA174_;
				T175_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T175_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T176_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T176_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T175_, dc);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T167_ = (T176_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA174_: ;
				T166_ = T167_;
				if (!(T166_)) goto LA177_;
				T178_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T178_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, dc, ec1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T166_ = (T178_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA177_: ;
				T165_ = T166_;
				if (!(T165_)) goto LA179_;
				T180_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T180_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, y, x);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T165_ = (T180_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA179_: ;
				if (!T165_) goto LA181_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				goto BeforeRet_;
			}
			LA181_: ;
		}
		LA160_: ;
	}
	goto LA136_;
	LA155_: ;
	{
		NIM_BOOL T184_;
		NIM_BOOL T185_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T186_;
		NIM_BOOL T188_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dc_2;
		NIM_BOOL T191_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T192_;
		NIM_BOOL T194_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T195_;
		NIM_BOOL T197_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x2_2;
		NIM_BOOL T199_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ec_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y_2;
		T184_ = (NIM_BOOL)0;
		T185_ = (NIM_BOOL)0;
		T186_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T186_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T185_ = ((someMul__SEELPgz9b0o9c1cvwttwifGg[(NU)(T186_)>>3] &(1U<<((NU)(T186_)&7U)))!=0);
		if (!(T185_)) goto LA187_;
		T188_ = (NIM_BOOL)0;
		x_2 = (*a)._kind_6.sons->data[((NI) 1)];
		T188_ = NIM_TRUE;
		if (!(T188_)) goto LA189_;
		dc_2 = (*a)._kind_6.sons->data[((NI) 2)];
		T188_ = ((*(*a)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*a)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
		LA189_: ;
		T185_ = T188_;
		LA187_: ;
		T184_ = T185_;
		if (!(T184_)) goto LA190_;
		T191_ = (NIM_BOOL)0;
		T192_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T192_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T191_ = ((someAdd__zsb09bV9aQEXvpjZmyMwZvKA[(NU)(T192_)>>3] &(1U<<((NU)(T192_)&7U)))!=0);
		if (!(T191_)) goto LA193_;
		T194_ = (NIM_BOOL)0;
		T195_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T195_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*b)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T194_ = ((someMul__SEELPgz9b0o9c1cvwttwifGg[(NU)(T195_)>>3] &(1U<<((NU)(T195_)&7U)))!=0);
		if (!(T194_)) goto LA196_;
		T197_ = (NIM_BOOL)0;
		x2_2 = (*(*b)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)];
		T197_ = NIM_TRUE;
		if (!(T197_)) goto LA198_;
		T199_ = (NIM_BOOL)0;
		ec_2 = (*(*b)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 2)];
		T199_ = ((*(*(*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 (!(T199_)) goto LA200_;
		y_2 = (*b)._kind_6.sons->data[((NI) 2)];
		T199_ = NIM_TRUE;
		LA200_: ;
		T197_ = T199_;
		LA198_: ;
		T194_ = T197_;
		LA196_: ;
		T191_ = T194_;
		LA193_: ;
		T184_ = T191_;
		LA190_: ;
		if (!T184_) goto LA201_;
		{
			NIM_BOOL T205_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ec1_2;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T208_;
			T205_ = (NIM_BOOL)0;
			T205_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(x_2, x2_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T205_) goto LA206_;
			T208_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T208_ = minusOne__FWKgXUNtQfE7EUZKj6yRDQ();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			ec1_2 = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opAdd, ec_2, T208_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T211_;
				NIM_BOOL T212_;
				NIM_BOOL T213_;
				NIM_BOOL T214_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T215_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T216_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T218_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T219_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T221_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T222_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T224_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T226_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T227_;
				T211_ = (NIM_BOOL)0;
				T212_ = (NIM_BOOL)0;
				T213_ = (NIM_BOOL)0;
				T214_ = (NIM_BOOL)0;
				T215_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T215_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T216_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T216_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T215_, x_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T214_ = (T216_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				if (!(T214_)) goto LA217_;
				T218_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T218_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T219_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T219_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T218_, ec_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T214_ = (T219_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA217_: ;
				T213_ = T214_;
				if (!(T213_)) goto LA220_;
				T221_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T221_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T222_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T222_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T221_, dc_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T213_ = (T222_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA220_: ;
				T212_ = T213_;
				if (!(T212_)) goto LA223_;
				T224_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T224_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, dc_2, ec1_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T212_ = (T224_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA223_: ;
				T211_ = T212_;
				if (!(T211_)) goto LA225_;
				T226_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T226_ = zero__FWKgXUNtQfE7EUZKj6yRDQ_2();
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T227_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T227_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, y_2, T226_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T211_ = (T227_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA225_: ;
				if (!T211_) goto LA228_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				goto BeforeRet_;
			}
			LA228_: ;
		}
		LA206_: ;
	}
	goto LA136_;
	LA201_: ;
	LA136_: ;
	{
		NIM_BOOL T232_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T233_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T235_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T236_;
		T232_ = (NIM_BOOL)0;
		T233_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T233_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T232_ = (T233_ >= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) && T233_ <= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48) || T233_ >= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51) && T233_ <= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55) || T233_ >= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 63) && T233_ <= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 64));
		if (!(T232_)) goto LA234_;
		T235_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T235_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T236_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T236_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T232_ = (T235_ == T236_);
		LA234_: ;
		if (!T232_) goto LA237_;
		{
			NIM_BOOL T241_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T242_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T244_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T245_;
			T241_ = (NIM_BOOL)0;
			T242_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T242_ = (*a)._kind_6.sons->data[((NI) 1)];
			T241_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T242_, (*b)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T241_)) goto LA243_;
			T244_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T244_ = (*a)._kind_6.sons->data[((NI) 2)];
			T245_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T245_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T244_, (*b)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T241_ = (T245_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA243_: ;
			if (!T241_) goto LA246_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		goto LA239_;
		LA246_: ;
		{
			NIM_BOOL T249_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T250_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T252_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T253_;
			T249_ = (NIM_BOOL)0;
			T250_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T250_ = (*a)._kind_6.sons->data[((NI) 2)];
			T249_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T250_, (*b)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T249_)) goto LA251_;
			T252_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T252_ = (*a)._kind_6.sons->data[((NI) 1)];
			T253_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T253_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T252_, (*b)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T249_ = (T253_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA251_: ;
			if (!T249_) goto LA254_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		goto LA239_;
		LA254_: ;
		LA239_: ;
	}
	LA237_: ;
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T258_;
		T258_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T258_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T258_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T258_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56))) goto LA259_;
		{
			NIM_BOOL T263_;
			NIM_BOOL T264_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T265_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T266_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T268_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T269_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T271_;
			T263_ = (NIM_BOOL)0;
			T264_ = (NIM_BOOL)0;
			T265_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T265_ = one__FWKgXUNtQfE7EUZKj6yRDQ_3();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T266_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T266_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T265_, (*a)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T264_ = (T266_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (!(T264_)) goto LA267_;
			T268_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T268_ = zero__FWKgXUNtQfE7EUZKj6yRDQ_2();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T269_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T269_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T268_, b);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T264_ = (T269_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA267_: ;
			T263_ = T264_;
			if (!(T263_)) goto LA270_;
			T271_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T271_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*a)._kind_6.sons->data[((NI) 1)], b);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T263_ = (T271_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA270_: ;
			if (!T263_) goto LA272_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA272_: ;
		{
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T276_;
			T276_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T276_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T276_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T276_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56))) goto LA277_;
			{
				NIM_BOOL T281_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T282_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T284_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T285_;
				T281_ = (NIM_BOOL)0;
				T282_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T282_ = (*a)._kind_6.sons->data[((NI) 1)];
				T281_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T282_, (*b)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T281_)) goto LA283_;
				T284_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T284_ = (*b)._kind_6.sons->data[((NI) 2)];
				T285_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T285_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T284_, (*a)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T281_ = (T285_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA283_: ;
				if (!T281_) goto LA286_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				goto BeforeRet_;
			}
			LA286_: ;
		}
		LA277_: ;
		{
			NIM_BOOL T290_;
			NIM_BOOL T291_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T293_;
			T290_ = (NIM_BOOL)0;
			T291_ = (NIM_BOOL)0;
			T291_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*a)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T291_)) goto LA292_;
			T293_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T293_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T291_ = (T293_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46) || T293_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53) || T293_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51));
			LA292_: ;
			T290_ = T291_;
			if (!(T290_)) goto LA294_;
			T290_ = isMinusOne__MH3XlBsw9ahhEwy5cK9cHBHA_5((*b)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA294_: ;
			if (!T290_) goto LA295_;
			{
				NIM_BOOL T299_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T300_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T301_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T303_;
				T299_ = (NIM_BOOL)0;
				T300_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T300_ = (*a)._kind_6.sons->data[((NI) 2)];
				T301_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T301_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T300_, (*a)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T299_ = (T301_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				if (!(T299_)) goto LA302_;
				T303_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T303_ = (*a)._kind_6.sons->data[((NI) 1)];
				T299_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(T303_, (*b)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				LA302_: ;
				if (!T299_) goto LA304_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				goto BeforeRet_;
			}
			LA304_: ;
		}
		LA295_: ;
	}
	LA259_: ;
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T308_;
		T308_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T308_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T308_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 64))) goto LA309_;
		{
			NIM_BOOL T313_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T314_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T316_;
			T313_ = (NIM_BOOL)0;
			T314_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T314_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, a, (*b)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T313_ = (T314_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (T313_) goto LA315_;
			T316_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T316_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, a, (*b)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T313_ = (T316_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA315_: ;
			if (!T313_) goto LA317_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA317_: ;
	}
	LA309_: ;
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T321_;
		T321_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T321_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T321_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 63))) goto LA322_;
		{
			NIM_BOOL T326_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T327_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T329_;
			T326_ = (NIM_BOOL)0;
			T327_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T327_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*a)._kind_6.sons->data[((NI) 1)], b);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T326_ = (T327_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (T326_) goto LA328_;
			T329_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T329_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*a)._kind_6.sons->data[((NI) 2)], b);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T326_ = (T329_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA328_: ;
			if (!T326_) goto LA330_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA330_: ;
	}
	LA322_: ;
	result = pleViaModel__G9bUxQOJUHpRPU6xPkealOw(m, a, b);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, proveLe__gquZ4TuLCn9anC5O4OWI4Og)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opLe, a, b);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	x = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_2(T1_, (&(*m).o));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = (*x)._kind_6.sons->data[((NI) 1)];
	result = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T2_, (*x)._kind_6.sons->data[((NI) 2)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T7_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T12_;
		if (!(result == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0))) goto LA5_;
		T7_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T7_ = (*m).o.opLe;
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = one__FWKgXUNtQfE7EUZKj6yRDQ_3();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T9_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opAdd, b, T8_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T10_ = buildCall__bzqLNgd7GiDpqZUsYKdenA(T7_, T9_, a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		y = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_2(T10_, (&(*m).o));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = (*y)._kind_6.sons->data[((NI) 1)];
		T12_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T12_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T11_, (*y)._kind_6.sons->data[((NI) 2)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = tilde___nnERY7FtzBMOEK1oaVzB1g(T12_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowBound__Esza4n69a5U9bzlDTK04VArg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = firstOrd__hjogdnp59cMX1rwmjikBhqw(conf, (*x).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newIntNode__4YOyxaxo739b3eaIho5QEcA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).info = (*x).info;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, highBound__9cbEq5HLZRHFpEqTjJwMYDA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*x).typ, IL64(36134350135273744));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T5_;
		if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA3_;
		T5_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2(conf, typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newIntNode__4YOyxaxo739b3eaIho5QEcA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	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__P89cqdlERShb9alU3iC0yj8wast((*(*x)._kind_4.sym).ast);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((NI)(T13_ - ((NI) 1)))));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA11_: ;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T15_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
		T15_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T15_ = (*o).opAdd;
		T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T16_ = buildCall__rQdL9bdBvS9aqkRykTzQFSAw((*o).opLen, x);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T17_ = minusOne__FWKgXUNtQfE7EUZKj6yRDQ();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = buildCall__bzqLNgd7GiDpqZUsYKdenA(T15_, T16_, T17_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	(*result).info = (*x).info;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildProperFieldCheck__9czJQa7AVwwBTDjddykusKg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* access, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((*(*check)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39))) goto LA3_;
		result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(check);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			if (!((*access).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA7_;
			a = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(access);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*a)._kind_6.sons->data[((NI) 1)] = (*check)._kind_6.sons->data[((NI) 2)];
			(*result)._kind_6.sons->data[((NI) 2)] = a;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
		T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T10_ = buildProperFieldCheck__9czJQa7AVwwBTDjddykusKg(access, (*check)._kind_6.sons->data[((NI) 1)], o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(T10_, o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkFieldAccess__gGwSETIBbm3kg36plDGFGg)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T4_ = (*n)._kind_6.sons->data[((NI) 0)];
				check = buildProperFieldCheck__9czJQa7AVwwBTDjddykusKg(T4_, (*n)._kind_6.sons->data[i], (&(*m).o));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T7_;
					tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T9_;
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T12_;
					NimStringDesc* T13_;
					T7_ = (NIM_BOOL)0;
					T7_ = !((check == NIM_NIL));
					if (!(T7_)) goto LA8_;
					T9_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
					T9_ = doesImply__TghwFZPkC6wzh9bOuwSr8jQ(m, check);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T7_ = !((T9_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2)));
					LA8_: ;
					if (!T7_) goto LA10_;
					T12_ = (*n).info;
					T13_ = (NimStringDesc*)0;
					T13_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA((*n)._kind_6.sons->data[((NI) 0)], 0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					liMessage__Q6JNH4uRwLyZrj0dJakHew(conf, T12_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 35), T13_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__6PEpSVg5zYQiUPcMieikwQ_21, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto LA1;
				}
				LA10_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	} LA1: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addAsgnFact__0CHSuARDyWZ57Xrosqy78w)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	NI T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	fact = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*key).info, ((NI) 3));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*m).o.opEq);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*fact)._kind_6.sons->data[((NI) 0)] = T1_;
	(*fact)._kind_6.sons->data[((NI) 1)] = key;
	(*fact)._kind_6.sons->data[((NI) 2)] = value;
	(*m).s = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
	T2_ = (*m).s->Sup.len++;
	(*m).s->data[T2_] = fact;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, interestingCaseExpr__Cjb9am4YBBe69cf2PXGW7teQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	result = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA(m, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, settype__nWHoIj7eHK9ad9brJqEijt9ag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19), (*(*n).typ).owner);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, (*n).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildOf__MGKHwffiWyEzWzB6rWIB9ag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T1_;
	NI T2_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (*it).info;
	T2_ = (NI)0;
	T2_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	s = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), T1_, (NI)(T2_ - ((NI) 1)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T3_ = settype__nWHoIj7eHK9ad9brJqEijt9ag(loc);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*s).typ = T3_;
	{
		NI i;
		NI colontmp_;
		NI T5_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T5_ = (NI)0;
		T5_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmp_ = (NI)(T5_ - ((NI) 1));
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA7;
				i = i_2;
				(*s)._kind_6.sons->data[i] = (*it)._kind_6.sons->data[i];
				i_2 += ((NI) 1);
			} LA7: ;
		}
	}
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*it).info, ((NI) 3));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T8_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opContains);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_6.sons->data[((NI) 0)] = T8_;
	(*result)._kind_6.sons->data[((NI) 1)] = s;
	(*result)._kind_6.sons->data[((NI) 2)] = loc;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildElse__Jdq9bmYnl9bApH9aGfXEZQN8Q_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (*n).info;
	T2_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = settype__nWHoIj7eHK9ad9brJqEijt9ag((*n)._kind_6.sons->data[((NI) 0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	s = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), T1_, T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmp_ = (NI)(T4_ - ((NI) 1));
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
				if (!(i_2 < colontmp_)) goto LA6;
				i = i_2;
				branch = (*n)._kind_6.sons->data[i];
				{
					if (!((*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA9_;
					{
						NI j;
						NI colontmp__2;
						NI T12_;
						NI i_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T12_ = (NI)0;
						T12_ = len__P89cqdlERShb9alU3iC0yj8wast(branch);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						colontmp__2 = (NI)(T12_ - ((NI) 1));
						i_3 = ((NI) 0);
						{
							while (1) {
								if (!(i_3 < colontmp__2)) goto LA14;
								j = i_3;
								add__P8dDSotTW25BkfbyspojGg(s, (*branch)._kind_6.sons->data[j]);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								i_3 += ((NI) 1);
							} LA14: ;
						}
					}
				}
				LA9_: ;
				i_2 += ((NI) 1);
			} LA6: ;
		}
	}
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T15_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opContains);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result)._kind_6.sons->data[((NI) 0)] = T15_;
	(*result)._kind_6.sons->data[((NI) 1)] = s;
	(*result)._kind_6.sons->data[((NI) 2)] = (*n)._kind_6.sons->data[((NI) 0)];
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addCaseBranchFacts__c6dE6J2nt777cGY9brPJUJA)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	branch = (*n)._kind_6.sons->data[i];
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		NI T6_;
		if (!((*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA3_;
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = buildOf__MGKHwffiWyEzWzB6rWIB9ag(branch, (*n)._kind_6.sons->data[((NI) 0)], (&(*m).o));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*m).s = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
		T6_ = (*m).s->Sup.len++;
		(*m).s->data[T6_] = T5_;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		NI T10_;
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = buildElse__Jdq9bmYnl9bApH9aGfXEZQN8Q_4(n, (&(*m).o));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T9_ = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(T8_, (&(*m).o));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*m).s = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
		T10_ = (*m).s->Sup.len++;
		(*m).s->data[T10_] = T9_;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T1_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	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_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T6_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*n)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T5_ = ((*T6_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
			if (!(T5_)) goto LA7_;
			T8_ = (NIM_BOOL)0;
			T8_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*n)._kind_6.sons->data[((NI) 1)], NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T8_) goto LA9_;
			T8_ = isVar__MH3XlBsw9ahhEwy5cK9cHBHA_4((*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA9_: ;
			T5_ = T8_;
			LA7_: ;
			if (!T5_) goto LA10_;
			result = buildCall__rQdL9bdBvS9aqkRykTzQFSAw((*o).opIsNil, (*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA3_;
		LA10_: ;
		{
			{
				NIM_BOOL T15_;
				T15_ = (NIM_BOOL)0;
				T15_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*n)._kind_6.sons->data[((NI) 1)], NIM_TRUE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (T15_) goto LA16_;
				T15_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*n)._kind_6.sons->data[((NI) 2)], NIM_TRUE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				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__4W1ZJaFiusqlhViRx9cbM9bw((*n)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				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__4W1ZJaFiusqlhViRx9cbM9bw((*n)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				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__k0CAmeGJ0QkU2k18EA9c3PA((*n)._kind_6.sons->data[((NI) 1)], NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T29_) goto LA30_;
			T29_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*n)._kind_6.sons->data[((NI) 2)], NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			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__4W1ZJaFiusqlhViRx9cbM9bw((*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			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__4W1ZJaFiusqlhViRx9cbM9bw((*n)._kind_6.sons->data[((NI) 2)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			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__k0CAmeGJ0QkU2k18EA9c3PA((*n)._kind_6.sons->data[((NI) 1)], NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (T43_) goto LA44_;
			T43_ = isVar__MH3XlBsw9ahhEwy5cK9cHBHA_4((*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			LA44_: ;
			if (!T43_) goto LA45_;
			result = n;
		}
		LA45_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 134):
	{
		{
			NIM_BOOL T50_;
			T50_ = (NIM_BOOL)0;
			T50_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*n)._kind_6.sons->data[((NI) 1)], NIM_TRUE);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T50_) goto LA51_;
			result = n;
		}
		LA51_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		a = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_5((*n)._kind_6.sons->data[((NI) 1)], o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		b = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_5((*n)._kind_6.sons->data[((NI) 2)], o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T56_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T60_;
			T56_ = (NIM_BOOL)0;
			T56_ = !((a == NIM_NIL));
			if (!(T56_)) goto LA57_;
			T56_ = !((b == NIM_NIL));
			LA57_: ;
			if (!T56_) goto LA58_;
			result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T60_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T60_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opAnd);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result)._kind_6.sons->data[((NI) 0)] = T60_;
			(*result)._kind_6.sons->data[((NI) 1)] = a;
			(*result)._kind_6.sons->data[((NI) 2)] = b;
		}
		goto LA54_;
		LA58_: ;
		{
			if (!!((a == NIM_NIL))) goto LA62_;
			result = a;
		}
		goto LA54_;
		LA62_: ;
		{
			if (!!((b == NIM_NIL))) goto LA65_;
			result = b;
		}
		goto LA54_;
		LA65_: ;
		LA54_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
		a_2 = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_5((*n)._kind_6.sons->data[((NI) 1)], o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!((a_2 == NIM_NIL))) goto LA70_;
			result = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(a_2, o);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA70_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_3;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T73_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T74_;
		T73_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T73_ = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_5((*n)._kind_6.sons->data[((NI) 1)], o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		a_3 = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(T73_, o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T74_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T74_ = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_5((*n)._kind_6.sons->data[((NI) 2)], o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		b_2 = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(T74_, o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NIM_BOOL T77_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T81_;
			T77_ = (NIM_BOOL)0;
			T77_ = !((a_3 == NIM_NIL));
			if (!(T77_)) goto LA78_;
			T77_ = !((b_2 == NIM_NIL));
			LA78_: ;
			if (!T77_) goto LA79_;
			result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T81_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T81_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opAnd);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result)._kind_6.sons->data[((NI) 0)] = T81_;
			(*result)._kind_6.sons->data[((NI) 1)] = a_3;
			(*result)._kind_6.sons->data[((NI) 2)] = b_2;
			result = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(result, o);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA79_: ;
	}
	break;
	default:
	{
		{
			NIM_BOOL T85_;
			T85_ = (NIM_BOOL)0;
			T85_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T85_)) goto LA86_;
			T85_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
			LA86_: ;
			if (!T85_) goto LA87_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T91_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T94_;
				T91_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T91_ = astdef__PBkjYIaAGbtrZ8DiUArHcw((*n)._kind_4.sym);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!((T91_ == NIM_NIL))) goto LA92_;
				T94_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T94_ = astdef__PBkjYIaAGbtrZ8DiUArHcw((*n)._kind_4.sym);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_5(T94_, o);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA92_: ;
		}
		goto LA83_;
		LA87_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T98_;
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA96_;
			T98_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T98_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_5(T98_, o);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA83_;
		LA96_: ;
		LA83_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addFact__ybuIey7mglQLm61kxh9aaLg)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nn) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_5(nn, (&(*m).o));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((n == NIM_NIL))) goto LA3_;
		{
			NI T9_;
			if (!!((*m).beSmart)) goto LA7_;
			(*m).s = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
			T9_ = (*m).s->Sup.len++;
			(*m).s->data[T9_] = n;
		}
		goto LA5_;
		LA7_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c;
			c = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_2(n, (&(*m).o));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T13_;
				T13_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
				T13_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(c);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T13_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109))) goto LA14_;
				addFact__ybuIey7mglQLm61kxh9aaLg(m, (*c)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				addFact__ybuIey7mglQLm61kxh9aaLg(m, (*c)._kind_6.sons->data[((NI) 2)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA11_;
			LA14_: ;
			{
				NI T17_;
				(*m).s = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
				T17_ = (*m).s->Sup.len++;
				(*m).s->data[T17_] = c;
			}
			LA11_: ;
		}
		LA5_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addFactNeg__no3iuruVlFxE0wQ8HA9b4ZA_2)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_2 = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(n, (&(*m).o));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((n_2 == NIM_NIL))) goto LA3_;
		addFact__ybuIey7mglQLm61kxh9aaLg(m, n_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addFactLe__i9aAoMzJNp9aw6KruJgPZ0Ng)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	NI T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opLe, a, b);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_2(T1_, (&(*m).o));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*m).s = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
	T3_ = (*m).s->Sup.len++;
	(*m).s->data[T3_] = T2_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addFactLt__i9aAoMzJNp9aw6KruJgPZ0Ng_2)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bb;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = minusOne__FWKgXUNtQfE7EUZKj6yRDQ();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	bb = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opAdd, b, T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	addFactLe__i9aAoMzJNp9aw6KruJgPZ0Ng(m, a, bb);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addDiscriminantFact__no3iuruVlFxE0wQ8HA9b4ZA_3)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	NI T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	fact = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*m).o.opEq);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*fact)._kind_6.sons->data[((NI) 0)] = T1_;
	(*fact)._kind_6.sons->data[((NI) 1)] = (*n)._kind_6.sons->data[((NI) 0)];
	(*fact)._kind_6.sons->data[((NI) 2)] = (*n)._kind_6.sons->data[((NI) 1)];
	(*m).s = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
	T2_ = (*m).s->Sup.len++;
	(*m).s->data[T2_] = fact;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_guardsDatInit000)(void) {

/* section: NIM_merge_TYPE_INIT1 */
static TNimNode* TM__6PEpSVg5zYQiUPcMieikwQ_19_2[2];
static TNimNode* TM__6PEpSVg5zYQiUPcMieikwQ_20_13[13];
static TNimNode TM__6PEpSVg5zYQiUPcMieikwQ_0[17];

/* section: NIM_merge_TYPE_INIT3 */
NTI__EFqgCXJ4d8PgqOdFJmldsQ_.size = sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ);
NTI__EFqgCXJ4d8PgqOdFJmldsQ_.align = NIM_ALIGNOF(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ);
NTI__EFqgCXJ4d8PgqOdFJmldsQ_.kind = 18;
NTI__EFqgCXJ4d8PgqOdFJmldsQ_.base = 0;
NTI__EFqgCXJ4d8PgqOdFJmldsQ_.flags = 2;
TM__6PEpSVg5zYQiUPcMieikwQ_19_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 = (&NTI__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[1].name = "Field0";
TM__6PEpSVg5zYQiUPcMieikwQ_19_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 = (&NTI__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_19_2[0];
NTI__EFqgCXJ4d8PgqOdFJmldsQ_.node = &TM__6PEpSVg5zYQiUPcMieikwQ_0[0];
NTI__nw2ozGiJbajPUc4Cj4vzYw_.size = sizeof(tySequence__nw2ozGiJbajPUc4Cj4vzYw*);
NTI__nw2ozGiJbajPUc4Cj4vzYw_.align = NIM_ALIGNOF(tySequence__nw2ozGiJbajPUc4Cj4vzYw*);
NTI__nw2ozGiJbajPUc4Cj4vzYw_.kind = 24;
NTI__nw2ozGiJbajPUc4Cj4vzYw_.base = (&NTI__EFqgCXJ4d8PgqOdFJmldsQ_);
NTI__nw2ozGiJbajPUc4Cj4vzYw_.flags = 2;
NTI__nw2ozGiJbajPUc4Cj4vzYw_.marker = Marker_tySequence__nw2ozGiJbajPUc4Cj4vzYw;
NTI__apNm0zcYroUpNRird62c9aQ_.size = sizeof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ);
NTI__apNm0zcYroUpNRird62c9aQ_.align = NIM_ALIGNOF(tyObject_Operators__apNm0zcYroUpNRird62c9aQ);
NTI__apNm0zcYroUpNRird62c9aQ_.kind = 18;
NTI__apNm0zcYroUpNRird62c9aQ_.base = 0;
NTI__apNm0zcYroUpNRird62c9aQ_.flags = 2;
TM__6PEpSVg5zYQiUPcMieikwQ_20_13[0] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[4];
TM__6PEpSVg5zYQiUPcMieikwQ_0[4].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[4].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opNot);
TM__6PEpSVg5zYQiUPcMieikwQ_0[4].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[4].name = "opNot";
TM__6PEpSVg5zYQiUPcMieikwQ_20_13[1] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[5];
TM__6PEpSVg5zYQiUPcMieikwQ_0[5].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[5].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opContains);
TM__6PEpSVg5zYQiUPcMieikwQ_0[5].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[5].name = "opContains";
TM__6PEpSVg5zYQiUPcMieikwQ_20_13[2] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[6];
TM__6PEpSVg5zYQiUPcMieikwQ_0[6].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[6].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opLe);
TM__6PEpSVg5zYQiUPcMieikwQ_0[6].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[6].name = "opLe";
TM__6PEpSVg5zYQiUPcMieikwQ_20_13[3] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[7];
TM__6PEpSVg5zYQiUPcMieikwQ_0[7].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[7].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opLt);
TM__6PEpSVg5zYQiUPcMieikwQ_0[7].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[7].name = "opLt";
TM__6PEpSVg5zYQiUPcMieikwQ_20_13[4] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[8];
TM__6PEpSVg5zYQiUPcMieikwQ_0[8].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[8].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opAnd);
TM__6PEpSVg5zYQiUPcMieikwQ_0[8].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[8].name = "opAnd";
TM__6PEpSVg5zYQiUPcMieikwQ_20_13[5] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[9];
TM__6PEpSVg5zYQiUPcMieikwQ_0[9].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[9].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opOr);
TM__6PEpSVg5zYQiUPcMieikwQ_0[9].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[9].name = "opOr";
TM__6PEpSVg5zYQiUPcMieikwQ_20_13[6] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[10];
TM__6PEpSVg5zYQiUPcMieikwQ_0[10].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[10].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opIsNil);
TM__6PEpSVg5zYQiUPcMieikwQ_0[10].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[10].name = "opIsNil";
TM__6PEpSVg5zYQiUPcMieikwQ_20_13[7] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[11];
TM__6PEpSVg5zYQiUPcMieikwQ_0[11].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[11].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opEq);
TM__6PEpSVg5zYQiUPcMieikwQ_0[11].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[11].name = "opEq";
TM__6PEpSVg5zYQiUPcMieikwQ_20_13[8] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[12];
TM__6PEpSVg5zYQiUPcMieikwQ_0[12].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[12].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opAdd);
TM__6PEpSVg5zYQiUPcMieikwQ_0[12].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[12].name = "opAdd";
TM__6PEpSVg5zYQiUPcMieikwQ_20_13[9] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[13];
TM__6PEpSVg5zYQiUPcMieikwQ_0[13].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[13].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opSub);
TM__6PEpSVg5zYQiUPcMieikwQ_0[13].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[13].name = "opSub";
TM__6PEpSVg5zYQiUPcMieikwQ_20_13[10] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[14];
TM__6PEpSVg5zYQiUPcMieikwQ_0[14].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[14].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opMul);
TM__6PEpSVg5zYQiUPcMieikwQ_0[14].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[14].name = "opMul";
TM__6PEpSVg5zYQiUPcMieikwQ_20_13[11] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[15];
TM__6PEpSVg5zYQiUPcMieikwQ_0[15].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[15].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opDiv);
TM__6PEpSVg5zYQiUPcMieikwQ_0[15].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[15].name = "opDiv";
TM__6PEpSVg5zYQiUPcMieikwQ_20_13[12] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[16];
TM__6PEpSVg5zYQiUPcMieikwQ_0[16].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[16].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opLen);
TM__6PEpSVg5zYQiUPcMieikwQ_0[16].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[16].name = "opLen";
TM__6PEpSVg5zYQiUPcMieikwQ_0[3].len = 13; TM__6PEpSVg5zYQiUPcMieikwQ_0[3].kind = 2; TM__6PEpSVg5zYQiUPcMieikwQ_0[3].sons = &TM__6PEpSVg5zYQiUPcMieikwQ_20_13[0];
NTI__apNm0zcYroUpNRird62c9aQ_.node = &TM__6PEpSVg5zYQiUPcMieikwQ_0[3];
}

