summaryrefslogtreecommitdiff
path: root/docs/chapter06/lattice.svg
diff options
context:
space:
mode:
Diffstat (limited to 'docs/chapter06/lattice.svg')
-rw-r--r--docs/chapter06/lattice.svg319
1 files changed, 319 insertions, 0 deletions
diff --git a/docs/chapter06/lattice.svg b/docs/chapter06/lattice.svg
new file mode 100644
index 00000000..86371c93
--- /dev/null
+++ b/docs/chapter06/lattice.svg
@@ -0,0 +1,319 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 12.2.0 (20241103.1931)
+ -->
+<!-- Title: Lattice Pages: 1 -->
+<svg width="855pt" height="406pt"
+ viewBox="0.00 0.00 854.60 406.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 402.5)">
+<title>Lattice</title>
+<polygon fill="white" stroke="none" points="-4,4 -4,-402.5 850.6,-402.5 850.6,4 -4,4"/>
+<!-- TOP -->
+<g id="node1" class="node">
+<title>TOP</title>
+<ellipse fill="black" stroke="black" cx="276.6" cy="-377.37" rx="21.12" ry="21.12"/>
+<text text-anchor="start" x="268.72" y="-372.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="49.6" cy="-302.25" rx="36.51" ry="18"/>
+<text text-anchor="start" x="30.85" y="-298.2" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊤</text>
+<text text-anchor="start" x="46.6" y="-298.2" 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="M256.45,-369.88C219.31,-357.92 139.36,-332.16 90.45,-316.41"/>
+<polygon fill="black" stroke="black" points="91.65,-313.12 81.06,-313.38 89.51,-319.78 91.65,-313.12"/>
+</g>
+<!-- INT_TOP -->
+<g id="node5" class="node">
+<title>INT_TOP</title>
+<ellipse fill="lightblue" stroke="black" cx="276.6" cy="-302.25" rx="33.95" ry="18"/>
+<text text-anchor="start" x="259.72" y="-298.2" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊤</text>
+<text text-anchor="start" x="275.47" y="-298.2" 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="M276.6,-356C276.6,-348.51 276.6,-339.87 276.6,-331.79"/>
+<polygon fill="black" stroke="black" points="280.1,-332.05 276.6,-322.05 273.1,-332.05 280.1,-332.05"/>
+</g>
+<!-- TUPLE_TOP -->
+<g id="node14" class="node">
+<title>TUPLE_TOP</title>
+<ellipse fill="pink" stroke="black" cx="673.6" cy="-302.25" rx="42.65" ry="18"/>
+<text text-anchor="start" x="650.35" y="-298.2" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊤</text>
+<text text-anchor="start" x="666.1" y="-298.2" font-family="Times New Roman,serif" font-size="14.00">:tuple</text>
+</g>
+<!-- TOP&#45;&gt;TUPLE_TOP -->
+<g id="edge26" class="edge">
+<title>TOP&#45;&gt;TUPLE_TOP</title>
+<path fill="none" stroke="black" d="M297.66,-372.49C358.57,-361.27 536.1,-328.57 623.62,-312.45"/>
+<polygon fill="black" stroke="black" points="624.16,-315.91 633.36,-310.66 622.89,-309.03 624.16,-315.91"/>
+</g>
+<!-- BOT -->
+<g id="node2" class="node">
+<title>BOT</title>
+<ellipse fill="black" stroke="black" cx="276.6" cy="-21.12" rx="21.12" ry="21.12"/>
+<text text-anchor="start" x="268.72" 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="49.6" cy="-96.25" rx="36.51" ry="18"/>
+<text text-anchor="start" x="30.85" y="-92.2" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊥</text>
+<text text-anchor="start" x="46.6" y="-92.2" 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="M49.6,-283.97C49.6,-248.31 49.6,-169.19 49.6,-125.93"/>
+<polygon fill="black" stroke="black" points="53.1,-126 49.6,-116 46.1,-126 53.1,-126"/>
+</g>
+<!-- CTRL&#45;&gt;BOT -->
+<g id="edge3" class="edge">
+<title>CTRL&#45;&gt;BOT</title>
+<path fill="none" stroke="black" d="M79.74,-85.54C122.92,-71.63 201.96,-46.17 245.6,-32.11"/>
+<polygon fill="black" stroke="black" points="246.52,-35.49 254.96,-29.09 244.37,-28.83 246.52,-35.49"/>
+</g>
+<!-- INT_MIN -->
+<g id="node7" class="node">
+<title>INT_MIN</title>
+<ellipse fill="lightblue" stroke="black" cx="18.6" cy="-199.25" rx="18.6" ry="18.6"/>
+<text text-anchor="middle" x="18.6" y="-194.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="M249.96,-290.82C200.87,-271.6 96.58,-230.78 46.53,-211.18"/>
+<polygon fill="black" stroke="black" points="47.87,-207.95 37.29,-207.56 45.32,-214.47 47.87,-207.95"/>
+</g>
+<!-- INT_MINDOTS -->
+<g id="node8" class="node">
+<title>INT_MINDOTS</title>
+<ellipse fill="lightblue" stroke="black" cx="107.6" cy="-199.25" rx="27" ry="18"/>
+<text text-anchor="middle" x="107.6" y="-194.2" font-family="Times New Roman,serif" font-size="14.00">...</text>
+</g>
+<!-- INT_TOP&#45;&gt;INT_MINDOTS -->
+<g id="edge6" class="edge">
+<title>INT_TOP&#45;&gt;INT_MINDOTS</title>
+<path fill="none" stroke="black" d="M254.85,-288.25C224.79,-270.29 170.48,-237.83 136.88,-217.75"/>
+<polygon fill="black" stroke="black" points="138.84,-214.85 128.46,-212.72 135.25,-220.85 138.84,-214.85"/>
+</g>
+<!-- INT_MINUS -->
+<g id="node9" class="node">
+<title>INT_MINUS</title>
+<ellipse fill="lightblue" stroke="black" cx="196.6" cy="-199.25" rx="18.6" ry="18.6"/>
+<text text-anchor="middle" x="196.6" y="-194.2" font-family="Times New Roman,serif" font-size="14.00">&#45;1</text>
+</g>
+<!-- INT_TOP&#45;&gt;INT_MINUS -->
+<g id="edge7" class="edge">
+<title>INT_TOP&#45;&gt;INT_MINUS</title>
+<path fill="none" stroke="black" d="M264.1,-285.47C250.86,-268.76 229.85,-242.23 214.78,-223.21"/>
+<polygon fill="black" stroke="black" points="217.61,-221.14 208.66,-215.48 212.12,-225.49 217.61,-221.14"/>
+</g>
+<!-- INT_ZERO -->
+<g id="node10" class="node">
+<title>INT_ZERO</title>
+<ellipse fill="lightblue" stroke="black" cx="276.6" cy="-199.25" rx="18" ry="18"/>
+<text text-anchor="middle" x="276.6" y="-194.2" font-family="Times New Roman,serif" font-size="14.00">0</text>
+</g>
+<!-- INT_TOP&#45;&gt;INT_ZERO -->
+<g id="edge8" class="edge">
+<title>INT_TOP&#45;&gt;INT_ZERO</title>
+<path fill="none" stroke="black" d="M276.6,-284.12C276.6,-269.02 276.6,-246.74 276.6,-228.93"/>
+<polygon fill="black" stroke="black" points="280.1,-228.98 276.6,-218.98 273.1,-228.98 280.1,-228.98"/>
+</g>
+<!-- INT_PLUS -->
+<g id="node11" class="node">
+<title>INT_PLUS</title>
+<ellipse fill="lightblue" stroke="black" cx="355.6" cy="-199.25" rx="18" ry="18"/>
+<text text-anchor="middle" x="355.6" y="-194.2" font-family="Times New Roman,serif" font-size="14.00">1</text>
+</g>
+<!-- INT_TOP&#45;&gt;INT_PLUS -->
+<g id="edge9" class="edge">
+<title>INT_TOP&#45;&gt;INT_PLUS</title>
+<path fill="none" stroke="black" d="M288.94,-285.47C302.08,-268.67 323,-241.93 337.89,-222.88"/>
+<polygon fill="black" stroke="black" points="340.52,-225.2 343.93,-215.17 335.01,-220.89 340.52,-225.2"/>
+</g>
+<!-- INT_MAXDOTS -->
+<g id="node12" class="node">
+<title>INT_MAXDOTS</title>
+<ellipse fill="lightblue" stroke="black" cx="443.6" cy="-199.25" rx="27" ry="18"/>
+<text text-anchor="middle" x="443.6" y="-194.2" font-family="Times New Roman,serif" font-size="14.00">...</text>
+</g>
+<!-- INT_TOP&#45;&gt;INT_MAXDOTS -->
+<g id="edge10" class="edge">
+<title>INT_TOP&#45;&gt;INT_MAXDOTS</title>
+<path fill="none" stroke="black" d="M298.43,-288.04C328.15,-270.07 381.44,-237.84 414.52,-217.83"/>
+<polygon fill="black" stroke="black" points="416.05,-221 422.8,-212.83 412.43,-215.01 416.05,-221"/>
+</g>
+<!-- INT_MAX -->
+<g id="node13" class="node">
+<title>INT_MAX</title>
+<ellipse fill="lightblue" stroke="black" cx="534.6" cy="-199.25" rx="21.15" ry="21.15"/>
+<text text-anchor="middle" x="534.6" y="-194.2" font-family="Times New Roman,serif" font-size="14.00">+n</text>
+</g>
+<!-- INT_TOP&#45;&gt;INT_MAX -->
+<g id="edge11" class="edge">
+<title>INT_TOP&#45;&gt;INT_MAX</title>
+<path fill="none" stroke="black" d="M303.23,-290.82C351.59,-271.89 453.51,-231.99 504.38,-212.08"/>
+<polygon fill="black" stroke="black" points="505.55,-215.38 513.59,-208.47 503,-208.86 505.55,-215.38"/>
+</g>
+<!-- INT_BOT -->
+<g id="node6" class="node">
+<title>INT_BOT</title>
+<ellipse fill="lightblue" stroke="black" cx="276.6" cy="-96.25" rx="33.95" ry="18"/>
+<text text-anchor="start" x="259.72" y="-92.2" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊥</text>
+<text text-anchor="start" x="275.47" y="-92.2" font-family="Times New Roman,serif" font-size="14.00">:int</text>
+</g>
+<!-- INT_BOT&#45;&gt;BOT -->
+<g id="edge19" class="edge">
+<title>INT_BOT&#45;&gt;BOT</title>
+<path fill="none" stroke="black" d="M276.6,-77.92C276.6,-70.74 276.6,-62.18 276.6,-53.95"/>
+<polygon fill="black" stroke="black" points="280.1,-54.22 276.6,-44.22 273.1,-54.22 280.1,-54.22"/>
+</g>
+<!-- INT_MIN&#45;&gt;INT_BOT -->
+<g id="edge12" class="edge">
+<title>INT_MIN&#45;&gt;INT_BOT</title>
+<path fill="none" stroke="black" d="M35.92,-191.46C77.34,-175.25 182.81,-133.96 239.39,-111.81"/>
+<polygon fill="black" stroke="black" points="240.58,-115.11 248.62,-108.2 238.03,-108.59 240.58,-115.11"/>
+</g>
+<!-- INT_MIN&#45;&gt;INT_MINDOTS -->
+<!-- INT_MINDOTS&#45;&gt;INT_BOT -->
+<g id="edge13" class="edge">
+<title>INT_MINDOTS&#45;&gt;INT_BOT</title>
+<path fill="none" stroke="black" d="M127.31,-186.46C156.24,-169.18 210.48,-136.76 245,-116.13"/>
+<polygon fill="black" stroke="black" points="246.52,-119.3 253.3,-111.17 242.93,-113.29 246.52,-119.3"/>
+</g>
+<!-- INT_MINDOTS&#45;&gt;INT_MINUS -->
+<!-- INT_MINUS&#45;&gt;INT_BOT -->
+<g id="edge14" class="edge">
+<title>INT_MINUS&#45;&gt;INT_BOT</title>
+<path fill="none" stroke="black" d="M207.72,-184.2C220.41,-168.18 241.41,-141.67 256.89,-122.13"/>
+<polygon fill="black" stroke="black" points="259.58,-124.37 263.05,-114.35 254.09,-120.02 259.58,-124.37"/>
+</g>
+<!-- INT_MINUS&#45;&gt;INT_ZERO -->
+<!-- INT_ZERO&#45;&gt;INT_BOT -->
+<g id="edge15" class="edge">
+<title>INT_ZERO&#45;&gt;INT_BOT</title>
+<path fill="none" stroke="black" d="M276.6,-181.12C276.6,-166.02 276.6,-143.74 276.6,-125.93"/>
+<polygon fill="black" stroke="black" points="280.1,-125.98 276.6,-115.98 273.1,-125.98 280.1,-125.98"/>
+</g>
+<!-- INT_ZERO&#45;&gt;INT_PLUS -->
+<!-- INT_PLUS&#45;&gt;INT_BOT -->
+<g id="edge16" class="edge">
+<title>INT_PLUS&#45;&gt;INT_BOT</title>
+<path fill="none" stroke="black" d="M344.94,-184.63C332.49,-168.71 311.63,-142.04 296.23,-122.35"/>
+<polygon fill="black" stroke="black" points="299.01,-120.23 290.1,-114.51 293.5,-124.54 299.01,-120.23"/>
+</g>
+<!-- INT_PLUS&#45;&gt;INT_MAXDOTS -->
+<!-- INT_MAXDOTS&#45;&gt;INT_BOT -->
+<g id="edge17" class="edge">
+<title>INT_MAXDOTS&#45;&gt;INT_BOT</title>
+<path fill="none" stroke="black" d="M424.11,-186.46C395.53,-169.18 341.93,-136.76 307.82,-116.13"/>
+<polygon fill="black" stroke="black" points="309.99,-113.35 299.62,-111.17 306.37,-119.34 309.99,-113.35"/>
+</g>
+<!-- INT_MAXDOTS&#45;&gt;INT_MAX -->
+<!-- INT_MAX&#45;&gt;INT_BOT -->
+<g id="edge18" class="edge">
+<title>INT_MAX&#45;&gt;INT_BOT</title>
+<path fill="none" stroke="black" d="M515.2,-190.66C472.47,-173.93 369.55,-133.64 313.87,-111.84"/>
+<polygon fill="black" stroke="black" points="315.4,-108.68 304.81,-108.29 312.84,-115.2 315.4,-108.68"/>
+</g>
+<!-- TUPLE1 -->
+<g id="node16" class="node">
+<title>TUPLE1</title>
+<polygon fill="none" stroke="none" points="652.6,-225.75 598.6,-225.75 598.6,-172.75 652.6,-172.75 652.6,-225.75"/>
+<polygon fill="pink" stroke="none" points="609.1,-199.25 609.1,-221.75 642.1,-221.75 642.1,-199.25 609.1,-199.25"/>
+<polygon fill="none" stroke="black" points="609.1,-199.25 609.1,-221.75 642.1,-221.75 642.1,-199.25 609.1,-199.25"/>
+<text text-anchor="start" x="612.1" y="-205.45" font-family="Times New Roman,serif" font-size="14.00">tuple</text>
+<polygon fill="black" stroke="none" points="609.1,-176.75 609.1,-199.25 642.1,-199.25 642.1,-176.75 609.1,-176.75"/>
+<polygon fill="none" stroke="black" points="609.1,-176.75 609.1,-199.25 642.1,-199.25 642.1,-176.75 609.1,-176.75"/>
+<text text-anchor="start" x="613.97" y="-182.95" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
+</g>
+<!-- TUPLE_TOP&#45;&gt;TUPLE1 -->
+<g id="edge27" class="edge">
+<title>TUPLE_TOP&#45;&gt;TUPLE1</title>
+<path fill="none" stroke="black" d="M665.45,-284.12C659.18,-270.91 650.28,-252.2 642.49,-235.8"/>
+<polygon fill="black" stroke="black" points="645.67,-234.33 638.22,-226.8 639.35,-237.34 645.67,-234.33"/>
+</g>
+<!-- TUPLE2 -->
+<g id="node17" class="node">
+<title>TUPLE2</title>
+<polygon fill="none" stroke="none" points="749.6,-237 695.6,-237 695.6,-161.5 749.6,-161.5 749.6,-237"/>
+<polygon fill="pink" stroke="none" points="706.1,-210.5 706.1,-233 739.1,-233 739.1,-210.5 706.1,-210.5"/>
+<polygon fill="none" stroke="black" points="706.1,-210.5 706.1,-233 739.1,-233 739.1,-210.5 706.1,-210.5"/>
+<text text-anchor="start" x="709.1" y="-216.7" font-family="Times New Roman,serif" font-size="14.00">tuple</text>
+<polygon fill="black" stroke="none" points="706.1,-188 706.1,-210.5 739.1,-210.5 739.1,-188 706.1,-188"/>
+<polygon fill="none" stroke="black" points="706.1,-188 706.1,-210.5 739.1,-210.5 739.1,-188 706.1,-188"/>
+<text text-anchor="start" x="710.97" y="-194.2" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
+<polygon fill="black" stroke="none" points="706.1,-165.5 706.1,-188 739.1,-188 739.1,-165.5 706.1,-165.5"/>
+<polygon fill="none" stroke="black" points="706.1,-165.5 706.1,-188 739.1,-188 739.1,-165.5 706.1,-165.5"/>
+<text text-anchor="start" x="710.97" y="-171.7" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
+</g>
+<!-- TUPLE_TOP&#45;&gt;TUPLE2 -->
+<g id="edge28" class="edge">
+<title>TUPLE_TOP&#45;&gt;TUPLE2</title>
+<path fill="none" stroke="black" d="M681.91,-284.12C686.91,-273.8 693.55,-260.12 700.01,-246.81"/>
+<polygon fill="black" stroke="black" points="703,-248.65 704.22,-238.13 696.7,-245.6 703,-248.65"/>
+</g>
+<!-- TUPLEN -->
+<g id="node18" class="node">
+<title>TUPLEN</title>
+<polygon fill="none" stroke="none" points="846.6,-248.25 792.6,-248.25 792.6,-150.25 846.6,-150.25 846.6,-248.25"/>
+<polygon fill="pink" stroke="none" points="803.1,-221.75 803.1,-244.25 836.1,-244.25 836.1,-221.75 803.1,-221.75"/>
+<polygon fill="none" stroke="black" points="803.1,-221.75 803.1,-244.25 836.1,-244.25 836.1,-221.75 803.1,-221.75"/>
+<text text-anchor="start" x="806.1" y="-227.95" font-family="Times New Roman,serif" font-size="14.00">tuple</text>
+<polygon fill="black" stroke="none" points="803.1,-199.25 803.1,-221.75 836.1,-221.75 836.1,-199.25 803.1,-199.25"/>
+<polygon fill="none" stroke="black" points="803.1,-199.25 803.1,-221.75 836.1,-221.75 836.1,-199.25 803.1,-199.25"/>
+<text text-anchor="start" x="807.97" y="-205.45" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
+<polygon fill="black" stroke="none" points="803.1,-176.75 803.1,-199.25 836.1,-199.25 836.1,-176.75 803.1,-176.75"/>
+<polygon fill="none" stroke="black" points="803.1,-176.75 803.1,-199.25 836.1,-199.25 836.1,-176.75 803.1,-176.75"/>
+<text text-anchor="start" x="813.97" y="-182.95" font-family="Times New Roman,serif" font-size="14.00" fill="white">...</text>
+<polygon fill="black" stroke="none" points="803.1,-154.25 803.1,-176.75 836.1,-176.75 836.1,-154.25 803.1,-154.25"/>
+<polygon fill="none" stroke="black" points="803.1,-154.25 803.1,-176.75 836.1,-176.75 836.1,-154.25 803.1,-154.25"/>
+<text text-anchor="start" x="807.97" y="-160.45" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text>
+</g>
+<!-- TUPLE_TOP&#45;&gt;TUPLEN -->
+<g id="edge29" class="edge">
+<title>TUPLE_TOP&#45;&gt;TUPLEN</title>
+<path fill="none" stroke="black" d="M695.14,-286.35C718.34,-270.29 755.65,-244.48 783.38,-225.3"/>
+<polygon fill="black" stroke="black" points="785.27,-228.25 791.51,-219.68 781.29,-222.49 785.27,-228.25"/>
+</g>
+<!-- TUPLE_BOT -->
+<g id="node15" class="node">
+<title>TUPLE_BOT</title>
+<ellipse fill="pink" stroke="black" cx="673.6" cy="-96.25" rx="42.65" ry="18"/>
+<text text-anchor="start" x="650.35" y="-92.2" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊥</text>
+<text text-anchor="start" x="666.1" y="-92.2" font-family="Times New Roman,serif" font-size="14.00">:tuple</text>
+</g>
+<!-- TUPLE_BOT&#45;&gt;BOT -->
+<g id="edge33" class="edge">
+<title>TUPLE_BOT&#45;&gt;BOT</title>
+<path fill="none" stroke="black" d="M635.17,-88.17C557.01,-73.77 380.82,-41.32 308.5,-28"/>
+<polygon fill="black" stroke="black" points="309.38,-24.6 298.91,-26.23 308.11,-31.49 309.38,-24.6"/>
+</g>
+<!-- TUPLE1&#45;&gt;TUPLE_BOT -->
+<g id="edge30" class="edge">
+<title>TUPLE1&#45;&gt;TUPLE_BOT</title>
+<path fill="none" stroke="black" d="M637.71,-172.76C644.73,-158 653.56,-139.41 660.7,-124.38"/>
+<polygon fill="black" stroke="black" points="663.78,-126.06 664.91,-115.53 657.45,-123.06 663.78,-126.06"/>
+</g>
+<!-- TUPLE2&#45;&gt;TUPLE_BOT -->
+<g id="edge31" class="edge">
+<title>TUPLE2&#45;&gt;TUPLE_BOT</title>
+<path fill="none" stroke="black" d="M704.77,-161.5C698.84,-149.27 692.34,-135.89 686.82,-124.51"/>
+<polygon fill="black" stroke="black" points="690.05,-123.15 682.54,-115.69 683.76,-126.21 690.05,-123.15"/>
+</g>
+<!-- TUPLEN&#45;&gt;TUPLE_BOT -->
+<g id="edge32" class="edge">
+<title>TUPLEN&#45;&gt;TUPLE_BOT</title>
+<path fill="none" stroke="black" d="M792.82,-179.72C767.85,-162.45 730.64,-136.71 704.44,-118.58"/>
+<polygon fill="black" stroke="black" points="706.45,-115.72 696.23,-112.91 702.46,-121.47 706.45,-115.72"/>
+</g>
+</g>
+</svg>