summaryrefslogtreecommitdiff
path: root/chapter10/docs
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2024-11-27 11:29:33 -0800
committerCliff Click <cliffc@acm.org>2025-01-15 15:07:30 -0800
commit65454d77eba95d7f814336377f78d9f42c7455f9 (patch)
tree976efed369498c7e976fe5098f6a406fed81cb53 /chapter10/docs
parent34766f1a2e9e60626eb1bd5a08140fc41a3770c8 (diff)
downloadSimple-65454d77eba95d7f814336377f78d9f42c7455f9.tar.gz
Simple-65454d77eba95d7f814336377f78d9f42c7455f9.zip
More lattice docs reworks
Diffstat (limited to 'chapter10/docs')
-rw-r--r--chapter10/docs/lattice.gv46
-rw-r--r--chapter10/docs/lattice.svg602
2 files changed, 301 insertions, 347 deletions
diff --git a/chapter10/docs/lattice.gv b/chapter10/docs/lattice.gv
index 5ac1bd5a..7723e2a2 100644
--- a/chapter10/docs/lattice.gv
+++ b/chapter10/docs/lattice.gv
@@ -5,12 +5,12 @@ digraph Lattice {
node [shape=circle, style=filled];
nodesep=0.6;
- TOP [label=<<B>⊤ </B>>, fillcolor=black, fontcolor=white];
+ TOP [label=<<B>⊤</B >>, fillcolor=black, fontcolor=white];
BOT [label=<<B>⊥</B>>, fillcolor=black, fontcolor=white];
// ----------------------
// Control
- XCTRL [label=<<B>⊤ </B>:ctrl>, fillcolor=yellow, shape=oval];
+ XCTRL [label=<<B>⊤</B >:ctrl>, fillcolor=yellow, shape=oval];
CTRL [label=<<B>⊥</B>:ctrl>, fillcolor=yellow, shape=oval];
TOP -> XCTRL;
@@ -19,29 +19,23 @@ digraph Lattice {
// ----------------------
// Integers
- INT_TOP [label=<<B>⊤ </B>:int>, fillcolor=lightblue, shape=oval];
+ INT_TOP [label=<<B>⊤</B >:int>, fillcolor=lightblue, shape=oval];
INT_BOT [label=<<B>⊥</B>:int>, fillcolor=lightblue, shape=oval];
- INT_MIN [label="-n" , fillcolor=lightblue];
INT_MINDOTS [label="...", fillcolor=lightblue, shape=oval];
INT_ZERO [label="0" , fillcolor=lightblue];
INT_MAXDOTS [label="...", fillcolor=lightblue, shape=oval];
- INT_MAX [label="+n" , fillcolor=lightblue];
TOP -> INT_TOP;
- INT_TOP -> INT_MIN;
INT_TOP -> INT_MINDOTS;
INT_TOP -> INT_ZERO;
INT_TOP -> INT_MAXDOTS;
- INT_TOP -> INT_MAX;
- INT_MIN -> INT_BOT;
INT_MINDOTS -> INT_BOT;
INT_ZERO -> INT_BOT;
INT_MAXDOTS -> INT_BOT;
- INT_MAX -> INT_BOT;
INT_BOT -> BOT;
- INT_MIN -> INT_MINDOTS -> INT_ZERO -> INT_MAXDOTS -> INT_MAX [style=invis];
+ INT_MINDOTS -> INT_ZERO -> INT_MAXDOTS [style=invis];
// ----------------------
// Pointers, just a boolean nil/not and a struct
@@ -64,28 +58,28 @@ digraph Lattice {
// ----------------------
// Structs
- STRUCT_TOP [label=<<B>⊤</B>:struct>, fillcolor=lightgreen, shape=oval];
+ STRUCT_TOP [label=<<B>⊤</B >:struct>, fillcolor=lightgreen, shape=oval];
+ STRUCT_BOT [label=<<B>⊥</B>:struct>, fillcolor=lightgreen, shape=oval];
STRUCT_S1 [shape=none, fillcolor=none, label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
- <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int:ptr</TD></TR>
+ <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int/ptr</TD></TR>
</TABLE>
>];
STRUCT_S2 [shape=none, fillcolor=none, label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
- <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int:ptr</TD></TR>
- <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int:ptr</TD></TR>
+ <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int/ptr</TD></TR>
+ <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int/ptr</TD></TR>
</TABLE>
>];
STRUCT_SN [shape=none, fillcolor=none, label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
- <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int:ptr</TD></TR>
- <TR><TD BGCOLOR="lightgreen">... </TD><TD BGCOLOR="lightblue:green" gradientangle="315">int:ptr</TD></TR>
- <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int:ptr</TD></TR>
+ <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int/ptr</TD></TR>
+ <TR><TD BGCOLOR="lightgreen">... </TD><TD BGCOLOR="lightblue:green" gradientangle="315">int/ptr</TD></TR>
+ <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int/ptr</TD></TR>
</TABLE>
>];
- STRUCT_BOT [label=<<B>⊥</B>:struct>, fillcolor=lightgreen, shape=oval]
TOP -> STRUCT_TOP;
STRUCT_TOP -> STRUCT_S1;
@@ -100,11 +94,11 @@ digraph Lattice {
// ----------------------
// Memory
- MEM_TOP [label=<<B>⊤</B>:mem>, fillcolor=blue, fontcolor=white, shape=oval];
+ MEM_TOP [label=<<B>⊤</B >:mem>, fillcolor=blue, fontcolor=white, shape=oval];
+ MEM_BOT [label=<<B>⊥</B>:mem>, fillcolor=blue, fontcolor=white, shape=oval];
MEM_ALIAS1 [label="#1" , fillcolor=blue, fontcolor=white];
MEM_ALIASDOTS [label="..." , fillcolor=blue, fontcolor=white, shape=oval];
MEM_ALIASN [label="#n" , fillcolor=blue, fontcolor=white];
- MEM_BOT [label=<<B>⊥</B>:mem>, fillcolor=blue, fontcolor=white, shape=oval];
TOP -> MEM_TOP;
MEM_TOP -> MEM_ALIAS1;
@@ -120,7 +114,8 @@ digraph Lattice {
// ----------------------
// Tuples
- TUPLE_TOP [label=<<B>⊤</B>:tuple>, fillcolor=pink, shape=oval];
+ TUPLE_TOP [label=<<B>⊤</B >:tuple>, fillcolor=pink, shape=oval];
+ TUPLE_BOT [label=<<B>⊥</B>:tuple>, fillcolor=pink, shape=oval];
TUPLE1 [shape=none, fillcolor=none, label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
@@ -144,7 +139,6 @@ digraph Lattice {
</TABLE>
>];
- TUPLE_BOT [label=<<B>⊥</B>:tuple>, fillcolor=pink, shape=oval];
TOP -> TUPLE_TOP;
TUPLE_TOP -> TUPLE1;
@@ -159,11 +153,9 @@ digraph Lattice {
// Additional customization
{rank=same; TOP;}
{rank=same; INT_TOP; XCTRL; STRUCT_TOP; MEM_TOP; TUPLE_TOP}
- {rank=same; INT_MIN; INT_MINDOTS;
- INT_ZERO; INT_MAXDOTS;
- INT_MAX; STRUCT_S1; STRUCT_S2; STRUCT_SN;
- MEM_ALIAS1;
- MEM_ALIASDOTS; MEM_ALIASN;}
+ {rank=same; INT_MINDOTS; INT_ZERO; INT_MAXDOTS;
+ STRUCT_S1; STRUCT_S2; STRUCT_SN;
+ MEM_ALIAS1; MEM_ALIASDOTS; MEM_ALIASN;}
{rank=same; INT_BOT; CTRL; STRUCT_BOT; MEM_BOT; TUPLE_BOT}
{rank=same; BOT;}
}
diff --git a/chapter10/docs/lattice.svg b/chapter10/docs/lattice.svg
index 02f3ce69..9eb36bbe 100644
--- a/chapter10/docs/lattice.svg
+++ b/chapter10/docs/lattice.svg
@@ -4,551 +4,513 @@
<!-- Generated by graphviz version 12.2.0 (20241103.1931)
-->
<!-- Title: Lattice Pages: 1 -->
-<svg width="1465pt" height="447pt"
- viewBox="0.00 0.00 1465.07 446.70" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 442.7)">
+<svg width="1308pt" height="440pt"
+ viewBox="0.00 0.00 1307.51 440.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 436.5)">
<title>Lattice</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-442.7 1461.07,-442.7 1461.07,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-436.5 1303.51,-436.5 1303.51,4 -4,4"/>
<!-- TOP -->
<g id="node1" class="node">
<title>TOP</title>
-<ellipse fill="black" stroke="black" cx="581.07" cy="-414.47" rx="24.23" ry="24.23"/>
-<text text-anchor="start" x="571.32" y="-410.42" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00" fill="white">⊤ </text>
+<ellipse fill="black" stroke="black" cx="478.51" cy="-411.37" rx="21.12" ry="21.12"/>
+<text text-anchor="start" x="470.63" y="-406.95" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00" fill="white">⊤</text>
</g>
<!-- XCTRL -->
<g id="node3" class="node">
<title>XCTRL</title>
-<ellipse fill="yellow" stroke="black" cx="39.07" cy="-327.75" rx="39.07" ry="18"/>
-<text text-anchor="start" x="18.44" y="-323.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊤ </text>
-<text text-anchor="start" x="37.94" y="-323.7" font-family="Times New Roman,serif" font-size="14.00">:ctrl</text>
+<ellipse fill="yellow" stroke="black" cx="36.51" cy="-327.75" rx="36.51" ry="18"/>
+<text text-anchor="start" x="17.76" y="-323.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊤</text>
+<text text-anchor="start" x="33.51" y="-323.7" font-family="Times New Roman,serif" font-size="14.00">:ctrl</text>
</g>
<!-- TOP&#45;&gt;XCTRL -->
<g id="edge1" class="edge">
<title>TOP&#45;&gt;XCTRL</title>
-<path fill="none" stroke="black" d="M557.08,-409.72C474.17,-396.76 198.71,-353.7 86.88,-336.22"/>
-<polygon fill="black" stroke="black" points="87.55,-332.78 77.13,-334.7 86.47,-339.7 87.55,-332.78"/>
+<path fill="none" stroke="black" d="M457.49,-406.49C389.63,-393.96 175.41,-354.4 81.44,-337.04"/>
+<polygon fill="black" stroke="black" points="82.28,-333.64 71.81,-335.27 81.01,-340.53 82.28,-333.64"/>
</g>
<!-- INT_TOP -->
<g id="node5" class="node">
<title>INT_TOP</title>
-<ellipse fill="lightblue" stroke="black" cx="273.07" cy="-327.75" rx="36.51" ry="18"/>
-<text text-anchor="start" x="254.32" y="-323.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊤ </text>
-<text text-anchor="start" x="273.82" y="-323.7" font-family="Times New Roman,serif" font-size="14.00">:int</text>
+<ellipse fill="lightblue" stroke="black" cx="220.51" cy="-327.75" rx="33.95" ry="18"/>
+<text text-anchor="start" x="203.63" y="-323.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊤</text>
+<text text-anchor="start" x="219.38" y="-323.7" font-family="Times New Roman,serif" font-size="14.00">:int</text>
</g>
<!-- TOP&#45;&gt;INT_TOP -->
<g id="edge4" class="edge">
<title>TOP&#45;&gt;INT_TOP</title>
-<path fill="none" stroke="black" d="M557.67,-407.04C505.91,-392.8 381.13,-358.47 315.32,-340.37"/>
-<polygon fill="black" stroke="black" points="316.55,-337.08 305.98,-337.8 314.69,-343.83 316.55,-337.08"/>
+<path fill="none" stroke="black" d="M458.26,-403.97C415.59,-390.47 315.75,-358.88 259.97,-341.23"/>
+<polygon fill="black" stroke="black" points="261.14,-337.93 250.55,-338.25 259.03,-344.61 261.14,-337.93"/>
</g>
<!-- PTR -->
-<g id="node12" class="node">
+<g id="node10" class="node">
<title>PTR</title>
-<polygon fill="none" stroke="none" points="551.07,-354.25 497.07,-354.25 497.07,-301.25 551.07,-301.25 551.07,-354.25"/>
-<polygon fill="green" stroke="none" points="506.07,-327.75 506.07,-350.25 542.07,-350.25 542.07,-327.75 506.07,-327.75"/>
-<polygon fill="none" stroke="black" points="506.07,-327.75 506.07,-350.25 542.07,-350.25 542.07,-327.75 506.07,-327.75"/>
-<text text-anchor="start" x="513.19" y="-333.95" font-family="Times New Roman,serif" font-size="14.00" fill="white">*ptr</text>
-<polygon fill="lightgreen" stroke="none" points="506.07,-305.25 506.07,-327.75 542.07,-327.75 542.07,-305.25 506.07,-305.25"/>
-<polygon fill="none" stroke="black" points="506.07,-305.25 506.07,-327.75 542.07,-327.75 542.07,-305.25 506.07,-305.25"/>
-<text text-anchor="start" x="509.07" y="-311.45" font-family="Times New Roman,serif" font-size="14.00">struct</text>
+<polygon fill="none" stroke="none" points="387.51,-354.25 333.51,-354.25 333.51,-301.25 387.51,-301.25 387.51,-354.25"/>
+<polygon fill="green" stroke="none" points="342.51,-327.75 342.51,-350.25 378.51,-350.25 378.51,-327.75 342.51,-327.75"/>
+<polygon fill="none" stroke="black" points="342.51,-327.75 342.51,-350.25 378.51,-350.25 378.51,-327.75 342.51,-327.75"/>
+<text text-anchor="start" x="349.63" y="-333.95" font-family="Times New Roman,serif" font-size="14.00" fill="white">*ptr</text>
+<polygon fill="lightgreen" stroke="none" points="342.51,-305.25 342.51,-327.75 378.51,-327.75 378.51,-305.25 342.51,-305.25"/>
+<polygon fill="none" stroke="black" points="342.51,-305.25 342.51,-327.75 378.51,-327.75 378.51,-305.25 342.51,-305.25"/>
+<text text-anchor="start" x="345.51" y="-311.45" font-family="Times New Roman,serif" font-size="14.00">struct</text>
</g>
<!-- TOP&#45;&gt;PTR -->
-<g id="edge20" class="edge">
+<g id="edge14" class="edge">
<title>TOP&#45;&gt;PTR</title>
-<path fill="none" stroke="black" d="M567.85,-393.82C561.75,-384.77 554.34,-373.74 547.35,-363.36"/>
-<polygon fill="black" stroke="black" points="550.44,-361.68 541.96,-355.34 544.63,-365.59 550.44,-361.68"/>
+<path fill="none" stroke="black" d="M461.35,-398.5C444.42,-386.79 418.03,-368.54 396.49,-353.64"/>
+<polygon fill="black" stroke="black" points="398.75,-350.95 388.54,-348.14 394.77,-356.7 398.75,-350.95"/>
</g>
<!-- STRUCT_TOP -->
-<g id="node14" class="node">
+<g id="node12" class="node">
<title>STRUCT_TOP</title>
-<ellipse fill="lightgreen" stroke="black" cx="700.07" cy="-327.75" rx="44.7" ry="18"/>
-<text text-anchor="start" x="675.32" y="-323.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊤</text>
-<text text-anchor="start" x="691.07" y="-323.7" font-family="Times New Roman,serif" font-size="14.00">:struct</text>
+<ellipse fill="lightgreen" stroke="black" cx="514.51" cy="-327.75" rx="44.7" ry="18"/>
+<text text-anchor="start" x="489.76" y="-323.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊤</text>
+<text text-anchor="start" x="505.51" y="-323.7" font-family="Times New Roman,serif" font-size="14.00">:struct</text>
</g>
<!-- TOP&#45;&gt;STRUCT_TOP -->
-<g id="edge23" class="edge">
+<g id="edge17" class="edge">
<title>TOP&#45;&gt;STRUCT_TOP</title>
-<path fill="none" stroke="black" d="M600.72,-399.48C619.46,-386.14 647.98,-365.83 669.66,-350.4"/>
-<polygon fill="black" stroke="black" points="671.43,-353.43 677.55,-344.78 667.37,-347.73 671.43,-353.43"/>
+<path fill="none" stroke="black" d="M486.86,-391.44C491.45,-381.02 497.24,-367.9 502.33,-356.35"/>
+<polygon fill="black" stroke="black" points="505.5,-357.86 506.33,-347.29 499.09,-355.03 505.5,-357.86"/>
</g>
<!-- MEM_TOP -->
-<g id="node19" class="node">
+<g id="node17" class="node">
<title>MEM_TOP</title>
-<ellipse fill="blue" stroke="black" cx="1011.07" cy="-327.75" rx="43.67" ry="18"/>
-<text text-anchor="start" x="987.07" y="-323.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00" fill="white">⊤</text>
-<text text-anchor="start" x="1002.82" y="-323.7" font-family="Times New Roman,serif" font-size="14.00" fill="white">:mem</text>
+<ellipse fill="blue" stroke="black" cx="853.51" cy="-327.75" rx="43.67" ry="18"/>
+<text text-anchor="start" x="829.51" y="-323.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00" fill="white">⊤</text>
+<text text-anchor="start" x="845.26" y="-323.7" font-family="Times New Roman,serif" font-size="14.00" fill="white">:mem</text>
</g>
<!-- TOP&#45;&gt;MEM_TOP -->
-<g id="edge33" class="edge">
+<g id="edge27" class="edge">
<title>TOP&#45;&gt;MEM_TOP</title>
-<path fill="none" stroke="black" d="M605.11,-408.74C673.19,-395.32 868.38,-356.86 961.06,-338.6"/>
-<polygon fill="black" stroke="black" points="961.48,-342.09 970.62,-336.72 960.13,-335.22 961.48,-342.09"/>
+<path fill="none" stroke="black" d="M499.2,-405.87C556.98,-393.29 721.22,-357.54 804.21,-339.48"/>
+<polygon fill="black" stroke="black" points="804.86,-342.92 813.89,-337.37 803.37,-336.08 804.86,-342.92"/>
</g>
<!-- TUPLE_TOP -->
-<g id="node24" class="node">
+<g id="node22" class="node">
<title>TUPLE_TOP</title>
-<ellipse fill="pink" stroke="black" cx="1284.07" cy="-327.75" rx="42.65" ry="18"/>
-<text text-anchor="start" x="1260.82" y="-323.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊤</text>
-<text text-anchor="start" x="1276.57" y="-323.7" font-family="Times New Roman,serif" font-size="14.00">:tuple</text>
+<ellipse fill="pink" stroke="black" cx="1126.51" cy="-327.75" rx="42.65" ry="18"/>
+<text text-anchor="start" x="1103.26" y="-323.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊤</text>
+<text text-anchor="start" x="1119.01" y="-323.7" font-family="Times New Roman,serif" font-size="14.00">:tuple</text>
</g>
<!-- TOP&#45;&gt;TUPLE_TOP -->
-<g id="edge43" class="edge">
+<g id="edge37" class="edge">
<title>TOP&#45;&gt;TUPLE_TOP</title>
-<path fill="none" stroke="black" d="M605.27,-410.56C705.78,-398.44 1091.6,-351.95 1232.32,-334.99"/>
-<polygon fill="black" stroke="black" points="1232.58,-338.48 1242.09,-333.81 1231.74,-331.53 1232.58,-338.48"/>
+<path fill="none" stroke="black" d="M499.7,-407.7C589.67,-396.37 941.49,-352.05 1074.87,-335.25"/>
+<polygon fill="black" stroke="black" points="1074.97,-338.77 1084.46,-334.05 1074.1,-331.82 1074.97,-338.77"/>
</g>
<!-- BOT -->
<g id="node2" class="node">
<title>BOT</title>
-<ellipse fill="black" stroke="black" cx="612.07" cy="-21.12" rx="21.12" ry="21.12"/>
-<text text-anchor="start" x="604.19" y="-16.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00" fill="white">⊥</text>
+<ellipse fill="black" stroke="black" cx="448.51" cy="-21.12" rx="21.12" ry="21.12"/>
+<text text-anchor="start" x="440.63" y="-16.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00" fill="white">⊥</text>
</g>
<!-- CTRL -->
<g id="node4" class="node">
<title>CTRL</title>
-<ellipse fill="yellow" stroke="black" cx="42.07" cy="-104.75" rx="36.51" ry="18"/>
-<text text-anchor="start" x="23.32" y="-100.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊥</text>
-<text text-anchor="start" x="39.07" y="-100.7" font-family="Times New Roman,serif" font-size="14.00">:ctrl</text>
+<ellipse fill="yellow" stroke="black" cx="36.51" cy="-104.75" rx="36.51" ry="18"/>
+<text text-anchor="start" x="17.76" y="-100.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊥</text>
+<text text-anchor="start" x="33.51" y="-100.7" font-family="Times New Roman,serif" font-size="14.00">:ctrl</text>
</g>
<!-- XCTRL&#45;&gt;CTRL -->
<g id="edge2" class="edge">
<title>XCTRL&#45;&gt;CTRL</title>
-<path fill="none" stroke="black" d="M39.31,-309.5C39.83,-271.02 41.04,-181.25 41.67,-134.4"/>
-<polygon fill="black" stroke="black" points="45.17,-134.5 41.8,-124.45 38.17,-134.4 45.17,-134.5"/>
+<path fill="none" stroke="black" d="M36.51,-309.5C36.51,-271.02 36.51,-181.25 36.51,-134.4"/>
+<polygon fill="black" stroke="black" points="40.01,-134.45 36.51,-124.45 33.01,-134.45 40.01,-134.45"/>
</g>
<!-- CTRL&#45;&gt;BOT -->
<g id="edge3" class="edge">
<title>CTRL&#45;&gt;BOT</title>
-<path fill="none" stroke="black" d="M76.87,-98.77C179.54,-84.06 480.24,-41 579.71,-26.76"/>
-<polygon fill="black" stroke="black" points="580.17,-30.23 589.57,-25.35 579.18,-23.3 580.17,-30.23"/>
-</g>
-<!-- INT_MIN -->
-<g id="node7" class="node">
-<title>INT_MIN</title>
-<ellipse fill="lightblue" stroke="black" cx="52.07" cy="-216.25" rx="18.6" ry="18.6"/>
-<text text-anchor="middle" x="52.07" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">&#45;n</text>
-</g>
-<!-- INT_TOP&#45;&gt;INT_MIN -->
-<g id="edge5" class="edge">
-<title>INT_TOP&#45;&gt;INT_MIN</title>
-<path fill="none" stroke="black" d="M248.15,-314.4C206.3,-293.66 122.25,-252.02 79.06,-230.62"/>
-<polygon fill="black" stroke="black" points="80.63,-227.49 70.12,-226.19 77.52,-233.77 80.63,-227.49"/>
+<path fill="none" stroke="black" d="M69.88,-97.14C147.7,-81.72 340.42,-43.54 416.69,-28.43"/>
+<polygon fill="black" stroke="black" points="417.29,-31.88 426.41,-26.5 415.93,-25.01 417.29,-31.88"/>
</g>
<!-- INT_MINDOTS -->
-<g id="node8" class="node">
+<g id="node7" class="node">
<title>INT_MINDOTS</title>
-<ellipse fill="lightblue" stroke="black" cx="141.07" cy="-216.25" rx="27" ry="18"/>
-<text text-anchor="middle" x="141.07" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">...</text>
+<ellipse fill="lightblue" stroke="black" cx="68.51" cy="-216.25" rx="27" ry="18"/>
+<text text-anchor="middle" x="68.51" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">...</text>
</g>
<!-- INT_TOP&#45;&gt;INT_MINDOTS -->
-<g id="edge6" class="edge">
+<g id="edge5" class="edge">
<title>INT_TOP&#45;&gt;INT_MINDOTS</title>
-<path fill="none" stroke="black" d="M254.99,-311.75C231.87,-292.58 191.74,-259.28 165.8,-237.77"/>
-<polygon fill="black" stroke="black" points="168.37,-235.35 158.44,-231.66 163.9,-240.73 168.37,-235.35"/>
+<path fill="none" stroke="black" d="M200.95,-312.66C174.03,-293.27 125.48,-258.29 95.24,-236.5"/>
+<polygon fill="black" stroke="black" points="97.5,-233.82 87.34,-230.81 93.41,-239.5 97.5,-233.82"/>
</g>
<!-- INT_ZERO -->
-<g id="node9" class="node">
+<g id="node8" class="node">
<title>INT_ZERO</title>
-<ellipse fill="lightblue" stroke="black" cx="229.07" cy="-216.25" rx="18" ry="18"/>
-<text text-anchor="middle" x="229.07" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">0</text>
+<ellipse fill="lightblue" stroke="black" cx="156.51" cy="-216.25" rx="18" ry="18"/>
+<text text-anchor="middle" x="156.51" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">0</text>
</g>
<!-- INT_TOP&#45;&gt;INT_ZERO -->
-<g id="edge7" class="edge">
+<g id="edge6" class="edge">
<title>INT_TOP&#45;&gt;INT_ZERO</title>
-<path fill="none" stroke="black" d="M266.19,-309.64C259.14,-292.08 248.06,-264.51 239.84,-244.05"/>
-<polygon fill="black" stroke="black" points="243.15,-242.9 236.17,-234.93 236.65,-245.51 243.15,-242.9"/>
+<path fill="none" stroke="black" d="M210.79,-310.12C200.2,-292 183.15,-262.82 170.98,-242.01"/>
+<polygon fill="black" stroke="black" points="174.12,-240.45 166.05,-233.58 168.08,-243.98 174.12,-240.45"/>
</g>
<!-- INT_MAXDOTS -->
-<g id="node10" class="node">
+<g id="node9" class="node">
<title>INT_MAXDOTS</title>
-<ellipse fill="lightblue" stroke="black" cx="317.07" cy="-216.25" rx="27" ry="18"/>
-<text text-anchor="middle" x="317.07" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">...</text>
+<ellipse fill="lightblue" stroke="black" cx="244.51" cy="-216.25" rx="27" ry="18"/>
+<text text-anchor="middle" x="244.51" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">...</text>
</g>
<!-- INT_TOP&#45;&gt;INT_MAXDOTS -->
-<g id="edge8" class="edge">
+<g id="edge7" class="edge">
<title>INT_TOP&#45;&gt;INT_MAXDOTS</title>
-<path fill="none" stroke="black" d="M279.94,-309.64C286.96,-292.18 297.95,-264.82 306.16,-244.4"/>
-<polygon fill="black" stroke="black" points="309.34,-245.87 309.82,-235.28 302.84,-243.26 309.34,-245.87"/>
-</g>
-<!-- INT_MAX -->
-<g id="node11" class="node">
-<title>INT_MAX</title>
-<ellipse fill="lightblue" stroke="black" cx="408.07" cy="-216.25" rx="21.15" ry="21.15"/>
-<text text-anchor="middle" x="408.07" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">+n</text>
-</g>
-<!-- INT_TOP&#45;&gt;INT_MAX -->
-<g id="edge9" class="edge">
-<title>INT_TOP&#45;&gt;INT_MAX</title>
-<path fill="none" stroke="black" d="M291.56,-311.75C315.33,-292.47 356.7,-258.92 383.21,-237.41"/>
-<polygon fill="black" stroke="black" points="385.17,-240.33 390.73,-231.31 380.76,-234.89 385.17,-240.33"/>
+<path fill="none" stroke="black" d="M224.26,-309.64C228.03,-292.44 233.9,-265.64 238.35,-245.33"/>
+<polygon fill="black" stroke="black" points="241.74,-246.23 240.46,-235.72 234.9,-244.73 241.74,-246.23"/>
</g>
<!-- INT_BOT -->
<g id="node6" class="node">
<title>INT_BOT</title>
-<ellipse fill="lightblue" stroke="black" cx="273.07" cy="-104.75" rx="33.95" ry="18"/>
-<text text-anchor="start" x="256.19" y="-100.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊥</text>
-<text text-anchor="start" x="271.94" y="-100.7" font-family="Times New Roman,serif" font-size="14.00">:int</text>
+<ellipse fill="lightblue" stroke="black" cx="220.51" cy="-104.75" rx="33.95" ry="18"/>
+<text text-anchor="start" x="203.63" y="-100.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊥</text>
+<text text-anchor="start" x="219.38" y="-100.7" font-family="Times New Roman,serif" font-size="14.00">:int</text>
</g>
<!-- INT_BOT&#45;&gt;BOT -->
-<g id="edge15" class="edge">
+<g id="edge11" class="edge">
<title>INT_BOT&#45;&gt;BOT</title>
-<path fill="none" stroke="black" d="M303.75,-96.36C367.89,-80.92 515.56,-45.36 580.48,-29.73"/>
-<polygon fill="black" stroke="black" points="581.22,-33.15 590.12,-27.41 579.58,-26.35 581.22,-33.15"/>
-</g>
-<!-- INT_MIN&#45;&gt;INT_BOT -->
-<g id="edge10" class="edge">
-<title>INT_MIN&#45;&gt;INT_BOT</title>
-<path fill="none" stroke="black" d="M68.68,-207.02C104.61,-189.22 190.19,-146.81 238.44,-122.9"/>
-<polygon fill="black" stroke="black" points="239.95,-126.06 247.36,-118.49 236.84,-119.79 239.95,-126.06"/>
+<path fill="none" stroke="black" d="M248.01,-93.9C290.83,-78.57 373.15,-49.1 417.83,-33.11"/>
+<polygon fill="black" stroke="black" points="418.93,-36.43 427.17,-29.76 416.57,-29.84 418.93,-36.43"/>
</g>
-<!-- INT_MIN&#45;&gt;INT_MINDOTS -->
<!-- INT_MINDOTS&#45;&gt;INT_BOT -->
-<g id="edge11" class="edge">
+<g id="edge8" class="edge">
<title>INT_MINDOTS&#45;&gt;INT_BOT</title>
-<path fill="none" stroke="black" d="M157.52,-201.6C179.9,-183.04 220.19,-149.61 246.78,-127.55"/>
-<polygon fill="black" stroke="black" points="248.94,-130.31 254.4,-121.23 244.47,-124.92 248.94,-130.31"/>
+<path fill="none" stroke="black" d="M86.24,-202.47C112.22,-183.76 160.89,-148.7 191.95,-126.33"/>
+<polygon fill="black" stroke="black" points="193.68,-129.39 199.75,-120.71 189.59,-123.71 193.68,-129.39"/>
</g>
<!-- INT_MINDOTS&#45;&gt;INT_ZERO -->
<!-- INT_ZERO&#45;&gt;INT_BOT -->
-<g id="edge12" class="edge">
+<g id="edge9" class="edge">
<title>INT_ZERO&#45;&gt;INT_BOT</title>
-<path fill="none" stroke="black" d="M235.56,-199.09C242.53,-181.74 253.73,-153.88 262.08,-133.1"/>
-<polygon fill="black" stroke="black" points="265.21,-134.68 265.7,-124.1 258.72,-132.07 265.21,-134.68"/>
+<path fill="none" stroke="black" d="M165.14,-200.48C175.34,-183.02 192.52,-153.64 205.04,-132.22"/>
+<polygon fill="black" stroke="black" points="207.97,-134.13 210,-123.73 201.93,-130.6 207.97,-134.13"/>
</g>
<!-- INT_ZERO&#45;&gt;INT_MAXDOTS -->
<!-- INT_MAXDOTS&#45;&gt;INT_BOT -->
-<g id="edge13" class="edge">
+<g id="edge10" class="edge">
<title>INT_MAXDOTS&#45;&gt;INT_BOT</title>
-<path fill="none" stroke="black" d="M310.39,-198.62C303.41,-181.25 292.35,-153.73 284.08,-133.15"/>
-<polygon fill="black" stroke="black" points="287.35,-131.91 280.38,-123.94 280.86,-134.52 287.35,-131.91"/>
-</g>
-<!-- INT_MAXDOTS&#45;&gt;INT_MAX -->
-<!-- INT_MAX&#45;&gt;INT_BOT -->
-<g id="edge14" class="edge">
-<title>INT_MAX&#45;&gt;INT_BOT</title>
-<path fill="none" stroke="black" d="M391.78,-202.04C368.98,-183.54 327.24,-149.69 299.83,-127.45"/>
-<polygon fill="black" stroke="black" points="302.28,-124.93 292.3,-121.35 297.87,-130.37 302.28,-124.93"/>
+<path fill="none" stroke="black" d="M240.76,-198.14C237.01,-181.04 231.18,-154.46 226.74,-134.19"/>
+<polygon fill="black" stroke="black" points="230.2,-133.6 224.64,-124.58 223.36,-135.09 230.2,-133.6"/>
</g>
<!-- PTR0 -->
-<g id="node13" class="node">
+<g id="node11" class="node">
<title>PTR0</title>
-<polygon fill="none" stroke="none" points="551.07,-131.25 497.07,-131.25 497.07,-78.25 551.07,-78.25 551.07,-131.25"/>
-<polygon fill="green" stroke="none" points="506.07,-104.75 506.07,-127.25 542.07,-127.25 542.07,-104.75 506.07,-104.75"/>
-<polygon fill="none" stroke="black" points="506.07,-104.75 506.07,-127.25 542.07,-127.25 542.07,-104.75 506.07,-104.75"/>
-<text text-anchor="start" x="510.19" y="-110.95" font-family="Times New Roman,serif" font-size="14.00" fill="white">*ptr?</text>
-<polygon fill="lightgreen" stroke="none" points="506.07,-82.25 506.07,-104.75 542.07,-104.75 542.07,-82.25 506.07,-82.25"/>
-<polygon fill="none" stroke="black" points="506.07,-82.25 506.07,-104.75 542.07,-104.75 542.07,-82.25 506.07,-82.25"/>
-<text text-anchor="start" x="509.07" y="-88.45" font-family="Times New Roman,serif" font-size="14.00">struct</text>
+<polygon fill="none" stroke="none" points="387.51,-131.25 333.51,-131.25 333.51,-78.25 387.51,-78.25 387.51,-131.25"/>
+<polygon fill="green" stroke="none" points="342.51,-104.75 342.51,-127.25 378.51,-127.25 378.51,-104.75 342.51,-104.75"/>
+<polygon fill="none" stroke="black" points="342.51,-104.75 342.51,-127.25 378.51,-127.25 378.51,-104.75 342.51,-104.75"/>
+<text text-anchor="start" x="346.63" y="-110.95" font-family="Times New Roman,serif" font-size="14.00" fill="white">*ptr?</text>
+<polygon fill="lightgreen" stroke="none" points="342.51,-82.25 342.51,-104.75 378.51,-104.75 378.51,-82.25 342.51,-82.25"/>
+<polygon fill="none" stroke="black" points="342.51,-82.25 342.51,-104.75 378.51,-104.75 378.51,-82.25 342.51,-82.25"/>
+<text text-anchor="start" x="345.51" y="-88.45" font-family="Times New Roman,serif" font-size="14.00">struct</text>
</g>
<!-- PTR&#45;&gt;PTR0 -->
-<g id="edge21" class="edge">
+<g id="edge15" class="edge">
<title>PTR&#45;&gt;PTR0</title>
-<path fill="none" stroke="black" d="M524.07,-301.29C524.07,-261.89 524.07,-187.62 524.07,-142.52"/>
-<polygon fill="black" stroke="black" points="527.57,-142.68 524.07,-132.68 520.57,-142.68 527.57,-142.68"/>
+<path fill="none" stroke="black" d="M360.51,-301.29C360.51,-261.89 360.51,-187.62 360.51,-142.52"/>
+<polygon fill="black" stroke="black" points="364.01,-142.68 360.51,-132.68 357.01,-142.68 364.01,-142.68"/>
</g>
<!-- PTR0&#45;&gt;BOT -->
-<g id="edge22" class="edge">
+<g id="edge16" class="edge">
<title>PTR0&#45;&gt;BOT</title>
-<path fill="none" stroke="black" d="M550.95,-78.81C562.95,-67.68 576.97,-54.68 588.55,-43.94"/>
-<polygon fill="black" stroke="black" points="590.79,-46.63 595.75,-37.26 586.03,-41.5 590.79,-46.63"/>
+<path fill="none" stroke="black" d="M387.39,-78.81C399.39,-67.68 413.41,-54.68 424.99,-43.94"/>
+<polygon fill="black" stroke="black" points="427.24,-46.63 432.19,-37.26 422.48,-41.5 427.24,-46.63"/>
</g>
<!-- STRUCT_S1 -->
-<g id="node15" class="node">
+<g id="node14" class="node">
<title>STRUCT_S1</title>
-<polygon fill="none" stroke="none" points="644.94,-234.25 559.19,-234.25 559.19,-198.25 644.94,-198.25 644.94,-234.25"/>
-<polygon fill="lightgreen" stroke="none" points="567.19,-205 567.19,-227.5 597.94,-227.5 597.94,-205 567.19,-205"/>
-<polygon fill="none" stroke="black" points="567.19,-205 567.19,-227.5 597.94,-227.5 597.94,-205 567.19,-205"/>
-<text text-anchor="start" x="570.19" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">field</text>
+<polygon fill="none" stroke="none" points="487.38,-234.25 401.63,-234.25 401.63,-198.25 487.38,-198.25 487.38,-234.25"/>
+<polygon fill="lightgreen" stroke="none" points="409.63,-205 409.63,-227.5 440.38,-227.5 440.38,-205 409.63,-205"/>
+<polygon fill="none" stroke="black" points="409.63,-205 409.63,-227.5 440.38,-227.5 440.38,-205 409.63,-205"/>
+<text text-anchor="start" x="412.63" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">field</text>
<defs>
-<linearGradient id="l_0" gradientUnits="userSpaceOnUse" x1="603.65" y1="-224.2" x2="631.23" y2="-208.29" >
+<linearGradient id="l_0" gradientUnits="userSpaceOnUse" x1="446.1" y1="-224.2" x2="473.67" y2="-208.29" >
<stop offset="0" style="stop-color:lightblue;stop-opacity:1.;"/>
<stop offset="1" style="stop-color:green;stop-opacity:1.;"/>
</linearGradient>
</defs>
-<polygon fill="url(#l_0)" stroke="none" points="597.94,-205 597.94,-227.5 636.94,-227.5 636.94,-205 597.94,-205"/>
-<polygon fill="none" stroke="black" points="597.94,-205 597.94,-227.5 636.94,-227.5 636.94,-205 597.94,-205"/>
-<text text-anchor="start" x="600.94" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">int:ptr</text>
+<polygon fill="url(#l_0)" stroke="none" points="440.38,-205 440.38,-227.5 479.38,-227.5 479.38,-205 440.38,-205"/>
+<polygon fill="none" stroke="black" points="440.38,-205 440.38,-227.5 479.38,-227.5 479.38,-205 440.38,-205"/>
+<text text-anchor="start" x="443.38" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">int/ptr</text>
</g>
<!-- STRUCT_TOP&#45;&gt;STRUCT_S1 -->
-<g id="edge24" class="edge">
+<g id="edge18" class="edge">
<title>STRUCT_TOP&#45;&gt;STRUCT_S1</title>
-<path fill="none" stroke="black" d="M685.61,-310.59C669.58,-292.68 643.53,-263.57 624.77,-242.62"/>
-<polygon fill="black" stroke="black" points="627.52,-240.44 618.24,-235.32 622.3,-245.11 627.52,-240.44"/>
+<path fill="none" stroke="black" d="M503.88,-310.12C492.57,-292.43 474.53,-264.21 461.3,-243.51"/>
+<polygon fill="black" stroke="black" points="464.39,-241.85 456.06,-235.31 458.49,-245.62 464.39,-241.85"/>
</g>
<!-- STRUCT_S2 -->
-<g id="node16" class="node">
+<g id="node15" class="node">
<title>STRUCT_S2</title>
-<polygon fill="none" stroke="none" points="773.94,-242.75 688.19,-242.75 688.19,-189.75 773.94,-189.75 773.94,-242.75"/>
-<polygon fill="lightgreen" stroke="none" points="696.19,-216.25 696.19,-238.75 726.94,-238.75 726.94,-216.25 696.19,-216.25"/>
-<polygon fill="none" stroke="black" points="696.19,-216.25 696.19,-238.75 726.94,-238.75 726.94,-216.25 696.19,-216.25"/>
-<text text-anchor="start" x="699.19" y="-222.45" font-family="Times New Roman,serif" font-size="14.00">field</text>
+<polygon fill="none" stroke="none" points="616.38,-242.75 530.63,-242.75 530.63,-189.75 616.38,-189.75 616.38,-242.75"/>
+<polygon fill="lightgreen" stroke="none" points="538.63,-216.25 538.63,-238.75 569.38,-238.75 569.38,-216.25 538.63,-216.25"/>
+<polygon fill="none" stroke="black" points="538.63,-216.25 538.63,-238.75 569.38,-238.75 569.38,-216.25 538.63,-216.25"/>
+<text text-anchor="start" x="541.63" y="-222.45" font-family="Times New Roman,serif" font-size="14.00">field</text>
<defs>
-<linearGradient id="l_1" gradientUnits="userSpaceOnUse" x1="732.65" y1="-235.45" x2="760.23" y2="-219.54" >
+<linearGradient id="l_1" gradientUnits="userSpaceOnUse" x1="575.1" y1="-235.45" x2="602.67" y2="-219.54" >
<stop offset="0" style="stop-color:lightblue;stop-opacity:1.;"/>
<stop offset="1" style="stop-color:green;stop-opacity:1.;"/>
</linearGradient>
</defs>
-<polygon fill="url(#l_1)" stroke="none" points="726.94,-216.25 726.94,-238.75 765.94,-238.75 765.94,-216.25 726.94,-216.25"/>
-<polygon fill="none" stroke="black" points="726.94,-216.25 726.94,-238.75 765.94,-238.75 765.94,-216.25 726.94,-216.25"/>
-<text text-anchor="start" x="729.94" y="-222.45" font-family="Times New Roman,serif" font-size="14.00">int:ptr</text>
-<polygon fill="lightgreen" stroke="none" points="696.19,-193.75 696.19,-216.25 726.94,-216.25 726.94,-193.75 696.19,-193.75"/>
-<polygon fill="none" stroke="black" points="696.19,-193.75 696.19,-216.25 726.94,-216.25 726.94,-193.75 696.19,-193.75"/>
-<text text-anchor="start" x="699.19" y="-199.95" font-family="Times New Roman,serif" font-size="14.00">field</text>
+<polygon fill="url(#l_1)" stroke="none" points="569.38,-216.25 569.38,-238.75 608.38,-238.75 608.38,-216.25 569.38,-216.25"/>
+<polygon fill="none" stroke="black" points="569.38,-216.25 569.38,-238.75 608.38,-238.75 608.38,-216.25 569.38,-216.25"/>
+<text text-anchor="start" x="572.38" y="-222.45" font-family="Times New Roman,serif" font-size="14.00">int/ptr</text>
+<polygon fill="lightgreen" stroke="none" points="538.63,-193.75 538.63,-216.25 569.38,-216.25 569.38,-193.75 538.63,-193.75"/>
+<polygon fill="none" stroke="black" points="538.63,-193.75 538.63,-216.25 569.38,-216.25 569.38,-193.75 538.63,-193.75"/>
+<text text-anchor="start" x="541.63" y="-199.95" font-family="Times New Roman,serif" font-size="14.00">field</text>
<defs>
-<linearGradient id="l_2" gradientUnits="userSpaceOnUse" x1="732.65" y1="-212.95" x2="760.23" y2="-197.04" >
+<linearGradient id="l_2" gradientUnits="userSpaceOnUse" x1="575.1" y1="-212.95" x2="602.67" y2="-197.04" >
<stop offset="0" style="stop-color:lightblue;stop-opacity:1.;"/>
<stop offset="1" style="stop-color:green;stop-opacity:1.;"/>
</linearGradient>
</defs>
-<polygon fill="url(#l_2)" stroke="none" points="726.94,-193.75 726.94,-216.25 765.94,-216.25 765.94,-193.75 726.94,-193.75"/>
-<polygon fill="none" stroke="black" points="726.94,-193.75 726.94,-216.25 765.94,-216.25 765.94,-193.75 726.94,-193.75"/>
-<text text-anchor="start" x="729.94" y="-199.95" font-family="Times New Roman,serif" font-size="14.00">int:ptr</text>
+<polygon fill="url(#l_2)" stroke="none" points="569.38,-193.75 569.38,-216.25 608.38,-216.25 608.38,-193.75 569.38,-193.75"/>
+<polygon fill="none" stroke="black" points="569.38,-193.75 569.38,-216.25 608.38,-216.25 608.38,-193.75 569.38,-193.75"/>
+<text text-anchor="start" x="572.38" y="-199.95" font-family="Times New Roman,serif" font-size="14.00">int/ptr</text>
</g>
<!-- STRUCT_TOP&#45;&gt;STRUCT_S2 -->
-<g id="edge25" class="edge">
+<g id="edge19" class="edge">
<title>STRUCT_TOP&#45;&gt;STRUCT_S2</title>
-<path fill="none" stroke="black" d="M704.91,-309.64C709.16,-294.62 715.49,-272.29 720.85,-253.34"/>
-<polygon fill="black" stroke="black" points="724.19,-254.4 723.54,-243.83 717.45,-252.49 724.19,-254.4"/>
+<path fill="none" stroke="black" d="M523.73,-309.64C531.97,-294.34 544.3,-271.45 554.63,-252.28"/>
+<polygon fill="black" stroke="black" points="557.59,-254.17 559.26,-243.7 551.43,-250.85 557.59,-254.17"/>
</g>
<!-- STRUCT_SN -->
-<g id="node17" class="node">
+<g id="node16" class="node">
<title>STRUCT_SN</title>
-<polygon fill="none" stroke="none" points="902.94,-254 817.19,-254 817.19,-178.5 902.94,-178.5 902.94,-254"/>
-<polygon fill="lightgreen" stroke="none" points="825.19,-227.5 825.19,-250 855.94,-250 855.94,-227.5 825.19,-227.5"/>
-<polygon fill="none" stroke="black" points="825.19,-227.5 825.19,-250 855.94,-250 855.94,-227.5 825.19,-227.5"/>
-<text text-anchor="start" x="828.19" y="-233.7" font-family="Times New Roman,serif" font-size="14.00">field</text>
+<polygon fill="none" stroke="none" points="745.38,-254 659.63,-254 659.63,-178.5 745.38,-178.5 745.38,-254"/>
+<polygon fill="lightgreen" stroke="none" points="667.63,-227.5 667.63,-250 698.38,-250 698.38,-227.5 667.63,-227.5"/>
+<polygon fill="none" stroke="black" points="667.63,-227.5 667.63,-250 698.38,-250 698.38,-227.5 667.63,-227.5"/>
+<text text-anchor="start" x="670.63" y="-233.7" font-family="Times New Roman,serif" font-size="14.00">field</text>
<defs>
-<linearGradient id="l_3" gradientUnits="userSpaceOnUse" x1="861.65" y1="-246.7" x2="889.23" y2="-230.79" >
+<linearGradient id="l_3" gradientUnits="userSpaceOnUse" x1="704.1" y1="-246.7" x2="731.67" y2="-230.79" >
<stop offset="0" style="stop-color:lightblue;stop-opacity:1.;"/>
<stop offset="1" style="stop-color:green;stop-opacity:1.;"/>
</linearGradient>
</defs>
-<polygon fill="url(#l_3)" stroke="none" points="855.94,-227.5 855.94,-250 894.94,-250 894.94,-227.5 855.94,-227.5"/>
-<polygon fill="none" stroke="black" points="855.94,-227.5 855.94,-250 894.94,-250 894.94,-227.5 855.94,-227.5"/>
-<text text-anchor="start" x="858.94" y="-233.7" font-family="Times New Roman,serif" font-size="14.00">int:ptr</text>
-<polygon fill="lightgreen" stroke="none" points="825.19,-205 825.19,-227.5 855.94,-227.5 855.94,-205 825.19,-205"/>
-<polygon fill="none" stroke="black" points="825.19,-205 825.19,-227.5 855.94,-227.5 855.94,-205 825.19,-205"/>
-<text text-anchor="start" x="831.19" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">... &#160;</text>
+<polygon fill="url(#l_3)" stroke="none" points="698.38,-227.5 698.38,-250 737.38,-250 737.38,-227.5 698.38,-227.5"/>
+<polygon fill="none" stroke="black" points="698.38,-227.5 698.38,-250 737.38,-250 737.38,-227.5 698.38,-227.5"/>
+<text text-anchor="start" x="701.38" y="-233.7" font-family="Times New Roman,serif" font-size="14.00">int/ptr</text>
+<polygon fill="lightgreen" stroke="none" points="667.63,-205 667.63,-227.5 698.38,-227.5 698.38,-205 667.63,-205"/>
+<polygon fill="none" stroke="black" points="667.63,-205 667.63,-227.5 698.38,-227.5 698.38,-205 667.63,-205"/>
+<text text-anchor="start" x="673.63" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">... &#160;</text>
<defs>
-<linearGradient id="l_4" gradientUnits="userSpaceOnUse" x1="861.65" y1="-224.2" x2="889.23" y2="-208.29" >
+<linearGradient id="l_4" gradientUnits="userSpaceOnUse" x1="704.1" y1="-224.2" x2="731.67" y2="-208.29" >
<stop offset="0" style="stop-color:lightblue;stop-opacity:1.;"/>
<stop offset="1" style="stop-color:green;stop-opacity:1.;"/>
</linearGradient>
</defs>
-<polygon fill="url(#l_4)" stroke="none" points="855.94,-205 855.94,-227.5 894.94,-227.5 894.94,-205 855.94,-205"/>
-<polygon fill="none" stroke="black" points="855.94,-205 855.94,-227.5 894.94,-227.5 894.94,-205 855.94,-205"/>
-<text text-anchor="start" x="858.94" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">int:ptr</text>
-<polygon fill="lightgreen" stroke="none" points="825.19,-182.5 825.19,-205 855.94,-205 855.94,-182.5 825.19,-182.5"/>
-<polygon fill="none" stroke="black" points="825.19,-182.5 825.19,-205 855.94,-205 855.94,-182.5 825.19,-182.5"/>
-<text text-anchor="start" x="828.19" y="-188.7" font-family="Times New Roman,serif" font-size="14.00">field</text>
+<polygon fill="url(#l_4)" stroke="none" points="698.38,-205 698.38,-227.5 737.38,-227.5 737.38,-205 698.38,-205"/>
+<polygon fill="none" stroke="black" points="698.38,-205 698.38,-227.5 737.38,-227.5 737.38,-205 698.38,-205"/>
+<text text-anchor="start" x="701.38" y="-211.2" font-family="Times New Roman,serif" font-size="14.00">int/ptr</text>
+<polygon fill="lightgreen" stroke="none" points="667.63,-182.5 667.63,-205 698.38,-205 698.38,-182.5 667.63,-182.5"/>
+<polygon fill="none" stroke="black" points="667.63,-182.5 667.63,-205 698.38,-205 698.38,-182.5 667.63,-182.5"/>
+<text text-anchor="start" x="670.63" y="-188.7" font-family="Times New Roman,serif" font-size="14.00">field</text>
<defs>
-<linearGradient id="l_5" gradientUnits="userSpaceOnUse" x1="861.65" y1="-201.7" x2="889.23" y2="-185.79" >
+<linearGradient id="l_5" gradientUnits="userSpaceOnUse" x1="704.1" y1="-201.7" x2="731.67" y2="-185.79" >
<stop offset="0" style="stop-color:lightblue;stop-opacity:1.;"/>
<stop offset="1" style="stop-color:green;stop-opacity:1.;"/>
</linearGradient>
</defs>
-<polygon fill="url(#l_5)" stroke="none" points="855.94,-182.5 855.94,-205 894.94,-205 894.94,-182.5 855.94,-182.5"/>
-<polygon fill="none" stroke="black" points="855.94,-182.5 855.94,-205 894.94,-205 894.94,-182.5 855.94,-182.5"/>
-<text text-anchor="start" x="858.94" y="-188.7" font-family="Times New Roman,serif" font-size="14.00">int:ptr</text>
+<polygon fill="url(#l_5)" stroke="none" points="698.38,-182.5 698.38,-205 737.38,-205 737.38,-182.5 698.38,-182.5"/>
+<polygon fill="none" stroke="black" points="698.38,-182.5 698.38,-205 737.38,-205 737.38,-182.5 698.38,-182.5"/>
+<text text-anchor="start" x="701.38" y="-188.7" font-family="Times New Roman,serif" font-size="14.00">int/ptr</text>
</g>
<!-- STRUCT_TOP&#45;&gt;STRUCT_SN -->
-<g id="edge26" class="edge">
+<g id="edge20" class="edge">
<title>STRUCT_TOP&#45;&gt;STRUCT_SN</title>
-<path fill="none" stroke="black" d="M721.98,-311.75C744.07,-296.64 778.97,-272.75 808.16,-252.77"/>
-<polygon fill="black" stroke="black" points="809.89,-255.83 816.16,-247.3 805.93,-250.05 809.89,-255.83"/>
+<path fill="none" stroke="black" d="M539.09,-312.43C567.11,-296.11 613.72,-268.96 650.01,-247.82"/>
+<polygon fill="black" stroke="black" points="651.76,-250.85 658.64,-242.8 648.24,-244.81 651.76,-250.85"/>
</g>
-<!-- STRUCT_S1&#45;&gt;STRUCT_S2 -->
<!-- STRUCT_BOT -->
-<g id="node18" class="node">
+<g id="node13" class="node">
<title>STRUCT_BOT</title>
-<ellipse fill="lightgreen" stroke="black" cx="700.07" cy="-104.75" rx="44.7" ry="18"/>
-<text text-anchor="start" x="675.32" y="-100.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊥</text>
-<text text-anchor="start" x="691.07" y="-100.7" font-family="Times New Roman,serif" font-size="14.00">:struct</text>
+<ellipse fill="lightgreen" stroke="black" cx="512.51" cy="-104.75" rx="44.7" ry="18"/>
+<text text-anchor="start" x="487.76" y="-100.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊥</text>
+<text text-anchor="start" x="503.51" y="-100.7" font-family="Times New Roman,serif" font-size="14.00">:struct</text>
+</g>
+<!-- STRUCT_BOT&#45;&gt;BOT -->
+<g id="edge24" class="edge">
+<title>STRUCT_BOT&#45;&gt;BOT</title>
+<path fill="none" stroke="black" d="M499.56,-87.23C490.56,-75.76 478.41,-60.26 468.22,-47.27"/>
+<polygon fill="black" stroke="black" points="471.08,-45.24 462.16,-39.53 465.57,-49.56 471.08,-45.24"/>
</g>
<!-- STRUCT_S1&#45;&gt;STRUCT_BOT -->
-<g id="edge27" class="edge">
+<g id="edge21" class="edge">
<title>STRUCT_S1&#45;&gt;STRUCT_BOT</title>
-<path fill="none" stroke="black" d="M616.95,-198.62C633.16,-180.5 659.26,-151.34 677.89,-130.53"/>
-<polygon fill="black" stroke="black" points="680.29,-133.09 684.36,-123.3 675.08,-128.42 680.29,-133.09"/>
+<path fill="none" stroke="black" d="M454.84,-198.62C465.77,-181.01 483.19,-152.96 496.02,-132.29"/>
+<polygon fill="black" stroke="black" points="498.98,-134.16 501.29,-123.82 493.04,-130.47 498.98,-134.16"/>
</g>
-<!-- STRUCT_S2&#45;&gt;STRUCT_SN -->
+<!-- STRUCT_S1&#45;&gt;STRUCT_S2 -->
<!-- STRUCT_S2&#45;&gt;STRUCT_BOT -->
-<g id="edge28" class="edge">
+<g id="edge22" class="edge">
<title>STRUCT_S2&#45;&gt;STRUCT_BOT</title>
-<path fill="none" stroke="black" d="M723.88,-189.85C719.09,-172.96 712.81,-150.77 707.9,-133.42"/>
-<polygon fill="black" stroke="black" points="711.41,-132.95 705.32,-124.28 704.67,-134.86 711.41,-132.95"/>
+<path fill="none" stroke="black" d="M559.36,-189.85C549.77,-172.63 537.12,-149.92 527.38,-132.44"/>
+<polygon fill="black" stroke="black" points="530.68,-131.18 522.76,-124.15 524.57,-134.59 530.68,-131.18"/>
</g>
+<!-- STRUCT_S2&#45;&gt;STRUCT_SN -->
<!-- STRUCT_SN&#45;&gt;STRUCT_BOT -->
-<g id="edge29" class="edge">
+<g id="edge23" class="edge">
<title>STRUCT_SN&#45;&gt;STRUCT_BOT</title>
-<path fill="none" stroke="black" d="M817.61,-186.19C790.48,-167.62 755.89,-143.95 731.27,-127.11"/>
-<polygon fill="black" stroke="black" points="733.52,-124.4 723.29,-121.64 729.56,-130.18 733.52,-124.4"/>
-</g>
-<!-- STRUCT_BOT&#45;&gt;BOT -->
-<g id="edge30" class="edge">
-<title>STRUCT_BOT&#45;&gt;BOT</title>
-<path fill="none" stroke="black" d="M683.1,-88.01C669.57,-75.46 650.48,-57.75 635.5,-43.85"/>
-<polygon fill="black" stroke="black" points="638.04,-41.44 628.33,-37.21 633.28,-46.57 638.04,-41.44"/>
+<path fill="none" stroke="black" d="M659.87,-190.67C625.81,-171.04 578.69,-143.89 546.98,-125.62"/>
+<polygon fill="black" stroke="black" points="548.99,-122.73 538.58,-120.77 545.49,-128.8 548.99,-122.73"/>
</g>
<!-- MEM_ALIAS1 -->
-<g id="node20" class="node">
+<g id="node19" class="node">
<title>MEM_ALIAS1</title>
-<ellipse fill="blue" stroke="black" cx="966.07" cy="-216.25" rx="20.13" ry="20.13"/>
-<text text-anchor="middle" x="966.07" y="-211.2" font-family="Times New Roman,serif" font-size="14.00" fill="white">#1</text>
+<ellipse fill="blue" stroke="black" cx="808.51" cy="-216.25" rx="20.13" ry="20.13"/>
+<text text-anchor="middle" x="808.51" y="-211.2" font-family="Times New Roman,serif" font-size="14.00" fill="white">#1</text>
</g>
<!-- MEM_TOP&#45;&gt;MEM_ALIAS1 -->
-<g id="edge34" class="edge">
+<g id="edge28" class="edge">
<title>MEM_TOP&#45;&gt;MEM_ALIAS1</title>
-<path fill="none" stroke="black" d="M1004.04,-309.64C997.03,-292.59 986.14,-266.09 977.82,-245.84"/>
-<polygon fill="black" stroke="black" points="981.11,-244.65 974.07,-236.73 974.64,-247.31 981.11,-244.65"/>
+<path fill="none" stroke="black" d="M846.48,-309.64C839.47,-292.59 828.58,-266.09 820.26,-245.84"/>
+<polygon fill="black" stroke="black" points="823.55,-244.65 816.52,-236.73 817.08,-247.31 823.55,-244.65"/>
</g>
<!-- MEM_ALIASDOTS -->
-<g id="node21" class="node">
+<g id="node20" class="node">
<title>MEM_ALIASDOTS</title>
-<ellipse fill="blue" stroke="black" cx="1056.07" cy="-216.25" rx="27" ry="18"/>
-<text text-anchor="middle" x="1056.07" y="-211.2" font-family="Times New Roman,serif" font-size="14.00" fill="white">...</text>
+<ellipse fill="blue" stroke="black" cx="898.51" cy="-216.25" rx="27" ry="18"/>
+<text text-anchor="middle" x="898.51" y="-211.2" font-family="Times New Roman,serif" font-size="14.00" fill="white">...</text>
</g>
<!-- MEM_TOP&#45;&gt;MEM_ALIASDOTS -->
-<g id="edge35" class="edge">
+<g id="edge29" class="edge">
<title>MEM_TOP&#45;&gt;MEM_ALIASDOTS</title>
-<path fill="none" stroke="black" d="M1018.1,-309.64C1025.27,-292.18 1036.52,-264.82 1044.91,-244.4"/>
-<polygon fill="black" stroke="black" points="1048.09,-245.86 1048.66,-235.28 1041.62,-243.2 1048.09,-245.86"/>
+<path fill="none" stroke="black" d="M860.54,-309.64C867.71,-292.18 878.96,-264.82 887.35,-244.4"/>
+<polygon fill="black" stroke="black" points="890.54,-245.86 891.1,-235.28 884.06,-243.2 890.54,-245.86"/>
</g>
<!-- MEM_ALIASN -->
-<g id="node22" class="node">
+<g id="node21" class="node">
<title>MEM_ALIASN</title>
-<ellipse fill="blue" stroke="black" cx="1146.07" cy="-216.25" rx="20.13" ry="20.13"/>
-<text text-anchor="middle" x="1146.07" y="-211.2" font-family="Times New Roman,serif" font-size="14.00" fill="white">#n</text>
+<ellipse fill="blue" stroke="black" cx="988.51" cy="-216.25" rx="20.13" ry="20.13"/>
+<text text-anchor="middle" x="988.51" y="-211.2" font-family="Times New Roman,serif" font-size="14.00" fill="white">#n</text>
</g>
<!-- MEM_TOP&#45;&gt;MEM_ALIASN -->
-<g id="edge36" class="edge">
+<g id="edge30" class="edge">
<title>MEM_TOP&#45;&gt;MEM_ALIASN</title>
-<path fill="none" stroke="black" d="M1030.12,-311.29C1054.2,-291.76 1095.67,-258.13 1121.94,-236.82"/>
-<polygon fill="black" stroke="black" points="1124.13,-239.55 1129.69,-230.53 1119.72,-234.11 1124.13,-239.55"/>
+<path fill="none" stroke="black" d="M872.56,-311.29C896.65,-291.76 938.11,-258.13 964.38,-236.82"/>
+<polygon fill="black" stroke="black" points="966.57,-239.55 972.13,-230.53 962.16,-234.11 966.57,-239.55"/>
</g>
-<!-- MEM_ALIAS1&#45;&gt;MEM_ALIASDOTS -->
<!-- MEM_BOT -->
-<g id="node23" class="node">
+<g id="node18" class="node">
<title>MEM_BOT</title>
-<ellipse fill="blue" stroke="black" cx="1011.07" cy="-104.75" rx="43.67" ry="18"/>
-<text text-anchor="start" x="987.07" y="-100.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00" fill="white">⊥</text>
-<text text-anchor="start" x="1002.82" y="-100.7" font-family="Times New Roman,serif" font-size="14.00" fill="white">:mem</text>
+<ellipse fill="blue" stroke="black" cx="853.51" cy="-104.75" rx="43.67" ry="18"/>
+<text text-anchor="start" x="829.51" y="-100.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00" fill="white">⊥</text>
+<text text-anchor="start" x="845.26" y="-100.7" font-family="Times New Roman,serif" font-size="14.00" fill="white">:mem</text>
+</g>
+<!-- MEM_BOT&#45;&gt;BOT -->
+<g id="edge34" class="edge">
+<title>MEM_BOT&#45;&gt;BOT</title>
+<path fill="none" stroke="black" d="M815.04,-96C735.55,-79.97 554.45,-43.48 480.68,-28.61"/>
+<polygon fill="black" stroke="black" points="481.37,-25.18 470.88,-26.63 479.99,-32.04 481.37,-25.18"/>
</g>
<!-- MEM_ALIAS1&#45;&gt;MEM_BOT -->
-<g id="edge37" class="edge">
+<g id="edge31" class="edge">
<title>MEM_ALIAS1&#45;&gt;MEM_BOT</title>
-<path fill="none" stroke="black" d="M973.5,-197.17C980.63,-179.82 991.49,-153.39 999.7,-133.4"/>
-<polygon fill="black" stroke="black" points="1002.93,-134.75 1003.5,-124.17 996.46,-132.09 1002.93,-134.75"/>
+<path fill="none" stroke="black" d="M815.94,-197.17C823.07,-179.82 833.93,-153.39 842.15,-133.4"/>
+<polygon fill="black" stroke="black" points="845.37,-134.75 845.94,-124.17 838.9,-132.09 845.37,-134.75"/>
</g>
-<!-- MEM_ALIASDOTS&#45;&gt;MEM_ALIASN -->
+<!-- MEM_ALIAS1&#45;&gt;MEM_ALIASDOTS -->
<!-- MEM_ALIASDOTS&#45;&gt;MEM_BOT -->
-<g id="edge38" class="edge">
+<g id="edge32" class="edge">
<title>MEM_ALIASDOTS&#45;&gt;MEM_BOT</title>
-<path fill="none" stroke="black" d="M1049.23,-198.62C1042.14,-181.35 1030.92,-154.05 1022.48,-133.51"/>
-<polygon fill="black" stroke="black" points="1025.73,-132.22 1018.69,-124.3 1019.25,-134.88 1025.73,-132.22"/>
+<path fill="none" stroke="black" d="M891.67,-198.62C884.58,-181.35 873.36,-154.05 864.92,-133.51"/>
+<polygon fill="black" stroke="black" points="868.17,-132.22 861.13,-124.3 861.7,-134.88 868.17,-132.22"/>
</g>
+<!-- MEM_ALIASDOTS&#45;&gt;MEM_ALIASN -->
<!-- MEM_ALIASN&#45;&gt;MEM_BOT -->
-<g id="edge39" class="edge">
+<g id="edge33" class="edge">
<title>MEM_ALIASN&#45;&gt;MEM_BOT</title>
-<path fill="none" stroke="black" d="M1130.58,-202.69C1108.31,-184.62 1066.85,-151 1039.11,-128.49"/>
-<polygon fill="black" stroke="black" points="1041.42,-125.86 1031.45,-122.28 1037.01,-131.3 1041.42,-125.86"/>
-</g>
-<!-- MEM_BOT&#45;&gt;BOT -->
-<g id="edge40" class="edge">
-<title>MEM_BOT&#45;&gt;BOT</title>
-<path fill="none" stroke="black" d="M972.45,-95.85C893.9,-79.78 716.82,-43.55 644.13,-28.68"/>
-<polygon fill="black" stroke="black" points="644.98,-25.28 634.48,-26.71 643.58,-32.14 644.98,-25.28"/>
+<path fill="none" stroke="black" d="M973.02,-202.69C950.75,-184.62 909.29,-151 881.55,-128.49"/>
+<polygon fill="black" stroke="black" points="883.86,-125.86 873.89,-122.28 879.45,-131.3 883.86,-125.86"/>
</g>
<!-- TUPLE1 -->
-<g id="node25" class="node">
+<g id="node24" class="node">
<title>TUPLE1</title>
-<polygon fill="none" stroke="none" points="1263.07,-242.75 1209.07,-242.75 1209.07,-189.75 1263.07,-189.75 1263.07,-242.75"/>
-<polygon fill="pink" stroke="none" points="1217.32,-216.25 1217.32,-238.75 1254.82,-238.75 1254.82,-216.25 1217.32,-216.25"/>
-<polygon fill="none" stroke="black" points="1217.32,-216.25 1217.32,-238.75 1254.82,-238.75 1254.82,-216.25 1217.32,-216.25"/>
-<text text-anchor="start" x="1220.32" y="-222.45" font-family="Times New Roman,serif" font-size="14.00">Tuple</text>
-<polygon fill="black" stroke="none" points="1217.32,-193.75 1217.32,-216.25 1254.82,-216.25 1254.82,-193.75 1217.32,-193.75"/>
-<polygon fill="none" stroke="black" points="1217.32,-193.75 1217.32,-216.25 1254.82,-216.25 1254.82,-193.75 1217.32,-193.75"/>
-<text text-anchor="start" x="1224.44" y="-199.95" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
+<polygon fill="none" stroke="none" points="1105.51,-242.75 1051.51,-242.75 1051.51,-189.75 1105.51,-189.75 1105.51,-242.75"/>
+<polygon fill="pink" stroke="none" points="1059.76,-216.25 1059.76,-238.75 1097.26,-238.75 1097.26,-216.25 1059.76,-216.25"/>
+<polygon fill="none" stroke="black" points="1059.76,-216.25 1059.76,-238.75 1097.26,-238.75 1097.26,-216.25 1059.76,-216.25"/>
+<text text-anchor="start" x="1062.76" y="-222.45" font-family="Times New Roman,serif" font-size="14.00">Tuple</text>
+<polygon fill="black" stroke="none" points="1059.76,-193.75 1059.76,-216.25 1097.26,-216.25 1097.26,-193.75 1059.76,-193.75"/>
+<polygon fill="none" stroke="black" points="1059.76,-193.75 1059.76,-216.25 1097.26,-216.25 1097.26,-193.75 1059.76,-193.75"/>
+<text text-anchor="start" x="1066.88" y="-199.95" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
</g>
<!-- TUPLE_TOP&#45;&gt;TUPLE1 -->
-<g id="edge44" class="edge">
+<g id="edge38" class="edge">
<title>TUPLE_TOP&#45;&gt;TUPLE1</title>
-<path fill="none" stroke="black" d="M1276.57,-309.64C1269.92,-294.48 1260.01,-271.87 1251.66,-252.81"/>
-<polygon fill="black" stroke="black" points="1254.91,-251.51 1247.69,-243.76 1248.5,-254.32 1254.91,-251.51"/>
+<path fill="none" stroke="black" d="M1119.01,-309.64C1112.37,-294.48 1102.45,-271.87 1094.1,-252.81"/>
+<polygon fill="black" stroke="black" points="1097.35,-251.51 1090.13,-243.76 1090.94,-254.32 1097.35,-251.51"/>
</g>
<!-- TUPLE2 -->
-<g id="node26" class="node">
+<g id="node25" class="node">
<title>TUPLE2</title>
-<polygon fill="none" stroke="none" points="1360.07,-254 1306.07,-254 1306.07,-178.5 1360.07,-178.5 1360.07,-254"/>
-<polygon fill="pink" stroke="none" points="1314.32,-227.5 1314.32,-250 1351.82,-250 1351.82,-227.5 1314.32,-227.5"/>
-<polygon fill="none" stroke="black" points="1314.32,-227.5 1314.32,-250 1351.82,-250 1351.82,-227.5 1314.32,-227.5"/>
-<text text-anchor="start" x="1317.32" y="-233.7" font-family="Times New Roman,serif" font-size="14.00">Tuple</text>
-<polygon fill="black" stroke="none" points="1314.32,-205 1314.32,-227.5 1351.82,-227.5 1351.82,-205 1314.32,-205"/>
-<polygon fill="none" stroke="black" points="1314.32,-205 1314.32,-227.5 1351.82,-227.5 1351.82,-205 1314.32,-205"/>
-<text text-anchor="start" x="1321.44" y="-211.2" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
-<polygon fill="black" stroke="none" points="1314.32,-182.5 1314.32,-205 1351.82,-205 1351.82,-182.5 1314.32,-182.5"/>
-<polygon fill="none" stroke="black" points="1314.32,-182.5 1314.32,-205 1351.82,-205 1351.82,-182.5 1314.32,-182.5"/>
-<text text-anchor="start" x="1321.44" y="-188.7" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
+<polygon fill="none" stroke="none" points="1202.51,-254 1148.51,-254 1148.51,-178.5 1202.51,-178.5 1202.51,-254"/>
+<polygon fill="pink" stroke="none" points="1156.76,-227.5 1156.76,-250 1194.26,-250 1194.26,-227.5 1156.76,-227.5"/>
+<polygon fill="none" stroke="black" points="1156.76,-227.5 1156.76,-250 1194.26,-250 1194.26,-227.5 1156.76,-227.5"/>
+<text text-anchor="start" x="1159.76" y="-233.7" font-family="Times New Roman,serif" font-size="14.00">Tuple</text>
+<polygon fill="black" stroke="none" points="1156.76,-205 1156.76,-227.5 1194.26,-227.5 1194.26,-205 1156.76,-205"/>
+<polygon fill="none" stroke="black" points="1156.76,-205 1156.76,-227.5 1194.26,-227.5 1194.26,-205 1156.76,-205"/>
+<text text-anchor="start" x="1163.88" y="-211.2" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
+<polygon fill="black" stroke="none" points="1156.76,-182.5 1156.76,-205 1194.26,-205 1194.26,-182.5 1156.76,-182.5"/>
+<polygon fill="none" stroke="black" points="1156.76,-182.5 1156.76,-205 1194.26,-205 1194.26,-182.5 1156.76,-182.5"/>
+<text text-anchor="start" x="1163.88" y="-188.7" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
</g>
<!-- TUPLE_TOP&#45;&gt;TUPLE2 -->
-<g id="edge45" class="edge">
+<g id="edge39" class="edge">
<title>TUPLE_TOP&#45;&gt;TUPLE2</title>
-<path fill="none" stroke="black" d="M1291.72,-309.64C1297.2,-297.4 1304.85,-280.3 1312.09,-264.14"/>
-<polygon fill="black" stroke="black" points="1315.24,-265.65 1316.13,-255.09 1308.85,-262.79 1315.24,-265.65"/>
+<path fill="none" stroke="black" d="M1134.17,-309.64C1139.64,-297.4 1147.29,-280.3 1154.53,-264.14"/>
+<polygon fill="black" stroke="black" points="1157.68,-265.65 1158.57,-255.09 1151.3,-262.79 1157.68,-265.65"/>
</g>
<!-- TUPLEN -->
-<g id="node27" class="node">
+<g id="node26" class="node">
<title>TUPLEN</title>
-<polygon fill="none" stroke="none" points="1457.07,-265.25 1403.07,-265.25 1403.07,-167.25 1457.07,-167.25 1457.07,-265.25"/>
-<polygon fill="pink" stroke="none" points="1411.32,-238.75 1411.32,-261.25 1448.82,-261.25 1448.82,-238.75 1411.32,-238.75"/>
-<polygon fill="none" stroke="black" points="1411.32,-238.75 1411.32,-261.25 1448.82,-261.25 1448.82,-238.75 1411.32,-238.75"/>
-<text text-anchor="start" x="1414.32" y="-244.95" font-family="Times New Roman,serif" font-size="14.00">Tuple</text>
-<polygon fill="black" stroke="none" points="1411.32,-216.25 1411.32,-238.75 1448.82,-238.75 1448.82,-216.25 1411.32,-216.25"/>
-<polygon fill="none" stroke="black" points="1411.32,-216.25 1411.32,-238.75 1448.82,-238.75 1448.82,-216.25 1411.32,-216.25"/>
-<text text-anchor="start" x="1418.44" y="-222.45" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
-<polygon fill="black" stroke="none" points="1411.32,-193.75 1411.32,-216.25 1448.82,-216.25 1448.82,-193.75 1411.32,-193.75"/>
-<polygon fill="none" stroke="black" points="1411.32,-193.75 1411.32,-216.25 1448.82,-216.25 1448.82,-193.75 1411.32,-193.75"/>
-<text text-anchor="start" x="1424.44" y="-199.95" font-family="Times New Roman,serif" font-size="14.00" fill="white">...</text>
-<polygon fill="black" stroke="none" points="1411.32,-171.25 1411.32,-193.75 1448.82,-193.75 1448.82,-171.25 1411.32,-171.25"/>
-<polygon fill="none" stroke="black" points="1411.32,-171.25 1411.32,-193.75 1448.82,-193.75 1448.82,-171.25 1411.32,-171.25"/>
-<text text-anchor="start" x="1418.44" y="-177.45" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
+<polygon fill="none" stroke="none" points="1299.51,-265.25 1245.51,-265.25 1245.51,-167.25 1299.51,-167.25 1299.51,-265.25"/>
+<polygon fill="pink" stroke="none" points="1253.76,-238.75 1253.76,-261.25 1291.26,-261.25 1291.26,-238.75 1253.76,-238.75"/>
+<polygon fill="none" stroke="black" points="1253.76,-238.75 1253.76,-261.25 1291.26,-261.25 1291.26,-238.75 1253.76,-238.75"/>
+<text text-anchor="start" x="1256.76" y="-244.95" font-family="Times New Roman,serif" font-size="14.00">Tuple</text>
+<polygon fill="black" stroke="none" points="1253.76,-216.25 1253.76,-238.75 1291.26,-238.75 1291.26,-216.25 1253.76,-216.25"/>
+<polygon fill="none" stroke="black" points="1253.76,-216.25 1253.76,-238.75 1291.26,-238.75 1291.26,-216.25 1253.76,-216.25"/>
+<text text-anchor="start" x="1260.88" y="-222.45" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
+<polygon fill="black" stroke="none" points="1253.76,-193.75 1253.76,-216.25 1291.26,-216.25 1291.26,-193.75 1253.76,-193.75"/>
+<polygon fill="none" stroke="black" points="1253.76,-193.75 1253.76,-216.25 1291.26,-216.25 1291.26,-193.75 1253.76,-193.75"/>
+<text text-anchor="start" x="1266.88" y="-199.95" font-family="Times New Roman,serif" font-size="14.00" fill="white">...</text>
+<polygon fill="black" stroke="none" points="1253.76,-171.25 1253.76,-193.75 1291.26,-193.75 1291.26,-171.25 1253.76,-171.25"/>
+<polygon fill="none" stroke="black" points="1253.76,-171.25 1253.76,-193.75 1291.26,-193.75 1291.26,-171.25 1253.76,-171.25"/>
+<text text-anchor="start" x="1260.88" y="-177.45" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
</g>
<!-- TUPLE_TOP&#45;&gt;TUPLEN -->
-<g id="edge46" class="edge">
+<g id="edge40" class="edge">
<title>TUPLE_TOP&#45;&gt;TUPLEN</title>
-<path fill="none" stroke="black" d="M1304.37,-311.52C1327.53,-294.15 1365.84,-265.42 1394.09,-244.23"/>
-<polygon fill="black" stroke="black" points="1396.14,-247.07 1402.04,-238.27 1391.94,-241.47 1396.14,-247.07"/>
+<path fill="none" stroke="black" d="M1146.81,-311.52C1169.97,-294.15 1208.28,-265.42 1236.53,-244.23"/>
+<polygon fill="black" stroke="black" points="1238.58,-247.07 1244.48,-238.27 1234.38,-241.47 1238.58,-247.07"/>
</g>
<!-- TUPLE_BOT -->
-<g id="node28" class="node">
+<g id="node23" class="node">
<title>TUPLE_BOT</title>
-<ellipse fill="pink" stroke="black" cx="1284.07" cy="-104.75" rx="42.65" ry="18"/>
-<text text-anchor="start" x="1260.82" y="-100.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊥</text>
-<text text-anchor="start" x="1276.57" y="-100.7" font-family="Times New Roman,serif" font-size="14.00">:tuple</text>
+<ellipse fill="pink" stroke="black" cx="1126.51" cy="-104.75" rx="42.65" ry="18"/>
+<text text-anchor="start" x="1103.26" y="-100.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊥</text>
+<text text-anchor="start" x="1119.01" y="-100.7" font-family="Times New Roman,serif" font-size="14.00">:tuple</text>
+</g>
+<!-- TUPLE_BOT&#45;&gt;BOT -->
+<g id="edge44" class="edge">
+<title>TUPLE_BOT&#45;&gt;BOT</title>
+<path fill="none" stroke="black" d="M1085.88,-98.86C962.25,-83.97 592.31,-39.44 480.72,-26"/>
+<polygon fill="black" stroke="black" points="481.43,-22.56 471.08,-24.84 480.59,-29.51 481.43,-22.56"/>
</g>
<!-- TUPLE1&#45;&gt;TUPLE_BOT -->
-<g id="edge47" class="edge">
+<g id="edge41" class="edge">
<title>TUPLE1&#45;&gt;TUPLE_BOT</title>
-<path fill="none" stroke="black" d="M1247.2,-189.85C1254.68,-172.8 1264.52,-150.34 1272.15,-132.93"/>
-<polygon fill="black" stroke="black" points="1275.16,-134.78 1275.97,-124.21 1268.75,-131.97 1275.16,-134.78"/>
+<path fill="none" stroke="black" d="M1089.64,-189.85C1097.12,-172.8 1106.96,-150.34 1114.59,-132.93"/>
+<polygon fill="black" stroke="black" points="1117.61,-134.78 1118.41,-124.21 1111.19,-131.97 1117.61,-134.78"/>
</g>
<!-- TUPLE2&#45;&gt;TUPLE_BOT -->
-<g id="edge48" class="edge">
+<g id="edge42" class="edge">
<title>TUPLE2&#45;&gt;TUPLE_BOT</title>
-<path fill="none" stroke="black" d="M1316.75,-178.79C1310.07,-163.86 1302.48,-146.89 1296.29,-133.07"/>
-<polygon fill="black" stroke="black" points="1299.57,-131.83 1292.3,-124.13 1293.19,-134.69 1299.57,-131.83"/>
+<path fill="none" stroke="black" d="M1159.19,-178.79C1152.51,-163.86 1144.92,-146.89 1138.73,-133.07"/>
+<polygon fill="black" stroke="black" points="1142.02,-131.83 1134.74,-124.13 1135.63,-134.69 1142.02,-131.83"/>
</g>
<!-- TUPLEN&#45;&gt;TUPLE_BOT -->
-<g id="edge49" class="edge">
+<g id="edge43" class="edge">
<title>TUPLEN&#45;&gt;TUPLE_BOT</title>
-<path fill="none" stroke="black" d="M1403.29,-195.16C1377.77,-176.03 1339.46,-147.29 1313.2,-127.59"/>
-<polygon fill="black" stroke="black" points="1315.42,-124.89 1305.32,-121.69 1311.22,-130.49 1315.42,-124.89"/>
-</g>
-<!-- TUPLE_BOT&#45;&gt;BOT -->
-<g id="edge50" class="edge">
-<title>TUPLE_BOT&#45;&gt;BOT</title>
-<path fill="none" stroke="black" d="M1243.29,-98.8C1120.5,-83.88 755.84,-39.59 644.63,-26.08"/>
-<polygon fill="black" stroke="black" points="645.07,-22.61 634.72,-24.88 644.23,-29.56 645.07,-22.61"/>
+<path fill="none" stroke="black" d="M1245.73,-195.16C1220.22,-176.03 1181.9,-147.29 1155.64,-127.59"/>
+<polygon fill="black" stroke="black" points="1157.86,-124.89 1147.76,-121.69 1153.66,-130.49 1157.86,-124.89"/>
</g>
</g>
</svg>