summaryrefslogtreecommitdiff
path: root/chapter14/docs
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-10-02 16:21:02 -0700
committerCliff Click <cliffc@acm.org>2026-10-02 16:21:02 -0700
commit41ae6269689e2b3cde9f7ac4227923d4085dceda (patch)
tree400bf2e5d6ae05564cb04aaea3104c031f321f9e /chapter14/docs
parentb33647231e20e2dc155beb2c8fe721f952d67a54 (diff)
downloadSimple-41ae6269689e2b3cde9f7ac4227923d4085dceda.tar.gz
Simple-41ae6269689e2b3cde9f7ac4227923d4085dceda.zip
More better layout ch10a,b,11
Diffstat (limited to 'chapter14/docs')
-rw-r--r--chapter14/docs/lattice.gv25
-rw-r--r--chapter14/docs/lattice.svg430
2 files changed, 249 insertions, 206 deletions
diff --git a/chapter14/docs/lattice.gv b/chapter14/docs/lattice.gv
index ac2f1f2e..5fd97a52 100644
--- a/chapter14/docs/lattice.gv
+++ b/chapter14/docs/lattice.gv
@@ -142,9 +142,28 @@ digraph Lattice {
node [fillcolor="#ffc0cb"];
TUPLE_TOP [label="⊤:tuple"];
TUPLE_BOT [label="⊥:tuple"];
- TUPLE1 [label="(type)", shape=box];
- TUPLE2 [label="(type, type)", shape=box];
- TUPLEN [label="(type, …)", shape=box];
+ // Each black element stands for a recursively nested type lattice.
+ TUPLE1 [shape=plain, label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="#ffc0cb">tuple</TD></TR>
+ <TR><TD BGCOLOR="black"><FONT COLOR="white">type</FONT></TD></TR>
+ </TABLE>
+ >];
+ TUPLE2 [shape=plain, label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="#ffc0cb">tuple</TD></TR>
+ <TR><TD BGCOLOR="black"><FONT COLOR="white">type</FONT></TD></TR>
+ <TR><TD BGCOLOR="black"><FONT COLOR="white">type</FONT></TD></TR>
+ </TABLE>
+ >];
+ TUPLEN [shape=plain, label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="#ffc0cb">tuple</TD></TR>
+ <TR><TD BGCOLOR="black"><FONT COLOR="white">type</FONT></TD></TR>
+ <TR><TD BGCOLOR="black"><FONT COLOR="white">…</FONT></TD></TR>
+ <TR><TD BGCOLOR="black"><FONT COLOR="white">type</FONT></TD></TR>
+ </TABLE>
+ >];
{rank=same; TUPLE1; TUPLE2; TUPLEN;}
TUPLE1 -> TUPLE2 -> TUPLEN [style=invis];
TUPLE_TOP -> {TUPLE1 TUPLE2 TUPLEN};
diff --git a/chapter14/docs/lattice.svg b/chapter14/docs/lattice.svg
index 131b5601..9db77f7a 100644
--- a/chapter14/docs/lattice.svg
+++ b/chapter14/docs/lattice.svg
@@ -4,142 +4,142 @@
<!-- Generated by graphviz version 12.2.0 (20241103.1931)
-->
<!-- Title: Lattice Pages: 1 -->
-<svg width="2287pt" height="811pt"
- viewBox="0.00 0.00 2287.00 810.78" 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 806.78)">
+<svg width="2191pt" height="881pt"
+ viewBox="0.00 0.00 2191.00 880.78" 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 876.78)">
<title>Lattice</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-806.78 2283,-806.78 2283,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-876.78 2187,-876.78 2187,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_control</title>
-<polygon fill="none" stroke="#cccccc" points="8,-85.99 8,-732.04 98,-732.04 98,-85.99 8,-85.99"/>
-<text text-anchor="middle" x="53" y="-714.74" font-family="Arial" font-size="14.00">Control</text>
+<polygon fill="none" stroke="#cccccc" points="8,-85.99 8,-802.04 98,-802.04 98,-85.99 8,-85.99"/>
+<text text-anchor="middle" x="53" y="-784.74" font-family="Arial" font-size="14.00">Control</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_integer</title>
-<polygon fill="none" stroke="#cccccc" points="106,-85.99 106,-732.04 372,-732.04 372,-85.99 106,-85.99"/>
-<text text-anchor="middle" x="239" y="-714.74" font-family="Arial" font-size="14.00">Integer ranges (schematic)</text>
+<polygon fill="none" stroke="#cccccc" points="106,-85.99 106,-802.04 372,-802.04 372,-85.99 106,-85.99"/>
+<text text-anchor="middle" x="239" y="-784.74" font-family="Arial" font-size="14.00">Integer ranges (schematic)</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_float</title>
-<polygon fill="none" stroke="#cccccc" points="380,-85.99 380,-732.04 864,-732.04 864,-85.99 380,-85.99"/>
-<text text-anchor="middle" x="622" y="-714.74" font-family="Arial" font-size="14.00">Float</text>
+<polygon fill="none" stroke="#cccccc" points="380,-85.99 380,-802.04 864,-802.04 864,-85.99 380,-85.99"/>
+<text text-anchor="middle" x="622" y="-784.74" font-family="Arial" font-size="14.00">Float</text>
</g>
<g id="clust6" class="cluster">
<title>cluster_pointer</title>
-<polygon fill="none" stroke="#cccccc" points="872,-75 872,-743.03 1353,-743.03 1353,-75 872,-75"/>
-<text text-anchor="middle" x="1112.5" y="-725.73" font-family="Arial" font-size="14.00">Pointer = nullability × struct type</text>
+<polygon fill="none" stroke="#cccccc" points="872,-75 872,-813.03 1353,-813.03 1353,-75 872,-75"/>
+<text text-anchor="middle" x="1112.5" y="-795.73" font-family="Arial" font-size="14.00">Pointer = nullability × struct type</text>
</g>
<g id="clust13" class="cluster">
<title>cluster_struct</title>
-<polygon fill="none" stroke="#cccccc" points="1361,-75 1361,-758.78 1697,-758.78 1697,-75 1361,-75"/>
-<text text-anchor="middle" x="1529" y="-741.48" font-family="Arial" font-size="14.00">Struct</text>
-<text text-anchor="middle" x="1529" y="-725.73" font-family="Arial" font-size="14.00">named collection of named scalar types</text>
+<polygon fill="none" stroke="#cccccc" points="1361,-75 1361,-828.78 1697,-828.78 1697,-75 1361,-75"/>
+<text text-anchor="middle" x="1529" y="-811.48" font-family="Arial" font-size="14.00">Struct</text>
+<text text-anchor="middle" x="1529" y="-795.73" font-family="Arial" font-size="14.00">named collection of named scalar types</text>
</g>
<g id="clust17" class="cluster">
<title>cluster_memory</title>
-<polygon fill="none" stroke="#cccccc" points="1705,-85.99 1705,-747.79 1987,-747.79 1987,-85.99 1705,-85.99"/>
-<text text-anchor="middle" x="1846" y="-730.49" font-family="Arial" font-size="14.00">Memory</text>
-<text text-anchor="middle" x="1846" y="-714.74" font-family="Arial" font-size="14.00">precise alias slices</text>
+<polygon fill="none" stroke="#cccccc" points="1705,-85.99 1705,-817.79 1987,-817.79 1987,-85.99 1705,-85.99"/>
+<text text-anchor="middle" x="1846" y="-800.49" font-family="Arial" font-size="14.00">Memory</text>
+<text text-anchor="middle" x="1846" y="-784.74" font-family="Arial" font-size="14.00">precise alias slices</text>
</g>
<g id="clust21" class="cluster">
<title>cluster_tuple</title>
-<polygon fill="none" stroke="#cccccc" points="1995,-85.99 1995,-747.79 2271,-747.79 2271,-85.99 1995,-85.99"/>
-<text text-anchor="middle" x="2133" y="-730.49" font-family="Arial" font-size="14.00">Tuple</text>
-<text text-anchor="middle" x="2133" y="-714.74" font-family="Arial" font-size="14.00">collection of types</text>
+<polygon fill="none" stroke="#cccccc" points="1995,-85.99 1995,-817.79 2175,-817.79 2175,-85.99 1995,-85.99"/>
+<text text-anchor="middle" x="2085" y="-800.49" font-family="Arial" font-size="14.00">Tuple</text>
+<text text-anchor="middle" x="2085" y="-784.74" font-family="Arial" font-size="14.00">collection of types</text>
</g>
<!-- TOP -->
<g id="node1" class="node">
<title>TOP</title>
-<ellipse fill="black" stroke="black" cx="1093" cy="-784.78" rx="27" ry="18"/>
-<text text-anchor="middle" x="1093" y="-780.68" font-family="DejaVu Sans" font-size="13.00" fill="white">⊤</text>
+<ellipse fill="black" stroke="black" cx="1093" cy="-854.78" rx="27" ry="18"/>
+<text text-anchor="middle" x="1093" y="-850.68" font-family="DejaVu Sans" font-size="13.00" fill="white">⊤</text>
</g>
<!-- XCTRL -->
<g id="node3" class="node">
<title>XCTRL</title>
-<ellipse fill="#ffff00" stroke="black" cx="53" cy="-682.29" rx="36.51" ry="18"/>
-<text text-anchor="middle" x="53" y="-678.19" font-family="DejaVu Sans" font-size="13.00">⊤:ctrl</text>
+<ellipse fill="#ffff00" stroke="black" cx="53" cy="-752.29" rx="36.51" ry="18"/>
+<text text-anchor="middle" x="53" y="-748.19" font-family="DejaVu Sans" font-size="13.00">⊤:ctrl</text>
</g>
<!-- TOP&#45;&gt;XCTRL -->
<g id="edge77" class="edge">
<title>TOP&#45;&gt;XCTRL</title>
-<path fill="none" stroke="#555555" d="M1065.75,-783.81C910.7,-783.87 145.18,-782.94 102,-758.78 82.14,-747.67 69.01,-724.76 61.39,-707.08"/>
-<polygon fill="#555555" stroke="#555555" points="63.43,-706.52 59.22,-701.76 59.54,-708.1 63.43,-706.52"/>
+<path fill="none" stroke="#555555" d="M1065.75,-853.81C910.7,-853.87 145.18,-852.94 102,-828.78 82.14,-817.67 69.01,-794.76 61.39,-777.08"/>
+<polygon fill="#555555" stroke="#555555" points="63.43,-776.52 59.22,-771.76 59.54,-778.1 63.43,-776.52"/>
</g>
<!-- INT_TOP -->
<g id="node5" class="node">
<title>INT_TOP</title>
-<ellipse fill="lightblue" stroke="black" cx="330" cy="-682.29" rx="33.95" ry="18"/>
-<text text-anchor="start" x="313.12" y="-679.19" font-family="DejaVu Sans" font-weight="bold" font-size="13.00">⊤</text>
-<text text-anchor="start" x="325.12" y="-679.19" font-family="DejaVu Sans" font-size="13.00">:int</text>
+<ellipse fill="lightblue" stroke="black" cx="330" cy="-752.29" rx="33.95" ry="18"/>
+<text text-anchor="start" x="313.12" y="-749.19" font-family="DejaVu Sans" font-weight="bold" font-size="13.00">⊤</text>
+<text text-anchor="start" x="325.12" y="-749.19" font-family="DejaVu Sans" font-size="13.00">:int</text>
</g>
<!-- TOP&#45;&gt;INT_TOP -->
<g id="edge78" class="edge">
<title>TOP&#45;&gt;INT_TOP</title>
-<path fill="none" stroke="#555555" d="M1065.76,-783.55C938.37,-782.39 406.27,-776.49 376,-758.78 356.7,-747.5 344.47,-724.61 337.51,-706.98"/>
-<polygon fill="#555555" stroke="#555555" points="339.61,-706.59 335.55,-701.7 335.67,-708.05 339.61,-706.59"/>
+<path fill="none" stroke="#555555" d="M1065.76,-853.55C938.37,-852.39 406.27,-846.49 376,-828.78 356.7,-817.5 344.47,-794.61 337.51,-776.98"/>
+<polygon fill="#555555" stroke="#555555" points="339.61,-776.59 335.55,-771.7 335.67,-778.05 339.61,-776.59"/>
</g>
<!-- FLT_TOP -->
<g id="node14" class="node">
<title>FLT_TOP</title>
-<ellipse fill="aqua" stroke="black" cx="720" cy="-682.29" rx="31.39" ry="18"/>
-<text text-anchor="start" x="705" y="-679.19" font-family="DejaVu Sans" font-weight="bold" font-size="13.00">⊤</text>
-<text text-anchor="start" x="717" y="-679.19" font-family="DejaVu Sans" font-size="13.00">:flt</text>
+<ellipse fill="aqua" stroke="black" cx="720" cy="-752.29" rx="31.39" ry="18"/>
+<text text-anchor="start" x="705" y="-749.19" font-family="DejaVu Sans" font-weight="bold" font-size="13.00">⊤</text>
+<text text-anchor="start" x="717" y="-749.19" font-family="DejaVu Sans" font-size="13.00">:flt</text>
</g>
<!-- TOP&#45;&gt;FLT_TOP -->
<g id="edge79" class="edge">
<title>TOP&#45;&gt;FLT_TOP</title>
-<path fill="none" stroke="#555555" d="M1065.71,-783.88C1022.73,-783.35 937.09,-779.49 868,-758.78 822.79,-745.23 774.91,-718.16 746.24,-700.39"/>
-<polygon fill="#555555" stroke="#555555" points="747.56,-698.74 741.36,-697.33 745.33,-702.3 747.56,-698.74"/>
+<path fill="none" stroke="#555555" d="M1065.71,-853.88C1022.73,-853.35 937.09,-849.49 868,-828.78 822.79,-815.23 774.91,-788.16 746.24,-770.39"/>
+<polygon fill="#555555" stroke="#555555" points="747.56,-768.74 741.36,-767.33 745.33,-772.3 747.56,-768.74"/>
</g>
<!-- PTR_TOP -->
<g id="node22" class="node">
<title>PTR_TOP</title>
-<ellipse fill="#008000" stroke="black" cx="1093" cy="-682.29" rx="61.7" ry="28.99"/>
-<text text-anchor="middle" x="1093" y="-686.44" font-family="DejaVu Sans" font-size="13.00" fill="white">⊤:ptr</text>
-<text text-anchor="middle" x="1093" y="-669.94" font-family="DejaVu Sans" font-size="13.00" fill="white">[*⊤:struct]</text>
+<ellipse fill="#008000" stroke="black" cx="1093" cy="-752.29" rx="61.7" ry="28.99"/>
+<text text-anchor="middle" x="1093" y="-756.44" font-family="DejaVu Sans" font-size="13.00" fill="white">⊤:ptr</text>
+<text text-anchor="middle" x="1093" y="-739.94" font-family="DejaVu Sans" font-size="13.00" fill="white">[*⊤:struct]</text>
</g>
<!-- TOP&#45;&gt;PTR_TOP -->
<g id="edge80" class="edge">
<title>TOP&#45;&gt;PTR_TOP</title>
-<path fill="none" stroke="#555555" d="M1093,-766.74C1093,-753.62 1093,-735.05 1093,-718.76"/>
-<polygon fill="#555555" stroke="#555555" points="1095.1,-718.97 1093,-712.97 1090.9,-718.97 1095.1,-718.97"/>
+<path fill="none" stroke="#555555" d="M1093,-836.74C1093,-823.62 1093,-805.05 1093,-788.76"/>
+<polygon fill="#555555" stroke="#555555" points="1095.1,-788.97 1093,-782.97 1090.9,-788.97 1095.1,-788.97"/>
</g>
<!-- STRUCT_TOP -->
<g id="node32" class="node">
<title>STRUCT_TOP</title>
-<ellipse fill="#90ee90" stroke="black" cx="1480" cy="-682.29" rx="64.35" ry="28.99"/>
-<text text-anchor="middle" x="1480" y="-686.44" font-family="DejaVu Sans" font-size="13.00">⊤:struct</text>
-<text text-anchor="middle" x="1480" y="-669.94" font-family="DejaVu Sans" font-size="13.00">[struct top]</text>
+<ellipse fill="#90ee90" stroke="black" cx="1480" cy="-752.29" rx="64.35" ry="28.99"/>
+<text text-anchor="middle" x="1480" y="-756.44" font-family="DejaVu Sans" font-size="13.00">⊤:struct</text>
+<text text-anchor="middle" x="1480" y="-739.94" font-family="DejaVu Sans" font-size="13.00">[struct top]</text>
</g>
<!-- TOP&#45;&gt;STRUCT_TOP -->
<g id="edge81" class="edge">
<title>TOP&#45;&gt;STRUCT_TOP</title>
-<path fill="none" stroke="#555555" d="M1119.97,-782.78C1178.13,-780.35 1313.55,-773.3 1357,-758.78 1388.2,-748.36 1419.74,-728.78 1443.07,-712.17"/>
-<polygon fill="#555555" stroke="#555555" points="1444.26,-713.9 1447.9,-708.68 1441.8,-710.49 1444.26,-713.9"/>
+<path fill="none" stroke="#555555" d="M1119.97,-852.78C1178.13,-850.35 1313.55,-843.3 1357,-828.78 1388.2,-818.36 1419.74,-798.78 1443.07,-782.17"/>
+<polygon fill="#555555" stroke="#555555" points="1444.26,-783.9 1447.9,-778.68 1441.8,-780.49 1444.26,-783.9"/>
</g>
<!-- MEM_TOP -->
<g id="node38" class="node">
<title>MEM_TOP</title>
-<ellipse fill="#00008b" stroke="black" cx="1807" cy="-682.29" rx="44.7" ry="18"/>
-<text text-anchor="middle" x="1807" y="-678.19" font-family="DejaVu Sans" font-size="13.00" fill="white">⊤:mem</text>
+<ellipse fill="#00008b" stroke="black" cx="1807" cy="-752.29" rx="44.7" ry="18"/>
+<text text-anchor="middle" x="1807" y="-748.19" font-family="DejaVu Sans" font-size="13.00" fill="white">⊤:mem</text>
</g>
<!-- TOP&#45;&gt;MEM_TOP -->
<g id="edge82" class="edge">
<title>TOP&#45;&gt;MEM_TOP</title>
-<path fill="none" stroke="#555555" d="M1120.14,-783.58C1230.92,-782.61 1645.66,-777.74 1701,-758.78 1734.02,-747.47 1765.78,-722.33 1785.79,-704.16"/>
-<polygon fill="#555555" stroke="#555555" points="1787.02,-705.88 1790,-700.26 1784.17,-702.8 1787.02,-705.88"/>
+<path fill="none" stroke="#555555" d="M1120.14,-853.58C1230.92,-852.61 1645.66,-847.74 1701,-828.78 1734.02,-817.47 1765.78,-792.33 1785.79,-774.16"/>
+<polygon fill="#555555" stroke="#555555" points="1787.02,-775.88 1790,-770.26 1784.17,-772.8 1787.02,-775.88"/>
</g>
<!-- TUPLE_TOP -->
<g id="node43" class="node">
<title>TUPLE_TOP</title>
-<ellipse fill="#ffc0cb" stroke="black" cx="2048" cy="-682.29" rx="44.7" ry="18"/>
-<text text-anchor="middle" x="2048" y="-678.19" font-family="DejaVu Sans" font-size="13.00">⊤:tuple</text>
+<ellipse fill="#ffc0cb" stroke="black" cx="2048" cy="-752.29" rx="44.7" ry="18"/>
+<text text-anchor="middle" x="2048" y="-748.19" font-family="DejaVu Sans" font-size="13.00">⊤:tuple</text>
</g>
<!-- TOP&#45;&gt;TUPLE_TOP -->
<g id="edge83" class="edge">
<title>TOP&#45;&gt;TUPLE_TOP</title>
-<path fill="none" stroke="#555555" d="M1120.01,-783.69C1265.56,-783.09 1951.36,-779.22 1991,-758.78 2012.45,-747.73 2028.06,-724.49 2037.46,-706.7"/>
-<polygon fill="#555555" stroke="#555555" points="2039.12,-708.07 2039.96,-701.77 2035.37,-706.17 2039.12,-708.07"/>
+<path fill="none" stroke="#555555" d="M1120.01,-853.69C1265.56,-853.09 1951.36,-849.22 1991,-828.78 2012.45,-817.73 2028.06,-794.49 2037.46,-776.7"/>
+<polygon fill="#555555" stroke="#555555" points="2039.12,-778.07 2039.96,-771.77 2035.37,-776.17 2039.12,-778.07"/>
</g>
<!-- BOT -->
<g id="node2" class="node">
@@ -156,7 +156,7 @@
<!-- XCTRL&#45;&gt;CTRL -->
<g id="edge1" class="edge">
<title>XCTRL&#45;&gt;CTRL</title>
-<path fill="none" stroke="#555555" d="M53,-663.84C53,-629.39 53,-550.21 53,-483.64 53,-483.64 53,-483.64 53,-292.98 53,-237.49 53,-172.38 53,-137.7"/>
+<path fill="none" stroke="#555555" d="M53,-733.84C53,-699.39 53,-620.21 53,-553.64 53,-553.64 53,-553.64 53,-292.98 53,-237.49 53,-172.38 53,-137.7"/>
<polygon fill="#555555" stroke="#555555" points="55.1,-137.88 53,-131.88 50.9,-137.88 55.1,-137.88"/>
</g>
<!-- XCTRL&#45;&gt;INT_TOP -->
@@ -169,14 +169,14 @@
<!-- INT_HI -->
<g id="node7" class="node">
<title>INT_HI</title>
-<ellipse fill="lightblue" stroke="black" cx="303" cy="-588.3" rx="61.08" ry="18"/>
-<text text-anchor="middle" x="303" y="-584.2" font-family="DejaVu Sans" font-size="13.00">max &lt; min</text>
+<ellipse fill="lightblue" stroke="black" cx="303" cy="-658.3" rx="61.08" ry="18"/>
+<text text-anchor="middle" x="303" y="-654.2" font-family="DejaVu Sans" font-size="13.00">max &lt; min</text>
</g>
<!-- INT_TOP&#45;&gt;INT_HI -->
<g id="edge2" class="edge">
<title>INT_TOP&#45;&gt;INT_HI</title>
-<path fill="none" stroke="#555555" d="M325.05,-664.42C320.88,-650.2 314.85,-629.69 310.16,-613.69"/>
-<polygon fill="#555555" stroke="#555555" points="312.24,-613.31 308.53,-608.14 308.21,-614.49 312.24,-613.31"/>
+<path fill="none" stroke="#555555" d="M325.05,-734.42C320.88,-720.2 314.85,-699.69 310.16,-683.69"/>
+<polygon fill="#555555" stroke="#555555" points="312.24,-683.31 308.53,-678.14 308.21,-684.49 312.24,-683.31"/>
</g>
<!-- INT_TOP&#45;&gt;FLT_TOP -->
<!-- INT_BOT -->
@@ -195,50 +195,50 @@
<!-- INT_XBOOL -->
<g id="node8" class="node">
<title>INT_XBOOL</title>
-<ellipse fill="lightblue" stroke="black" cx="211" cy="-482.64" rx="31.39" ry="18"/>
-<text text-anchor="middle" x="211" y="-478.54" font-family="DejaVu Sans" font-size="13.00">1...0</text>
+<ellipse fill="lightblue" stroke="black" cx="211" cy="-552.64" rx="31.39" ry="18"/>
+<text text-anchor="middle" x="211" y="-548.54" font-family="DejaVu Sans" font-size="13.00">1...0</text>
</g>
<!-- INT_HI&#45;&gt;INT_XBOOL -->
<g id="edge3" class="edge">
<title>INT_HI&#45;&gt;INT_XBOOL</title>
-<path fill="none" stroke="#555555" d="M288.22,-570.65C272.25,-552.65 246.77,-523.94 229.48,-504.47"/>
-<polygon fill="#555555" stroke="#555555" points="231.4,-503.46 225.85,-500.37 228.26,-506.25 231.4,-503.46"/>
+<path fill="none" stroke="#555555" d="M288.22,-640.65C272.25,-622.65 246.77,-593.94 229.48,-574.47"/>
+<polygon fill="#555555" stroke="#555555" points="231.4,-573.46 225.85,-570.37 228.26,-576.25 231.4,-573.46"/>
</g>
<!-- INT_CON -->
<g id="node9" class="node">
<title>INT_CON</title>
-<ellipse fill="lightblue" stroke="black" cx="309" cy="-376.98" rx="54.93" ry="18"/>
-<text text-anchor="middle" x="309" y="-372.88" font-family="DejaVu Sans" font-size="13.00">constants</text>
+<ellipse fill="lightblue" stroke="black" cx="309" cy="-411.98" rx="54.93" ry="18"/>
+<text text-anchor="middle" x="309" y="-407.88" font-family="DejaVu Sans" font-size="13.00">constants</text>
</g>
<!-- INT_HI&#45;&gt;INT_CON -->
<g id="edge6" class="edge">
<title>INT_HI&#45;&gt;INT_CON</title>
-<path fill="none" stroke="#555555" d="M303.5,-569.81C304.57,-532.63 307.06,-445.61 308.29,-402.74"/>
-<polygon fill="#555555" stroke="#555555" points="310.39,-402.84 308.46,-396.78 306.19,-402.72 310.39,-402.84"/>
+<path fill="none" stroke="#555555" d="M303.42,-640.12C304.47,-597.64 307.17,-487.54 308.39,-437.9"/>
+<polygon fill="#555555" stroke="#555555" points="310.49,-438.03 308.53,-431.98 306.29,-437.93 310.49,-438.03"/>
</g>
<!-- INT_CON0 -->
<g id="node10" class="node">
<title>INT_CON0</title>
-<ellipse fill="lightblue" stroke="black" cx="141" cy="-376.98" rx="27" ry="18"/>
-<text text-anchor="middle" x="141" y="-372.88" font-family="DejaVu Sans" font-size="13.00">0</text>
+<ellipse fill="lightblue" stroke="black" cx="141" cy="-411.98" rx="27" ry="18"/>
+<text text-anchor="middle" x="141" y="-407.88" font-family="DejaVu Sans" font-size="13.00">0</text>
</g>
<!-- INT_XBOOL&#45;&gt;INT_CON0 -->
<g id="edge4" class="edge">
<title>INT_XBOOL&#45;&gt;INT_CON0</title>
-<path fill="none" stroke="#555555" d="M200.06,-465.44C188.13,-447.77 168.95,-419.38 155.71,-399.76"/>
-<polygon fill="#555555" stroke="#555555" points="157.58,-398.78 152.48,-394.98 154.1,-401.13 157.58,-398.78"/>
+<path fill="none" stroke="#555555" d="M202.56,-534.92C190.09,-510.21 166.7,-463.9 152.62,-436.01"/>
+<polygon fill="#555555" stroke="#555555" points="154.52,-435.1 149.94,-430.69 150.77,-436.99 154.52,-435.1"/>
</g>
<!-- INT_CON1 -->
<g id="node11" class="node">
<title>INT_CON1</title>
-<ellipse fill="lightblue" stroke="black" cx="211" cy="-376.98" rx="27" ry="18"/>
-<text text-anchor="middle" x="211" y="-372.88" font-family="DejaVu Sans" font-size="13.00">1</text>
+<ellipse fill="lightblue" stroke="black" cx="211" cy="-411.98" rx="27" ry="18"/>
+<text text-anchor="middle" x="211" y="-407.88" font-family="DejaVu Sans" font-size="13.00">1</text>
</g>
<!-- INT_XBOOL&#45;&gt;INT_CON1 -->
<g id="edge5" class="edge">
<title>INT_XBOOL&#45;&gt;INT_CON1</title>
-<path fill="none" stroke="#555555" d="M211,-464.52C211,-447.74 211,-421.98 211,-402.93"/>
-<polygon fill="#555555" stroke="#555555" points="213.1,-402.99 211,-396.99 208.9,-402.99 213.1,-402.99"/>
+<path fill="none" stroke="#555555" d="M211,-534.36C211,-510.07 211,-465.7 211,-437.86"/>
+<polygon fill="#555555" stroke="#555555" points="213.1,-437.99 211,-431.99 208.9,-437.99 213.1,-437.99"/>
</g>
<!-- INT_LO -->
<g id="node13" class="node">
@@ -249,8 +249,8 @@
<!-- INT_CON&#45;&gt;INT_LO -->
<g id="edge10" class="edge">
<title>INT_CON&#45;&gt;INT_LO</title>
-<path fill="none" stroke="#555555" d="M308.38,-358.79C307.31,-329.13 305.12,-268.24 303.89,-234.09"/>
-<polygon fill="#555555" stroke="#555555" points="305.99,-234.26 303.68,-228.34 301.8,-234.41 305.99,-234.26"/>
+<path fill="none" stroke="#555555" d="M308.49,-393.8C307.43,-358.13 304.98,-275.9 303.74,-234.4"/>
+<polygon fill="#555555" stroke="#555555" points="305.84,-234.35 303.56,-228.42 301.64,-234.48 305.84,-234.35"/>
</g>
<!-- INT_CON0&#45;&gt;INT_CON1 -->
<!-- INT_BOOL -->
@@ -262,15 +262,15 @@
<!-- INT_CON0&#45;&gt;INT_BOOL -->
<g id="edge7" class="edge">
<title>INT_CON0&#45;&gt;INT_BOOL</title>
-<path fill="none" stroke="#555555" d="M154.17,-360.75C165.07,-348.12 180.69,-330.05 192.8,-316.04"/>
-<polygon fill="#555555" stroke="#555555" points="194.09,-317.76 196.43,-311.85 190.91,-315.01 194.09,-317.76"/>
+<path fill="none" stroke="#555555" d="M150.73,-394.85C162.84,-374.8 183.57,-340.43 197.28,-317.71"/>
+<polygon fill="#555555" stroke="#555555" points="199.04,-318.87 200.34,-312.64 195.44,-316.7 199.04,-318.87"/>
</g>
<!-- INT_CON1&#45;&gt;INT_CON -->
<!-- INT_CON1&#45;&gt;INT_BOOL -->
<g id="edge8" class="edge">
<title>INT_CON1&#45;&gt;INT_BOOL</title>
-<path fill="none" stroke="#555555" d="M211,-358.8C211,-347.5 211,-332.51 211,-319.9"/>
-<polygon fill="#555555" stroke="#555555" points="213.1,-319.93 211,-313.93 208.9,-319.93 213.1,-319.93"/>
+<path fill="none" stroke="#555555" d="M211,-393.62C211,-374.05 211,-342.1 211,-319.88"/>
+<polygon fill="#555555" stroke="#555555" points="213.1,-319.98 211,-313.98 208.9,-319.98 213.1,-319.98"/>
</g>
<!-- INT_BOOL&#45;&gt;INT_LO -->
<g id="edge9" class="edge">
@@ -287,40 +287,40 @@
<!-- FLT_CON64 -->
<g id="node16" class="node">
<title>FLT_CON64</title>
-<ellipse fill="aqua" stroke="black" cx="790" cy="-482.64" rx="65.94" ry="40.66"/>
-<text text-anchor="middle" x="790" y="-495.04" font-family="DejaVu Sans" font-size="13.00">64b consts</text>
-<text text-anchor="middle" x="790" y="-478.54" font-family="DejaVu Sans" font-size="13.00">[excludes</text>
-<text text-anchor="middle" x="790" y="-462.04" font-family="DejaVu Sans" font-size="13.00">32b consts]</text>
+<ellipse fill="aqua" stroke="black" cx="790" cy="-552.64" rx="65.94" ry="40.66"/>
+<text text-anchor="middle" x="790" y="-565.04" font-family="DejaVu Sans" font-size="13.00">64b consts</text>
+<text text-anchor="middle" x="790" y="-548.54" font-family="DejaVu Sans" font-size="13.00">[excludes</text>
+<text text-anchor="middle" x="790" y="-532.04" font-family="DejaVu Sans" font-size="13.00">32b consts]</text>
</g>
<!-- FLT_TOP&#45;&gt;FLT_CON64 -->
<g id="edge14" class="edge">
<title>FLT_TOP&#45;&gt;FLT_CON64</title>
-<path fill="none" stroke="#555555" d="M725.97,-664.44C736.43,-634.9 758.41,-572.83 773.68,-529.71"/>
-<polygon fill="#555555" stroke="#555555" points="775.64,-530.48 775.66,-524.12 771.68,-529.08 775.64,-530.48"/>
+<path fill="none" stroke="#555555" d="M725.97,-734.44C736.43,-704.9 758.41,-642.83 773.68,-599.71"/>
+<polygon fill="#555555" stroke="#555555" points="775.64,-600.48 775.66,-594.12 771.68,-599.08 775.64,-600.48"/>
</g>
<!-- FLT_CONPI -->
<g id="node18" class="node">
<title>FLT_CONPI</title>
-<ellipse fill="aqua" stroke="black" cx="651" cy="-482.64" rx="56.98" ry="18"/>
-<text text-anchor="middle" x="651" y="-478.54" font-family="DejaVu Sans" font-size="13.00">3.14159...</text>
+<ellipse fill="aqua" stroke="black" cx="651" cy="-552.64" rx="56.98" ry="18"/>
+<text text-anchor="middle" x="651" y="-548.54" font-family="DejaVu Sans" font-size="13.00">3.14159...</text>
</g>
<!-- FLT_TOP&#45;&gt;FLT_CONPI -->
<g id="edge15" class="edge">
<title>FLT_TOP&#45;&gt;FLT_CONPI</title>
-<path fill="none" stroke="#555555" d="M714.12,-664.44C701.88,-629.39 673.65,-548.52 659.46,-507.88"/>
-<polygon fill="#555555" stroke="#555555" points="661.52,-507.42 657.56,-502.44 657.56,-508.8 661.52,-507.42"/>
+<path fill="none" stroke="#555555" d="M714.12,-734.44C701.88,-699.39 673.65,-618.52 659.46,-577.88"/>
+<polygon fill="#555555" stroke="#555555" points="661.52,-577.42 657.56,-572.44 657.56,-578.8 661.52,-577.42"/>
</g>
<!-- FLT_X32 -->
<g id="node19" class="node">
<title>FLT_X32</title>
-<ellipse fill="aqua" stroke="black" cx="518" cy="-588.3" rx="32.93" ry="18"/>
-<text text-anchor="middle" x="518" y="-584.2" font-family="DejaVu Sans" font-size="13.00">~f32</text>
+<ellipse fill="aqua" stroke="black" cx="518" cy="-658.3" rx="32.93" ry="18"/>
+<text text-anchor="middle" x="518" y="-654.2" font-family="DejaVu Sans" font-size="13.00">~f32</text>
</g>
<!-- FLT_TOP&#45;&gt;FLT_X32 -->
<g id="edge18" class="edge">
<title>FLT_TOP&#45;&gt;FLT_X32</title>
-<path fill="none" stroke="#555555" d="M696.03,-670.38C659.58,-653.78 590.16,-622.16 549.62,-603.7"/>
-<polygon fill="#555555" stroke="#555555" points="550.59,-601.83 544.26,-601.26 548.85,-605.66 550.59,-601.83"/>
+<path fill="none" stroke="#555555" d="M696.03,-740.38C659.58,-723.78 590.16,-692.16 549.62,-673.7"/>
+<polygon fill="#555555" stroke="#555555" points="550.59,-671.83 544.26,-671.26 548.85,-675.66 550.59,-671.83"/>
</g>
<!-- FLT_TOP&#45;&gt;PTR_TOP -->
<!-- FLT_BOT -->
@@ -339,113 +339,113 @@
<!-- FLT_CON64&#45;&gt;FLT_BOT -->
<g id="edge16" class="edge">
<title>FLT_CON64&#45;&gt;FLT_BOT</title>
-<path fill="none" stroke="#555555" d="M782.44,-441.84C767.9,-365.27 736.43,-199.52 724.61,-137.27"/>
-<polygon fill="#555555" stroke="#555555" points="726.73,-137.2 723.55,-131.69 722.61,-137.98 726.73,-137.2"/>
+<path fill="none" stroke="#555555" d="M783.66,-511.94C769.47,-423.02 735.48,-210 723.92,-137.58"/>
+<polygon fill="#555555" stroke="#555555" points="726.01,-137.32 722.99,-131.73 721.86,-137.98 726.01,-137.32"/>
</g>
<!-- FLT_CON32 -->
<g id="node17" class="node">
<title>FLT_CON32</title>
-<ellipse fill="aqua" stroke="black" cx="518" cy="-482.64" rx="60.05" ry="18"/>
-<text text-anchor="middle" x="518" y="-478.54" font-family="DejaVu Sans" font-size="13.00">32b consts</text>
+<ellipse fill="aqua" stroke="black" cx="518" cy="-552.64" rx="60.05" ry="18"/>
+<text text-anchor="middle" x="518" y="-548.54" font-family="DejaVu Sans" font-size="13.00">32b consts</text>
</g>
<!-- FLT_CON32&#45;&gt;FLT_CONPI -->
<!-- FLT_32 -->
<g id="node21" class="node">
<title>FLT_32</title>
-<ellipse fill="aqua" stroke="black" cx="518" cy="-376.98" rx="27" ry="18"/>
-<text text-anchor="middle" x="518" y="-372.88" font-family="DejaVu Sans" font-size="13.00">f32</text>
+<ellipse fill="aqua" stroke="black" cx="518" cy="-411.98" rx="27" ry="18"/>
+<text text-anchor="middle" x="518" y="-407.88" font-family="DejaVu Sans" font-size="13.00">f32</text>
</g>
<!-- FLT_CON32&#45;&gt;FLT_32 -->
<g id="edge22" class="edge">
<title>FLT_CON32&#45;&gt;FLT_32</title>
-<path fill="none" stroke="#555555" d="M518,-464.52C518,-447.74 518,-421.98 518,-402.93"/>
-<polygon fill="#555555" stroke="#555555" points="520.1,-402.99 518,-396.99 515.9,-402.99 520.1,-402.99"/>
+<path fill="none" stroke="#555555" d="M518,-534.36C518,-510.07 518,-465.7 518,-437.86"/>
+<polygon fill="#555555" stroke="#555555" points="520.1,-437.99 518,-431.99 515.9,-437.99 520.1,-437.99"/>
</g>
<!-- FLT_CONPI&#45;&gt;FLT_BOT -->
<g id="edge17" class="edge">
<title>FLT_CONPI&#45;&gt;FLT_BOT</title>
-<path fill="none" stroke="#555555" d="M654.24,-464.36C665.42,-404.61 702.46,-206.71 715.45,-137.3"/>
-<polygon fill="#555555" stroke="#555555" points="717.45,-138.01 716.49,-131.73 713.32,-137.24 717.45,-138.01"/>
+<path fill="none" stroke="#555555" d="M653.75,-534.18C664.5,-465.79 703.78,-216.13 716.2,-137.13"/>
+<polygon fill="#555555" stroke="#555555" points="718.23,-137.78 717.08,-131.53 714.08,-137.13 718.23,-137.78"/>
</g>
<!-- FLT_CONPI&#45;&gt;FLT_CON64 -->
<!-- FLT_X32&#45;&gt;FLT_CON32 -->
<g id="edge20" class="edge">
<title>FLT_X32&#45;&gt;FLT_CON32</title>
-<path fill="none" stroke="#555555" d="M518,-570.18C518,-553.4 518,-527.64 518,-508.58"/>
-<polygon fill="#555555" stroke="#555555" points="520.1,-508.64 518,-502.64 515.9,-508.64 520.1,-508.64"/>
+<path fill="none" stroke="#555555" d="M518,-640.18C518,-623.4 518,-597.64 518,-578.58"/>
+<polygon fill="#555555" stroke="#555555" points="520.1,-578.64 518,-572.64 515.9,-578.64 520.1,-578.64"/>
</g>
<!-- FLT_CON0 -->
<g id="node20" class="node">
<title>FLT_CON0</title>
-<ellipse fill="aqua" stroke="black" cx="415" cy="-482.64" rx="27" ry="18"/>
-<text text-anchor="middle" x="415" y="-478.54" font-family="DejaVu Sans" font-size="13.00">0.</text>
+<ellipse fill="aqua" stroke="black" cx="415" cy="-552.64" rx="27" ry="18"/>
+<text text-anchor="middle" x="415" y="-548.54" font-family="DejaVu Sans" font-size="13.00">0.</text>
</g>
<!-- FLT_X32&#45;&gt;FLT_CON0 -->
<g id="edge19" class="edge">
<title>FLT_X32&#45;&gt;FLT_CON0</title>
-<path fill="none" stroke="#555555" d="M501.38,-572.45C487.36,-559.74 466.92,-540.77 450,-523.3 444.13,-517.24 437.97,-510.42 432.47,-504.17"/>
-<polygon fill="#555555" stroke="#555555" points="434.16,-502.91 428.64,-499.77 431,-505.67 434.16,-502.91"/>
+<path fill="none" stroke="#555555" d="M501.38,-642.45C487.36,-629.74 466.92,-610.77 450,-593.3 444.13,-587.24 437.97,-580.42 432.47,-574.17"/>
+<polygon fill="#555555" stroke="#555555" points="434.16,-572.91 428.64,-569.77 431,-575.67 434.16,-572.91"/>
</g>
<!-- FLT_CON0&#45;&gt;FLT_CON32 -->
<!-- FLT_CON0&#45;&gt;FLT_32 -->
<g id="edge21" class="edge">
<title>FLT_CON0&#45;&gt;FLT_32</title>
-<path fill="none" stroke="#555555" d="M427.65,-466.66C434.16,-459.11 442.33,-449.9 450,-441.98 465.23,-426.25 483.32,-409.31 497.01,-396.8"/>
-<polygon fill="#555555" stroke="#555555" points="498.07,-398.68 501.09,-393.09 495.24,-395.57 498.07,-398.68"/>
+<path fill="none" stroke="#555555" d="M426.62,-536.01C445.1,-511.12 481.26,-462.44 502.13,-434.35"/>
+<polygon fill="#555555" stroke="#555555" points="503.79,-435.63 505.68,-429.57 500.42,-433.13 503.79,-435.63"/>
</g>
<!-- FLT_32&#45;&gt;FLT_BOT -->
<g id="edge23" class="edge">
<title>FLT_32&#45;&gt;FLT_BOT</title>
-<path fill="none" stroke="#555555" d="M529.73,-360.71C563.88,-316.25 663.29,-186.82 703.16,-134.91"/>
-<polygon fill="#555555" stroke="#555555" points="704.81,-136.21 706.8,-130.17 701.48,-133.65 704.81,-136.21"/>
+<path fill="none" stroke="#555555" d="M528.58,-395.38C562.1,-345.93 666.07,-192.55 705.04,-135.05"/>
+<polygon fill="#555555" stroke="#555555" points="706.56,-136.56 708.19,-130.41 703.08,-134.2 706.56,-136.56"/>
</g>
<!-- PTR_NULL -->
<g id="node24" class="node">
<title>PTR_NULL</title>
-<ellipse fill="#008000" stroke="black" cx="1219" cy="-588.3" rx="27.3" ry="18"/>
-<text text-anchor="middle" x="1219" y="-584.2" font-family="DejaVu Sans" font-size="13.00" fill="white">null</text>
+<ellipse fill="#008000" stroke="black" cx="1219" cy="-658.3" rx="27.3" ry="18"/>
+<text text-anchor="middle" x="1219" y="-654.2" font-family="DejaVu Sans" font-size="13.00" fill="white">null</text>
</g>
<!-- PTR_TOP&#45;&gt;PTR_NULL -->
<g id="edge33" class="edge">
<title>PTR_TOP&#45;&gt;PTR_NULL</title>
-<path fill="none" stroke="#555555" d="M1125.78,-657.36C1147.49,-641.51 1175.48,-621.07 1195.1,-606.75"/>
-<polygon fill="#555555" stroke="#555555" points="1196.33,-608.45 1199.93,-603.22 1193.85,-605.06 1196.33,-608.45"/>
+<path fill="none" stroke="#555555" d="M1125.78,-727.36C1147.49,-711.51 1175.48,-691.07 1195.1,-676.75"/>
+<polygon fill="#555555" stroke="#555555" points="1196.33,-678.45 1199.93,-673.22 1193.85,-675.06 1196.33,-678.45"/>
</g>
<!-- PTR_PERSON -->
<g id="node26" class="node">
<title>PTR_PERSON</title>
-<ellipse fill="#008000" stroke="black" cx="962" cy="-588.3" rx="45.72" ry="18"/>
-<text text-anchor="middle" x="962" y="-584.2" font-family="DejaVu Sans" font-size="13.00" fill="white">*Person</text>
+<ellipse fill="#008000" stroke="black" cx="962" cy="-658.3" rx="45.72" ry="18"/>
+<text text-anchor="middle" x="962" y="-654.2" font-family="DejaVu Sans" font-size="13.00" fill="white">*Person</text>
</g>
<!-- PTR_TOP&#45;&gt;PTR_PERSON -->
<g id="edge34" class="edge">
<title>PTR_TOP&#45;&gt;PTR_PERSON</title>
-<path fill="none" stroke="#555555" d="M1059.26,-657.6C1037.69,-642.45 1010.05,-623.04 989.76,-608.79"/>
-<polygon fill="#555555" stroke="#555555" points="991.06,-607.14 984.95,-605.41 988.65,-610.58 991.06,-607.14"/>
+<path fill="none" stroke="#555555" d="M1059.26,-727.6C1037.69,-712.45 1010.05,-693.04 989.76,-678.79"/>
+<polygon fill="#555555" stroke="#555555" points="991.06,-677.14 984.95,-675.41 988.65,-680.58 991.06,-677.14"/>
</g>
<!-- PTR_S1 -->
<g id="node27" class="node">
<title>PTR_S1</title>
-<ellipse fill="#008000" stroke="black" cx="1051" cy="-588.3" rx="27" ry="18"/>
-<text text-anchor="middle" x="1051" y="-584.2" font-family="DejaVu Sans" font-size="13.00" fill="white">*s1</text>
+<ellipse fill="#008000" stroke="black" cx="1051" cy="-658.3" rx="27" ry="18"/>
+<text text-anchor="middle" x="1051" y="-654.2" font-family="DejaVu Sans" font-size="13.00" fill="white">*s1</text>
</g>
<!-- PTR_TOP&#45;&gt;PTR_S1 -->
<g id="edge35" class="edge">
<title>PTR_TOP&#45;&gt;PTR_S1</title>
-<path fill="none" stroke="#555555" d="M1080.4,-653.69C1074.4,-640.56 1067.32,-625.04 1061.6,-612.53"/>
-<polygon fill="#555555" stroke="#555555" points="1063.62,-611.88 1059.22,-607.29 1059.8,-613.62 1063.62,-611.88"/>
+<path fill="none" stroke="#555555" d="M1080.4,-723.69C1074.4,-710.56 1067.32,-695.04 1061.6,-682.53"/>
+<polygon fill="#555555" stroke="#555555" points="1063.62,-681.88 1059.22,-677.29 1059.8,-683.62 1063.62,-681.88"/>
</g>
<!-- PTR_MORE -->
<g id="node28" class="node">
<title>PTR_MORE</title>
-<ellipse fill="#008000" stroke="black" cx="1135" cy="-588.3" rx="40.6" ry="18"/>
-<text text-anchor="middle" x="1135" y="-584.2" font-family="DejaVu Sans" font-size="13.00" fill="white">*s2, …</text>
+<ellipse fill="#008000" stroke="black" cx="1135" cy="-658.3" rx="40.6" ry="18"/>
+<text text-anchor="middle" x="1135" y="-654.2" font-family="DejaVu Sans" font-size="13.00" fill="white">*s2, …</text>
</g>
<!-- PTR_TOP&#45;&gt;PTR_MORE -->
<g id="edge36" class="edge">
<title>PTR_TOP&#45;&gt;PTR_MORE</title>
-<path fill="none" stroke="#555555" d="M1105.6,-653.69C1111.55,-640.65 1118.59,-625.25 1124.28,-612.78"/>
-<polygon fill="#555555" stroke="#555555" points="1126.08,-613.9 1126.66,-607.57 1122.26,-612.15 1126.08,-613.9"/>
+<path fill="none" stroke="#555555" d="M1105.6,-723.69C1111.55,-710.65 1118.59,-695.25 1124.28,-682.78"/>
+<polygon fill="#555555" stroke="#555555" points="1126.08,-683.9 1126.66,-677.57 1122.26,-682.15 1126.08,-683.9"/>
</g>
<!-- PTR_TOP&#45;&gt;STRUCT_TOP -->
<!-- PTR_BOT -->
@@ -464,111 +464,111 @@
<!-- PTR_PERSON_NIL -->
<g id="node29" class="node">
<title>PTR_PERSON_NIL</title>
-<ellipse fill="#008000" stroke="black" cx="1111" cy="-482.64" rx="50.33" ry="18"/>
-<text text-anchor="middle" x="1111" y="-478.54" font-family="DejaVu Sans" font-size="13.00" fill="white">*Person?</text>
+<ellipse fill="#008000" stroke="black" cx="1111" cy="-552.64" rx="50.33" ry="18"/>
+<text text-anchor="middle" x="1111" y="-548.54" font-family="DejaVu Sans" font-size="13.00" fill="white">*Person?</text>
</g>
<!-- PTR_NULL&#45;&gt;PTR_PERSON_NIL -->
<g id="edge43" class="edge">
<title>PTR_NULL&#45;&gt;PTR_PERSON_NIL</title>
-<path fill="none" stroke="#555555" d="M1203.98,-572.89C1185.68,-555.32 1154.58,-525.47 1133.44,-505.18"/>
-<polygon fill="#555555" stroke="#555555" points="1134.9,-503.67 1129.12,-501.03 1131.99,-506.7 1134.9,-503.67"/>
+<path fill="none" stroke="#555555" d="M1203.98,-642.89C1185.68,-625.32 1154.58,-595.47 1133.44,-575.18"/>
+<polygon fill="#555555" stroke="#555555" points="1134.9,-573.67 1129.12,-571.03 1131.99,-576.7 1134.9,-573.67"/>
</g>
<!-- PTR_S1_NIL -->
<g id="node30" class="node">
<title>PTR_S1_NIL</title>
-<ellipse fill="#008000" stroke="black" cx="1208" cy="-482.64" rx="30.37" ry="18"/>
-<text text-anchor="middle" x="1208" y="-478.54" font-family="DejaVu Sans" font-size="13.00" fill="white">*s1?</text>
+<ellipse fill="#008000" stroke="black" cx="1208" cy="-552.64" rx="30.37" ry="18"/>
+<text text-anchor="middle" x="1208" y="-548.54" font-family="DejaVu Sans" font-size="13.00" fill="white">*s1?</text>
</g>
<!-- PTR_NULL&#45;&gt;PTR_S1_NIL -->
<g id="edge44" class="edge">
<title>PTR_NULL&#45;&gt;PTR_S1_NIL</title>
-<path fill="none" stroke="#555555" d="M1217.18,-570.18C1215.39,-553.3 1212.64,-527.33 1210.61,-508.24"/>
-<polygon fill="#555555" stroke="#555555" points="1212.7,-508.03 1209.98,-502.29 1208.52,-508.48 1212.7,-508.03"/>
+<path fill="none" stroke="#555555" d="M1217.18,-640.18C1215.39,-623.3 1212.64,-597.33 1210.61,-578.24"/>
+<polygon fill="#555555" stroke="#555555" points="1212.7,-578.03 1209.98,-572.29 1208.52,-578.48 1212.7,-578.03"/>
</g>
<!-- PTR_MORE_NIL -->
<g id="node31" class="node">
<title>PTR_MORE_NIL</title>
-<ellipse fill="#008000" stroke="black" cx="1300" cy="-482.64" rx="45.21" ry="18"/>
-<text text-anchor="middle" x="1300" y="-478.54" font-family="DejaVu Sans" font-size="13.00" fill="white">*s2?, …</text>
+<ellipse fill="#008000" stroke="black" cx="1300" cy="-552.64" rx="45.21" ry="18"/>
+<text text-anchor="middle" x="1300" y="-548.54" font-family="DejaVu Sans" font-size="13.00" fill="white">*s2?, …</text>
</g>
<!-- PTR_NULL&#45;&gt;PTR_MORE_NIL -->
<g id="edge45" class="edge">
<title>PTR_NULL&#45;&gt;PTR_MORE_NIL</title>
-<path fill="none" stroke="#555555" d="M1230.95,-572C1244.59,-554.55 1267.02,-525.85 1282.6,-505.91"/>
-<polygon fill="#555555" stroke="#555555" points="1284.22,-507.24 1286.26,-501.22 1280.92,-504.65 1284.22,-507.24"/>
+<path fill="none" stroke="#555555" d="M1230.95,-642C1244.59,-624.55 1267.02,-595.85 1282.6,-575.91"/>
+<polygon fill="#555555" stroke="#555555" points="1284.22,-577.24 1286.26,-571.22 1280.92,-574.65 1284.22,-577.24"/>
</g>
<!-- PTR_ANY -->
<g id="node25" class="node">
<title>PTR_ANY</title>
-<ellipse fill="#008000" stroke="black" cx="962" cy="-482.64" rx="82.38" ry="28.99"/>
-<text text-anchor="middle" x="962" y="-486.79" font-family="DejaVu Sans" font-size="13.00" fill="white">*⊥:struct</text>
-<text text-anchor="middle" x="962" y="-470.29" font-family="DejaVu Sans" font-size="13.00" fill="white">[ptr any struct]</text>
+<ellipse fill="#008000" stroke="black" cx="962" cy="-552.64" rx="82.38" ry="28.99"/>
+<text text-anchor="middle" x="962" y="-556.79" font-family="DejaVu Sans" font-size="13.00" fill="white">*⊥:struct</text>
+<text text-anchor="middle" x="962" y="-540.29" font-family="DejaVu Sans" font-size="13.00" fill="white">[ptr any struct]</text>
</g>
<!-- PTR_ANY&#45;&gt;PTR_BOT -->
<g id="edge46" class="edge">
<title>PTR_ANY&#45;&gt;PTR_BOT</title>
-<path fill="none" stroke="#555555" d="M976.89,-453.63C1012.36,-386.92 1101.72,-218.85 1140.07,-146.72"/>
-<polygon fill="#555555" stroke="#555555" points="1141.72,-148.08 1142.69,-141.79 1138.02,-146.11 1141.72,-148.08"/>
+<path fill="none" stroke="#555555" d="M974.56,-523.53C1008.99,-446.47 1104.84,-231.98 1142.51,-147.66"/>
+<polygon fill="#555555" stroke="#555555" points="1144.4,-148.58 1144.93,-142.25 1140.56,-146.87 1144.4,-148.58"/>
</g>
<!-- PTR_ANY&#45;&gt;PTR_PERSON_NIL -->
<!-- PTR_PERSON&#45;&gt;PTR_ANY -->
<g id="edge37" class="edge">
<title>PTR_PERSON&#45;&gt;PTR_ANY</title>
-<path fill="none" stroke="#555555" d="M962,-570.18C962,-556.3 962,-536.26 962,-518.96"/>
-<polygon fill="#555555" stroke="#555555" points="964.1,-519.25 962,-513.25 959.9,-519.25 964.1,-519.25"/>
+<path fill="none" stroke="#555555" d="M962,-640.18C962,-626.3 962,-606.26 962,-588.96"/>
+<polygon fill="#555555" stroke="#555555" points="964.1,-589.25 962,-583.25 959.9,-589.25 964.1,-589.25"/>
</g>
<!-- PTR_PERSON&#45;&gt;PTR_S1 -->
<!-- PTR_PERSON&#45;&gt;PTR_PERSON_NIL -->
<g id="edge40" class="edge">
<title>PTR_PERSON&#45;&gt;PTR_PERSON_NIL</title>
-<path fill="none" stroke="#555555" d="M983.67,-572.23C1009.89,-553.98 1054.1,-523.22 1082.92,-503.18"/>
-<polygon fill="#555555" stroke="#555555" points="1083.85,-505.09 1087.58,-499.94 1081.45,-501.64 1083.85,-505.09"/>
+<path fill="none" stroke="#555555" d="M983.67,-642.23C1009.89,-623.98 1054.1,-593.22 1082.92,-573.18"/>
+<polygon fill="#555555" stroke="#555555" points="1083.85,-575.09 1087.58,-569.94 1081.45,-571.64 1083.85,-575.09"/>
</g>
<!-- PTR_S1&#45;&gt;PTR_ANY -->
<g id="edge38" class="edge">
<title>PTR_S1&#45;&gt;PTR_ANY</title>
-<path fill="none" stroke="#555555" d="M1038.25,-572.45C1025.79,-557.94 1006.41,-535.36 990.3,-516.6"/>
-<polygon fill="#555555" stroke="#555555" points="991.91,-515.25 986.4,-512.07 988.72,-517.99 991.91,-515.25"/>
+<path fill="none" stroke="#555555" d="M1038.25,-642.45C1025.79,-627.94 1006.41,-605.36 990.3,-586.6"/>
+<polygon fill="#555555" stroke="#555555" points="991.91,-585.25 986.4,-582.07 988.72,-587.99 991.91,-585.25"/>
</g>
<!-- PTR_S1&#45;&gt;PTR_MORE -->
<!-- PTR_S1&#45;&gt;PTR_S1_NIL -->
<g id="edge41" class="edge">
<title>PTR_S1&#45;&gt;PTR_S1_NIL</title>
-<path fill="none" stroke="#555555" d="M1072.08,-576.82C1101.29,-562.14 1152.34,-535.85 1169,-523.3 1176.35,-517.76 1183.64,-510.85 1189.88,-504.36"/>
-<polygon fill="#555555" stroke="#555555" points="1191.26,-505.96 1193.83,-500.14 1188.2,-503.09 1191.26,-505.96"/>
+<path fill="none" stroke="#555555" d="M1072.08,-646.82C1101.29,-632.14 1152.34,-605.85 1169,-593.3 1176.35,-587.76 1183.64,-580.85 1189.88,-574.36"/>
+<polygon fill="#555555" stroke="#555555" points="1191.26,-575.96 1193.83,-570.14 1188.2,-573.09 1191.26,-575.96"/>
</g>
<!-- PTR_MORE&#45;&gt;PTR_NULL -->
<!-- PTR_MORE&#45;&gt;PTR_ANY -->
<g id="edge39" class="edge">
<title>PTR_MORE&#45;&gt;PTR_ANY</title>
-<path fill="none" stroke="#555555" d="M1111.67,-573.32C1085.45,-557.61 1042.2,-531.69 1008.92,-511.75"/>
-<polygon fill="#555555" stroke="#555555" points="1010.35,-510.16 1004.12,-508.88 1008.19,-513.77 1010.35,-510.16"/>
+<path fill="none" stroke="#555555" d="M1111.67,-643.32C1085.45,-627.61 1042.2,-601.69 1008.92,-581.75"/>
+<polygon fill="#555555" stroke="#555555" points="1010.35,-580.16 1004.12,-578.88 1008.19,-583.77 1010.35,-580.16"/>
</g>
<!-- PTR_MORE&#45;&gt;PTR_MORE_NIL -->
<g id="edge42" class="edge">
<title>PTR_MORE&#45;&gt;PTR_MORE_NIL</title>
-<path fill="none" stroke="#555555" d="M1160.16,-573.83C1182.97,-561.38 1217.31,-542.02 1246,-523.3 1255.42,-517.15 1265.42,-509.99 1274.23,-503.46"/>
-<polygon fill="#555555" stroke="#555555" points="1275.36,-505.24 1278.9,-499.97 1272.84,-501.88 1275.36,-505.24"/>
+<path fill="none" stroke="#555555" d="M1160.16,-643.83C1182.97,-631.38 1217.31,-612.02 1246,-593.3 1255.42,-587.15 1265.42,-579.99 1274.23,-573.46"/>
+<polygon fill="#555555" stroke="#555555" points="1275.36,-575.24 1278.9,-569.97 1272.84,-571.88 1275.36,-575.24"/>
</g>
<!-- PTR_PERSON_NIL&#45;&gt;PTR_BOT -->
<g id="edge47" class="edge">
<title>PTR_PERSON_NIL&#45;&gt;PTR_BOT</title>
-<path fill="none" stroke="#555555" d="M1113.2,-464.36C1120.45,-407.54 1143.62,-225.79 1153.48,-148.41"/>
-<polygon fill="#555555" stroke="#555555" points="1155.53,-148.97 1154.21,-142.76 1151.36,-148.44 1155.53,-148.97"/>
+<path fill="none" stroke="#555555" d="M1112.87,-534.18C1119.87,-468.84 1144.61,-238.01 1154.18,-148.67"/>
+<polygon fill="#555555" stroke="#555555" points="1156.26,-148.92 1154.81,-142.73 1152.09,-148.47 1156.26,-148.92"/>
</g>
<!-- PTR_PERSON_NIL&#45;&gt;PTR_S1_NIL -->
<!-- PTR_S1_NIL&#45;&gt;PTR_BOT -->
<g id="edge48" class="edge">
<title>PTR_S1_NIL&#45;&gt;PTR_BOT</title>
-<path fill="none" stroke="#555555" d="M1205.66,-464.36C1197.95,-407.54 1173.3,-225.79 1162.8,-148.41"/>
-<polygon fill="#555555" stroke="#555555" points="1164.92,-148.42 1162.04,-142.75 1160.76,-148.98 1164.92,-148.42"/>
+<path fill="none" stroke="#555555" d="M1206.04,-534.45C1198.64,-469.49 1172.28,-238.26 1162.08,-148.74"/>
+<polygon fill="#555555" stroke="#555555" points="1164.16,-148.51 1161.4,-142.79 1159.99,-148.99 1164.16,-148.51"/>
</g>
<!-- PTR_S1_NIL&#45;&gt;PTR_MORE_NIL -->
<!-- PTR_MORE_NIL&#45;&gt;PTR_BOT -->
<g id="edge49" class="edge">
<title>PTR_MORE_NIL&#45;&gt;PTR_BOT</title>
-<path fill="none" stroke="#555555" d="M1293.34,-464.36C1271.39,-407.36 1200.99,-224.61 1171.35,-147.66"/>
-<polygon fill="#555555" stroke="#555555" points="1173.45,-147.25 1169.33,-142.4 1169.53,-148.76 1173.45,-147.25"/>
+<path fill="none" stroke="#555555" d="M1294.43,-534.45C1273.34,-469.29 1198.07,-236.78 1169.3,-147.89"/>
+<polygon fill="#555555" stroke="#555555" points="1171.38,-147.49 1167.53,-142.43 1167.38,-148.78 1171.38,-147.49"/>
</g>
<!-- STRUCT_PERSON -->
<g id="node34" class="node">
@@ -580,8 +580,8 @@
<!-- STRUCT_TOP&#45;&gt;STRUCT_PERSON -->
<g id="edge53" class="edge">
<title>STRUCT_TOP&#45;&gt;STRUCT_PERSON</title>
-<path fill="none" stroke="#555555" d="M1468.98,-653.31C1455.09,-615.46 1433,-545.54 1433,-483.64 1433,-483.64 1433,-483.64 1433,-375.98 1433,-326.01 1419.75,-268.92 1410.86,-236.25"/>
-<polygon fill="#555555" stroke="#555555" points="1412.96,-235.95 1409.33,-230.72 1408.91,-237.07 1412.96,-235.95"/>
+<path fill="none" stroke="#555555" d="M1468.98,-723.31C1455.09,-685.46 1433,-615.54 1433,-553.64 1433,-553.64 1433,-553.64 1433,-410.98 1433,-347.98 1418.48,-275.1 1409.64,-236.59"/>
+<polygon fill="#555555" stroke="#555555" points="1411.7,-236.2 1408.3,-230.83 1407.61,-237.15 1411.7,-236.2"/>
</g>
<!-- STRUCT_S1 -->
<g id="node35" class="node">
@@ -593,8 +593,8 @@
<!-- STRUCT_TOP&#45;&gt;STRUCT_S1 -->
<g id="edge54" class="edge">
<title>STRUCT_TOP&#45;&gt;STRUCT_S1</title>
-<path fill="none" stroke="#555555" d="M1480,-652.82C1480,-614.41 1480,-543.86 1480,-483.64 1480,-483.64 1480,-483.64 1480,-375.98 1480,-327.01 1480,-269.94 1480,-236.93"/>
-<polygon fill="#555555" stroke="#555555" points="1482.1,-236.99 1480,-230.99 1477.9,-236.99 1482.1,-236.99"/>
+<path fill="none" stroke="#555555" d="M1480,-722.82C1480,-684.41 1480,-613.86 1480,-553.64 1480,-553.64 1480,-553.64 1480,-410.98 1480,-348.51 1480,-275.13 1480,-236.47"/>
+<polygon fill="#555555" stroke="#555555" points="1482.1,-236.73 1480,-230.73 1477.9,-236.73 1482.1,-236.73"/>
</g>
<!-- STRUCT_S2 -->
<g id="node36" class="node">
@@ -606,8 +606,8 @@
<!-- STRUCT_TOP&#45;&gt;STRUCT_S2 -->
<g id="edge55" class="edge">
<title>STRUCT_TOP&#45;&gt;STRUCT_S2</title>
-<path fill="none" stroke="#555555" d="M1492.66,-653.47C1508.62,-615.79 1534,-546.07 1534,-483.64 1534,-483.64 1534,-483.64 1534,-375.98 1534,-325.74 1550.25,-268.96 1561.21,-236.38"/>
-<polygon fill="#555555" stroke="#555555" points="1563.15,-237.2 1563.11,-230.84 1559.18,-235.84 1563.15,-237.2"/>
+<path fill="none" stroke="#555555" d="M1492.66,-723.47C1508.62,-685.79 1534,-616.07 1534,-553.64 1534,-553.64 1534,-553.64 1534,-410.98 1534,-347.63 1551.91,-274.88 1562.81,-236.49"/>
+<polygon fill="#555555" stroke="#555555" points="1564.83,-237.08 1564.47,-230.74 1560.79,-235.92 1564.83,-237.08"/>
</g>
<!-- STRUCT_MORE -->
<g id="node37" class="node">
@@ -618,8 +618,8 @@
<!-- STRUCT_TOP&#45;&gt;STRUCT_MORE -->
<g id="edge56" class="edge">
<title>STRUCT_TOP&#45;&gt;STRUCT_MORE</title>
-<path fill="none" stroke="#555555" d="M1509.78,-656.19C1547.31,-621.55 1607,-555.22 1607,-483.64 1607,-483.64 1607,-483.64 1607,-375.98 1607,-322.84 1632.58,-264.74 1648.85,-233.17"/>
-<polygon fill="#555555" stroke="#555555" points="1650.54,-234.47 1651.46,-228.18 1646.82,-232.52 1650.54,-234.47"/>
+<path fill="none" stroke="#555555" d="M1509.78,-726.19C1547.31,-691.55 1607,-625.22 1607,-553.64 1607,-553.64 1607,-553.64 1607,-410.98 1607,-344.76 1634.99,-270.47 1651.04,-233.33"/>
+<polygon fill="#555555" stroke="#555555" points="1652.79,-234.56 1653.28,-228.22 1648.94,-232.87 1652.79,-234.56"/>
</g>
<!-- STRUCT_TOP&#45;&gt;MEM_TOP -->
<!-- STRUCT_BOT -->
@@ -671,8 +671,8 @@
<!-- MEM_TOP&#45;&gt;MEM_ALIAS2 -->
<g id="edge63" class="edge">
<title>MEM_TOP&#45;&gt;MEM_ALIAS2</title>
-<path fill="none" stroke="#555555" d="M1804.8,-663.94C1796.95,-602.04 1770.29,-391.88 1761.12,-319.62"/>
-<polygon fill="#555555" stroke="#555555" points="1763.22,-319.47 1760.39,-313.79 1759.06,-320 1763.22,-319.47"/>
+<path fill="none" stroke="#555555" d="M1805.14,-733.96C1797.62,-663.94 1769.47,-401.76 1760.65,-319.7"/>
+<polygon fill="#555555" stroke="#555555" points="1762.75,-319.58 1760.02,-313.84 1758.58,-320.03 1762.75,-319.58"/>
</g>
<!-- MEM_ALIAS3 -->
<g id="node41" class="node">
@@ -683,8 +683,8 @@
<!-- MEM_TOP&#45;&gt;MEM_ALIAS3 -->
<g id="edge64" class="edge">
<title>MEM_TOP&#45;&gt;MEM_ALIAS3</title>
-<path fill="none" stroke="#555555" d="M1809.56,-663.94C1818.69,-602.04 1849.7,-391.88 1860.36,-319.62"/>
-<polygon fill="#555555" stroke="#555555" points="1862.43,-320.02 1861.23,-313.78 1858.27,-319.41 1862.43,-320.02"/>
+<path fill="none" stroke="#555555" d="M1809.16,-733.96C1817.91,-663.94 1850.66,-401.76 1860.91,-319.7"/>
+<polygon fill="#555555" stroke="#555555" points="1862.99,-320.05 1861.65,-313.83 1858.82,-319.53 1862.99,-320.05"/>
</g>
<!-- MEM_MORE -->
<g id="node42" class="node">
@@ -695,8 +695,8 @@
<!-- MEM_TOP&#45;&gt;MEM_MORE -->
<g id="edge65" class="edge">
<title>MEM_TOP&#45;&gt;MEM_MORE</title>
-<path fill="none" stroke="#555555" d="M1813.42,-664.19C1836.63,-602.36 1916.24,-390.25 1943.08,-318.74"/>
-<polygon fill="#555555" stroke="#555555" points="1944.98,-319.66 1945.12,-313.3 1941.05,-318.18 1944.98,-319.66"/>
+<path fill="none" stroke="#555555" d="M1812.51,-733.96C1834.85,-663.64 1918.78,-399.51 1944.48,-318.66"/>
+<polygon fill="#555555" stroke="#555555" points="1946.37,-319.64 1946.18,-313.29 1942.36,-318.37 1946.37,-319.64"/>
</g>
<!-- MEM_TOP&#45;&gt;TUPLE_TOP -->
<!-- MEM_BOT -->
@@ -734,70 +734,94 @@
<!-- TUPLE1 -->
<g id="node45" class="node">
<title>TUPLE1</title>
-<polygon fill="#ffc0cb" stroke="black" points="2058.88,-394.98 2003.12,-394.98 2003.12,-358.98 2058.88,-358.98 2058.88,-394.98"/>
-<text text-anchor="middle" x="2031" y="-372.88" font-family="DejaVu Sans" font-size="13.00">(type)</text>
+<polygon fill="#ffc0cb" stroke="none" points="2046.88,-438.48 2003.12,-438.48 2003.12,-385.48 2046.88,-385.48 2046.88,-438.48"/>
+<polygon fill="#ffc0cb" stroke="none" points="2003.12,-411.98 2003.12,-438.48 2046.88,-438.48 2046.88,-411.98 2003.12,-411.98"/>
+<polygon fill="none" stroke="black" points="2003.12,-411.98 2003.12,-438.48 2046.88,-438.48 2046.88,-411.98 2003.12,-411.98"/>
+<text text-anchor="start" x="2008.12" y="-421.13" font-family="DejaVu Sans" font-size="13.00">tuple</text>
+<polygon fill="black" stroke="none" points="2003.12,-385.48 2003.12,-411.98 2046.88,-411.98 2046.88,-385.48 2003.12,-385.48"/>
+<polygon fill="none" stroke="black" points="2003.12,-385.48 2003.12,-411.98 2046.88,-411.98 2046.88,-385.48 2003.12,-385.48"/>
+<text text-anchor="start" x="2010.38" y="-394.63" font-family="DejaVu Sans" font-size="13.00" fill="white">type</text>
</g>
<!-- TUPLE_TOP&#45;&gt;TUPLE1 -->
<g id="edge71" class="edge">
<title>TUPLE_TOP&#45;&gt;TUPLE1</title>
-<path fill="none" stroke="#555555" d="M2047.04,-664.12C2044.18,-613.14 2035.74,-462.58 2032.39,-402.83"/>
-<polygon fill="#555555" stroke="#555555" points="2034.49,-402.73 2032.06,-396.86 2030.3,-402.97 2034.49,-402.73"/>
+<path fill="none" stroke="#555555" d="M2046.83,-734.05C2043.18,-680.39 2031.99,-515.78 2027.21,-445.42"/>
+<polygon fill="#555555" stroke="#555555" points="2029.31,-445.47 2026.81,-439.63 2025.12,-445.75 2029.31,-445.47"/>
</g>
<!-- TUPLE2 -->
<g id="node46" class="node">
<title>TUPLE2</title>
-<polygon fill="#ffc0cb" stroke="black" points="2169,-394.98 2075,-394.98 2075,-358.98 2169,-358.98 2169,-394.98"/>
-<text text-anchor="middle" x="2122" y="-372.88" font-family="DejaVu Sans" font-size="13.00">(type, type)</text>
+<polygon fill="#ffc0cb" stroke="none" points="2106.88,-451.73 2063.12,-451.73 2063.12,-372.23 2106.88,-372.23 2106.88,-451.73"/>
+<polygon fill="#ffc0cb" stroke="none" points="2063.12,-425.23 2063.12,-451.73 2106.88,-451.73 2106.88,-425.23 2063.12,-425.23"/>
+<polygon fill="none" stroke="black" points="2063.12,-425.23 2063.12,-451.73 2106.88,-451.73 2106.88,-425.23 2063.12,-425.23"/>
+<text text-anchor="start" x="2068.12" y="-434.38" font-family="DejaVu Sans" font-size="13.00">tuple</text>
+<polygon fill="black" stroke="none" points="2063.12,-398.73 2063.12,-425.23 2106.88,-425.23 2106.88,-398.73 2063.12,-398.73"/>
+<polygon fill="none" stroke="black" points="2063.12,-398.73 2063.12,-425.23 2106.88,-425.23 2106.88,-398.73 2063.12,-398.73"/>
+<text text-anchor="start" x="2070.38" y="-407.88" font-family="DejaVu Sans" font-size="13.00" fill="white">type</text>
+<polygon fill="black" stroke="none" points="2063.12,-372.23 2063.12,-398.73 2106.88,-398.73 2106.88,-372.23 2063.12,-372.23"/>
+<polygon fill="none" stroke="black" points="2063.12,-372.23 2063.12,-398.73 2106.88,-398.73 2106.88,-372.23 2063.12,-372.23"/>
+<text text-anchor="start" x="2070.38" y="-381.38" font-family="DejaVu Sans" font-size="13.00" fill="white">type</text>
</g>
<!-- TUPLE_TOP&#45;&gt;TUPLE2 -->
<g id="edge72" class="edge">
<title>TUPLE_TOP&#45;&gt;TUPLE2</title>
-<path fill="none" stroke="#555555" d="M2052.19,-664.12C2064.65,-613.04 2101.51,-461.97 2116.03,-402.46"/>
-<polygon fill="#555555" stroke="#555555" points="2118.02,-403.14 2117.4,-396.82 2113.94,-402.15 2118.02,-403.14"/>
+<path fill="none" stroke="#555555" d="M2049.89,-734.05C2055.41,-683.57 2071.67,-534.87 2079.98,-458.86"/>
+<polygon fill="#555555" stroke="#555555" points="2082.03,-459.43 2080.6,-453.24 2077.86,-458.97 2082.03,-459.43"/>
</g>
<!-- TUPLEN -->
<g id="node47" class="node">
<title>TUPLEN</title>
-<polygon fill="#ffc0cb" stroke="black" points="2262.75,-394.98 2185.25,-394.98 2185.25,-358.98 2262.75,-358.98 2262.75,-394.98"/>
-<text text-anchor="middle" x="2224" y="-372.88" font-family="DejaVu Sans" font-size="13.00">(type, …)</text>
+<polygon fill="#ffc0cb" stroke="none" points="2166.88,-464.98 2123.12,-464.98 2123.12,-358.98 2166.88,-358.98 2166.88,-464.98"/>
+<polygon fill="#ffc0cb" stroke="none" points="2123.12,-438.48 2123.12,-464.98 2166.88,-464.98 2166.88,-438.48 2123.12,-438.48"/>
+<polygon fill="none" stroke="black" points="2123.12,-438.48 2123.12,-464.98 2166.88,-464.98 2166.88,-438.48 2123.12,-438.48"/>
+<text text-anchor="start" x="2128.12" y="-447.63" font-family="DejaVu Sans" font-size="13.00">tuple</text>
+<polygon fill="black" stroke="none" points="2123.12,-411.98 2123.12,-438.48 2166.88,-438.48 2166.88,-411.98 2123.12,-411.98"/>
+<polygon fill="none" stroke="black" points="2123.12,-411.98 2123.12,-438.48 2166.88,-438.48 2166.88,-411.98 2123.12,-411.98"/>
+<text text-anchor="start" x="2130.38" y="-421.13" font-family="DejaVu Sans" font-size="13.00" fill="white">type</text>
+<polygon fill="black" stroke="none" points="2123.12,-385.48 2123.12,-411.98 2166.88,-411.98 2166.88,-385.48 2123.12,-385.48"/>
+<polygon fill="none" stroke="black" points="2123.12,-385.48 2123.12,-411.98 2166.88,-411.98 2166.88,-385.48 2123.12,-385.48"/>
+<text text-anchor="start" x="2138.62" y="-394.63" font-family="DejaVu Sans" font-size="13.00" fill="white">…</text>
+<polygon fill="black" stroke="none" points="2123.12,-358.98 2123.12,-385.48 2166.88,-385.48 2166.88,-358.98 2123.12,-358.98"/>
+<polygon fill="none" stroke="black" points="2123.12,-358.98 2123.12,-385.48 2166.88,-385.48 2166.88,-358.98 2123.12,-358.98"/>
+<text text-anchor="start" x="2130.38" y="-368.13" font-family="DejaVu Sans" font-size="13.00" fill="white">type</text>
</g>
<!-- TUPLE_TOP&#45;&gt;TUPLEN -->
<g id="edge73" class="edge">
<title>TUPLE_TOP&#45;&gt;TUPLEN</title>
-<path fill="none" stroke="#555555" d="M2057.71,-664.55C2087.2,-613.73 2175.78,-461.08 2210.15,-401.84"/>
-<polygon fill="#555555" stroke="#555555" points="2211.93,-402.97 2213.12,-396.73 2208.29,-400.87 2211.93,-402.97"/>
+<path fill="none" stroke="#555555" d="M2052.94,-734.05C2066.64,-686.28 2105.56,-550.54 2128.17,-471.69"/>
+<polygon fill="#555555" stroke="#555555" points="2130.12,-472.51 2129.75,-466.17 2126.08,-471.35 2130.12,-472.51"/>
</g>
<!-- TUPLE_BOT -->
<g id="node44" class="node">
<title>TUPLE_BOT</title>
-<ellipse fill="#ffc0cb" stroke="black" cx="2076" cy="-111.99" rx="44.7" ry="18"/>
-<text text-anchor="middle" x="2076" y="-107.89" font-family="DejaVu Sans" font-size="13.00">⊥:tuple</text>
+<ellipse fill="#ffc0cb" stroke="black" cx="2066" cy="-111.99" rx="44.7" ry="18"/>
+<text text-anchor="middle" x="2066" y="-107.89" font-family="DejaVu Sans" font-size="13.00">⊥:tuple</text>
</g>
<!-- TUPLE_BOT&#45;&gt;BOT -->
<g id="edge90" class="edge">
<title>TUPLE_BOT&#45;&gt;BOT</title>
-<path fill="none" stroke="#555555" d="M2049.6,-97.11C2033.2,-89.17 2011.42,-79.86 1991,-75 1835.49,-37.96 1329.53,-23.17 1192.5,-19.79"/>
-<polygon fill="#555555" stroke="#555555" points="1192.69,-17.7 1186.64,-19.65 1192.58,-21.9 1192.69,-17.7"/>
+<path fill="none" stroke="#555555" d="M2041.91,-96.52C2027.63,-88.7 2008.88,-79.7 1991,-75 1836.4,-34.32 1329.78,-22.17 1192.55,-19.58"/>
+<polygon fill="#555555" stroke="#555555" points="1192.72,-17.49 1186.68,-19.47 1192.64,-21.69 1192.72,-17.49"/>
</g>
<!-- TUPLE1&#45;&gt;TUPLE_BOT -->
<g id="edge74" class="edge">
<title>TUPLE1&#45;&gt;TUPLE_BOT</title>
-<path fill="none" stroke="#555555" d="M2033.95,-358.73C2041.72,-313.31 2062.77,-190.32 2071.79,-137.57"/>
-<polygon fill="#555555" stroke="#555555" points="2073.84,-138.07 2072.78,-131.8 2069.7,-137.36 2073.84,-138.07"/>
+<path fill="none" stroke="#555555" d="M2028.5,-385.58C2036.28,-328.98 2054.97,-193.16 2062.63,-137.46"/>
+<polygon fill="#555555" stroke="#555555" points="2064.7,-137.88 2063.43,-131.65 2060.53,-137.3 2064.7,-137.88"/>
</g>
<!-- TUPLE1&#45;&gt;TUPLE2 -->
<!-- TUPLE2&#45;&gt;TUPLE_BOT -->
<g id="edge75" class="edge">
<title>TUPLE2&#45;&gt;TUPLE_BOT</title>
-<path fill="none" stroke="#555555" d="M2118.98,-358.73C2111.04,-313.31 2089.53,-190.32 2080.3,-137.57"/>
-<polygon fill="#555555" stroke="#555555" points="2082.39,-137.35 2079.29,-131.8 2078.26,-138.07 2082.39,-137.35"/>
+<path fill="none" stroke="#555555" d="M2082.54,-372.33C2078.57,-310.17 2070.89,-189.71 2067.58,-137.79"/>
+<polygon fill="#555555" stroke="#555555" points="2069.68,-137.72 2067.2,-131.86 2065.49,-137.98 2069.68,-137.72"/>
</g>
<!-- TUPLE2&#45;&gt;TUPLEN -->
<!-- TUPLEN&#45;&gt;TUPLE_BOT -->
<g id="edge76" class="edge">
<title>TUPLEN&#45;&gt;TUPLE_BOT</title>
-<path fill="none" stroke="#555555" d="M2214.29,-358.73C2188.51,-312.92 2118.33,-188.21 2089.08,-136.23"/>
-<polygon fill="#555555" stroke="#555555" points="2091.07,-135.49 2086.3,-131.29 2087.41,-137.55 2091.07,-135.49"/>
+<path fill="none" stroke="#555555" d="M2131.24,-359.08C2114.03,-294.18 2085.29,-185.76 2072.49,-137.48"/>
+<polygon fill="#555555" stroke="#555555" points="2074.53,-136.98 2070.97,-131.72 2070.47,-138.06 2074.53,-136.98"/>
</g>
</g>
</svg>