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

/* 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_TSym__JpsEh5i1AcKChGYbg7aV4w tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag;
typedef struct tySequence__7PsCyIDXDb8nGSU5UlS9cAA tySequence__7PsCyIDXDb8nGSU5UlS9cAA;
typedef struct tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA;
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_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 tySequence__MvZmat48bhe9b6x9aUD58D5Q tySequence__MvZmat48bhe9b6x9aUD58D5Q;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA;
typedef struct tyObject_Connection__EevFKe104MtQGkxxkLKkgg tyObject_Connection__EevFKe104MtQGkxxkLKkgg;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple__zwpS6d6iewrdlBSTNFoyVA tyTuple__zwpS6d6iewrdlBSTNFoyVA;

/* section: NIM_merge_TYPES */
typedef NU8 tySet_tyEnum_Goal__JuPChZ1Q9aI1A9aNNAM6t8Pg;
struct tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag {
NI abstractTime;
tySequence__7PsCyIDXDb8nGSU5UlS9cAA* s;
tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA* graphs;
tySet_tyEnum_Goal__JuPChZ1Q9aI1A9aNNAM6t8Pg goals;
NIM_BOOL unanalysableMutation;
NI inAsgnSource;
NI inConstructor;
NI inNoSideEffectSection;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
};
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;
};
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;
};
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__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 tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA;
struct tyObject_Connection__EevFKe104MtQGkxxkLKkgg {
tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA kind;
union{
NI parent;
NI graphIndex;
};
};
typedef NU8 tySet_tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ;
struct tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA {
tyObject_Connection__EevFKe104MtQGkxxkLKkgg con;
tySet_tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ flags;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
NI reassignedTo;
NI aliveStart;
NI aliveEnd;
tySequence__qwqHTkRvwhrRyENtudHQ7g* borrowsFrom;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ;
typedef NU8 tySet_tyEnum_SubgraphFlag__mxQvR0HTC631bhUr6jBDDw;
struct tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q mutatedHere;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q connectedVia;
tySet_tyEnum_SubgraphFlag__mxQvR0HTC631bhUr6jBDDw flags;
NI maxMutation;
NI minConnection;
tySequence__qwqHTkRvwhrRyENtudHQ7g* mutations;
};
typedef NU8 tyEnum_SubgraphFlag__mxQvR0HTC631bhUr6jBDDw;
typedef NU64 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_Goal__JuPChZ1Q9aI1A9aNNAM6t8Pg;
typedef NU8 tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog;
typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
tyArray__0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__M46oZaFErZrJhpbqd9adDQg) (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
struct tyTuple__zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__7PsCyIDXDb8nGSU5UlS9cAA {
  TGenericSeq Sup;
  tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA data[SEQ_DECL_SIZE];
};
struct tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA {
  TGenericSeq Sup;
  tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* 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__MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple__zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};

/* section: NIM_merge_PROC_HEADERS */
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, registerParam__MTx9aqQcHjOG7Y3GcfwyisQ)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tySequence__7PsCyIDXDb8nGSU5UlS9cAA)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
static N_NIMCALL(void, Marker_tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA)(void* p, NI op);
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, registerResult__MTx9aqQcHjOG7Y3GcfwyisQ_2)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, computeLiveRanges__MTx9aqQcHjOG7Y3GcfwyisQ_3)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__UPSW0jLTX5qJL51YMUAHgw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, registerVariable__MTx9aqQcHjOG7Y3GcfwyisQ_4)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, variableId__NOQS3T9cs7Ji0DQO4VIrebw)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* x);
static N_INLINE(NI, max__fcTJ83io1Nm8s0ju39c5kZwsystem)(NI x, NI y);
static N_INLINE(NI, min__fcTJ83io1Nm8s0ju39c5kZw_2system)(NI x, NI y);
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
static N_INLINE(NIM_BOOL, isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, deps__zhnEtb59cIvsKY59c2ohiC7A)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, borrowingAsgn__zhnEtb59cIvsKY59c2ohiC7A_2)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog, directViewType__mrAxDuBowGCWq5wvtjg9bxA_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, borrowFrom__HsUN7qW4bWGSe0TyCWBZgQ)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pathExpr__txDoU0xqNSOdI9cexXPloyA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stupidStmtListExpr__9cP6JNeOKqczaXCI4Zo4SBQ_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog, classifyViewType__mrAxDuBowGCWq5wvtjg9bxA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg, getMagic__4W1ZJaFiusqlhViRx9cbM9bw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, borrowFromConstExpr__Pxv3wNwM9c0lNfHjK9bRArmQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
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);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___qX5C9b0n9bOP7jk69amC8dA7A)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConstSym__V3UNxjeLuR5i3SsDGe9asSQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
static N_INLINE(NIM_BOOL, mutableParameter__QHEjnFyzH2TrD7mTFxb9a4wvarpartitions)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, allRoots__Qv5oXdlV9ba9buFS9a12wMLLw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__DfgJFJEYoj4YBAHLZPl5lQ** result, NIM_BOOL followDotExpr);
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canAlias__jIVi9bzs9agwC20URygUSbDA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arg, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ret);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsPointer__cUxwrEV3U05oH6XIGBUvVg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeFor__QA5oWYPirn9bgEvrXiCsgVg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyProc__M46oZaFErZrJhpbqd9adDQg predicate);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, wrap__cUxwrEV3U05oH6XIGBUvVg_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, potentialMutation__z9bvsGPZpuLBe2eWE6jHgxA)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* v, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NI, root__gA4jbgjuMZouJJWZSjLrIg)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* v, NI start);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NIMCALL(void, connect__8fetAzrI3XuRmHA5WaXvMg)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* v, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___59bygf5b7AsTVb9a1lVM66oA)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q a, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q b);
N_LIB_PRIVATE N_NIMCALL(void, add__nwwm9b9bBoB1ncFx4PAFdmiA)(tySequence__qwqHTkRvwhrRyENtudHQ7g** x, NI* y, NI yLen_0);
N_LIB_PRIVATE N_NIMCALL(void, destMightOwn__trbOAp2zfKMe9aImNg9bXcjQ)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasDisabledAsgn__aVxWxXLmf103vwE8uZ9cXRw_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, noCursor__rXTe0qFn2hkwCUsPkYI5Mg)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, borrowingCall__Gw883GbFnFGwjuPxVuq1cg)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* destType, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i);
N_LIB_PRIVATE N_NIMCALL(void, potentialMutationViaArg__mejKcV2JbdCCBeC56QSAVw)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* callee);
N_LIB_PRIVATE N_NIMCALL(void, pretendOwnsData__rXTe0qFn2hkwCUsPkYI5Mg_2)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipColon__UPSW0jLTX5qJL51YMUAHgw_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNoSideEffectPragma__9cP6JNeOKqczaXCI4Zo4SBQ_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, mutationAfterConnection__AmwBXpiUH2yKGQsBvl0oRgvarpartitions)(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug* g);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, dangerousMutation__riy8OGz0VVJFWr1jWeKRpA)(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug* g, tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA* v);
static N_INLINE(NIM_BOOL, contains__hcR0Q48hft05YswwZUz9aJAsystem)(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA s, NI value);
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___9aTXq0TPCy9anKDbazeH0eHQsystem)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(void, cannotBorrow__7zy1Kjg71W8sR9bY9bA9aguhw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug* g);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___aQsiZUvE4SFfnWyKx1JgKA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, computeGraphPartitions__8NgHqAHLnGXB2Yk7BCbglQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySet_tyEnum_Goal__JuPChZ1Q9aI1A9aNNAM6t8Pg goals, tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* Result);

/* section: NIM_merge_DATA */
N_LIB_PRIVATE TNimType NTI__9bUY0kR5KFdp9cLhJiAMwmwA_;
N_LIB_PRIVATE TNimType NTI__EevFKe104MtQGkxxkLKkgg_;
N_LIB_PRIVATE TNimType NTI__TA6PMQGIDoHplflSd7kZxA_;
TNimNode* NimDT___EevFKe104MtQGkxxkLKkgg_kind[4];
extern TNimType NTI__rR5Bzr1D5krxoo1NcNyeMA_;
N_LIB_PRIVATE TNimType NTI__F7v3qXI9a6XJkYmtFhBnwUQ_;
N_LIB_PRIVATE TNimType NTI__aPvbyqN5lPiKM7xpscHQuw_;
extern TNimType NTI__K9bspPztfoWajecnwjyHuYQ_;
extern TNimType NTI__qwqHTkRvwhrRyENtudHQ7g_;
N_LIB_PRIVATE TNimType NTI__7PsCyIDXDb8nGSU5UlS9cAA_;
extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg;
N_LIB_PRIVATE TNimType NTI__0Sg6dzXBBdtdBAkDWxEFug_;
extern TNimType NTI__WGx4rAexNXnczy1Avn646Q_;
N_LIB_PRIVATE TNimType NTI__mxQvR0HTC631bhUr6jBDDw_;
N_LIB_PRIVATE TNimType NTI__o2yv2nZi9a9cCH8g7WNv9aEew_;
N_LIB_PRIVATE TNimType NTI__QAWA9c8ge5HfZnhFNlb9c9ajA_;
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_13, "cannot borrow from ", 19);
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_14, ", it is not a path expression; see https://nim-lang.github.io/N"
"im/manual_experimental.html#view-types-algorithm-path-expression"
"s for details", 140);
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_16, "/home/runner/work/nightlies/nightlies/nim/compiler/varpartition"
"s.nim", 68);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__39a9bfgg3gnILXo9by9cxATh0Q_15 = {((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_16),
((NI) 512),
((NI) 14)}
;
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_17, "\'result\' must borrow from the first parameter", 45);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__39a9bfgg3gnILXo9by9cxATh0Q_18 = {((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_16),
((NI) 516),
((NI) 18)}
;
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_19, "attempt to mutate a borrowed location from an immutable view", 60);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__39a9bfgg3gnILXo9by9cxATh0Q_20 = {((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_16),
((NI) 572),
((NI) 18)}
;
extern TNimType NTI__DfgJFJEYoj4YBAHLZPl5lQ_;
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_21, "cannot determine the target of the borrow", 41);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__39a9bfgg3gnILXo9by9cxATh0Q_22 = {((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_16),
((NI) 548),
((NI) 14)}
;
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_23, "cannot borrow ", 14);
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_24, "; what it borrows from is potentially mutated", 45);
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_25, "\012", 1);
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_26, " the mutation is here", 21);
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_27, " is the statement that connected the mutation to the parameter", 62);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__39a9bfgg3gnILXo9by9cxATh0Q_28 = {((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_16),
((NI) 864),
((NI) 12)}
;
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_29, "\'", 1);
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_30, "\' borrows from location \'", 25);
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_31, "\' which does not live long enough", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__39a9bfgg3gnILXo9by9cxATh0Q_32 = {((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_16),
((NI) 879),
((NI) 24)}
;
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_33, "\' borrows from the immutable location \'", 39);
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_34, "\' and attempts to mutate it", 27);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__39a9bfgg3gnILXo9by9cxATh0Q_35 = {((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_16),
((NI) 882),
((NI) 24)}
;
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_36, "\' borrows from an immutable location and attempts to mutate it", 62);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__39a9bfgg3gnILXo9by9cxATh0Q_37 = {((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_16),
((NI) 889),
((NI) 20)}
;
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_38, "\012an object reachable from \'", 27);
STRING_LITERAL(TM__39a9bfgg3gnILXo9by9cxATh0Q_39, "\' is potentially mutated", 24);

/* section: NIM_merge_VARS */
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;

