diff options
Diffstat (limited to 'chapter10a/docs/lattice.svg')
| -rw-r--r-- | chapter10a/docs/lattice.svg | 466 |
1 files changed, 466 insertions, 0 deletions
diff --git a/chapter10a/docs/lattice.svg b/chapter10a/docs/lattice.svg new file mode 100644 index 00000000..aa296366 --- /dev/null +++ b/chapter10a/docs/lattice.svg @@ -0,0 +1,466 @@ +<?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="1132pt" height="440pt" + viewBox="0.00 0.00 1131.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,-436.5 1127.51,-436.5 1127.51,4 -4,4"/> +<!-- TOP --> +<g id="node1" class="node"> +<title>TOP</title> +<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="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->XCTRL --> +<g id="edge1" class="edge"> +<title>TOP->XCTRL</title> +<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="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->INT_TOP --> +<g id="edge4" class="edge"> +<title>TOP->INT_TOP</title> +<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="node10" class="node"> +<title>PTR</title> +<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->PTR --> +<g id="edge14" class="edge"> +<title>TOP->PTR</title> +<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="node12" class="node"> +<title>STRUCT_TOP</title> +<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->STRUCT_TOP --> +<g id="edge17" class="edge"> +<title>TOP->STRUCT_TOP</title> +<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="node17" class="node"> +<title>MEM_TOP</title> +<ellipse fill="blue" stroke="black" cx="757.51" cy="-327.75" rx="43.67" ry="18"/> +<text text-anchor="start" x="733.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="749.26" y="-323.7" font-family="Times New Roman,serif" font-size="14.00" fill="white">:mem</text> +</g> +<!-- TOP->MEM_TOP --> +<g id="edge27" class="edge"> +<title>TOP->MEM_TOP</title> +<path fill="none" stroke="black" d="M498.57,-404.5C542.92,-391.53 650.2,-360.14 711.86,-342.1"/> +<polygon fill="black" stroke="black" points="712.75,-345.49 721.37,-339.32 710.79,-338.77 712.75,-345.49"/> +</g> +<!-- TUPLE_TOP --> +<g id="node19" class="node"> +<title>TUPLE_TOP</title> +<ellipse fill="pink" stroke="black" cx="950.51" cy="-327.75" rx="42.65" ry="18"/> +<text text-anchor="start" x="927.26" y="-323.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊤</text> +<text text-anchor="start" x="943.01" y="-323.7" font-family="Times New Roman,serif" font-size="14.00">:tuple</text> +</g> +<!-- TOP->TUPLE_TOP --> +<g id="edge30" class="edge"> +<title>TOP->TUPLE_TOP</title> +<path fill="none" stroke="black" d="M499.4,-406.76C569.58,-394.62 798.17,-355.09 900.36,-337.42"/> +<polygon fill="black" stroke="black" points="900.85,-340.89 910.1,-335.74 899.65,-333.99 900.85,-340.89"/> +</g> +<!-- BOT --> +<g id="node2" class="node"> +<title>BOT</title> +<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="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->CTRL --> +<g id="edge2" class="edge"> +<title>XCTRL->CTRL</title> +<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->BOT --> +<g id="edge3" class="edge"> +<title>CTRL->BOT</title> +<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="node7" class="node"> +<title>INT_MINDOTS</title> +<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->INT_MINDOTS --> +<g id="edge5" class="edge"> +<title>INT_TOP->INT_MINDOTS</title> +<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="node8" class="node"> +<title>INT_ZERO</title> +<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->INT_ZERO --> +<g id="edge6" class="edge"> +<title>INT_TOP->INT_ZERO</title> +<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="node9" class="node"> +<title>INT_MAXDOTS</title> +<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->INT_MAXDOTS --> +<g id="edge7" class="edge"> +<title>INT_TOP->INT_MAXDOTS</title> +<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="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->BOT --> +<g id="edge11" class="edge"> +<title>INT_BOT->BOT</title> +<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_MINDOTS->INT_BOT --> +<g id="edge8" class="edge"> +<title>INT_MINDOTS->INT_BOT</title> +<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->INT_ZERO --> +<!-- INT_ZERO->INT_BOT --> +<g id="edge9" class="edge"> +<title>INT_ZERO->INT_BOT</title> +<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->INT_MAXDOTS --> +<!-- INT_MAXDOTS->INT_BOT --> +<g id="edge10" class="edge"> +<title>INT_MAXDOTS->INT_BOT</title> +<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="node11" class="node"> +<title>PTR0</title> +<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->PTR0 --> +<g id="edge15" class="edge"> +<title>PTR->PTR0</title> +<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->BOT --> +<g id="edge16" class="edge"> +<title>PTR0->BOT</title> +<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="node14" class="node"> +<title>STRUCT_S1</title> +<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="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="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->STRUCT_S1 --> +<g id="edge18" class="edge"> +<title>STRUCT_TOP->STRUCT_S1</title> +<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="node15" class="node"> +<title>STRUCT_S2</title> +<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="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="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="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="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->STRUCT_S2 --> +<g id="edge19" class="edge"> +<title>STRUCT_TOP->STRUCT_S2</title> +<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="node16" class="node"> +<title>STRUCT_SN</title> +<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="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="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">...  </text> +<defs> +<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="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="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="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->STRUCT_SN --> +<g id="edge20" class="edge"> +<title>STRUCT_TOP->STRUCT_SN</title> +<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_BOT --> +<g id="node13" class="node"> +<title>STRUCT_BOT</title> +<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->BOT --> +<g id="edge24" class="edge"> +<title>STRUCT_BOT->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->STRUCT_BOT --> +<g id="edge21" class="edge"> +<title>STRUCT_S1->STRUCT_BOT</title> +<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_S1->STRUCT_S2 --> +<!-- STRUCT_S2->STRUCT_BOT --> +<g id="edge22" class="edge"> +<title>STRUCT_S2->STRUCT_BOT</title> +<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->STRUCT_SN --> +<!-- STRUCT_SN->STRUCT_BOT --> +<g id="edge23" class="edge"> +<title>STRUCT_SN->STRUCT_BOT</title> +<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_BOT --> +<g id="node18" class="node"> +<title>MEM_BOT</title> +<ellipse fill="blue" stroke="black" cx="756.51" cy="-104.75" rx="43.67" ry="18"/> +<text text-anchor="start" x="732.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="748.26" y="-100.7" font-family="Times New Roman,serif" font-size="14.00" fill="white">:mem</text> +</g> +<!-- MEM_TOP->MEM_BOT --> +<g id="edge28" class="edge"> +<title>MEM_TOP->MEM_BOT</title> +<path fill="none" stroke="black" d="M757.43,-309.5C757.25,-271.02 756.85,-181.25 756.64,-134.4"/> +<polygon fill="black" stroke="black" points="760.14,-134.43 756.6,-124.45 753.14,-134.47 760.14,-134.43"/> +</g> +<!-- MEM_BOT->BOT --> +<g id="edge29" class="edge"> +<title>MEM_BOT->BOT</title> +<path fill="none" stroke="black" d="M720.57,-94.23C659.71,-78.09 537.34,-45.67 479.79,-30.41"/> +<polygon fill="black" stroke="black" points="480.88,-27.08 470.32,-27.9 479.09,-33.85 480.88,-27.08"/> +</g> +<!-- TUPLE1 --> +<g id="node21" class="node"> +<title>TUPLE1</title> +<polygon fill="none" stroke="none" points="929.51,-242.75 875.51,-242.75 875.51,-189.75 929.51,-189.75 929.51,-242.75"/> +<polygon fill="pink" stroke="none" points="883.76,-216.25 883.76,-238.75 921.26,-238.75 921.26,-216.25 883.76,-216.25"/> +<polygon fill="none" stroke="black" points="883.76,-216.25 883.76,-238.75 921.26,-238.75 921.26,-216.25 883.76,-216.25"/> +<text text-anchor="start" x="886.76" y="-222.45" font-family="Times New Roman,serif" font-size="14.00">Tuple</text> +<polygon fill="black" stroke="none" points="883.76,-193.75 883.76,-216.25 921.26,-216.25 921.26,-193.75 883.76,-193.75"/> +<polygon fill="none" stroke="black" points="883.76,-193.75 883.76,-216.25 921.26,-216.25 921.26,-193.75 883.76,-193.75"/> +<text text-anchor="start" x="890.88" y="-199.95" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text> +</g> +<!-- TUPLE_TOP->TUPLE1 --> +<g id="edge31" class="edge"> +<title>TUPLE_TOP->TUPLE1</title> +<path fill="none" stroke="black" d="M943.01,-309.64C936.37,-294.48 926.45,-271.87 918.1,-252.81"/> +<polygon fill="black" stroke="black" points="921.35,-251.51 914.13,-243.76 914.94,-254.32 921.35,-251.51"/> +</g> +<!-- TUPLE2 --> +<g id="node22" class="node"> +<title>TUPLE2</title> +<polygon fill="none" stroke="none" points="1026.51,-254 972.51,-254 972.51,-178.5 1026.51,-178.5 1026.51,-254"/> +<polygon fill="pink" stroke="none" points="980.76,-227.5 980.76,-250 1018.26,-250 1018.26,-227.5 980.76,-227.5"/> +<polygon fill="none" stroke="black" points="980.76,-227.5 980.76,-250 1018.26,-250 1018.26,-227.5 980.76,-227.5"/> +<text text-anchor="start" x="983.76" y="-233.7" font-family="Times New Roman,serif" font-size="14.00">Tuple</text> +<polygon fill="black" stroke="none" points="980.76,-205 980.76,-227.5 1018.26,-227.5 1018.26,-205 980.76,-205"/> +<polygon fill="none" stroke="black" points="980.76,-205 980.76,-227.5 1018.26,-227.5 1018.26,-205 980.76,-205"/> +<text text-anchor="start" x="987.88" y="-211.2" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text> +<polygon fill="black" stroke="none" points="980.76,-182.5 980.76,-205 1018.26,-205 1018.26,-182.5 980.76,-182.5"/> +<polygon fill="none" stroke="black" points="980.76,-182.5 980.76,-205 1018.26,-205 1018.26,-182.5 980.76,-182.5"/> +<text text-anchor="start" x="987.88" y="-188.7" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text> +</g> +<!-- TUPLE_TOP->TUPLE2 --> +<g id="edge32" class="edge"> +<title>TUPLE_TOP->TUPLE2</title> +<path fill="none" stroke="black" d="M958.17,-309.64C963.64,-297.4 971.29,-280.3 978.53,-264.14"/> +<polygon fill="black" stroke="black" points="981.68,-265.65 982.57,-255.09 975.3,-262.79 981.68,-265.65"/> +</g> +<!-- TUPLEN --> +<g id="node23" class="node"> +<title>TUPLEN</title> +<polygon fill="none" stroke="none" points="1123.51,-265.25 1069.51,-265.25 1069.51,-167.25 1123.51,-167.25 1123.51,-265.25"/> +<polygon fill="pink" stroke="none" points="1077.76,-238.75 1077.76,-261.25 1115.26,-261.25 1115.26,-238.75 1077.76,-238.75"/> +<polygon fill="none" stroke="black" points="1077.76,-238.75 1077.76,-261.25 1115.26,-261.25 1115.26,-238.75 1077.76,-238.75"/> +<text text-anchor="start" x="1080.76" y="-244.95" font-family="Times New Roman,serif" font-size="14.00">Tuple</text> +<polygon fill="black" stroke="none" points="1077.76,-216.25 1077.76,-238.75 1115.26,-238.75 1115.26,-216.25 1077.76,-216.25"/> +<polygon fill="none" stroke="black" points="1077.76,-216.25 1077.76,-238.75 1115.26,-238.75 1115.26,-216.25 1077.76,-216.25"/> +<text text-anchor="start" x="1084.88" y="-222.45" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text> +<polygon fill="black" stroke="none" points="1077.76,-193.75 1077.76,-216.25 1115.26,-216.25 1115.26,-193.75 1077.76,-193.75"/> +<polygon fill="none" stroke="black" points="1077.76,-193.75 1077.76,-216.25 1115.26,-216.25 1115.26,-193.75 1077.76,-193.75"/> +<text text-anchor="start" x="1090.88" y="-199.95" font-family="Times New Roman,serif" font-size="14.00" fill="white">...</text> +<polygon fill="black" stroke="none" points="1077.76,-171.25 1077.76,-193.75 1115.26,-193.75 1115.26,-171.25 1077.76,-171.25"/> +<polygon fill="none" stroke="black" points="1077.76,-171.25 1077.76,-193.75 1115.26,-193.75 1115.26,-171.25 1077.76,-171.25"/> +<text text-anchor="start" x="1084.88" y="-177.45" font-family="Times New Roman,serif" font-size="14.00" fill="white">type</text> +</g> +<!-- TUPLE_TOP->TUPLEN --> +<g id="edge33" class="edge"> +<title>TUPLE_TOP->TUPLEN</title> +<path fill="none" stroke="black" d="M970.81,-311.52C993.97,-294.15 1032.28,-265.42 1060.53,-244.23"/> +<polygon fill="black" stroke="black" points="1062.58,-247.07 1068.48,-238.27 1058.38,-241.47 1062.58,-247.07"/> +</g> +<!-- TUPLE_BOT --> +<g id="node20" class="node"> +<title>TUPLE_BOT</title> +<ellipse fill="pink" stroke="black" cx="950.51" cy="-104.75" rx="42.65" ry="18"/> +<text text-anchor="start" x="927.26" y="-100.7" font-family="Times New Roman,serif" font-weight="bold" font-size="14.00">⊥</text> +<text text-anchor="start" x="943.01" y="-100.7" font-family="Times New Roman,serif" font-size="14.00">:tuple</text> +</g> +<!-- TUPLE_BOT->BOT --> +<g id="edge37" class="edge"> +<title>TUPLE_BOT->BOT</title> +<path fill="none" stroke="black" d="M911.12,-97.34C814.88,-81.7 569.24,-41.75 480.83,-27.38"/> +<polygon fill="black" stroke="black" points="481.59,-23.96 471.16,-25.81 480.47,-30.87 481.59,-23.96"/> +</g> +<!-- TUPLE1->TUPLE_BOT --> +<g id="edge34" class="edge"> +<title>TUPLE1->TUPLE_BOT</title> +<path fill="none" stroke="black" d="M913.64,-189.85C921.12,-172.8 930.96,-150.34 938.59,-132.93"/> +<polygon fill="black" stroke="black" points="941.61,-134.78 942.41,-124.21 935.19,-131.97 941.61,-134.78"/> +</g> +<!-- TUPLE2->TUPLE_BOT --> +<g id="edge35" class="edge"> +<title>TUPLE2->TUPLE_BOT</title> +<path fill="none" stroke="black" d="M983.19,-178.79C976.51,-163.86 968.92,-146.89 962.73,-133.07"/> +<polygon fill="black" stroke="black" points="966.02,-131.83 958.74,-124.13 959.63,-134.69 966.02,-131.83"/> +</g> +<!-- TUPLEN->TUPLE_BOT --> +<g id="edge36" class="edge"> +<title>TUPLEN->TUPLE_BOT</title> +<path fill="none" stroke="black" d="M1069.73,-195.16C1044.22,-176.03 1005.9,-147.29 979.64,-127.59"/> +<polygon fill="black" stroke="black" points="981.86,-124.89 971.76,-121.69 977.66,-130.49 981.86,-124.89"/> +</g> +</g> +</svg> |
