ghcup-hs/docs/modules_wide.svg

537 lines
28 KiB
XML

<?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 5.0.0 (0)
-->
<!-- Title: G Pages: 1 -->
<svg width="1076pt" height="648pt"
viewBox="0.00 0.00 1075.76 648.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(0.867238 0.867238) rotate(0) translate(4 743.2)">
<title>G</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-743.2 1236.45,-743.2 1236.45,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_0</title>
<polygon fill="#000000" fill-opacity="0.058824" stroke="#000000" stroke-opacity="0.058824" points="8,-9.36 8,-729.84 1156,-729.84 1156,-9.36 8,-9.36"/>
<text text-anchor="middle" x="582" y="-714.64" font-family="Times,serif" font-size="14.00">GHCup</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_1</title>
<polygon fill="#000000" fill-opacity="0.058824" stroke="#000000" stroke-opacity="0.058824" points="661,-466.68 661,-642.12 929,-642.12 929,-466.68 661,-466.68"/>
<text text-anchor="middle" x="795" y="-626.92" font-family="Times,serif" font-size="14.00">Download</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_2</title>
<polygon fill="#000000" fill-opacity="0.058824" stroke="#000000" stroke-opacity="0.058824" points="545,-18.71 545,-457.32 1020,-457.32 1020,-18.71 545,-18.71"/>
<text text-anchor="middle" x="782.5" y="-442.12" font-family="Times,serif" font-size="14.00">Prelude</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_3</title>
<polygon fill="#000000" fill-opacity="0.058824" stroke="#000000" stroke-opacity="0.058824" points="558,-102.93 558,-190.65 735,-190.65 735,-102.93 558,-102.93"/>
<text text-anchor="middle" x="646.5" y="-175.45" font-family="Times,serif" font-size="14.00">File</text>
</g>
<g id="clust5" class="cluster">
<title>cluster_4</title>
<polygon fill="#000000" fill-opacity="0.058824" stroke="#000000" stroke-opacity="0.058824" points="553,-200.01 553,-287.73 771,-287.73 771,-200.01 553,-200.01"/>
<text text-anchor="middle" x="662" y="-272.53" font-family="Times,serif" font-size="14.00">Logger</text>
</g>
<g id="clust6" class="cluster">
<title>cluster_5</title>
<polygon fill="#000000" fill-opacity="0.058824" stroke="#000000" stroke-opacity="0.058824" points="779,-200.01 779,-287.73 1012,-287.73 1012,-200.01 779,-200.01"/>
<text text-anchor="middle" x="895.5" y="-272.53" font-family="Times,serif" font-size="14.00">Process</text>
</g>
<g id="clust7" class="cluster">
<title>cluster_6</title>
<polygon fill="#000000" fill-opacity="0.058824" stroke="#000000" stroke-opacity="0.058824" points="699,-333.34 699,-421.06 769,-421.06 769,-333.34 699,-333.34"/>
<text text-anchor="middle" x="734" y="-405.86" font-family="Times,serif" font-size="14.00">String</text>
</g>
<g id="clust8" class="cluster">
<title>cluster_7</title>
<polygon fill="#000000" fill-opacity="0.058824" stroke="#000000" stroke-opacity="0.058824" points="942,-333.34 942,-421.06 1012,-421.06 1012,-333.34 942,-333.34"/>
<text text-anchor="middle" x="977" y="-405.86" font-family="Times,serif" font-size="14.00">Version</text>
</g>
<g id="clust9" class="cluster">
<title>cluster_8</title>
<polygon fill="#000000" fill-opacity="0.058824" stroke="#000000" stroke-opacity="0.058824" points="16,-93.57 16,-323.98 413,-323.98 413,-93.57 16,-93.57"/>
<text text-anchor="middle" x="214.5" y="-308.78" font-family="Times,serif" font-size="14.00">Types</text>
</g>
<g id="clust10" class="cluster">
<title>cluster_9</title>
<polygon fill="#000000" fill-opacity="0.058824" stroke="#000000" stroke-opacity="0.058824" points="24,-102.93 24,-287.73 230,-287.73 230,-102.93 24,-102.93"/>
<text text-anchor="middle" x="127" y="-272.53" font-family="Times,serif" font-size="14.00">JSON</text>
</g>
<g id="clust11" class="cluster">
<title>cluster_10</title>
<polygon fill="#000000" fill-opacity="0.058824" stroke="#000000" stroke-opacity="0.058824" points="418,-466.68 418,-554.4 580,-554.4 580,-466.68 418,-466.68"/>
<text text-anchor="middle" x="499" y="-539.2" font-family="Times,serif" font-size="14.00">Utils</text>
</g>
<!-- u2 -->
<g id="node1" class="node">
<title>u2</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="2" cx="864" cy="-584.36" rx="56.59" ry="18"/>
<text text-anchor="middle" x="864" y="-580.66" font-family="Times,serif" font-size="14.00">Download</text>
</g>
<!-- u15 -->
<g id="node26" class="node">
<title>u15</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="0" cx="1097" cy="-497.36" rx="51.19" ry="18"/>
<text text-anchor="middle" x="1097" y="-493.66" font-family="Times,serif" font-size="14.00">Platform</text>
</g>
<!-- u2&#45;&gt;u15 -->
<g id="edge20" class="edge">
<title>u2&#45;&gt;u15</title>
<path fill="none" stroke="black" d="M904.22,-571.57C911.13,-569.72 918.25,-567.9 925,-566.36 973.86,-555.17 990.28,-566.91 1036,-546.36 1049.52,-540.28 1062.68,-530.57 1073.29,-521.46"/>
<polygon fill="black" stroke="black" points="1075.75,-523.96 1080.88,-514.69 1071.09,-518.74 1075.75,-523.96"/>
</g>
<!-- u22 -->
<g id="node27" class="node">
<title>u22</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="0" cx="982" cy="-497.36" rx="45.49" ry="18"/>
<text text-anchor="middle" x="982" y="-493.66" font-family="Times,serif" font-size="14.00">Version</text>
</g>
<!-- u2&#45;&gt;u22 -->
<g id="edge21" class="edge">
<title>u2&#45;&gt;u22</title>
<path fill="none" stroke="black" d="M895,-569.1C907.3,-562.85 921.28,-554.97 933,-546.36 942.7,-539.23 952.38,-530.25 960.54,-521.99"/>
<polygon fill="black" stroke="black" points="963.16,-524.32 967.56,-514.68 958.11,-519.47 963.16,-524.32"/>
</g>
<!-- u28 -->
<g id="node2" class="node">
<title>u28</title>
<ellipse fill="#bbbbff" stroke="black" stroke-width="0" cx="777" cy="-497.36" rx="33.29" ry="18"/>
<text text-anchor="middle" x="777" y="-493.66" font-family="Times,serif" font-size="14.00">Utils</text>
</g>
<!-- u16 -->
<g id="node12" class="node">
<title>u16</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="2" cx="826" cy="-363.36" rx="46.59" ry="18"/>
<text text-anchor="middle" x="826" y="-359.66" font-family="Times,serif" font-size="14.00">Prelude</text>
</g>
<!-- u28&#45;&gt;u16 -->
<g id="edge22" class="edge">
<title>u28&#45;&gt;u16</title>
<path fill="none" stroke="black" d="M783.21,-479.64C791.52,-457.25 806.36,-417.27 816.19,-390.78"/>
<polygon fill="black" stroke="black" points="819.49,-391.95 819.69,-381.36 812.93,-389.51 819.49,-391.95"/>
</g>
<!-- u31 -->
<g id="node3" class="node">
<title>u31</title>
<ellipse fill="#bbbbff" stroke="black" stroke-width="0" cx="729" cy="-584.36" rx="60.39" ry="18"/>
<text text-anchor="middle" x="729" y="-580.66" font-family="Times,serif" font-size="14.00">IOStreams</text>
</g>
<!-- u31&#45;&gt;u28 -->
<g id="edge23" class="edge">
<title>u31&#45;&gt;u28</title>
<path fill="none" stroke="black" d="M738.48,-566.56C745.36,-554.38 754.8,-537.67 762.61,-523.85"/>
<polygon fill="black" stroke="black" points="765.83,-525.25 767.7,-514.83 759.73,-521.81 765.83,-525.25"/>
</g>
<!-- u19 -->
<g id="node4" class="node">
<title>u19</title>
<ellipse fill="#ffbbbb" stroke="black" stroke-width="2" cx="595" cy="-133.36" rx="28.7" ry="18"/>
<text text-anchor="middle" x="595" y="-129.66" font-family="Times,serif" font-size="14.00">File</text>
</g>
<!-- u17 -->
<g id="node14" class="node">
<title>u17</title>
<ellipse fill="#ffbbbb" stroke="black" stroke-width="0" cx="601" cy="-49.36" rx="48.19" ry="18"/>
<text text-anchor="middle" x="601" y="-45.66" font-family="Times,serif" font-size="14.00">Internal</text>
</g>
<!-- u19&#45;&gt;u17 -->
<g id="edge27" class="edge">
<title>u19&#45;&gt;u17</title>
<path fill="none" stroke="black" d="M596.24,-115.37C597.03,-104.55 598.08,-90.3 598.98,-77.9"/>
<polygon fill="black" stroke="black" points="602.5,-77.84 599.74,-67.61 595.52,-77.33 602.5,-77.84"/>
</g>
<!-- u3 -->
<g id="node25" class="node">
<title>u3</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="0" cx="462" cy="-230.36" rx="40.89" ry="18"/>
<text text-anchor="middle" x="462" y="-226.66" font-family="Times,serif" font-size="14.00">Errors</text>
</g>
<!-- u19&#45;&gt;u3 -->
<g id="edge26" class="edge">
<title>u19&#45;&gt;u3</title>
<path fill="none" stroke="black" d="M576.84,-147.33C554.7,-163.14 517,-190.07 490.87,-208.74"/>
<polygon fill="black" stroke="black" points="488.59,-206.06 482.49,-214.72 492.66,-211.76 488.59,-206.06"/>
</g>
<!-- u12 -->
<g id="node5" class="node">
<title>u12</title>
<ellipse fill="#bbffff" stroke="black" stroke-width="0" cx="684" cy="-133.36" rx="42.79" ry="18"/>
<text text-anchor="middle" x="684" y="-129.66" font-family="Times,serif" font-size="14.00">Search</text>
</g>
<!-- u4 -->
<g id="node18" class="node">
<title>u4</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="2" cx="367" cy="-133.36" rx="38.19" ry="18"/>
<text text-anchor="middle" x="367" y="-129.66" font-family="Times,serif" font-size="14.00">Types</text>
</g>
<!-- u12&#45;&gt;u4 -->
<g id="edge28" class="edge">
<title>u12&#45;&gt;u4</title>
<path fill="none" stroke="black" d="M672.58,-150.78C661.96,-165.24 644.69,-184.79 624,-193.36 584.82,-209.58 467.94,-170.98 406.21,-148.35"/>
<polygon fill="black" stroke="black" points="407.38,-145.05 396.79,-144.87 404.96,-151.62 407.38,-145.05"/>
</g>
<!-- u18 -->
<g id="node6" class="node">
<title>u18</title>
<ellipse fill="#ffbbbb" stroke="black" stroke-width="2" cx="719" cy="-230.36" rx="43.59" ry="18"/>
<text text-anchor="middle" x="719" y="-226.66" font-family="Times,serif" font-size="14.00">Logger</text>
</g>
<!-- u18&#45;&gt;u19 -->
<g id="edge29" class="edge">
<title>u18&#45;&gt;u19</title>
<path fill="none" stroke="black" d="M691.65,-216.15C669.99,-205.4 641.81,-190.7 632,-182.36 624.03,-175.58 616.67,-166.82 610.64,-158.65"/>
<polygon fill="black" stroke="black" points="613.49,-156.62 604.88,-150.45 607.77,-160.64 613.49,-156.62"/>
</g>
<!-- u14 -->
<g id="node7" class="node">
<title>u14</title>
<ellipse fill="#ffbbff" stroke="black" stroke-width="0" cx="609" cy="-230.36" rx="48.19" ry="18"/>
<text text-anchor="middle" x="609" y="-226.66" font-family="Times,serif" font-size="14.00">Internal</text>
</g>
<!-- u14&#45;&gt;u4 -->
<g id="edge30" class="edge">
<title>u14&#45;&gt;u4</title>
<path fill="none" stroke="black" d="M577.11,-216.84C532.69,-199.4 452.29,-167.84 404.87,-149.22"/>
<polygon fill="black" stroke="black" points="406.15,-145.97 395.56,-145.57 403.59,-152.48 406.15,-145.97"/>
</g>
<!-- u20 -->
<g id="node8" class="node">
<title>u20</title>
<ellipse fill="#ffbbbb" stroke="black" stroke-width="2" cx="957" cy="-230.36" rx="46.59" ry="18"/>
<text text-anchor="middle" x="957" y="-226.66" font-family="Times,serif" font-size="14.00">Process</text>
</g>
<!-- u32 -->
<g id="node9" class="node">
<title>u32</title>
<ellipse fill="#77ff77" stroke="black" stroke-width="0" cx="840" cy="-230.36" rx="52.79" ry="18"/>
<text text-anchor="middle" x="840" y="-226.66" font-family="Times,serif" font-size="14.00">Windows</text>
</g>
<!-- u32&#45;&gt;u12 -->
<g id="edge31" class="edge">
<title>u32&#45;&gt;u12</title>
<path fill="none" stroke="black" d="M815.28,-214.3C788.42,-197.95 745.41,-171.75 715.99,-153.84"/>
<polygon fill="black" stroke="black" points="717.69,-150.78 707.33,-148.56 714.05,-156.75 717.69,-150.78"/>
</g>
<!-- u13 -->
<g id="node10" class="node">
<title>u13</title>
<ellipse fill="#ffff77" stroke="black" stroke-width="0" cx="734" cy="-363.36" rx="27" ry="18"/>
<text text-anchor="middle" x="734" y="-359.66" font-family="Times,serif" font-size="14.00">QQ</text>
</g>
<!-- u21 -->
<g id="node11" class="node">
<title>u21</title>
<ellipse fill="#7777ff" stroke="black" stroke-width="0" cx="977" cy="-363.36" rx="27" ry="18"/>
<text text-anchor="middle" x="977" y="-359.66" font-family="Times,serif" font-size="14.00">QQ</text>
</g>
<!-- u16&#45;&gt;u18 -->
<g id="edge24" class="edge">
<title>u16&#45;&gt;u18</title>
<path fill="none" stroke="black" d="M808.76,-346.13C798.53,-336.18 785.54,-322.97 775,-310.36 760.67,-293.21 746.13,-272.57 735.45,-256.69"/>
<polygon fill="black" stroke="black" points="738.09,-254.35 729.64,-247.95 732.26,-258.22 738.09,-254.35"/>
</g>
<!-- u10 -->
<g id="node13" class="node">
<title>u10</title>
<ellipse fill="#ffbbbb" stroke="black" stroke-width="0" cx="621" cy="-363.36" rx="67.69" ry="18"/>
<text text-anchor="middle" x="621" y="-359.66" font-family="Times,serif" font-size="14.00">MegaParsec</text>
</g>
<!-- u10&#45;&gt;u4 -->
<g id="edge25" class="edge">
<title>u10&#45;&gt;u4</title>
<path fill="none" stroke="black" d="M591.45,-347.12C576.78,-338.2 559.92,-325.68 549,-310.36 520.44,-270.28 549.21,-241.56 517,-204.36 489.55,-172.66 444.67,-154.35 411.14,-144.47"/>
<polygon fill="black" stroke="black" points="411.7,-141 401.13,-141.67 409.81,-147.74 411.7,-141"/>
</g>
<!-- u8 -->
<g id="node15" class="node">
<title>u8</title>
<ellipse fill="#ff7777" stroke="black" stroke-width="2" cx="68" cy="-230.36" rx="36" ry="18"/>
<text text-anchor="middle" x="68" y="-226.66" font-family="Times,serif" font-size="14.00">JSON</text>
</g>
<!-- u8&#45;&gt;u10 -->
<g id="edge35" class="edge">
<title>u8&#45;&gt;u10</title>
<path fill="none" stroke="black" d="M72.64,-248.48C78.64,-267.08 91.05,-296.05 113,-310.36 148.38,-333.41 412.5,-350.95 545.27,-358.42"/>
<polygon fill="black" stroke="black" points="545.2,-361.92 555.38,-358.98 545.59,-354.93 545.2,-361.92"/>
</g>
<!-- u9 -->
<g id="node17" class="node">
<title>u9</title>
<ellipse fill="#77ffff" stroke="black" stroke-width="0" cx="68" cy="-133.36" rx="33.29" ry="18"/>
<text text-anchor="middle" x="68" y="-129.66" font-family="Times,serif" font-size="14.00">Utils</text>
</g>
<!-- u8&#45;&gt;u9 -->
<g id="edge37" class="edge">
<title>u8&#45;&gt;u9</title>
<path fill="none" stroke="black" d="M68,-211.93C68,-198.01 68,-178.22 68,-162.11"/>
<polygon fill="black" stroke="black" points="71.5,-161.67 68,-151.67 64.5,-161.67 71.5,-161.67"/>
</g>
<!-- u5 -->
<g id="node19" class="node">
<title>u5</title>
<ellipse fill="#ff7777" stroke="black" stroke-width="0" cx="274" cy="-133.36" rx="36.29" ry="18"/>
<text text-anchor="middle" x="274" y="-129.66" font-family="Times,serif" font-size="14.00">Stack</text>
</g>
<!-- u8&#45;&gt;u5 -->
<g id="edge36" class="edge">
<title>u8&#45;&gt;u5</title>
<path fill="none" stroke="black" d="M89.29,-215.65C96.57,-211.48 104.92,-207.25 113,-204.36 164.47,-185.95 186.78,-209.89 234,-182.36 243.56,-176.78 251.85,-168.03 258.37,-159.52"/>
<polygon fill="black" stroke="black" points="261.33,-161.39 264.27,-151.21 255.63,-157.33 261.33,-161.39"/>
</g>
<!-- u6 -->
<g id="node16" class="node">
<title>u6</title>
<ellipse fill="#77ffff" stroke="black" stroke-width="0" cx="172" cy="-230.36" rx="50.09" ry="18"/>
<text text-anchor="middle" x="172" y="-226.66" font-family="Times,serif" font-size="14.00">Versions</text>
</g>
<!-- u7 -->
<g id="node22" class="node">
<title>u7</title>
<ellipse fill="#ff77ff" stroke="black" stroke-width="0" cx="457" cy="-497.36" rx="30.59" ry="18"/>
<text text-anchor="middle" x="457" y="-493.66" font-family="Times,serif" font-size="14.00">Dirs</text>
</g>
<!-- u4&#45;&gt;u7 -->
<g id="edge32" class="edge">
<title>u4&#45;&gt;u7</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M374.54,-151.23C380.4,-165.18 388.15,-185.65 392,-204.36 413.44,-308.61 364.63,-345.72 407,-443.36 412.35,-455.69 421.87,-466.91 431.18,-475.82"/>
<polygon fill="black" stroke="black" points="429.08,-478.65 438.86,-482.74 433.77,-473.45 429.08,-478.65"/>
</g>
<!-- u5&#45;&gt;u6 -->
<g id="edge33" class="edge">
<title>u5&#45;&gt;u6</title>
<path fill="none" stroke="black" d="M261.88,-150.72C254.35,-160.39 244.2,-172.62 234,-182.36 224.46,-191.47 213.18,-200.47 202.87,-208.11"/>
<polygon fill="black" stroke="black" points="200.53,-205.48 194.5,-214.19 204.65,-211.15 200.53,-205.48"/>
</g>
<!-- u11 -->
<g id="node20" class="node">
<title>u11</title>
<ellipse fill="#ff7777" stroke="black" stroke-width="0" cx="343" cy="-230.36" rx="40.09" ry="18"/>
<text text-anchor="middle" x="343" y="-226.66" font-family="Times,serif" font-size="14.00">Optics</text>
</g>
<!-- u11&#45;&gt;u4 -->
<g id="edge34" class="edge">
<title>u11&#45;&gt;u4</title>
<path fill="none" stroke="black" d="M347.29,-212.37C350.85,-198.28 355.98,-177.96 360.12,-161.59"/>
<polygon fill="black" stroke="black" points="363.61,-162.07 362.67,-151.51 356.82,-160.35 363.61,-162.07"/>
</g>
<!-- u23 -->
<g id="node21" class="node">
<title>u23</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="2" cx="539" cy="-497.36" rx="33.29" ry="18"/>
<text text-anchor="middle" x="539" y="-493.66" font-family="Times,serif" font-size="14.00">Utils</text>
</g>
<!-- u23&#45;&gt;u2 -->
<g id="edge38" class="edge">
<title>u23&#45;&gt;u2</title>
<path fill="none" stroke="black" d="M562.81,-510.07C586.22,-521.1 623.26,-537.25 657,-546.36 718.11,-562.85 735.92,-554 798,-566.36 802.75,-567.3 807.68,-568.38 812.59,-569.53"/>
<polygon fill="black" stroke="black" points="812.07,-573 822.62,-571.95 813.72,-566.2 812.07,-573"/>
</g>
<!-- u7&#45;&gt;u12 -->
<g id="edge40" class="edge">
<title>u7&#45;&gt;u12</title>
<path fill="none" stroke="black" d="M469.12,-480.58C476.19,-470.5 484.56,-456.83 489,-443.36 503.82,-398.42 475.34,-378.34 499,-337.36 509.36,-319.41 526.47,-328.2 537,-310.36 561.09,-269.52 517.96,-240.2 549,-204.36 574.26,-175.18 599.24,-201.05 633,-182.36 644.19,-176.16 654.79,-166.95 663.41,-158.26"/>
<polygon fill="black" stroke="black" points="666.1,-160.5 670.42,-150.83 661.01,-155.69 666.1,-160.5"/>
</g>
<!-- u7&#45;&gt;u14 -->
<g id="edge41" class="edge">
<title>u7&#45;&gt;u14</title>
<path fill="none" stroke="black" d="M471.16,-481C479.99,-470.86 491.13,-456.98 499,-443.36 524.34,-399.47 517.88,-382.45 541,-337.36 555.84,-308.42 576.39,-277.32 591.01,-256.34"/>
<polygon fill="black" stroke="black" points="593.98,-258.2 596.88,-248.01 588.26,-254.17 593.98,-258.2"/>
</g>
<!-- u7&#45;&gt;u13 -->
<g id="edge42" class="edge">
<title>u7&#45;&gt;u13</title>
<path fill="none" stroke="black" d="M475.28,-482.66C481.82,-478.39 489.45,-474.09 497,-471.36 583.9,-439.95 630.35,-500.44 703,-443.36 718.83,-430.92 726.59,-409.25 730.39,-391.75"/>
<polygon fill="black" stroke="black" points="733.91,-391.98 732.28,-381.51 727.02,-390.71 733.91,-391.98"/>
</g>
<!-- u7&#45;&gt;u8 -->
<g id="edge44" class="edge">
<title>u7&#45;&gt;u8</title>
<path fill="none" stroke="black" d="M430.56,-487.89C368.33,-466.83 210.54,-406.76 113,-310.36 97.8,-295.33 86.09,-274.1 78.43,-257.43"/>
<polygon fill="black" stroke="black" points="81.61,-255.97 74.39,-248.22 75.2,-258.78 81.61,-255.97"/>
</g>
<!-- u7&#45;&gt;u11 -->
<g id="edge43" class="edge">
<title>u7&#45;&gt;u11</title>
<path fill="none" stroke="black" d="M437.17,-483.6C423.89,-474.05 407.07,-459.84 397,-443.36 360.76,-384.02 348.73,-301.14 344.83,-258.73"/>
<polygon fill="black" stroke="black" points="348.3,-258.29 343.98,-248.61 341.33,-258.87 348.3,-258.29"/>
</g>
<!-- u7&#45;&gt;u3 -->
<g id="edge39" class="edge">
<title>u7&#45;&gt;u3</title>
<path fill="none" stroke="black" d="M457.33,-478.97C458.18,-433.94 460.45,-313.25 461.48,-258.74"/>
<polygon fill="black" stroke="black" points="464.99,-258.53 461.68,-248.46 457.99,-258.4 464.99,-258.53"/>
</g>
<!-- u0 -->
<g id="node23" class="node">
<title>u0</title>
<ellipse fill="#bbffbb" stroke="black" stroke-width="2" cx="460" cy="-672.36" rx="44.39" ry="18"/>
<text text-anchor="middle" x="460" y="-668.66" font-family="Times,serif" font-size="14.00">GHCup</text>
</g>
<!-- u1 -->
<g id="node24" class="node">
<title>u1</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="0" cx="286" cy="-584.36" rx="37.09" ry="18"/>
<text text-anchor="middle" x="286" y="-580.66" font-family="Times,serif" font-size="14.00">Cabal</text>
</g>
<!-- u0&#45;&gt;u1 -->
<g id="edge3" class="edge">
<title>u0&#45;&gt;u1</title>
<path fill="none" stroke="black" d="M419.44,-664.9C393.11,-659.4 358.82,-649.71 332,-633.36 321.74,-627.1 312.22,-617.99 304.53,-609.39"/>
<polygon fill="black" stroke="black" points="307.16,-607.08 298.01,-601.72 301.82,-611.61 307.16,-607.08"/>
</g>
<!-- u24 -->
<g id="node28" class="node">
<title>u24</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="0" cx="539" cy="-584.36" rx="32.49" ry="18"/>
<text text-anchor="middle" x="539" y="-580.66" font-family="Times,serif" font-size="14.00">GHC</text>
</g>
<!-- u0&#45;&gt;u24 -->
<g id="edge4" class="edge">
<title>u0&#45;&gt;u24</title>
<path fill="none" stroke="black" d="M476.56,-655.36C483.33,-648.68 491.16,-640.76 498,-633.36 505.1,-625.67 512.61,-617.05 519.23,-609.25"/>
<polygon fill="black" stroke="black" points="522.25,-611.1 526.01,-601.19 516.89,-606.59 522.25,-611.1"/>
</g>
<!-- u25 -->
<g id="node29" class="node">
<title>u25</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="0" cx="620" cy="-584.36" rx="30.59" ry="18"/>
<text text-anchor="middle" x="620" y="-580.66" font-family="Times,serif" font-size="14.00">HLS</text>
</g>
<!-- u0&#45;&gt;u25 -->
<g id="edge5" class="edge">
<title>u0&#45;&gt;u25</title>
<path fill="none" stroke="black" d="M500.05,-664.63C524.66,-659.11 555.96,-649.5 580,-633.36 589.19,-627.19 597.4,-618.32 603.96,-609.87"/>
<polygon fill="black" stroke="black" points="606.87,-611.83 609.95,-601.69 601.22,-607.7 606.87,-611.83"/>
</g>
<!-- u26 -->
<g id="node30" class="node">
<title>u26</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="0" cx="377" cy="-584.36" rx="36.29" ry="18"/>
<text text-anchor="middle" x="377" y="-580.66" font-family="Times,serif" font-size="14.00">Stack</text>
</g>
<!-- u0&#45;&gt;u26 -->
<g id="edge6" class="edge">
<title>u0&#45;&gt;u26</title>
<path fill="none" stroke="black" d="M443.98,-655.57C437.16,-648.78 429.14,-640.73 422,-633.36 414.25,-625.36 405.88,-616.49 398.48,-608.57"/>
<polygon fill="black" stroke="black" points="400.84,-605.97 391.47,-601.04 395.72,-610.74 400.84,-605.97"/>
</g>
<!-- u27 -->
<g id="node31" class="node">
<title>u27</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="0" cx="460" cy="-584.36" rx="28.7" ry="18"/>
<text text-anchor="middle" x="460" y="-580.66" font-family="Times,serif" font-size="14.00">List</text>
</g>
<!-- u0&#45;&gt;u27 -->
<g id="edge7" class="edge">
<title>u0&#45;&gt;u27</title>
<path fill="none" stroke="black" d="M460,-653.95C460,-642.1 460,-626.17 460,-612.65"/>
<polygon fill="black" stroke="black" points="463.5,-612.44 460,-602.44 456.5,-612.44 463.5,-612.44"/>
</g>
<!-- u1&#45;&gt;u23 -->
<g id="edge8" class="edge">
<title>u1&#45;&gt;u23</title>
<path fill="none" stroke="black" d="M313.41,-572.04C319.45,-569.88 325.88,-567.84 332,-566.36 403.8,-548.99 431.69,-580.88 497,-546.36 507.24,-540.95 516.12,-531.94 523.05,-523.19"/>
<polygon fill="black" stroke="black" points="525.96,-525.13 529.07,-515 520.32,-520.98 525.96,-525.13"/>
</g>
<!-- u3&#45;&gt;u4 -->
<g id="edge9" class="edge">
<title>u3&#45;&gt;u4</title>
<path fill="none" stroke="black" d="M446.31,-213.67C431.05,-198.41 407.67,-175.03 390.25,-157.6"/>
<polygon fill="black" stroke="black" points="392.26,-154.66 382.71,-150.07 387.31,-159.61 392.26,-154.66"/>
</g>
<!-- u15&#45;&gt;u20 -->
<g id="edge11" class="edge">
<title>u15&#45;&gt;u20</title>
<path fill="none" stroke="black" d="M1113.9,-479.89C1122.62,-470.18 1132.39,-457.13 1137,-443.36 1151.97,-398.69 1160.38,-378.26 1137,-337.36 1108.78,-287.99 1047.61,-259.33 1004.44,-244.54"/>
<polygon fill="black" stroke="black" points="1005.29,-241.13 994.7,-241.33 1003.1,-247.78 1005.29,-241.13"/>
</g>
<!-- u15&#45;&gt;u21 -->
<g id="edge12" class="edge">
<title>u15&#45;&gt;u21</title>
<path fill="none" stroke="black" d="M1064.11,-483.23C1045.49,-474.36 1023.01,-461.04 1008,-443.36 995.41,-428.52 987.56,-407.97 982.91,-391.54"/>
<polygon fill="black" stroke="black" points="986.19,-390.25 980.3,-381.45 979.41,-392.01 986.19,-390.25"/>
</g>
<!-- u15&#45;&gt;u16 -->
<g id="edge10" class="edge">
<title>u15&#45;&gt;u16</title>
<path fill="none" stroke="black" d="M1065.91,-482.84C1056.39,-478.91 1045.84,-474.77 1036,-471.36 993.2,-456.52 978.86,-462.91 938,-443.36 906.22,-428.15 873.73,-404.1 851.98,-386.53"/>
<polygon fill="black" stroke="black" points="854.15,-383.78 844.2,-380.14 849.71,-389.19 854.15,-383.78"/>
</g>
<!-- u22&#45;&gt;u3 -->
<g id="edge13" class="edge">
<title>u22&#45;&gt;u3</title>
<path fill="none" stroke="black" d="M958.36,-481.89C950.55,-477.78 941.65,-473.76 933,-471.36 848.87,-447.93 610.91,-495.7 541,-443.36 481.77,-399.01 466.93,-305.12 463.23,-258.62"/>
<polygon fill="black" stroke="black" points="466.7,-258.14 462.53,-248.4 459.72,-258.62 466.7,-258.14"/>
</g>
<!-- u24&#45;&gt;u23 -->
<g id="edge14" class="edge">
<title>u24&#45;&gt;u23</title>
<path fill="none" stroke="black" d="M539,-566.16C539,-554.52 539,-538.9 539,-525.59"/>
<polygon fill="black" stroke="black" points="542.5,-525.53 539,-515.53 535.5,-525.53 542.5,-525.53"/>
</g>
<!-- u25&#45;&gt;u23 -->
<g id="edge15" class="edge">
<title>u25&#45;&gt;u23</title>
<path fill="none" stroke="black" d="M605.52,-568.16C593.04,-555.07 574.85,-535.98 560.64,-521.07"/>
<polygon fill="black" stroke="black" points="563.06,-518.53 553.63,-513.71 557.99,-523.36 563.06,-518.53"/>
</g>
<!-- u26&#45;&gt;u23 -->
<g id="edge16" class="edge">
<title>u26&#45;&gt;u23</title>
<path fill="none" stroke="black" d="M404.45,-572.49C410.21,-570.35 416.28,-568.2 422,-566.36 454.84,-555.8 467.7,-564.57 497,-546.36 506.69,-540.33 515.39,-531.38 522.32,-522.83"/>
<polygon fill="black" stroke="black" points="525.11,-524.94 528.4,-514.87 519.55,-520.69 525.11,-524.94"/>
</g>
<!-- u27&#45;&gt;u23 -->
<g id="edge17" class="edge">
<title>u27&#45;&gt;u23</title>
<path fill="none" stroke="black" d="M474.99,-568.81C481.81,-562.08 489.92,-553.92 497,-546.36 504.22,-538.64 511.9,-530 518.69,-522.2"/>
<polygon fill="black" stroke="black" points="521.75,-524.01 525.64,-514.16 516.45,-519.43 521.75,-524.01"/>
</g>
<!-- u29 -->
<g id="node32" class="node">
<title>u29</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="0" cx="1078" cy="-363.36" rx="50.09" ry="18"/>
<text text-anchor="middle" x="1078" y="-359.66" font-family="Times,serif" font-size="14.00">Prompts</text>
</g>
<!-- u29&#45;&gt;u18 -->
<g id="edge18" class="edge">
<title>u29&#45;&gt;u18</title>
<path fill="none" stroke="black" d="M1048.59,-348.6C1038.46,-344.37 1026.91,-340.11 1016,-337.36 911.5,-310.96 867.84,-365.11 775,-310.36 754.6,-298.32 739.69,-275.6 730.41,-257.61"/>
<polygon fill="black" stroke="black" points="733.35,-255.66 725.83,-248.19 727.05,-258.72 733.35,-255.66"/>
</g>
<!-- u30 -->
<g id="node33" class="node">
<title>u30</title>
<ellipse fill="#ffffbb" stroke="black" stroke-width="0" cx="1015" cy="-584.36" rx="76.09" ry="18"/>
<text text-anchor="middle" x="1015" y="-580.66" font-family="Times,serif" font-size="14.00">Requirements</text>
</g>
<!-- u30&#45;&gt;u22 -->
<g id="edge19" class="edge">
<title>u30&#45;&gt;u22</title>
<path fill="none" stroke="black" d="M1008.32,-566.16C1003.73,-554.33 997.54,-538.39 992.32,-524.93"/>
<polygon fill="black" stroke="black" points="995.44,-523.3 988.56,-515.24 988.91,-525.83 995.44,-523.3"/>
</g>
<!-- u33 -->
<g id="node34" class="node">
<title>u33</title>
<ellipse fill="#bbffbb" stroke="black" stroke-width="0" cx="1198" cy="-672.36" rx="34.39" ry="18"/>
<text text-anchor="middle" x="1198" y="-668.66" font-family="Times,serif" font-size="14.00">Main</text>
</g>
<!-- u33&#45;&gt;u24 -->
<g id="edge1" class="edge">
<title>u33&#45;&gt;u24</title>
<path fill="none" stroke="black" d="M1174.36,-659.12C1169.71,-657.19 1164.79,-655.47 1160,-654.36 1097.19,-639.75 638.07,-661.41 580,-633.36 569.53,-628.3 560.7,-619.19 553.94,-610.25"/>
<polygon fill="black" stroke="black" points="556.7,-608.09 548.12,-601.88 550.95,-612.09 556.7,-608.09"/>
</g>
<!-- u33&#45;&gt;u25 -->
<g id="edge2" class="edge">
<title>u33&#45;&gt;u25</title>
<path fill="none" stroke="black" d="M1174.36,-659.14C1169.71,-657.21 1164.78,-655.48 1160,-654.36 1105.55,-641.54 706.67,-659.08 657,-633.36 647.19,-628.28 639.2,-619.29 633.19,-610.45"/>
<polygon fill="black" stroke="black" points="636.09,-608.48 627.85,-601.82 630.14,-612.16 636.09,-608.48"/>
</g>
</g>
</svg>