/* section: NIM_merge_PROCS */
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;
}
static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory(p, ((int) 0), size);
}
static N_NIMCALL(void, Marker_tySequence__7PsCyIDXDb8nGSU5UlS9cAA)(void* p, NI op) {
	tySequence__7PsCyIDXDb8nGSU5UlS9cAA* a;
	NI T1_;
	a = (tySequence__7PsCyIDXDb8nGSU5UlS9cAA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	switch (a->data[T1_].con.kind) {
	case ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 0):
	break;
	case ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 1):
	break;
	case ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 2):
	break;
	} 
	nimGCvisit((void*)a->data[T1_].sym, op);
	nimGCvisit((void*)a->data[T1_].borrowsFrom, op);
	}
}
static N_NIMCALL(void, Marker_tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA)(void* p, NI op) {
	tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA* a;
	NI T1_;
	a = (tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].param, op);
	nimGCvisit((void*)a->data[T1_].mutations, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(void, registerParam__MTx9aqQcHjOG7Y3GcfwyisQ)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NIM_BOOL T3_;
		tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA T7_;
		NI T8_;
		NI T9_;
		tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug T10_;
		NI T11_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*(*(*n)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*(*n)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46)));
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)(&T7_), sizeof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA));
		nimZeroMem((void*)(&T7_), sizeof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA));
		nimZeroMem((void*)(&T7_.con), sizeof(tyObject_Connection__EevFKe104MtQGkxxkLKkgg));
		T7_.con.kind = ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 2);
		T8_ = ((*c).graphs ? (*c).graphs->Sup.len : 0);
		T7_.con.graphIndex = T8_;
		T7_.sym = (*n)._kind_4.sym;
		T7_.reassignedTo = ((NI) 0);
		T7_.aliveStart = (*c).abstractTime;
		T7_.aliveEnd = (*c).abstractTime;
		unsureAsgnRef((void**) (&(*c).s), (tySequence__7PsCyIDXDb8nGSU5UlS9cAA*) incrSeqV3((TGenericSeq*)((*c).s), (&NTI__7PsCyIDXDb8nGSU5UlS9cAA_)));
		T9_ = (*c).s->Sup.len++;
		genericAssign((void*)(&(*c).s->data[T9_]), (void*)(&T7_), (&NTI__9bUY0kR5KFdp9cLhJiAMwmwA_));
		nimZeroMem((void*)(&T10_), sizeof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug));
		nimZeroMem((void*)(&T10_), sizeof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug));
		T10_.param = (*n)._kind_4.sym;
		T10_.mutatedHere = unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg;
		T10_.connectedVia = unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg;
		T10_.flags = 4;
		T10_.maxMutation = ((NI) -1);
		T10_.minConnection = ((NI) 2147483647);
		T10_.mutations = NIM_NIL;
		unsureAsgnRef((void**) (&(*c).graphs), (tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA*) incrSeqV3((TGenericSeq*)((*c).graphs), (&NTI__QAWA9c8ge5HfZnhFNlb9c9ajA_)));
		T11_ = (*c).graphs->Sup.len++;
		genericAssign((void*)(&(*c).graphs->data[T11_]), (void*)(&T10_), (&NTI__0Sg6dzXBBdtdBAkDWxEFug_));
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA T13_;
		NI T14_;
		nimZeroMem((void*)(&T13_), sizeof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA));
		nimZeroMem((void*)(&T13_), sizeof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA));
		nimZeroMem((void*)(&T13_.con), sizeof(tyObject_Connection__EevFKe104MtQGkxxkLKkgg));
		T13_.con.kind = ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 0);
		T13_.sym = (*n)._kind_4.sym;
		T13_.reassignedTo = ((NI) 0);
		T13_.aliveStart = (*c).abstractTime;
		T13_.aliveEnd = (*c).abstractTime;
		unsureAsgnRef((void**) (&(*c).s), (tySequence__7PsCyIDXDb8nGSU5UlS9cAA*) incrSeqV3((TGenericSeq*)((*c).s), (&NTI__7PsCyIDXDb8nGSU5UlS9cAA_)));
		T14_ = (*c).s->Sup.len++;
		genericAssign((void*)(&(*c).s->data[T14_]), (void*)(&T13_), (&NTI__9bUY0kR5KFdp9cLhJiAMwmwA_));
	}
	LA1_: ;
}
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__P89cqdlERShb9alU3iC0yj8wast(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, registerResult__MTx9aqQcHjOG7Y3GcfwyisQ_2)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA T5_;
		NI T6_;
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		nimZeroMem((void*)(&T5_), sizeof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA));
		nimZeroMem((void*)(&T5_), sizeof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA));
		nimZeroMem((void*)(&T5_.con), sizeof(tyObject_Connection__EevFKe104MtQGkxxkLKkgg));
		T5_.con.kind = ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 0);
		T5_.sym = (*n)._kind_4.sym;
		T5_.reassignedTo = ((NI) 0);
		T5_.aliveStart = ((NI) 2147483647);
		T5_.aliveEnd = (*c).abstractTime;
		unsureAsgnRef((void**) (&(*c).s), (tySequence__7PsCyIDXDb8nGSU5UlS9cAA*) incrSeqV3((TGenericSeq*)((*c).s), (&NTI__7PsCyIDXDb8nGSU5UlS9cAA_)));
		T6_ = (*c).s->Sup.len++;
		genericAssign((void*)(&(*c).s->data[T6_]), (void*)(&T5_), (&NTI__9bUY0kR5KFdp9cLhJiAMwmwA_));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, variableId__NOQS3T9cs7Ji0DQO4VIrebw)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* x) {
	NI result;
{	result = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*c).s ? (*c).s->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					if (!((*c).s->data[i].sym == x)) goto LA7_;
					result = i;
					goto BeforeRet_;
				}
				LA7_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	result = ((NI) -1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, registerVariable__MTx9aqQcHjOG7Y3GcfwyisQ_4)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NIM_BOOL T3_;
		NI T5_;
		tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA T8_;
		NI T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*c)), (*n)._kind_4.sym);
		T3_ = (T5_ < ((NI) 0));
		LA4_: ;
		if (!T3_) goto LA6_;
		nimZeroMem((void*)(&T8_), sizeof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA));
		nimZeroMem((void*)(&T8_), sizeof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA));
		nimZeroMem((void*)(&T8_.con), sizeof(tyObject_Connection__EevFKe104MtQGkxxkLKkgg));
		T8_.con.kind = ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 0);
		T8_.sym = (*n)._kind_4.sym;
		T8_.reassignedTo = ((NI) 0);
		T8_.aliveStart = (*c).abstractTime;
		T8_.aliveEnd = (*c).abstractTime;
		unsureAsgnRef((void**) (&(*c).s), (tySequence__7PsCyIDXDb8nGSU5UlS9cAA*) incrSeqV3((TGenericSeq*)((*c).s), (&NTI__7PsCyIDXDb8nGSU5UlS9cAA_)));
		T9_ = (*c).s->Sup.len++;
		genericAssign((void*)(&(*c).s->data[T9_]), (void*)(&T8_), (&NTI__9bUY0kR5KFdp9cLhJiAMwmwA_));
	}
	LA6_: ;
}
static N_INLINE(NI, max__fcTJ83io1Nm8s0ju39c5kZwsystem)(NI x, NI y) {
	NI result;
	result = (NI)0;
	{
		if (!(y <= x)) goto LA3_;
		result = x;
	}
	goto LA1_;
	LA3_: ;
	{
		result = y;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, min__fcTJ83io1Nm8s0ju39c5kZw_2system)(NI x, NI y) {
	NI result;
	result = (NI)0;
	{
		if (!(x <= y)) goto LA3_;
		result = x;
	}
	goto LA1_;
	LA3_: ;
	{
		result = y;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, computeLiveRanges__MTx9aqQcHjOG7Y3GcfwyisQ_3)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
{	(*c).abstractTime += ((NI) 1);
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child;
			child = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* last;
						if (!(i_2 < colontmp_)) goto LA5;
						i = i_2;
						child = (*n)._kind_6.sons->data[i];
						last = lastSon__UPSW0jLTX5qJL51YMUAHgw(child);
						computeLiveRanges__MTx9aqQcHjOG7Y3GcfwyisQ_3(c, last);
						{
							NIM_BOOL T8_;
							T8_ = (NIM_BOOL)0;
							T8_ = ((*child).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36));
							if (!(T8_)) goto LA9_;
							T8_ = ((*last).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*last).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160));
							LA9_: ;
							if (!T8_) goto LA10_;
							{
								NI T14_;
								NI T15_;
								T14_ = (NI)0;
								T14_ = len__P89cqdlERShb9alU3iC0yj8wast(child);
								T15_ = (NI)0;
								T15_ = len__P89cqdlERShb9alU3iC0yj8wast(last);
								if (!!(((NI)(T14_ - ((NI) 2)) == T15_))) goto LA16_;
								goto BeforeRet_;
							}
							LA16_: ;
							{
								NI i_3;
								NI colontmp__2;
								NI T19_;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								T19_ = (NI)0;
								T19_ = len__P89cqdlERShb9alU3iC0yj8wast(child);
								colontmp__2 = (NI)(T19_ - ((NI) 2));
								i_4 = ((NI) 0);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA21;
										i_3 = i_4;
										registerVariable__MTx9aqQcHjOG7Y3GcfwyisQ_4(c, (*child)._kind_6.sons->data[i_3]);
										i_4 += ((NI) 1);
									} LA21: ;
								}
							}
						}
						goto LA6_;
						LA10_: ;
						{
							{
								NI i_5;
								NI colontmp__3;
								NI T24_;
								NI i_6;
								i_5 = (NI)0;
								colontmp__3 = (NI)0;
								T24_ = (NI)0;
								T24_ = len__P89cqdlERShb9alU3iC0yj8wast(child);
								colontmp__3 = (NI)(T24_ - ((NI) 2));
								i_6 = ((NI) 0);
								{
									while (1) {
										if (!(i_6 < colontmp__3)) goto LA26;
										i_5 = i_6;
										registerVariable__MTx9aqQcHjOG7Y3GcfwyisQ_4(c, (*child)._kind_6.sons->data[i_5]);
										i_6 += ((NI) 1);
									} LA26: ;
								}
							}
						}
						LA6_: ;
						i_2 += ((NI) 1);
					} LA5: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		computeLiveRanges__MTx9aqQcHjOG7Y3GcfwyisQ_3(c, (*n)._kind_6.sons->data[((NI) 0)]);
		computeLiveRanges__MTx9aqQcHjOG7Y3GcfwyisQ_3(c, (*n)._kind_6.sons->data[((NI) 1)]);
		{
			NI vid;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA30_;
			vid = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*c)), (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
			{
				if (!(((NI) 0) <= vid)) goto LA34_;
				{
					NIM_BOOL T38_;
					NIM_BOOL T40_;
					T38_ = (NIM_BOOL)0;
					T38_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					if (!(T38_)) goto LA39_;
					T40_ = (NIM_BOOL)0;
					T40_ = ((*c).s->data[vid].reassignedTo == ((NI) 0));
					if (T40_) goto LA41_;
					T40_ = ((*c).s->data[vid].reassignedTo == (*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).Sup.id);
					LA41_: ;
					T38_ = T40_;
					LA39_: ;
					if (!T38_) goto LA42_;
					(*c).s->data[vid].reassignedTo = (*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).Sup.id;
				}
				goto LA36_;
				LA42_: ;
				{
					(*c).s->data[vid].flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 2)) & 7);
				}
				LA36_: ;
			}
			LA34_: ;
		}
		LA30_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		(*c).abstractTime -= ((NI) 1);
		{
			NI id;
			if (!((2100008 &((NU32)1<<((NU)((*(*n)._kind_4.sym).kind)&31U)))!=0)) goto LA48_;
			id = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*c)), (*n)._kind_4.sym);
			{
				if (!(((NI) 0) <= id)) goto LA52_;
				(*c).s->data[id].aliveEnd = max__fcTJ83io1Nm8s0ju39c5kZwsystem((*c).s->data[id].aliveEnd, (*c).abstractTime);
				{
					if (!((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11))) goto LA56_;
					(*c).s->data[id].aliveStart = min__fcTJ83io1Nm8s0ju39c5kZw_2system((*c).s->data[id].aliveStart, (*c).abstractTime);
				}
				LA56_: ;
			}
			LA52_: ;
		}
		LA48_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 158) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		(*c).abstractTime -= ((NI) 1);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* parameters;
		NI L;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_2;
			child_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_7;
				NI colontmp__4;
				NI i_8;
				i_7 = (NI)0;
				colontmp__4 = (NI)0;
				colontmp__4 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_8 = ((NI) 0);
				{
					while (1) {
						if (!(i_8 < colontmp__4)) goto LA63;
						i_7 = i_8;
						child_2 = (*n)._kind_6.sons->data[i_7];
						computeLiveRanges__MTx9aqQcHjOG7Y3GcfwyisQ_3(c, child_2);
						i_8 += ((NI) 1);
					} LA63: ;
				}
			}
		}
		parameters = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
		{
			if (!!((parameters == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL)))) goto LA66_;
			L = len__5mJADrRYkP3r9auuiuDZN9cQast(parameters);
		}
		goto LA64_;
		LA66_: ;
		{
			L = ((NI) 0);
		}
		LA64_: ;
		{
			NI i_9;
			NI colontmp__5;
			NI i_10;
			i_9 = (NI)0;
			colontmp__5 = (NI)0;
			colontmp__5 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_10 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					if (!(i_10 < colontmp__5)) goto LA71;
					i_9 = i_10;
					it = (*n)._kind_6.sons->data[i_9];
					{
						NIM_BOOL T74_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* paramType;
						T74_ = (NIM_BOOL)0;
						T74_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
						if (!(T74_)) goto LA75_;
						T74_ = (i_9 < L);
						LA75_: ;
						if (!T74_) goto LA76_;
						paramType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*parameters).sons->data[i_9], 2064);
						{
							NIM_BOOL T80_;
							NIM_BOOL T81_;
							NI vid_2;
							T80_ = (NIM_BOOL)0;
							T81_ = (NIM_BOOL)0;
							T81_ = isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types(paramType);
							T80_ = !(T81_);
							if (!(T80_)) goto LA82_;
							T80_ = ((*paramType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
							LA82_: ;
							if (!T80_) goto LA83_;
							vid_2 = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*c)), (*it)._kind_4.sym);
							{
								if (!(((NI) 0) <= vid_2)) goto LA87_;
								(*c).s->data[vid_2].flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 2)) & 7);
							}
							LA87_: ;
						}
						LA83_: ;
					}
					LA76_: ;
					i_10 += ((NI) 1);
				} LA71: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
	{
		computeLiveRanges__MTx9aqQcHjOG7Y3GcfwyisQ_3(c, (*n)._kind_6.sons->data[((NI) 0)]);
		{
			NI vid_3;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA92_;
			vid_3 = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*c)), (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
			{
				if (!(((NI) 0) <= vid_3)) goto LA96_;
				(*c).s->data[vid_3].flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 1)) & 7);
			}
			LA96_: ;
		}
		LA92_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T99_;
		T99_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T99_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
		computeLiveRanges__MTx9aqQcHjOG7Y3GcfwyisQ_3(c, T99_);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 94):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_3;
			child_3 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_11;
				NI colontmp__6;
				NI i_12;
				i_11 = (NI)0;
				colontmp__6 = (NI)0;
				colontmp__6 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_12 = ((NI) 0);
				{
					while (1) {
						if (!(i_12 < colontmp__6)) goto LA104;
						i_11 = i_12;
						child_3 = (*n)._kind_6.sons->data[i_11];
						computeLiveRanges__MTx9aqQcHjOG7Y3GcfwyisQ_3(c, child_3);
						i_12 += ((NI) 1);
					} LA104: ;
				}
			}
		}
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_4;
			child_4 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_13;
				NI colontmp__7;
				NI i_14;
				i_13 = (NI)0;
				colontmp__7 = (NI)0;
				colontmp__7 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_14 = ((NI) 0);
				{
					while (1) {
						if (!(i_14 < colontmp__7)) goto LA108;
						i_13 = i_14;
						child_4 = (*n)._kind_6.sons->data[i_13];
						computeLiveRanges__MTx9aqQcHjOG7Y3GcfwyisQ_3(c, child_4);
						i_14 += ((NI) 1);
					} LA108: ;
				}
			}
		}
	}
	break;
	default:
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_5;
			child_5 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_15;
				NI colontmp__8;
				NI i_16;
				i_15 = (NI)0;
				colontmp__8 = (NI)0;
				colontmp__8 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_16 = ((NI) 0);
				{
					while (1) {
						if (!(i_16 < colontmp__8)) goto LA113;
						i_15 = i_16;
						child_5 = (*n)._kind_6.sons->data[i_15];
						computeLiveRanges__MTx9aqQcHjOG7Y3GcfwyisQ_3(c, child_5);
						i_16 += ((NI) 1);
					} LA113: ;
				}
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, borrowFromConstExpr__Pxv3wNwM9c0lNfHjK9bRArmQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
		T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T3_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
		result = borrowFromConstExpr__Pxv3wNwM9c0lNfHjK9bRArmQ(T3_);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44):
	{
		result = NIM_TRUE;
		{
			NI i;
			NI colontmp_;
			NI colontmp__2;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp__2 = (NI)0;
			colontmp_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38));
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = colontmp_;
			{
				while (1) {
					if (!(i_2 < colontmp__2)) goto LA7;
					i = i_2;
					{
						NIM_BOOL T10_;
						T10_ = (NIM_BOOL)0;
						T10_ = borrowFromConstExpr__Pxv3wNwM9c0lNfHjK9bRArmQ((*n)._kind_6.sons->data[i]);
						if (!!(T10_)) goto LA11_;
						result = NIM_FALSE;
						goto BeforeRet_;
					}
					LA11_: ;
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		{
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T16_;
			T16_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T16_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(n);
			if (!(T16_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 144))) goto LA17_;
			result = NIM_TRUE;
			{
				NI i_3;
				NI colontmp__3;
				NI i_4;
				i_3 = (NI)0;
				colontmp__3 = (NI)0;
				colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_4 = ((NI) 1);
				{
					while (1) {
						if (!(i_4 < colontmp__3)) goto LA21;
						i_3 = i_4;
						{
							NIM_BOOL T24_;
							T24_ = (NIM_BOOL)0;
							T24_ = borrowFromConstExpr__Pxv3wNwM9c0lNfHjK9bRArmQ((*n)._kind_6.sons->data[i_3]);
							if (!!(T24_)) goto LA25_;
							result = NIM_FALSE;
							goto BeforeRet_;
						}
						LA25_: ;
						i_4 += ((NI) 1);
					} LA21: ;
				}
			}
		}
		LA17_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pathExpr__txDoU0xqNSOdI9cexXPloyA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	n = node;
	result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	{
		while (1) {
			switch ((*n).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
			{
				switch ((*(*n)._kind_4.sym).kind) {
				case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3):
				case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5):
				case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11):
				case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21):
				{
					{
						if (!((*(*n)._kind_4.sym).owner == owner)) goto LA7_;
						result = n;
					}
					LA7_: ;
				}
				break;
				case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8):
				{
					{
						NIM_BOOL T12_;
						T12_ = (NIM_BOOL)0;
						T12_ = ((*(*n)._kind_4.sym).owner == owner);
						if (T12_) goto LA13_;
						T12_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0);
						LA13_: ;
						if (!T12_) goto LA14_;
						result = n;
					}
					LA14_: ;
				}
				break;
				case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9):
				case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10):
				{
					{
						NIM_BOOL T19_;
						T19_ = (NIM_BOOL)0;
						T19_ = ((*(*n)._kind_4.sym).owner == owner);
						if (T19_) goto LA20_;
						T19_ = !(((67108872 & (*(*n)._kind_4.sym).flags) == 0));
						LA20_: ;
						if (!T19_) goto LA21_;
						result = n;
					}
					LA21_: ;
				}
				break;
				default:
				{
				}
				break;
				}
				goto LA1;
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
			{
				n = (*n)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
			{
				n = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
			{
				{
					NIM_BOOL T29_;
					NI T30_;
					T29_ = (NIM_BOOL)0;
					T30_ = (NI)0;
					T30_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
					T29_ = (((NI) 0) < T30_);
					if (!(T29_)) goto LA31_;
					T29_ = stupidStmtListExpr__9cP6JNeOKqczaXCI4Zo4SBQ_4(n);
					LA31_: ;
					if (!T29_) goto LA32_;
					n = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
				}
				goto LA27_;
				LA32_: ;
				{
					goto LA1;
				}
				LA27_: ;
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
			{
				{
					NI T38_;
					T38_ = (NI)0;
					T38_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
					if (!(((NI) 1) < T38_)) goto LA39_;
					{
						NIM_BOOL T43_;
						NIM_BOOL T44_;
						tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog T46_;
						tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T48_;
						T43_ = (NIM_BOOL)0;
						T44_ = (NIM_BOOL)0;
						T44_ = !(((*n).typ == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL)));
						if (!(T44_)) goto LA45_;
						T46_ = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
						T46_ = classifyViewType__mrAxDuBowGCWq5wvtjg9bxA((*n).typ);
						T44_ = !((T46_ == ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0)));
						LA45_: ;
						T43_ = T44_;
						if (T43_) goto LA47_;
						T48_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
						T48_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(n);
						T43_ = (T48_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 126));
						LA47_: ;
						if (!T43_) goto LA49_;
						n = (*n)._kind_6.sons->data[((NI) 1)];
					}
					goto LA41_;
					LA49_: ;
					{
						goto LA1;
					}
					LA41_: ;
				}
				goto LA36_;
				LA39_: ;
				{
					goto LA1;
				}
				LA36_: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	{
		NIM_BOOL T56_;
		T56_ = (NIM_BOOL)0;
		T56_ = (result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		if (!(T56_)) goto LA57_;
		T56_ = borrowFromConstExpr__Pxv3wNwM9c0lNfHjK9bRArmQ(n);
		LA57_: ;
		if (!T56_) goto LA58_;
		result = n;
	}
	LA58_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__M04YC71iJg1N7gBF3HZTngsystem(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system(((NI) (ptrdiff_t) (usr)), ((NI) 8));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c);
}
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef__AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConstSym__V3UNxjeLuR5i3SsDGe9asSQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((1536 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
	if (!(T3_)) goto LA4_;
	T3_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46)));
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, borrowFrom__HsUN7qW4bWGSe0TyCWBZgQ)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
	s = pathExpr__txDoU0xqNSOdI9cexXPloyA(src, (*c).owner);
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!(s == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(src);
		T5_ = rawNewString((T6_ ? T6_->Sup.len : 0) + 159);
appendString(T5_, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_13));
appendString(T5_, T6_);
appendString(T5_, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_14));
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*src).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T5_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__39a9bfgg3gnILXo9by9cxATh0Q_15, NIM_FALSE);
	}
	goto LA1_;
	LA3_: ;
	{
		NI vid;
		if (!((*s).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA8_;
		{
			if (!((*dest).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11))) goto LA12_;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = !(((*(*s)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
				if (T16_) goto LA17_;
				T16_ = !(((*(*s)._kind_4.sym).position == ((NI) 0)));
				LA17_: ;
				if (!T16_) goto LA18_;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*src).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_17), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__39a9bfgg3gnILXo9by9cxATh0Q_18, NIM_FALSE);
			}
			LA18_: ;
		}
		LA12_: ;
		vid = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*c)), dest);
		{
			NI sourceIdx;
			NI T31_;
			if (!(((NI) 0) <= vid)) goto LA22_;
			sourceIdx = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*c)), (*s)._kind_4.sym);
			{
				NI T28_;
				tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA T29_;
				NI T30_;
				if (!(sourceIdx < ((NI) 0))) goto LA26_;
				T28_ = ((*c).s ? (*c).s->Sup.len : 0);
				sourceIdx = T28_;
				nimZeroMem((void*)(&T29_), sizeof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA));
				nimZeroMem((void*)(&T29_), sizeof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA));
				nimZeroMem((void*)(&T29_.con), sizeof(tyObject_Connection__EevFKe104MtQGkxxkLKkgg));
				T29_.con.kind = ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 0);
				T29_.sym = (*s)._kind_4.sym;
				T29_.reassignedTo = ((NI) 0);
				T29_.aliveStart = ((NI) -1);
				T29_.aliveEnd = ((NI) 2147483647);
				unsureAsgnRef((void**) (&(*c).s), (tySequence__7PsCyIDXDb8nGSU5UlS9cAA*) incrSeqV3((TGenericSeq*)((*c).s), (&NTI__7PsCyIDXDb8nGSU5UlS9cAA_)));
				T30_ = (*c).s->Sup.len++;
				genericAssign((void*)(&(*c).s->data[T30_]), (void*)(&T29_), (&NTI__9bUY0kR5KFdp9cLhJiAMwmwA_));
			}
			LA26_: ;
			asgnRef((void**) (&(*c).s->data[vid].borrowsFrom), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*c).s->data[vid].borrowsFrom), (&NTI__qwqHTkRvwhrRyENtudHQ7g_)));
			T31_ = (*c).s->data[vid].borrowsFrom->Sup.len++;
			(*c).s->data[vid].borrowsFrom->data[T31_] = sourceIdx;
			{
				NIM_BOOL T34_;
				T34_ = (NIM_BOOL)0;
				T34_ = isConstSym__V3UNxjeLuR5i3SsDGe9asSQ((*s)._kind_4.sym);
				if (!T34_) goto LA35_;
				(*c).s->data[vid].flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 4)) & 7);
			}
			LA35_: ;
		}
		LA22_: ;
	}
	goto LA1_;
	LA8_: ;
	{
		NI vid_2;
		vid_2 = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*c)), dest);
		{
			if (!(((NI) 0) <= vid_2)) goto LA40_;
			(*c).s->data[vid_2].flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 4)) & 7);
		}
		LA40_: ;
	}
	LA1_: ;
}
static N_INLINE(NIM_BOOL, mutableParameter__QHEjnFyzH2TrD7mTFxb9a4wvarpartitions)(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_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((*(*(*n)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, borrowingAsgn__zhnEtb59cIvsKY59c2ohiC7A_2)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src) {
	{
		if (!((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		{
			tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog T7_;
			T7_ = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
			T7_ = directViewType__mrAxDuBowGCWq5wvtjg9bxA_2((*dest).typ);
			if (!!((T7_ == ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0)))) goto LA8_;
			borrowFrom__HsUN7qW4bWGSe0TyCWBZgQ(c, (*dest)._kind_4.sym, src);
		}
		LA8_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog T13_;
		if (!((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65) || (*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42))) goto LA11_;
		T13_ = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
		T13_ = directViewType__mrAxDuBowGCWq5wvtjg9bxA_2((*(*dest)._kind_6.sons->data[((NI) 0)]).typ);
		switch (T13_) {
		case ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 2):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* viewOrigin;
			viewOrigin = pathExpr__txDoU0xqNSOdI9cexXPloyA(dest, (*c).owner);
			{
				NI vid;
				if (!((*viewOrigin).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA17_;
				vid = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*c)), (*viewOrigin)._kind_4.sym);
				{
					if (!(((NI) 0) <= vid)) goto LA21_;
					(*c).s->data[vid].flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 3)) & 7);
				}
				LA21_: ;
			}
			LA17_: ;
		}
		break;
		case ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 1):
		{
			{
				NIM_BOOL T26_;
				NIM_BOOL T27_;
				T26_ = (NIM_BOOL)0;
				T27_ = (NIM_BOOL)0;
				T27_ = ((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
				if (!(T27_)) goto LA28_;
				T27_ = ((*(*dest)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65));
				LA28_: ;
				T26_ = T27_;
				if (!(T26_)) goto LA29_;
				T26_ = mutableParameter__QHEjnFyzH2TrD7mTFxb9a4wvarpartitions((*(*dest)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]);
				LA29_: ;
				if (!T26_) goto LA30_;
			}
			goto LA24_;
			LA30_: ;
			{
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*dest).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_19), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__39a9bfgg3gnILXo9by9cxATh0Q_20, NIM_FALSE);
			}
			LA24_: ;
		}
		break;
		case ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0):
		{
		}
		break;
		}
	}
	goto LA1_;
	LA11_: ;
	LA1_: ;
}
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL));
	if (T1_) goto LA2_;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, allRoots__Qv5oXdlV9ba9buFS9a12wMLLw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__DfgJFJEYoj4YBAHLZPl5lQ** result, NIM_BOOL followDotExpr) {
{	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			NI T6_;
			if (!((2100008 &((NU32)1<<((NU)((*(*n)._kind_4.sym).kind)&31U)))!=0)) goto LA4_;
			unsureAsgnRef((void**) (&(*result)), (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*result)), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_)));
			T6_ = (*result)->Sup.len++;
			asgnRef((void**) (&(*result)->data[T6_]), (*n)._kind_4.sym);
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
	{
		{
			if (!followDotExpr) goto LA10_;
			allRoots__Qv5oXdlV9ba9buFS9a12wMLLw((*n)._kind_6.sons->data[((NI) 0)], result, followDotExpr);
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	{
		{
			NI T15_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
			T15_ = (NI)0;
			T15_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(((NI) 0) < T15_)) goto LA16_;
			T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T18_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
			allRoots__Qv5oXdlV9ba9buFS9a12wMLLw(T18_, result, followDotExpr);
		}
		LA16_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
					if (!(i_2 < colontmp_)) goto LA22;
					i = i_2;
					T23_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T23_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*n)._kind_6.sons->data[i]);
					allRoots__Qv5oXdlV9ba9buFS9a12wMLLw(T23_, result, followDotExpr);
					i_2 += ((NI) 1);
				} LA22: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
	{
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
					if (!(i_4 < colontmp__2)) goto LA27;
					i_3 = i_4;
					T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T28_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*n)._kind_6.sons->data[i_3]);
					allRoots__Qv5oXdlV9ba9buFS9a12wMLLw(T28_, result, followDotExpr);
					i_4 += ((NI) 1);
				} LA27: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	{
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_6 = ((NI) 0);
			{
				while (1) {
					if (!(i_6 < colontmp__3)) goto LA32;
					i_5 = i_6;
					allRoots__Qv5oXdlV9ba9buFS9a12wMLLw((*n)._kind_6.sons->data[i_5], result, followDotExpr);
					i_6 += ((NI) 1);
				} LA32: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		{
			NIM_BOOL T36_;
			T36_ = (NIM_BOOL)0;
			T36_ = !(((*n).typ == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL)));
			if (!(T36_)) goto LA37_;
			T36_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
			LA37_: ;
			if (!T36_) goto LA38_;
			{
				NI T42_;
				T42_ = (NI)0;
				T42_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (!(((NI) 1) < T42_)) goto LA43_;
				allRoots__Qv5oXdlV9ba9buFS9a12wMLLw((*n)._kind_6.sons->data[((NI) 1)], result, followDotExpr);
			}
			LA43_: ;
		}
		goto LA34_;
		LA38_: ;
		{
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m;
			m = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(n);
			switch (m) {
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0):
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
				{
					if (!((*(*n)._kind_6.sons->data[((NI) 0)]).typ == 0)) goto LA49_;
					goto BeforeRet_;
				}
				LA49_: ;
				typ = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
				{
					if (!!((typ == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL)))) goto LA53_;
					typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36134350135273744));
					{
						if (!!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25)))) goto LA57_;
						typ = ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL);
					}
					goto LA55_;
					LA57_: ;
					{
					}
					LA55_: ;
				}
				LA53_: ;
				{
					NI i_7;
					NI colontmp__4;
					NI i_8;
					i_7 = (NI)0;
					colontmp__4 = (NI)0;
					colontmp__4 = len__P89cqdlERShb9alU3iC0yj8wast(n);
					i_8 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
							if (!(i_8 < colontmp__4)) goto LA62;
							i_7 = i_8;
							it = (*n)._kind_6.sons->data[i_7];
							{
								NIM_BOOL T65_;
								NI T67_;
								tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* paramType;
								T65_ = (NIM_BOOL)0;
								T65_ = !((typ == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL)));
								if (!(T65_)) goto LA66_;
								T67_ = (NI)0;
								T67_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
								T65_ = (i_7 < T67_);
								LA66_: ;
								if (!T65_) goto LA68_;
								paramType = (*(*(*typ).n)._kind_6.sons->data[i_7]).typ;
								{
									NIM_BOOL T72_;
									NIM_BOOL T73_;
									NIM_BOOL T74_;
									NIM_BOOL T76_;
									T72_ = (NIM_BOOL)0;
									T73_ = (NIM_BOOL)0;
									T74_ = (NIM_BOOL)0;
									T74_ = isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types(paramType);
									T73_ = !(T74_);
									if (!(T73_)) goto LA75_;
									T76_ = (NIM_BOOL)0;
									T76_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*typ).sons->data[((NI) 0)]);
									T73_ = !(T76_);
									LA75_: ;
									T72_ = T73_;
									if (!(T72_)) goto LA77_;
									T72_ = canAlias__jIVi9bzs9agwC20URygUSbDA(paramType, (*typ).sons->data[((NI) 0)]);
									LA77_: ;
									if (!T72_) goto LA78_;
									allRoots__Qv5oXdlV9ba9buFS9a12wMLLw(it, result, followDotExpr);
								}
								LA78_: ;
							}
							goto LA63_;
							LA68_: ;
							{
								allRoots__Qv5oXdlV9ba9buFS9a12wMLLw(it, result, followDotExpr);
							}
							LA63_: ;
							i_8 += ((NI) 1);
						} LA62: ;
					}
				}
			}
			break;
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 126):
			{
				allRoots__Qv5oXdlV9ba9buFS9a12wMLLw((*n)._kind_6.sons->data[((NI) 1)], result, followDotExpr);
			}
			break;
			default:
			{
			}
			break;
			}
		}
		LA34_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, wrap__cUxwrEV3U05oH6XIGBUvVg_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsPointer__cUxwrEV3U05oH6XIGBUvVg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = searchTypeFor__QA5oWYPirn9bgEvrXiCsgVg(t, wrap__cUxwrEV3U05oH6XIGBUvVg_2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, root__gA4jbgjuMZouJJWZSjLrIg)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* v, NI start) {
	NI result;
	NI depth;
	result = (NI)0;
	result = start;
	depth = ((NI) 0);
	{
		while (1) {
			if (!((*v).s->data[result].con.kind == ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 1))) goto LA2;
			result = (*v).s->data[result].con.parent;
			depth += ((NI) 1);
		} LA2: ;
	}
	{
		NI it;
		if (!(((NI) 0) < depth)) goto LA5_;
		it = start;
		{
			while (1) {
				NI next;
				tyObject_Connection__EevFKe104MtQGkxxkLKkgg T9_;
				if (!((*v).s->data[it].con.kind == ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 1))) goto LA8;
				next = (*v).s->data[it].con.parent;
				nimZeroMem((void*)(&T9_), sizeof(tyObject_Connection__EevFKe104MtQGkxxkLKkgg));
				T9_.kind = ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 1);
				T9_.parent = result;
				(*v).s->data[it].con = T9_;
				it = next;
			} LA8: ;
		}
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, potentialMutation__z9bvsGPZpuLBe2eWE6jHgxA)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* v, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	NI id;
	id = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*v)), s);
	{
		NI r;
		tySet_tyEnum_SubgraphFlag__mxQvR0HTC631bhUr6jBDDw flags;
		if (!(((NI) 0) <= id)) goto LA3_;
		r = root__gA4jbgjuMZouJJWZSjLrIg(v, id);
		{
			NIM_BOOL T7_;
			NIM_BOOL T9_;
			T7_ = (NIM_BOOL)0;
			T7_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			if (!(T7_)) goto LA8_;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			if (!(T9_)) goto LA10_;
			T9_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46)));
			LA10_: ;
			T7_ = T9_;
			LA8_: ;
			if (!T7_) goto LA11_;
			flags = 3;
		}
		goto LA5_;
		LA11_: ;
		{
			flags = 1;
		}
		LA5_: ;
		switch ((*v).s->data[r].con.kind) {
		case ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 0):
		{
			tyObject_Connection__EevFKe104MtQGkxxkLKkgg T15_;
			NI T16_;
			tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug T17_;
			NI T25_;
			nimZeroMem((void*)(&T15_), sizeof(tyObject_Connection__EevFKe104MtQGkxxkLKkgg));
			T15_.kind = ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 2);
			T16_ = ((*v).graphs ? (*v).graphs->Sup.len : 0);
			T15_.graphIndex = T16_;
			(*v).s->data[r].con = T15_;
			nimZeroMem((void*)(&T17_), sizeof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug));
			nimZeroMem((void*)(&T17_), sizeof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug));
			{
				NIM_BOOL T20_;
				T20_ = (NIM_BOOL)0;
				T20_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				if (!(T20_)) goto LA21_;
				T20_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46)));
				LA21_: ;
				if (!T20_) goto LA22_;
				T17_.param = s;
			}
			goto LA18_;
			LA22_: ;
			{
				T17_.param = ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) NIM_NIL);
			}
			LA18_: ;
			T17_.mutatedHere = info;
			T17_.connectedVia = unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg;
			T17_.flags = flags;
			T17_.maxMutation = (*v).abstractTime;
			T17_.minConnection = ((NI) 2147483647);
			T17_.mutations = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTI__qwqHTkRvwhrRyENtudHQ7g_), 1);
			T17_.mutations->data[0] = (*v).abstractTime;
			unsureAsgnRef((void**) (&(*v).graphs), (tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA*) incrSeqV3((TGenericSeq*)((*v).graphs), (&NTI__QAWA9c8ge5HfZnhFNlb9c9ajA_)));
			T25_ = (*v).graphs->Sup.len++;
			genericAssign((void*)(&(*v).graphs->data[T25_]), (void*)(&T17_), (&NTI__0Sg6dzXBBdtdBAkDWxEFug_));
		}
		break;
		case ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 2):
		{
			tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug* g;
			NI T39_;
			g = (&(*v).graphs->data[(*v).s->data[r].con.graphIndex]);
			{
				NIM_BOOL T29_;
				NIM_BOOL T31_;
				T29_ = (NIM_BOOL)0;
				T29_ = ((*g).param == ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) NIM_NIL));
				if (!(T29_)) goto LA30_;
				T31_ = (NIM_BOOL)0;
				T31_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				if (!(T31_)) goto LA32_;
				T31_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46)));
				LA32_: ;
				T29_ = T31_;
				LA30_: ;
				if (!T29_) goto LA33_;
				unsureAsgnRef((void**) (&(*g).param), s);
			}
			LA33_: ;
			{
				if (!((*g).maxMutation < (*v).abstractTime)) goto LA37_;
				(*g).mutatedHere = info;
				(*g).maxMutation = (*v).abstractTime;
			}
			LA37_: ;
			(*g).flags = ((*g).flags | flags);
			unsureAsgnRef((void**) (&(*g).mutations), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*g).mutations), (&NTI__qwqHTkRvwhrRyENtudHQ7g_)));
			T39_ = (*g).mutations->Sup.len++;
			(*g).mutations->data[T39_] = (*v).abstractTime;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		(*v).unanalysableMutation = NIM_TRUE;
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, connect__8fetAzrI3XuRmHA5WaXvMg)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* v, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	NI aid;
	NI bid;
	NI ra;
	NI rb;
{	aid = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*v)), a);
	{
		if (!(aid < ((NI) 0))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	bid = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*v)), b);
	{
		if (!(bid < ((NI) 0))) goto LA7_;
		goto BeforeRet_;
	}
	LA7_: ;
	ra = root__gA4jbgjuMZouJJWZSjLrIg(v, aid);
	rb = root__gA4jbgjuMZouJJWZSjLrIg(v, bid);
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
		tySet_tyEnum_SubgraphFlag__mxQvR0HTC631bhUr6jBDDw paramFlags;
		tySet_tyEnum_SubgraphFlag__mxQvR0HTC631bhUr6jBDDw rbFlags;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q mutatedHere;
		NI mut;
		NI con;
		tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug* gb;
		tyObject_Connection__EevFKe104MtQGkxxkLKkgg T37_;
		if (!!((ra == rb))) goto LA11_;
		param = ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) NIM_NIL);
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = ((*a).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			if (!(T15_)) goto LA16_;
			T15_ = !(((*(*a).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*a).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46)));
			LA16_: ;
			if (!T15_) goto LA17_;
			param = a;
		}
		goto LA13_;
		LA17_: ;
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = ((*b).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			if (!(T20_)) goto LA21_;
			T20_ = !(((*(*b).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*b).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46)));
			LA21_: ;
			if (!T20_) goto LA22_;
			param = b;
		}
		goto LA13_;
		LA22_: ;
		LA13_: ;
		{
			if (!!((param == ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) NIM_NIL)))) goto LA26_;
			paramFlags = 4;
		}
		goto LA24_;
		LA26_: ;
		{
			paramFlags = 0;
		}
		LA24_: ;
		rbFlags = 0;
		mutatedHere = unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg;
		mut = ((NI) 0);
		con = (*v).abstractTime;
		gb = ((tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug*) NIM_NIL);
		{
			if (!((*v).s->data[rb].con.kind == ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 2))) goto LA31_;
			gb = (&(*v).graphs->data[(*v).s->data[rb].con.graphIndex]);
			{
				if (!(param == ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) NIM_NIL))) goto LA35_;
				param = (*gb).param;
			}
			LA35_: ;
			mutatedHere = (*gb).mutatedHere;
			rbFlags = (*gb).flags;
			mut = (*gb).maxMutation;
			con = min__fcTJ83io1Nm8s0ju39c5kZw_2system(con, (*gb).minConnection);
		}
		LA31_: ;
		nimZeroMem((void*)(&T37_), sizeof(tyObject_Connection__EevFKe104MtQGkxxkLKkgg));
		T37_.kind = ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 1);
		T37_.parent = ra;
		(*v).s->data[rb].con = T37_;
		switch ((*v).s->data[ra].con.kind) {
		case ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 0):
		{
			tyObject_Connection__EevFKe104MtQGkxxkLKkgg T39_;
			NI T40_;
			tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug T41_;
			NI T47_;
			nimZeroMem((void*)(&T39_), sizeof(tyObject_Connection__EevFKe104MtQGkxxkLKkgg));
			T39_.kind = ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 2);
			T40_ = ((*v).graphs ? (*v).graphs->Sup.len : 0);
			T39_.graphIndex = T40_;
			(*v).s->data[ra].con = T39_;
			nimZeroMem((void*)(&T41_), sizeof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug));
			nimZeroMem((void*)(&T41_), sizeof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug));
			T41_.param = param;
			T41_.mutatedHere = mutatedHere;
			T41_.connectedVia = info;
			T41_.flags = (paramFlags | rbFlags);
			T41_.maxMutation = mut;
			T41_.minConnection = con;
			{
				if (!!((gb == ((tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug*) NIM_NIL)))) goto LA44_;
				genericSeqAssign((&T41_.mutations), (*gb).mutations, (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
			}
			goto LA42_;
			LA44_: ;
			{
				T41_.mutations = NIM_NIL;
			}
			LA42_: ;
			unsureAsgnRef((void**) (&(*v).graphs), (tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA*) incrSeqV3((TGenericSeq*)((*v).graphs), (&NTI__QAWA9c8ge5HfZnhFNlb9c9ajA_)));
			T47_ = (*v).graphs->Sup.len++;
			genericAssign((void*)(&(*v).graphs->data[T47_]), (void*)(&T41_), (&NTI__0Sg6dzXBBdtdBAkDWxEFug_));
		}
		break;
		case ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 2):
		{
			tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug* g;
			g = (&(*v).graphs->data[(*v).s->data[ra].con.graphIndex]);
			{
				if (!((*g).param == ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) NIM_NIL))) goto LA51_;
				unsureAsgnRef((void**) (&(*g).param), param);
			}
			LA51_: ;
			{
				NIM_BOOL T55_;
				T55_ = (NIM_BOOL)0;
				T55_ = eqeq___59bygf5b7AsTVb9a1lVM66oA((*g).mutatedHere, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg);
				if (!T55_) goto LA56_;
				(*g).mutatedHere = mutatedHere;
			}
			LA56_: ;
			(*g).minConnection = min__fcTJ83io1Nm8s0ju39c5kZw_2system((*g).minConnection, con);
			(*g).connectedVia = info;
			(*g).flags = ((*g).flags | (paramFlags | rbFlags));
			{
				if (!!((gb == ((tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug*) NIM_NIL)))) goto LA60_;
				add__nwwm9b9bBoB1ncFx4PAFdmiA((&(*g).mutations), (*gb).mutations->data, ((*gb).mutations ? (*gb).mutations->Sup.len : 0));
			}
			LA60_: ;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	LA11_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, destMightOwn__trbOAp2zfKMe9aImNg9bXcjQ)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
{	{
		if (!((*n).typ == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		destMightOwn__trbOAp2zfKMe9aImNg9bXcjQ(c, dest, (*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T11_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*n)._kind_6.sons->data[i]);
					destMightOwn__trbOAp2zfKMe9aImNg9bXcjQ(c, dest, T11_);
					i_2 += ((NI) 1);
				} LA10: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
					if (!(i_4 < colontmp__2)) goto LA15;
					i_3 = i_4;
					T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T16_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*n)._kind_6.sons->data[i_3]);
					destMightOwn__trbOAp2zfKMe9aImNg9bXcjQ(c, dest, T16_);
					i_4 += ((NI) 1);
				} LA15: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		{
			NI T20_;
			NI T23_;
			T20_ = (NI)0;
			T20_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(((NI) 0) < T20_)) goto LA21_;
			T23_ = (NI)0;
			T23_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			destMightOwn__trbOAp2zfKMe9aImNg9bXcjQ(c, dest, (*n)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))]);
		}
		LA21_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
	{
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_6 = ((NI) 1);
			{
				while (1) {
					if (!(i_6 < colontmp__3)) goto LA27;
					i_5 = i_6;
					destMightOwn__trbOAp2zfKMe9aImNg9bXcjQ(c, dest, (*n)._kind_6.sons->data[i_5]);
					i_6 += ((NI) 1);
				} LA27: ;
			}
		}
		(*dest).flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 0)) & 7);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		{
			NI i_7;
			NI colontmp__4;
			NI i_8;
			i_7 = (NI)0;
			colontmp__4 = (NI)0;
			colontmp__4 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_8 = ((NI) 1);
			{
				while (1) {
					if (!(i_8 < colontmp__4)) goto LA31;
					i_7 = i_8;
					destMightOwn__trbOAp2zfKMe9aImNg9bXcjQ(c, dest, (*n)._kind_6.sons->data[i_7]);
					i_8 += ((NI) 1);
				} LA31: ;
			}
		}
		{
			if (!!(((IL64(2147483664) & (*(*n).typ).flags) == 0))) goto LA34_;
			(*dest).flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 0)) & 7);
		}
		LA34_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		(*c).inConstructor += ((NI) 1);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son;
			son = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_9;
				NI colontmp__5;
				NI i_10;
				i_9 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_10 = ((NI) 0);
				{
					while (1) {
						if (!(i_10 < colontmp__5)) goto LA40;
						i_9 = i_10;
						son = (*n)._kind_6.sons->data[i_9];
						destMightOwn__trbOAp2zfKMe9aImNg9bXcjQ(c, dest, son);
						i_10 += ((NI) 1);
					} LA40: ;
				}
			}
		}
		(*c).inConstructor -= ((NI) 1);
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T43_;
			T43_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T43_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
			if (!((*T43_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA44_;
			(*dest).flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 0)) & 7);
		}
		LA44_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			if (!((2100008 &((NU32)1<<((NU)((*(*n)._kind_4.sym).kind)&31U)))!=0)) goto LA49_;
			{
				if (!!((((*(*n)._kind_4.sym).flags & 67108872) == 0))) goto LA53_;
				(*dest).flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 0)) & 7);
			}
			goto LA51_;
			LA53_: ;
			{
				connect__8fetAzrI3XuRmHA5WaXvMg(c, (*dest).sym, (*n)._kind_4.sym, (*n).info);
				{
					if (!(((NI) 0) < (*c).inConstructor)) goto LA58_;
					(*dest).flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 0)) & 7);
				}
				LA58_: ;
			}
			LA51_: ;
		}
		LA49_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
	{
		destMightOwn__trbOAp2zfKMe9aImNg9bXcjQ(c, dest, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		{
			if (!!(((IL64(2147483664) & (*(*n).typ).flags) == 0))) goto LA64_;
			(*dest).flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 0)) & 7);
		}
		goto LA62_;
		LA64_: ;
		{
			tySequence__DfgJFJEYoj4YBAHLZPl5lQ* roots;
			if (!((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA67_;
			roots = (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*)0;
			allRoots__Qv5oXdlV9ba9buFS9a12wMLLw((*n)._kind_6.sons->data[((NI) 1)], (&roots), NIM_TRUE);
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** r;
				NI i_11;
				NI L;
				NI T70_;
				r = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
				i_11 = ((NI) 0);
				T70_ = (roots ? roots->Sup.len : 0);
				L = T70_;
				{
					while (1) {
						if (!(i_11 < L)) goto LA72;
						r = &roots->data[i_11];
						connect__8fetAzrI3XuRmHA5WaXvMg(c, (*dest).sym, (*r), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
						i_11 += ((NI) 1);
					} LA72: ;
				}
			}
		}
		goto LA62_;
		LA67_: ;
		{
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA76_;
				magic = (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic;
			}
			goto LA74_;
			LA76_: ;
			{
				magic = ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0);
			}
			LA74_: ;
			{
				if (!(magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0) || magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 148) || magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 126) || magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 131) || magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 132) || magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 133) || magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 144))) goto LA81_;
				{
					NI i_12;
					NI colontmp__6;
					NI i_13;
					i_12 = (NI)0;
					colontmp__6 = (NI)0;
					colontmp__6 = len__P89cqdlERShb9alU3iC0yj8wast(n);
					i_13 = ((NI) 1);
					{
						while (1) {
							if (!(i_13 < colontmp__6)) goto LA85;
							i_12 = i_13;
							{
								tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T88_;
								T88_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
								T88_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[i_12]).typ, IL64(211106240923664));
								if (!!(((IL64(2147483664) & (*T88_).flags) == 0))) goto LA89_;
								destMightOwn__trbOAp2zfKMe9aImNg9bXcjQ(c, dest, (*n)._kind_6.sons->data[i_12]);
							}
							LA89_: ;
							i_13 += ((NI) 1);
						} LA85: ;
					}
				}
			}
			LA81_: ;
		}
		LA62_: ;
	}
	break;
	default:
	{
		(*dest).flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 1)) & 7);
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, deps__zhnEtb59cIvsKY59c2ohiC7A)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src) {
	tySequence__DfgJFJEYoj4YBAHLZPl5lQ* targets;
	tySequence__DfgJFJEYoj4YBAHLZPl5lQ* sources;
	NIM_BOOL destIsComplex;
	{
		if (!(((*c).goals &((NU8)1<<((NU)(((tyEnum_Goal__JuPChZ1Q9aI1A9aNNAM6t8Pg) 1))&7U)))!=0)) goto LA3_;
		borrowingAsgn__zhnEtb59cIvsKY59c2ohiC7A_2(c, dest, src);
	}
	LA3_: ;
	targets = (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*)0;
	sources = (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*)0;
	allRoots__Qv5oXdlV9ba9buFS9a12wMLLw(dest, (&targets), NIM_TRUE);
	allRoots__Qv5oXdlV9ba9buFS9a12wMLLw(src, (&sources), NIM_TRUE);
	destIsComplex = containsPointer__cUxwrEV3U05oH6XIGBUvVg((*dest).typ);
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** t;
		NI i;
		NI L;
		NI T6_;
		t = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
		i = ((NI) 0);
		T6_ = (targets ? targets->Sup.len : 0);
		L = T6_;
		{
			while (1) {
				if (!(i < L)) goto LA8;
				t = &targets->data[i];
				{
					NIM_BOOL T11_;
					T11_ = (NIM_BOOL)0;
					T11_ = !(((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
					if (!(T11_)) goto LA12_;
					T11_ = ((*c).inNoSideEffectSection == ((NI) 0));
					LA12_: ;
					if (!T11_) goto LA13_;
					potentialMutation__z9bvsGPZpuLBe2eWE6jHgxA(c, (*t), (*dest).info);
				}
				LA13_: ;
				{
					if (!destIsComplex) goto LA17_;
					{
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** s;
						NI i_2;
						NI L_2;
						NI T20_;
						s = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
						i_2 = ((NI) 0);
						T20_ = (sources ? sources->Sup.len : 0);
						L_2 = T20_;
						{
							while (1) {
								if (!(i_2 < L_2)) goto LA22;
								s = &sources->data[i_2];
								connect__8fetAzrI3XuRmHA5WaXvMg(c, (*t), (*s), (*dest).info);
								i_2 += ((NI) 1);
							} LA22: ;
						}
					}
				}
				LA17_: ;
				i += ((NI) 1);
			} LA8: ;
		}
	}
	{
		NIM_BOOL T25_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* d;
		T25_ = (NIM_BOOL)0;
		T25_ = (((*c).goals &((NU8)1<<((NU)(((tyEnum_Goal__JuPChZ1Q9aI1A9aNNAM6t8Pg) 2))&7U)))!=0);
		if (!(T25_)) goto LA26_;
		T25_ = !(((*src).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		LA26_: ;
		if (!T25_) goto LA27_;
		d = pathExpr__txDoU0xqNSOdI9cexXPloyA(dest, (*c).owner);
		{
			NIM_BOOL T31_;
			NI vid;
			T31_ = (NIM_BOOL)0;
			T31_ = !((d == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
			if (!(T31_)) goto LA32_;
			T31_ = ((*d).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			LA32_: ;
			if (!T31_) goto LA33_;
			vid = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*c)), (*d)._kind_4.sym);
			{
				if (!(((NI) 0) <= vid)) goto LA37_;
				destMightOwn__trbOAp2zfKMe9aImNg9bXcjQ(c, (&(*c).s->data[vid]), src);
				{
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** s_2;
					NI i_3;
					NI L_3;
					NI T40_;
					s_2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
					i_3 = ((NI) 0);
					T40_ = (sources ? sources->Sup.len : 0);
					L_3 = T40_;
					{
						while (1) {
							if (!(i_3 < L_3)) goto LA42;
							s_2 = &sources->data[i_3];
							{
								if (!((*s_2) == (*d)._kind_4.sym)) goto LA45_;
							}
							goto LA43_;
							LA45_: ;
							{
								NIM_BOOL T48_;
								T48_ = (NIM_BOOL)0;
								T48_ = !(((67108872 & (*(*s_2)).flags) == 0));
								if (T48_) goto LA49_;
								T48_ = hasDisabledAsgn__aVxWxXLmf103vwE8uZ9cXRw_2((*(*s_2)).typ);
								LA49_: ;
								if (!T48_) goto LA50_;
								(*c).s->data[vid].flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 1)) & 7);
							}
							goto LA43_;
							LA50_: ;
							{
								NI srcid;
								srcid = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*c)), (*s_2));
								{
									if (!(((NI) 0) <= srcid)) goto LA55_;
									{
										NIM_BOOL T59_;
										T59_ = (NIM_BOOL)0;
										T59_ = !(((2056 &((NU32)1<<((NU)((*(*s_2)).kind)&31U)))!=0));
										if (!(T59_)) goto LA60_;
										T59_ = ((*c).s->data[srcid].aliveEnd < (*c).s->data[vid].aliveEnd);
										LA60_: ;
										if (!T59_) goto LA61_;
										(*c).s->data[vid].flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 1)) & 7);
									}
									goto LA57_;
									LA61_: ;
									{
										if (!!(((6 & (*c).s->data[srcid].flags) == 0))) goto LA64_;
										(*c).s->data[vid].flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 1)) & 7);
									}
									goto LA57_;
									LA64_: ;
									{
										NIM_BOOL T67_;
										T67_ = (NIM_BOOL)0;
										T67_ = !(((*c).s->data[srcid].reassignedTo == ((NI) 0)));
										if (!(T67_)) goto LA68_;
										T67_ = !(((*c).s->data[srcid].reassignedTo == (*(*d)._kind_4.sym).Sup.id));
										LA68_: ;
										if (!T67_) goto LA69_;
										(*c).s->data[vid].flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 1)) & 7);
									}
									goto LA57_;
									LA69_: ;
									LA57_: ;
								}
								LA55_: ;
							}
							LA43_: ;
							i_3 += ((NI) 1);
						} LA42: ;
					}
				}
			}
			LA37_: ;
		}
		LA33_: ;
	}
	LA27_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, noCursor__rXTe0qFn2hkwCUsPkYI5Mg)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NI vid;
	vid = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*c)), s);
	{
		if (!(((NI) 0) <= vid)) goto LA3_;
		(*c).s->data[vid].flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 1)) & 7);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, borrowingCall__Gw883GbFnFGwjuPxVuq1cg)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* destType, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
	v = pathExpr__txDoU0xqNSOdI9cexXPloyA((*n)._kind_6.sons->data[i], (*c).owner);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((v == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = ((*v).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NI j;
			NI colontmp_;
			NI colontmp__2;
			NI i_2;
			j = (NI)0;
			colontmp_ = (NI)0;
			colontmp__2 = (NI)0;
			colontmp_ = (NI)(i + ((NI) 1));
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = colontmp_;
			{
				while (1) {
					if (!(i_2 < colontmp__2)) goto LA9;
					j = i_2;
					{
						tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T12_;
						T12_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
						T12_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*n)._kind_6.sons->data[j]);
						if (!(T12_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 126))) goto LA13_;
						borrowFrom__HsUN7qW4bWGSe0TyCWBZgQ(c, (*v)._kind_4.sym, (*n)._kind_6.sons->data[j]);
					}
					LA13_: ;
					i_2 += ((NI) 1);
				} LA9: ;
			}
		}
	}
	goto LA1_;
	LA5_: ;
	{
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*c).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_21), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__39a9bfgg3gnILXo9by9cxATh0Q_22, NIM_FALSE);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, potentialMutationViaArg__mejKcV2JbdCCBeC56QSAVw)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* callee) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*c).goals &((NU8)1<<((NU)(((tyEnum_Goal__JuPChZ1Q9aI1A9aNNAM6t8Pg) 0))&7U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = (((*callee).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T8_;
		tySequence__DfgJFJEYoj4YBAHLZPl5lQ* roots;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*c).inNoSideEffectSection == ((NI) 0));
		if (!(T8_)) goto LA9_;
		T8_ = containsPointer__cUxwrEV3U05oH6XIGBUvVg((*n).typ);
		LA9_: ;
		if (!T8_) goto LA10_;
		roots = (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*)0;
		allRoots__Qv5oXdlV9ba9buFS9a12wMLLw(n, (&roots), NIM_TRUE);
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** r;
			NI i;
			NI L;
			NI T13_;
			r = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
			i = ((NI) 0);
			T13_ = (roots ? roots->Sup.len : 0);
			L = T13_;
			{
				while (1) {
					if (!(i < L)) goto LA15;
					r = &roots->data[i];
					potentialMutation__z9bvsGPZpuLBe2eWE6jHgxA(c, (*r), (*n).info);
					i += ((NI) 1);
				} LA15: ;
			}
		}
	}
	goto LA1_;
	LA10_: ;
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pretendOwnsData__rXTe0qFn2hkwCUsPkYI5Mg_2)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NI vid;
	vid = variableId__NOQS3T9cs7Ji0DQO4VIrebw((&(*c)), s);
	{
		if (!(((NI) 0) <= vid)) goto LA3_;
		(*c).s->data[vid].flags |= ((NU8)1)<<((((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 0)) & 7);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
{	(*c).abstractTime += ((NI) 1);
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child;
			child = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* last;
						if (!(i_2 < colontmp_)) goto LA5;
						i = i_2;
						child = (*n)._kind_6.sons->data[i];
						last = lastSon__UPSW0jLTX5qJL51YMUAHgw(child);
						traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5(c, last);
						{
							NIM_BOOL T8_;
							T8_ = (NIM_BOOL)0;
							T8_ = ((*child).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36));
							if (!(T8_)) goto LA9_;
							T8_ = ((*last).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*last).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160));
							LA9_: ;
							if (!T8_) goto LA10_;
							{
								NI T14_;
								NI T15_;
								T14_ = (NI)0;
								T14_ = len__P89cqdlERShb9alU3iC0yj8wast(child);
								T15_ = (NI)0;
								T15_ = len__P89cqdlERShb9alU3iC0yj8wast(last);
								if (!!(((NI)(T14_ - ((NI) 2)) == T15_))) goto LA16_;
								goto BeforeRet_;
							}
							LA16_: ;
							{
								NI i_3;
								NI colontmp__2;
								NI T19_;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								T19_ = (NI)0;
								T19_ = len__P89cqdlERShb9alU3iC0yj8wast(child);
								colontmp__2 = (NI)(T19_ - ((NI) 2));
								i_4 = ((NI) 0);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA21;
										i_3 = i_4;
										deps__zhnEtb59cIvsKY59c2ohiC7A(c, (*child)._kind_6.sons->data[i_3], (*last)._kind_6.sons->data[i_3]);
										i_4 += ((NI) 1);
									} LA21: ;
								}
							}
						}
						goto LA6_;
						LA10_: ;
						{
							{
								NI i_5;
								NI colontmp__3;
								NI T24_;
								NI i_6;
								i_5 = (NI)0;
								colontmp__3 = (NI)0;
								T24_ = (NI)0;
								T24_ = len__P89cqdlERShb9alU3iC0yj8wast(child);
								colontmp__3 = (NI)(T24_ - ((NI) 2));
								i_6 = ((NI) 0);
								{
									while (1) {
										if (!(i_6 < colontmp__3)) goto LA26;
										i_5 = i_6;
										deps__zhnEtb59cIvsKY59c2ohiC7A(c, (*child)._kind_6.sons->data[i_5], last);
										i_6 += ((NI) 1);
									} LA26: ;
								}
							}
						}
						LA6_: ;
						i_2 += ((NI) 1);
					} LA5: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5(c, (*n)._kind_6.sons->data[((NI) 0)]);
		(*c).inAsgnSource += ((NI) 1);
		traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5(c, (*n)._kind_6.sons->data[((NI) 1)]);
		(*c).inAsgnSource -= ((NI) 1);
		deps__zhnEtb59cIvsKY59c2ohiC7A(c, (*n)._kind_6.sons->data[((NI) 0)], (*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		(*c).abstractTime -= ((NI) 1);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 158) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		(*c).abstractTime -= ((NI) 1);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* parameters;
		NI L;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_2;
			child_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_7;
				NI colontmp__4;
				NI i_8;
				i_7 = (NI)0;
				colontmp__4 = (NI)0;
				colontmp__4 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_8 = ((NI) 0);
				{
					while (1) {
						if (!(i_8 < colontmp__4)) goto LA34;
						i_7 = i_8;
						child_2 = (*n)._kind_6.sons->data[i_7];
						traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5(c, child_2);
						i_8 += ((NI) 1);
					} LA34: ;
				}
			}
		}
		parameters = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
		{
			if (!!((parameters == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL)))) goto LA37_;
			L = len__5mJADrRYkP3r9auuiuDZN9cQast(parameters);
		}
		goto LA35_;
		LA37_: ;
		{
			L = ((NI) 0);
		}
		LA35_: ;
		m = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(n);
		{
			NI i_9;
			NI colontmp__5;
			NI i_10;
			i_9 = (NI)0;
			colontmp__5 = (NI)0;
			colontmp__5 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_10 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					if (!(i_10 < colontmp__5)) goto LA42;
					i_9 = i_10;
					it = (*n)._kind_6.sons->data[i_9];
					{
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* paramType;
						if (!(i_9 < L)) goto LA45_;
						paramType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*parameters).sons->data[i_9], 2064);
						{
							NIM_BOOL T49_;
							NIM_BOOL T50_;
							tySequence__DfgJFJEYoj4YBAHLZPl5lQ* roots;
							T49_ = (NIM_BOOL)0;
							T50_ = (NIM_BOOL)0;
							T50_ = isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types(paramType);
							T49_ = !(T50_);
							if (!(T49_)) goto LA51_;
							T49_ = ((*paramType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*paramType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46) || (*paramType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
							LA51_: ;
							if (!T49_) goto LA52_;
							roots = (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*)0;
							allRoots__Qv5oXdlV9ba9buFS9a12wMLLw(it, (&roots), NIM_TRUE);
							{
								if (!((*paramType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA56_;
								{
									if (!((*c).inNoSideEffectSection == ((NI) 0))) goto LA60_;
									{
										tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** r;
										NI i_11;
										NI L_2;
										NI T63_;
										r = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
										i_11 = ((NI) 0);
										T63_ = (roots ? roots->Sup.len : 0);
										L_2 = T63_;
										{
											while (1) {
												if (!(i_11 < L_2)) goto LA65;
												r = &roots->data[i_11];
												potentialMutation__z9bvsGPZpuLBe2eWE6jHgxA(c, (*r), (*it).info);
												i_11 += ((NI) 1);
											} LA65: ;
										}
									}
								}
								LA60_: ;
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** r_2;
									NI i_12;
									NI L_3;
									NI T67_;
									r_2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
									i_12 = ((NI) 0);
									T67_ = (roots ? roots->Sup.len : 0);
									L_3 = T67_;
									{
										while (1) {
											if (!(i_12 < L_3)) goto LA69;
											r_2 = &roots->data[i_12];
											noCursor__rXTe0qFn2hkwCUsPkYI5Mg(c, (*r_2));
											i_12 += ((NI) 1);
										} LA69: ;
									}
								}
								{
									if (!(((*c).goals &((NU8)1<<((NU)(((tyEnum_Goal__JuPChZ1Q9aI1A9aNNAM6t8Pg) 1))&7U)))!=0)) goto LA72_;
									{
										NIM_BOOL T76_;
										tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog T77_;
										tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog T79_;
										T76_ = (NIM_BOOL)0;
										T77_ = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
										T77_ = directViewType__mrAxDuBowGCWq5wvtjg9bxA_2((*paramType).sons->data[((NI) 0)]);
										T76_ = (T77_ == ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0));
										if (!(T76_)) goto LA78_;
										T79_ = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
										T79_ = classifyViewType__mrAxDuBowGCWq5wvtjg9bxA((*paramType).sons->data[((NI) 0)]);
										T76_ = !((T79_ == ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0)));
										LA78_: ;
										if (!T76_) goto LA80_;
										borrowingCall__Gw883GbFnFGwjuPxVuq1cg(c, (*paramType).sons->data[((NI) 0)], n, i_9);
									}
									LA80_: ;
								}
								LA72_: ;
							}
							LA56_: ;
						}
						goto LA47_;
						LA52_: ;
						{
							NIM_BOOL T83_;
							T83_ = (NIM_BOOL)0;
							T83_ = (((*c).goals &((NU8)1<<((NU)(((tyEnum_Goal__JuPChZ1Q9aI1A9aNNAM6t8Pg) 1))&7U)))!=0);
							if (!(T83_)) goto LA84_;
							T83_ = (m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
							LA84_: ;
							if (!T83_) goto LA85_;
							potentialMutationViaArg__mejKcV2JbdCCBeC56QSAVw(c, (*n)._kind_6.sons->data[i_9], parameters);
						}
						goto LA47_;
						LA85_: ;
						LA47_: ;
					}
					LA45_: ;
					i_10 += ((NI) 1);
				} LA42: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
	{
		traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_3;
			child_3 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_13;
				NI colontmp__6;
				NI i_14;
				i_13 = (NI)0;
				colontmp__6 = (NI)0;
				colontmp__6 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_14 = ((NI) 0);
				{
					while (1) {
						if (!(i_14 < colontmp__6)) goto LA92;
						i_13 = i_14;
						child_3 = (*n)._kind_6.sons->data[i_13];
						traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5(c, child_3);
						i_14 += ((NI) 1);
					} LA92: ;
				}
			}
		}
		{
			if (!(((NI) 0) < (*c).inAsgnSource)) goto LA95_;
			{
				NI i_15;
				NI colontmp__7;
				NI i_16;
				i_15 = (NI)0;
				colontmp__7 = (NI)0;
				colontmp__7 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_16 = ((NI) 0);
				{
					while (1) {
						if (!(i_16 < colontmp__7)) goto LA99;
						i_15 = i_16;
						{
							if (!((*(*n)._kind_6.sons->data[i_15]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA102_;
							pretendOwnsData__rXTe0qFn2hkwCUsPkYI5Mg_2(c, (*(*n)._kind_6.sons->data[i_15])._kind_4.sym);
						}
						LA102_: ;
						i_16 += ((NI) 1);
					} LA99: ;
				}
			}
		}
		LA95_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_4;
			child_4 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_17;
				NI colontmp__8;
				NI i_18;
				i_17 = (NI)0;
				colontmp__8 = (NI)0;
				colontmp__8 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_18 = ((NI) 0);
				{
					while (1) {
						if (!(i_18 < colontmp__8)) goto LA108;
						i_17 = i_18;
						child_4 = (*n)._kind_6.sons->data[i_17];
						traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5(c, child_4);
						i_18 += ((NI) 1);
					} LA108: ;
				}
			}
		}
		{
			if (!(((NI) 0) < (*c).inAsgnSource)) goto LA111_;
			{
				NI i_19;
				NI colontmp__9;
				NI i_20;
				i_19 = (NI)0;
				colontmp__9 = (NI)0;
				colontmp__9 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_20 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it_2;
						if (!(i_20 < colontmp__9)) goto LA115;
						i_19 = i_20;
						it_2 = skipColon__UPSW0jLTX5qJL51YMUAHgw_3((*n)._kind_6.sons->data[i_19]);
						{
							if (!((*it_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA118_;
							pretendOwnsData__rXTe0qFn2hkwCUsPkYI5Mg_2(c, (*it_2)._kind_4.sym);
						}
						LA118_: ;
						i_20 += ((NI) 1);
					} LA115: ;
				}
			}
		}
		LA111_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmaList;
		NI enforceNoSideEffects;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T129_;
		pragmaList = (*n)._kind_6.sons->data[((NI) 0)];
		enforceNoSideEffects = ((NI) 0);
		{
			NI i_21;
			NI colontmp__10;
			NI i_22;
			i_21 = (NI)0;
			colontmp__10 = (NI)0;
			colontmp__10 = len__P89cqdlERShb9alU3iC0yj8wast(pragmaList);
			i_22 = ((NI) 0);
			{
				while (1) {
					if (!(i_22 < colontmp__10)) goto LA123;
					i_21 = i_22;
					{
						NIM_BOOL T126_;
						T126_ = (NIM_BOOL)0;
						T126_ = isNoSideEffectPragma__9cP6JNeOKqczaXCI4Zo4SBQ_6((*pragmaList)._kind_6.sons->data[i_21]);
						if (!T126_) goto LA127_;
						enforceNoSideEffects = ((NI) 1);
						goto LA121;
					}
					LA127_: ;
					i_22 += ((NI) 1);
				} LA123: ;
			}
		} LA121: ;
		(*c).inNoSideEffectSection += enforceNoSideEffects;
		T129_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T129_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
		traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5(c, T129_);
		(*c).inNoSideEffectSection -= enforceNoSideEffects;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 94):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_5;
			child_5 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_23;
				NI colontmp__11;
				NI i_24;
				i_23 = (NI)0;
				colontmp__11 = (NI)0;
				colontmp__11 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_24 = ((NI) 0);
				{
					while (1) {
						if (!(i_24 < colontmp__11)) goto LA134;
						i_23 = i_24;
						child_5 = (*n)._kind_6.sons->data[i_23];
						traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5(c, child_5);
						i_24 += ((NI) 1);
					} LA134: ;
				}
			}
		}
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_6;
			child_6 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_25;
				NI colontmp__12;
				NI i_26;
				i_25 = (NI)0;
				colontmp__12 = (NI)0;
				colontmp__12 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_26 = ((NI) 0);
				{
					while (1) {
						if (!(i_26 < colontmp__12)) goto LA138;
						i_25 = i_26;
						child_6 = (*n)._kind_6.sons->data[i_25];
						traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5(c, child_6);
						i_26 += ((NI) 1);
					} LA138: ;
				}
			}
		}
	}
	break;
	default:
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_7;
			child_7 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_27;
				NI colontmp__13;
				NI i_28;
				i_27 = (NI)0;
				colontmp__13 = (NI)0;
				colontmp__13 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_28 = ((NI) 0);
				{
					while (1) {
						if (!(i_28 < colontmp__13)) goto LA143;
						i_27 = i_28;
						child_7 = (*n)._kind_6.sons->data[i_27];
						traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5(c, child_7);
						i_28 += ((NI) 1);
					} LA143: ;
				}
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, computeGraphPartitions__8NgHqAHLnGXB2Yk7BCbglQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySet_tyEnum_Goal__JuPChZ1Q9aI1A9aNNAM6t8Pg goals, tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* Result) {
	(*Result).abstractTime = 0;
	unsureAsgnRef((void**)&(*Result).s, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).graphs, NIM_NIL);
	(*Result).unanalysableMutation = 0;
	(*Result).inAsgnSource = 0;
	(*Result).inConstructor = 0;
	(*Result).inNoSideEffectSection = 0;
	unsureAsgnRef((void**)&(*Result).owner, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).config, NIM_NIL);
	unsureAsgnRef((void**) (&(*Result).owner), s);
	unsureAsgnRef((void**) (&(*Result).config), config);
	(*Result).goals = goals;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
		if (!!(((131136 &((NU32)1<<((NU)((*s).kind)&31U)))!=0))) goto LA3_;
		params = (*(*s).typ).n;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(params);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					registerParam__MTx9aqQcHjOG7Y3GcfwyisQ(Result, (*params)._kind_6.sons->data[i]);
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
		{
			NI T10_;
			T10_ = (NI)0;
			T10_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast((*s).ast);
			if (!(((NI) 7) < T10_)) goto LA11_;
			registerResult__MTx9aqQcHjOG7Y3GcfwyisQ_2(Result, (*(*s).ast)._kind_6.sons->data[((NI) 7)]);
		}
		LA11_: ;
	}
	LA3_: ;
	computeLiveRanges__MTx9aqQcHjOG7Y3GcfwyisQ_3(Result, n);
	(*Result).abstractTime = ((NI) 0);
	traverse__MTx9aqQcHjOG7Y3GcfwyisQ_5(Result, n);
}
static N_INLINE(NIM_BOOL, mutationAfterConnection__AmwBXpiUH2yKGQsBvl0oRgvarpartitions)(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug* g) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*g).minConnection < (*g).maxMutation);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasSideEffect__o7Sjy4adraWNg67FeaH7Nw)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* c, tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug* info) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug* g;
		NI i;
		NI L;
		NI T2_;
		g = (tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug*)0;
		i = ((NI) 0);
		T2_ = ((*c).graphs ? (*c).graphs->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				g = (&(*c).graphs->data[i]);
				{
					NIM_BOOL T7_;
					NIM_BOOL T9_;
					T7_ = (NIM_BOOL)0;
					T7_ = (((*g).flags & 5) == 5);
					if (!(T7_)) goto LA8_;
					T9_ = (NIM_BOOL)0;
					T9_ = mutationAfterConnection__AmwBXpiUH2yKGQsBvl0oRgvarpartitions((&(*g)));
					if (T9_) goto LA10_;
					T9_ = (((*g).flags &((NU8)1<<((NU)(((tyEnum_SubgraphFlag__mxQvR0HTC631bhUr6jBDDw) 1))&7U)))!=0);
					LA10_: ;
					T7_ = T9_;
					LA8_: ;
					if (!T7_) goto LA11_;
					genericAssign((void*)(&(*info)), (void*)(&(*g)), (&NTI__0Sg6dzXBBdtdBAkDWxEFug_));
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA11_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
	result = NIM_FALSE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__hcR0Q48hft05YswwZUz9aJAsystem)(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA s, NI value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (s.a <= value);
	if (!(T1_)) goto LA2_;
	T1_ = (value <= s.b);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___9aTXq0TPCy9anKDbazeH0eHQsystem)(NI a, NI b) {
	tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	result.a = a;
	result.b = b;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, dangerousMutation__riy8OGz0VVJFWr1jWeKRpA)(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug* g, tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA* v) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!(((*g).flags &((NU8)1<<((NU)(((tyEnum_SubgraphFlag__mxQvR0HTC631bhUr6jBDDw) 0))&7U)))!=0)) goto LA3_;
		{
			NI* m;
			NI i;
			NI L;
			NI T6_;
			m = (NI*)0;
			i = ((NI) 0);
			T6_ = ((*g).mutations ? (*g).mutations->Sup.len : 0);
			L = T6_;
			{
				while (1) {
					if (!(i < L)) goto LA8;
					m = (&(*g).mutations->data[i]);
					{
						tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T11_;
						NIM_BOOL T12_;
						T11_ = dotdot___9aTXq0TPCy9anKDbazeH0eHQsystem((*v).aliveStart, (*v).aliveEnd);
						T12_ = (NIM_BOOL)0;
						T12_ = contains__hcR0Q48hft05YswwZUz9aJAsystem(T11_, (*m));
						if (!T12_) goto LA13_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA13_: ;
					i += ((NI) 1);
				} LA8: ;
			}
		}
	}
	LA3_: ;
	result = NIM_FALSE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, cannotBorrow__7zy1Kjg71W8sR9bY9bA9aguhw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug* g) {
	NimStringDesc* m;
	NimStringDesc* T1_;
	T1_ = (NimStringDesc*)0;
	T1_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 59);
appendString(T1_, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_23));
appendString(T1_, (*(*s).name).s);
appendString(T1_, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_24));
	m = T1_;
	{
		NIM_BOOL T4_;
		NimStringDesc* T7_;
		T4_ = (NIM_BOOL)0;
		T4_ = eqeq___59bygf5b7AsTVb9a1lVM66oA((*g).mutatedHere, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg);
		if (!!(T4_)) goto LA5_;
		m = resizeString(m, 1);
appendString(m, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_25));
		T7_ = (NimStringDesc*)0;
		T7_ = dollar___aQsiZUvE4SFfnWyKx1JgKA(config, (*g).mutatedHere);
		m = resizeString(m, (T7_ ? T7_->Sup.len : 0) + 0);
appendString(m, T7_);
		m = resizeString(m, 21);
appendString(m, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_26));
	}
	LA5_: ;
	{
		NIM_BOOL T10_;
		NimStringDesc* T13_;
		T10_ = (NIM_BOOL)0;
		T10_ = eqeq___59bygf5b7AsTVb9a1lVM66oA((*g).connectedVia, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg);
		if (!!(T10_)) goto LA11_;
		m = resizeString(m, 1);
appendString(m, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_25));
		T13_ = (NimStringDesc*)0;
		T13_ = dollar___aQsiZUvE4SFfnWyKx1JgKA(config, (*g).connectedVia);
		m = resizeString(m, (T13_ ? T13_->Sup.len : 0) + 0);
appendString(m, T13_);
		m = resizeString(m, 62);
appendString(m, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_27));
	}
	LA11_: ;
	liMessage__Q6JNH4uRwLyZrj0dJakHew(config, (*s).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), m, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__39a9bfgg3gnILXo9by9cxATh0Q_28, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(void, checkBorrowedLocations__c6SN0feu9c665e6zxXN9bWMA)(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag* par, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*par).s ? (*par).s->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				v = (*par).s->data[i].sym;
				{
					NIM_BOOL T7_;
					tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog T9_;
					NI rid;
					T7_ = (NIM_BOOL)0;
					T7_ = !(((*v).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
					if (!(T7_)) goto LA8_;
					T9_ = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
					T9_ = classifyViewType__mrAxDuBowGCWq5wvtjg9bxA((*v).typ);
					T7_ = !((T9_ == ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0)));
					LA8_: ;
					if (!T7_) goto LA10_;
					rid = root__gA4jbgjuMZouJJWZSjLrIg(par, i);
					{
						NIM_BOOL constViolation;
						if (!(((NI) 0) <= rid)) goto LA14_;
						constViolation = NIM_FALSE;
						{
							NI* b;
							tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp__2;
							NI i_3;
							NI L;
							NI T17_;
							b = (NI*)0;
							colontmp__2 = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)0;
							colontmp__2 = (*par).s->data[rid].borrowsFrom;
							i_3 = ((NI) 0);
							T17_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
							L = T17_;
							{
								while (1) {
									NI sid;
									if (!(i_3 < L)) goto LA19;
									b = (&colontmp__2->data[i_3]);
									sid = root__gA4jbgjuMZouJJWZSjLrIg(par, (*b));
									{
										if (!(((NI) 0) <= sid)) goto LA22_;
										{
											NIM_BOOL T26_;
											T26_ = (NIM_BOOL)0;
											T26_ = ((*par).s->data[sid].con.kind == ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 2));
											if (!(T26_)) goto LA27_;
											T26_ = dangerousMutation__riy8OGz0VVJFWr1jWeKRpA((&(*par).graphs->data[(*par).s->data[sid].con.graphIndex]), (&(*par).s->data[i]));
											LA27_: ;
											if (!T26_) goto LA28_;
											cannotBorrow__7zy1Kjg71W8sR9bY9bA9aguhw(config, v, (&(*par).graphs->data[(*par).s->data[sid].con.graphIndex]));
										}
										LA28_: ;
										{
											NIM_BOOL T32_;
											NimStringDesc* T36_;
											T32_ = (NIM_BOOL)0;
											T32_ = !(((*(*par).s->data[sid].sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
											if (!(T32_)) goto LA33_;
											T32_ = ((*par).s->data[sid].aliveEnd < (*par).s->data[rid].aliveEnd);
											LA33_: ;
											if (!T32_) goto LA34_;
											T36_ = (NimStringDesc*)0;
											T36_ = rawNewString(((*(*v).name).s ? (*(*v).name).s->Sup.len : 0) + ((*(*(*par).s->data[sid].sym).name).s ? (*(*(*par).s->data[sid].sym).name).s->Sup.len : 0) + 59);
appendString(T36_, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_29));
appendString(T36_, (*(*v).name).s);
appendString(T36_, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_30));
appendString(T36_, (*(*(*par).s->data[sid].sym).name).s);
appendString(T36_, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_31));
											liMessage__Q6JNH4uRwLyZrj0dJakHew(config, (*v).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T36_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__39a9bfgg3gnILXo9by9cxATh0Q_32, NIM_FALSE);
										}
										LA34_: ;
										{
											NIM_BOOL T39_;
											NimStringDesc* T43_;
											T39_ = (NIM_BOOL)0;
											T39_ = (((*par).s->data[rid].flags &((NU8)1<<((NU)(((tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ) 3))&7U)))!=0);
											if (!(T39_)) goto LA40_;
											T39_ = isConstSym__V3UNxjeLuR5i3SsDGe9asSQ((*par).s->data[sid].sym);
											LA40_: ;
											if (!T39_) goto LA41_;
											T43_ = (NimStringDesc*)0;
											T43_ = rawNewString(((*(*v).name).s ? (*(*v).name).s->Sup.len : 0) + ((*(*(*par).s->data[sid].sym).name).s ? (*(*(*par).s->data[sid].sym).name).s->Sup.len : 0) + 67);
appendString(T43_, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_29));
appendString(T43_, (*(*v).name).s);
appendString(T43_, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_33));
appendString(T43_, (*(*(*par).s->data[sid].sym).name).s);
appendString(T43_, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_34));
											liMessage__Q6JNH4uRwLyZrj0dJakHew(config, (*v).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T43_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__39a9bfgg3gnILXo9by9cxATh0Q_35, NIM_FALSE);
											constViolation = NIM_TRUE;
										}
										LA41_: ;
									}
									LA22_: ;
									i_3 += ((NI) 1);
								} LA19: ;
							}
						}
						{
							NIM_BOOL T46_;
							NimStringDesc* T50_;
							T46_ = (NIM_BOOL)0;
							T46_ = ((24 & (*par).s->data[rid].flags) == 24);
							if (!(T46_)) goto LA47_;
							T46_ = !(constViolation);
							LA47_: ;
							if (!T46_) goto LA48_;
							T50_ = (NimStringDesc*)0;
							T50_ = rawNewString(((*(*v).name).s ? (*(*v).name).s->Sup.len : 0) + 63);
appendString(T50_, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_29));
appendString(T50_, (*(*v).name).s);
appendString(T50_, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_36));
							liMessage__Q6JNH4uRwLyZrj0dJakHew(config, (*v).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T50_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__39a9bfgg3gnILXo9by9cxATh0Q_37, NIM_FALSE);
						}
						LA48_: ;
					}
					LA14_: ;
				}
				LA10_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___Ksyu2fr8gIEvUey9aJnQyIw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug* g) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = ((NimStringDesc*) NIM_NIL);
	{
		if (!(((*g).flags & 5) == 5)) goto LA3_;
		result = resizeString(result, 27);
appendString(result, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_38));
		result = resizeString(result, ((*(*(*g).param).name).s ? (*(*(*g).param).name).s->Sup.len : 0) + 0);
appendString(result, (*(*(*g).param).name).s);
		result = resizeString(result, 24);
appendString(result, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_39));
		{
			NIM_BOOL T7_;
			NimStringDesc* T10_;
			T7_ = (NIM_BOOL)0;
			T7_ = eqeq___59bygf5b7AsTVb9a1lVM66oA((*g).mutatedHere, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg);
			if (!!(T7_)) goto LA8_;
			result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_25));
			T10_ = (NimStringDesc*)0;
			T10_ = dollar___aQsiZUvE4SFfnWyKx1JgKA(config, (*g).mutatedHere);
			result = resizeString(result, (T10_ ? T10_->Sup.len : 0) + 0);
appendString(result, T10_);
			result = resizeString(result, 21);
appendString(result, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_26));
		}
		LA8_: ;
		{
			NIM_BOOL T13_;
			NimStringDesc* T16_;
			T13_ = (NIM_BOOL)0;
			T13_ = eqeq___59bygf5b7AsTVb9a1lVM66oA((*g).connectedVia, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg);
			if (!!(T13_)) goto LA14_;
			result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_25));
			T16_ = (NimStringDesc*)0;
			T16_ = dollar___aQsiZUvE4SFfnWyKx1JgKA(config, (*g).connectedVia);
			result = resizeString(result, (T16_ ? T16_->Sup.len : 0) + 0);
appendString(result, T16_);
			result = resizeString(result, 62);
appendString(result, ((NimStringDesc*) &TM__39a9bfgg3gnILXo9by9cxATh0Q_27));
		}
		LA14_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, computeCursors__x9aeseeV2cxKOgYDfLuYbXA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {
	tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag par;
	nimZeroMem((void*)(&par), sizeof(tyObject_Partitions__BXM20779cYW9aXU5vArQdV9ag));
	computeGraphPartitions__8NgHqAHLnGXB2Yk7BCbglQ(s, n, config, 4, (&par));
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (par.s ? par.s->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA* v;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				v = (&par.s->data[i]);
				{
					NIM_BOOL T7_;
					NIM_BOOL T8_;
					NIM_BOOL T9_;
					NIM_BOOL T10_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
					NI rid;
					T7_ = (NIM_BOOL)0;
					T8_ = (NIM_BOOL)0;
					T9_ = (NIM_BOOL)0;
					T10_ = (NIM_BOOL)0;
					T10_ = (((*v).flags & 3) == 0);
					if (!(T10_)) goto LA11_;
					T10_ = !(((2056 &((NU32)1<<((NU)((*(*v).sym).kind)&31U)))!=0));
					LA11_: ;
					T9_ = T10_;
					if (!(T9_)) goto LA12_;
					T9_ = (((*(*v).sym).flags & 67108872) == 0);
					LA12_: ;
					T8_ = T9_;
					if (!(T8_)) goto LA13_;
					T8_ = !(((IL64(2147483664) & (*(*(*v).sym).typ).flags) == 0));
					LA13_: ;
					T7_ = T8_;
					if (!(T7_)) goto LA14_;
					T15_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T15_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*v).sym).typ, 2064);
					T7_ = !(((*T15_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
					LA14_: ;
					if (!T7_) goto LA16_;
					rid = root__gA4jbgjuMZouJJWZSjLrIg((&par), i);
					{
						NIM_BOOL T20_;
						T20_ = (NIM_BOOL)0;
						T20_ = (par.s->data[rid].con.kind == ((tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA) 2));
						if (!(T20_)) goto LA21_;
						T20_ = dangerousMutation__riy8OGz0VVJFWr1jWeKRpA((&par.graphs->data[par.s->data[rid].con.graphIndex]), (&par.s->data[i]));
						LA21_: ;
						if (!T20_) goto LA22_;
					}
					goto LA18_;
					LA22_: ;
					{
						(*(*v).sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 40)) & 63);
					}
					LA18_: ;
				}
				LA16_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_varpartitionsDatInit000)(void) {

/* section: NIM_merge_TYPE_INIT1 */
static TNimNode* TM__39a9bfgg3gnILXo9by9cxATh0Q_2_7[7];
static TNimNode* TM__39a9bfgg3gnILXo9by9cxATh0Q_3_3[3];
NI TM__39a9bfgg3gnILXo9by9cxATh0Q_5;
static char* NIM_CONST TM__39a9bfgg3gnILXo9by9cxATh0Q_4[3] = {
"isEmptyRoot", 
"dependsOn", 
"isRootOf"};
static TNimNode* TM__39a9bfgg3gnILXo9by9cxATh0Q_6_5[5];
NI TM__39a9bfgg3gnILXo9by9cxATh0Q_8;
static char* NIM_CONST TM__39a9bfgg3gnILXo9by9cxATh0Q_7[5] = {
"ownsData", 
"preventCursor", 
"isReassigned", 
"viewDoesMutate", 
"viewBorrowsFromConst"};
static TNimNode* TM__39a9bfgg3gnILXo9by9cxATh0Q_9_7[7];
static TNimNode* TM__39a9bfgg3gnILXo9by9cxATh0Q_10_3[3];
NI TM__39a9bfgg3gnILXo9by9cxATh0Q_12;
static char* NIM_CONST TM__39a9bfgg3gnILXo9by9cxATh0Q_11[3] = {
"isMutated", 
"isMutatedDirectly", 
"connectsConstParam"};
static TNimNode TM__39a9bfgg3gnILXo9by9cxATh0Q_0[36];

/* section: NIM_merge_TYPE_INIT3 */
NTI__9bUY0kR5KFdp9cLhJiAMwmwA_.size = sizeof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA);
NTI__9bUY0kR5KFdp9cLhJiAMwmwA_.align = NIM_ALIGNOF(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA);
NTI__9bUY0kR5KFdp9cLhJiAMwmwA_.kind = 18;
NTI__9bUY0kR5KFdp9cLhJiAMwmwA_.base = 0;
NTI__9bUY0kR5KFdp9cLhJiAMwmwA_.flags = 2;
TM__39a9bfgg3gnILXo9by9cxATh0Q_2_7[0] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[1];
NTI__EevFKe104MtQGkxxkLKkgg_.size = sizeof(tyObject_Connection__EevFKe104MtQGkxxkLKkgg);
NTI__EevFKe104MtQGkxxkLKkgg_.align = NIM_ALIGNOF(tyObject_Connection__EevFKe104MtQGkxxkLKkgg);
NTI__EevFKe104MtQGkxxkLKkgg_.kind = 18;
NTI__EevFKe104MtQGkxxkLKkgg_.base = 0;
NTI__EevFKe104MtQGkxxkLKkgg_.flags = 3;
NTI__TA6PMQGIDoHplflSd7kZxA_.size = sizeof(tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA);
NTI__TA6PMQGIDoHplflSd7kZxA_.align = NIM_ALIGNOF(tyEnum_VarIndexKind__TA6PMQGIDoHplflSd7kZxA);
NTI__TA6PMQGIDoHplflSd7kZxA_.kind = 14;
NTI__TA6PMQGIDoHplflSd7kZxA_.base = 0;
NTI__TA6PMQGIDoHplflSd7kZxA_.flags = 3;
for (TM__39a9bfgg3gnILXo9by9cxATh0Q_5 = 0; TM__39a9bfgg3gnILXo9by9cxATh0Q_5 < 3; TM__39a9bfgg3gnILXo9by9cxATh0Q_5++) {
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[TM__39a9bfgg3gnILXo9by9cxATh0Q_5+3].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[TM__39a9bfgg3gnILXo9by9cxATh0Q_5+3].offset = TM__39a9bfgg3gnILXo9by9cxATh0Q_5;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[TM__39a9bfgg3gnILXo9by9cxATh0Q_5+3].name = TM__39a9bfgg3gnILXo9by9cxATh0Q_4[TM__39a9bfgg3gnILXo9by9cxATh0Q_5];
TM__39a9bfgg3gnILXo9by9cxATh0Q_3_3[TM__39a9bfgg3gnILXo9by9cxATh0Q_5] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[TM__39a9bfgg3gnILXo9by9cxATh0Q_5+3];
}
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[6].len = 3; TM__39a9bfgg3gnILXo9by9cxATh0Q_0[6].kind = 2; TM__39a9bfgg3gnILXo9by9cxATh0Q_0[6].sons = &TM__39a9bfgg3gnILXo9by9cxATh0Q_3_3[0];
NTI__TA6PMQGIDoHplflSd7kZxA_.node = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[6];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[2].kind = 3;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[2].offset = offsetof(tyObject_Connection__EevFKe104MtQGkxxkLKkgg, kind);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[2].typ = (&NTI__TA6PMQGIDoHplflSd7kZxA_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[2].name = "kind";
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[2].sons = &NimDT___EevFKe104MtQGkxxkLKkgg_kind[0];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[2].len = 3;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[7].len = 0; TM__39a9bfgg3gnILXo9by9cxATh0Q_0[7].kind = 2;
NimDT___EevFKe104MtQGkxxkLKkgg_kind[0] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[7];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[8].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[8].offset = offsetof(tyObject_Connection__EevFKe104MtQGkxxkLKkgg, parent);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[8].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[8].name = "parent";
NimDT___EevFKe104MtQGkxxkLKkgg_kind[1] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[8];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[9].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[9].offset = offsetof(tyObject_Connection__EevFKe104MtQGkxxkLKkgg, graphIndex);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[9].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[9].name = "graphIndex";
NimDT___EevFKe104MtQGkxxkLKkgg_kind[2] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[9];
NTI__EevFKe104MtQGkxxkLKkgg_.node = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[2];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[1].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[1].offset = offsetof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA, con);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[1].typ = (&NTI__EevFKe104MtQGkxxkLKkgg_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[1].name = "con";
TM__39a9bfgg3gnILXo9by9cxATh0Q_2_7[1] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[10];
NTI__F7v3qXI9a6XJkYmtFhBnwUQ_.size = sizeof(tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ);
NTI__F7v3qXI9a6XJkYmtFhBnwUQ_.align = NIM_ALIGNOF(tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ);
NTI__F7v3qXI9a6XJkYmtFhBnwUQ_.kind = 14;
NTI__F7v3qXI9a6XJkYmtFhBnwUQ_.base = 0;
NTI__F7v3qXI9a6XJkYmtFhBnwUQ_.flags = 3;
for (TM__39a9bfgg3gnILXo9by9cxATh0Q_8 = 0; TM__39a9bfgg3gnILXo9by9cxATh0Q_8 < 5; TM__39a9bfgg3gnILXo9by9cxATh0Q_8++) {
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[TM__39a9bfgg3gnILXo9by9cxATh0Q_8+11].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[TM__39a9bfgg3gnILXo9by9cxATh0Q_8+11].offset = TM__39a9bfgg3gnILXo9by9cxATh0Q_8;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[TM__39a9bfgg3gnILXo9by9cxATh0Q_8+11].name = TM__39a9bfgg3gnILXo9by9cxATh0Q_7[TM__39a9bfgg3gnILXo9by9cxATh0Q_8];
TM__39a9bfgg3gnILXo9by9cxATh0Q_6_5[TM__39a9bfgg3gnILXo9by9cxATh0Q_8] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[TM__39a9bfgg3gnILXo9by9cxATh0Q_8+11];
}
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[16].len = 5; TM__39a9bfgg3gnILXo9by9cxATh0Q_0[16].kind = 2; TM__39a9bfgg3gnILXo9by9cxATh0Q_0[16].sons = &TM__39a9bfgg3gnILXo9by9cxATh0Q_6_5[0];
NTI__F7v3qXI9a6XJkYmtFhBnwUQ_.node = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[16];
NTI__aPvbyqN5lPiKM7xpscHQuw_.size = sizeof(tySet_tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ);
NTI__aPvbyqN5lPiKM7xpscHQuw_.align = NIM_ALIGNOF(tySet_tyEnum_VarFlag__F7v3qXI9a6XJkYmtFhBnwUQ);
NTI__aPvbyqN5lPiKM7xpscHQuw_.kind = 19;
NTI__aPvbyqN5lPiKM7xpscHQuw_.base = (&NTI__F7v3qXI9a6XJkYmtFhBnwUQ_);
NTI__aPvbyqN5lPiKM7xpscHQuw_.flags = 3;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[17].len = 0; TM__39a9bfgg3gnILXo9by9cxATh0Q_0[17].kind = 0;
NTI__aPvbyqN5lPiKM7xpscHQuw_.node = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[17];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[10].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[10].offset = offsetof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA, flags);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[10].typ = (&NTI__aPvbyqN5lPiKM7xpscHQuw_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[10].name = "flags";
TM__39a9bfgg3gnILXo9by9cxATh0Q_2_7[2] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[18];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[18].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[18].offset = offsetof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA, sym);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[18].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[18].name = "sym";
TM__39a9bfgg3gnILXo9by9cxATh0Q_2_7[3] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[19];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[19].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[19].offset = offsetof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA, reassignedTo);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[19].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[19].name = "reassignedTo";
TM__39a9bfgg3gnILXo9by9cxATh0Q_2_7[4] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[20];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[20].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[20].offset = offsetof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA, aliveStart);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[20].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[20].name = "aliveStart";
TM__39a9bfgg3gnILXo9by9cxATh0Q_2_7[5] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[21];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[21].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[21].offset = offsetof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA, aliveEnd);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[21].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[21].name = "aliveEnd";
TM__39a9bfgg3gnILXo9by9cxATh0Q_2_7[6] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[22];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[22].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[22].offset = offsetof(tyObject_VarIndex__9bUY0kR5KFdp9cLhJiAMwmwA, borrowsFrom);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[22].typ = (&NTI__qwqHTkRvwhrRyENtudHQ7g_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[22].name = "borrowsFrom";
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[0].len = 7; TM__39a9bfgg3gnILXo9by9cxATh0Q_0[0].kind = 2; TM__39a9bfgg3gnILXo9by9cxATh0Q_0[0].sons = &TM__39a9bfgg3gnILXo9by9cxATh0Q_2_7[0];
NTI__9bUY0kR5KFdp9cLhJiAMwmwA_.node = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[0];
NTI__7PsCyIDXDb8nGSU5UlS9cAA_.size = sizeof(tySequence__7PsCyIDXDb8nGSU5UlS9cAA*);
NTI__7PsCyIDXDb8nGSU5UlS9cAA_.align = NIM_ALIGNOF(tySequence__7PsCyIDXDb8nGSU5UlS9cAA*);
NTI__7PsCyIDXDb8nGSU5UlS9cAA_.kind = 24;
NTI__7PsCyIDXDb8nGSU5UlS9cAA_.base = (&NTI__9bUY0kR5KFdp9cLhJiAMwmwA_);
NTI__7PsCyIDXDb8nGSU5UlS9cAA_.flags = 2;
NTI__7PsCyIDXDb8nGSU5UlS9cAA_.marker = Marker_tySequence__7PsCyIDXDb8nGSU5UlS9cAA;
NTI__0Sg6dzXBBdtdBAkDWxEFug_.size = sizeof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug);
NTI__0Sg6dzXBBdtdBAkDWxEFug_.align = NIM_ALIGNOF(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug);
NTI__0Sg6dzXBBdtdBAkDWxEFug_.kind = 18;
NTI__0Sg6dzXBBdtdBAkDWxEFug_.base = 0;
NTI__0Sg6dzXBBdtdBAkDWxEFug_.flags = 2;
TM__39a9bfgg3gnILXo9by9cxATh0Q_9_7[0] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[24];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[24].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[24].offset = offsetof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug, param);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[24].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[24].name = "param";
TM__39a9bfgg3gnILXo9by9cxATh0Q_9_7[1] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[25];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[25].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[25].offset = offsetof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug, mutatedHere);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[25].typ = (&NTI__WGx4rAexNXnczy1Avn646Q_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[25].name = "mutatedHere";
TM__39a9bfgg3gnILXo9by9cxATh0Q_9_7[2] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[26];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[26].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[26].offset = offsetof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug, connectedVia);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[26].typ = (&NTI__WGx4rAexNXnczy1Avn646Q_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[26].name = "connectedVia";
TM__39a9bfgg3gnILXo9by9cxATh0Q_9_7[3] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[27];
NTI__mxQvR0HTC631bhUr6jBDDw_.size = sizeof(tyEnum_SubgraphFlag__mxQvR0HTC631bhUr6jBDDw);
NTI__mxQvR0HTC631bhUr6jBDDw_.align = NIM_ALIGNOF(tyEnum_SubgraphFlag__mxQvR0HTC631bhUr6jBDDw);
NTI__mxQvR0HTC631bhUr6jBDDw_.kind = 14;
NTI__mxQvR0HTC631bhUr6jBDDw_.base = 0;
NTI__mxQvR0HTC631bhUr6jBDDw_.flags = 3;
for (TM__39a9bfgg3gnILXo9by9cxATh0Q_12 = 0; TM__39a9bfgg3gnILXo9by9cxATh0Q_12 < 3; TM__39a9bfgg3gnILXo9by9cxATh0Q_12++) {
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[TM__39a9bfgg3gnILXo9by9cxATh0Q_12+28].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[TM__39a9bfgg3gnILXo9by9cxATh0Q_12+28].offset = TM__39a9bfgg3gnILXo9by9cxATh0Q_12;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[TM__39a9bfgg3gnILXo9by9cxATh0Q_12+28].name = TM__39a9bfgg3gnILXo9by9cxATh0Q_11[TM__39a9bfgg3gnILXo9by9cxATh0Q_12];
TM__39a9bfgg3gnILXo9by9cxATh0Q_10_3[TM__39a9bfgg3gnILXo9by9cxATh0Q_12] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[TM__39a9bfgg3gnILXo9by9cxATh0Q_12+28];
}
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[31].len = 3; TM__39a9bfgg3gnILXo9by9cxATh0Q_0[31].kind = 2; TM__39a9bfgg3gnILXo9by9cxATh0Q_0[31].sons = &TM__39a9bfgg3gnILXo9by9cxATh0Q_10_3[0];
NTI__mxQvR0HTC631bhUr6jBDDw_.node = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[31];
NTI__o2yv2nZi9a9cCH8g7WNv9aEew_.size = sizeof(tySet_tyEnum_SubgraphFlag__mxQvR0HTC631bhUr6jBDDw);
NTI__o2yv2nZi9a9cCH8g7WNv9aEew_.align = NIM_ALIGNOF(tySet_tyEnum_SubgraphFlag__mxQvR0HTC631bhUr6jBDDw);
NTI__o2yv2nZi9a9cCH8g7WNv9aEew_.kind = 19;
NTI__o2yv2nZi9a9cCH8g7WNv9aEew_.base = (&NTI__mxQvR0HTC631bhUr6jBDDw_);
NTI__o2yv2nZi9a9cCH8g7WNv9aEew_.flags = 3;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[32].len = 0; TM__39a9bfgg3gnILXo9by9cxATh0Q_0[32].kind = 0;
NTI__o2yv2nZi9a9cCH8g7WNv9aEew_.node = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[32];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[27].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[27].offset = offsetof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug, flags);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[27].typ = (&NTI__o2yv2nZi9a9cCH8g7WNv9aEew_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[27].name = "flags";
TM__39a9bfgg3gnILXo9by9cxATh0Q_9_7[4] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[33];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[33].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[33].offset = offsetof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug, maxMutation);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[33].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[33].name = "maxMutation";
TM__39a9bfgg3gnILXo9by9cxATh0Q_9_7[5] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[34];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[34].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[34].offset = offsetof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug, minConnection);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[34].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[34].name = "minConnection";
TM__39a9bfgg3gnILXo9by9cxATh0Q_9_7[6] = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[35];
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[35].kind = 1;
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[35].offset = offsetof(tyObject_MutationInfo__0Sg6dzXBBdtdBAkDWxEFug, mutations);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[35].typ = (&NTI__qwqHTkRvwhrRyENtudHQ7g_);
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[35].name = "mutations";
TM__39a9bfgg3gnILXo9by9cxATh0Q_0[23].len = 7; TM__39a9bfgg3gnILXo9by9cxATh0Q_0[23].kind = 2; TM__39a9bfgg3gnILXo9by9cxATh0Q_0[23].sons = &TM__39a9bfgg3gnILXo9by9cxATh0Q_9_7[0];
NTI__0Sg6dzXBBdtdBAkDWxEFug_.node = &TM__39a9bfgg3gnILXo9by9cxATh0Q_0[23];
NTI__QAWA9c8ge5HfZnhFNlb9c9ajA_.size = sizeof(tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA*);
NTI__QAWA9c8ge5HfZnhFNlb9c9ajA_.align = NIM_ALIGNOF(tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA*);
NTI__QAWA9c8ge5HfZnhFNlb9c9ajA_.kind = 24;
NTI__QAWA9c8ge5HfZnhFNlb9c9ajA_.base = (&NTI__0Sg6dzXBBdtdBAkDWxEFug_);
NTI__QAWA9c8ge5HfZnhFNlb9c9ajA_.flags = 2;
NTI__QAWA9c8ge5HfZnhFNlb9c9ajA_.marker = Marker_tySequence__QAWA9c8ge5HfZnhFNlb9c9ajA;
}

