@samitouri / QOS-React-2 / commits / ccca2d38cf

[ez] Delete some old files

Lauren Tan committed Nov 29, 2022 at 15:23 UTC ccca2d38cf7a006a6f7354d1b744afad64920158
4 files changed +2 -1111
compiler/forget/CODING_STYLE.md deleted
-86
@@ -1,86 +0,0 @@
1 -# Coding Style
2 -
3 -## Naming
4 -
5 -### Abbrevations
6 -
7 -Abbrevations can be preferable over full name when it helps with making things
8 -stand out for recognition and code searching, e.g.
9 -
10 -1. when we naming a notion specific to us (e.g. `MemoCache`, `SCCGraph`).
11 -2. when it helps with avoid naming clash with 3rd-party libraries (e.g. Babel).
12 -3. when it forms a nice symmetry with its counter parts (e.g. `Val`/`Ref`).
13 -4. when it's canonical in the indursty/academia (e.g. `Def`/`Use`).
14 -5. when it helps with differentiating internal concepts, e.g. it's very common
15 - to name AST and IR a bit differently (alternatively, always use namespace).
16 -
17 -- `Val`: Value
18 -- `Ref`: Reference
19 -- `Stmt`: Statement
20 -- `Expr`: Expression
21 -- `Decl`: Declaration
22 -- `Func`: Function
23 -- `Param`: Parameter
24 -- `Ident`: Identifier
25 -
26 -- `Mut`: Mutable
27 -- `Immut`: Immutable
28 -
29 -- `Def`: Definition
30 -- `Use`: Uses
31 -- `Instr`: Instruction
32 -
33 -- `Dep`: Dependency
34 -- `Infer`: Inference
35 -- `Alloc`: Allocation
36 -- `Gen`: Generator
37 -
38 -## ADT vs Classes
39 -
40 -For trivial cases where ADT and classes are interchangble, classes are favorable
41 -due to its conciseness.
42 -
43 -For cases where some algebraic structures or type gynastics are needed
44 -(e.g. IR/LIR), the constraints of classes and subtyping can be a burden to work
45 -around so we prefer to use our own ADT-like encoding for its flexibility and
46 -extensibility.
47 -
48 -For instance, `IR.Val` is an ADT tagged by `ValKind`:
49 -
50 -1. It would have been more difficult to encode `InputVal` and `ReactiveVal` as
51 - types since they are defined upon refinements.
52 -2. It's impossible (or at least non-trivial and painful) to type things like
53 - `Val#reference`, `Ref<V>` and `ValAST<Val>` accurately with classes since
54 - things may not follow the subtyping rules (it may be possible, but painful,
55 - to manually annotate every variance carefully, which TS only recently add
56 - support, to get things type check). Instead, we have more freedom to define
57 - types for each variants. We can even pattern match on type parameter with
58 - [conditional types](https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#handbook-content) to get pretty far to somewhere like [GADT](https://en.wikipedia.org/wiki/Generalized_algebraic_data_type).
59 -3. It offers more safety gurantees over `instanceof` by default unless you opted
60 - into visitor pattern which is also painful to write because it's closing at
61 - data axis instead of operation axis (see [Expresion Problem](https://wiki.c2.com/?ExpressionProblem)).
62 -
63 -N.B. The fact that we are not encoding ADT like [the way TS handbook suggested to encode discrinminated unions](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes-func.html#discriminated-unions) but instead encoding it
64 -as a combination of `enum` + `interface` + factory functions is merely a mean to
65 -take some advantage of subtyping for more code sharing (e.g. the common part of
66 -`Val` variants are therefore extracted in `Val`).
67 -
68 -## Type Safety
69 -
70 -TBD
71 -
72 -## Test
73 -
74 -TBD
75 -
76 -## Format
77 -
78 -TBD
79 -
80 -## Commit Messages
81 -
82 -Add `[Tag]` to help with finding reviewers (Github tags are not visible everywhere)
83 -
84 -## Code Review
85 -
86 -TBD
compiler/forget/OLD_ARCHITECTURE.md renamed
+2
@@ -1,5 +1,7 @@
1 # Architecture Overview
2
3 +Note: This refers to the non-HIR based architecture.
4 +
5 ## Diagnostics
6
7 Diagnostics are a way to indicate to the user that the compiler has encountered an unexpected issue, and are created in a structured format that is reused in the Playground to imperatively draw model markers ("squigglies") at their respective node locations.
compiler/forget/src/__tests__/fixtures/hir-svg/component.svg deleted
-724
@@ -1,724 +0,0 @@
1 -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4 -<!-- Generated by graphviz version 6.0.1 (20220924.0800)
5 - -->
6 -<!-- Title: BuildDefUseGraph Pages: 1 -->
7 -<svg width="13456pt" height="482pt"
8 - viewBox="0.00 0.00 13455.59 481.60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9 -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 477.6)">
10 -<title>BuildDefUseGraph</title>
11 -<polygon fill="white" stroke="none" points="-4,4 -4,-477.6 13451.59,-477.6 13451.59,4 -4,4"/>
12 -<!-- v0 -->
13 -<g id="node1" class="node">
14 -<title>v0</title>
15 -<polygon fill="none" stroke="black" points="622.43,-396 270.29,-396 270.29,-360 622.43,-360 622.43,-396"/>
16 -<text text-anchor="middle" x="446.36" y="-373.8" font-family="Times,serif" font-size="14.00">v0 (freeze props$1.items @ freeze props$1.items) &lt;update&gt;</text>
17 -</g>
18 -<!-- v1 -->
19 -<g id="node2" class="node">
20 -<title>v1</title>
21 -<polygon fill="none" stroke="black" points="448.58,-324 0.14,-324 0.14,-288 448.58,-288 448.58,-324"/>
22 -<text text-anchor="middle" x="224.36" y="-301.8" font-family="Times,serif" font-size="14.00">v1 (freeze items$2 @ Const freeze items$2 = freeze props$1.items) &lt;assign&gt;</text>
23 -</g>
24 -<!-- v0&#45;&gt;v1 -->
25 -<g id="edge1" class="edge">
26 -<title>v0&#45;&gt;v1</title>
27 -<path fill="none" stroke="black" d="M392.34,-359.97C360.91,-350.06 321.13,-337.51 288.17,-327.12"/>
28 -<polygon fill="black" stroke="black" points="289.22,-323.78 278.63,-324.11 287.11,-330.46 289.22,-323.78"/>
29 -</g>
30 -<!-- v2 -->
31 -<g id="node3" class="node">
32 -<title>v2</title>
33 -<polygon fill="none" stroke="black" points="880.68,-324 478.04,-324 478.04,-288 880.68,-288 880.68,-324"/>
34 -<text text-anchor="middle" x="679.36" y="-301.8" font-family="Times,serif" font-size="14.00">v2 (freeze props$1.maxItems @ freeze props$1.maxItems) &lt;update&gt;</text>
35 -</g>
36 -<!-- v0&#45;&gt;v2 -->
37 -<g id="edge2" class="edge">
38 -<title>v0&#45;&gt;v2</title>
39 -<path fill="none" stroke="black" d="M503.06,-359.97C536.04,-350.06 577.79,-337.51 612.39,-327.12"/>
40 -<polygon fill="black" stroke="black" points="613.84,-330.34 622.41,-324.11 611.82,-323.64 613.84,-330.34"/>
41 -</g>
42 -<!-- v12 -->
43 -<g id="node4" class="node">
44 -<title>v12</title>
45 -<polygon fill="none" stroke="black" points="421,-252 5.72,-252 5.72,-216 421,-216 421,-252"/>
46 -<text text-anchor="middle" x="213.36" y="-229.8" font-family="Times,serif" font-size="14.00">v12 (freeze items$2 @ If (freeze items$2) then:bb3 else:bb2) &lt;update&gt;</text>
47 -</g>
48 -<!-- v1&#45;&gt;v12 -->
49 -<g id="edge3" class="edge">
50 -<title>v1&#45;&gt;v12</title>
51 -<path fill="none" stroke="black" d="M221.64,-287.7C220.43,-279.98 218.97,-270.71 217.62,-262.11"/>
52 -<polygon fill="black" stroke="black" points="221.06,-261.44 216.05,-252.1 214.14,-262.53 221.06,-261.44"/>
53 -</g>
54 -<!-- v3 -->
55 -<g id="node5" class="node">
56 -<title>v3</title>
57 -<polygon fill="none" stroke="black" points="962.21,-252 438.51,-252 438.51,-216 962.21,-216 962.21,-252"/>
58 -<text text-anchor="middle" x="700.36" y="-229.8" font-family="Times,serif" font-size="14.00">v3 (freeze maxItems$3 @ Const freeze maxItems$3 = freeze props$1.maxItems) &lt;assign&gt;</text>
59 -</g>
60 -<!-- v2&#45;&gt;v3 -->
61 -<g id="edge4" class="edge">
62 -<title>v2&#45;&gt;v3</title>
63 -<path fill="none" stroke="black" d="M684.55,-287.7C686.89,-279.9 689.71,-270.51 692.31,-261.83"/>
64 -<polygon fill="black" stroke="black" points="695.71,-262.69 695.23,-252.1 689,-260.68 695.71,-262.69"/>
65 -</g>
66 -<!-- v10 -->
67 -<g id="node6" class="node">
68 -<title>v10</title>
69 -<polygon fill="none" stroke="black" points="982.96,-180 417.76,-180 417.76,-144 982.96,-144 982.96,-180"/>
70 -<text text-anchor="middle" x="700.36" y="-157.8" font-family="Times,serif" font-size="14.00">v10 (freeze maxItems$3 @ Call mutable Math$8.max(mutable $9, freeze maxItems$3)) &lt;update&gt;</text>
71 -</g>
72 -<!-- v3&#45;&gt;v10 -->
73 -<g id="edge5" class="edge">
74 -<title>v3&#45;&gt;v10</title>
75 -<path fill="none" stroke="black" d="M700.36,-215.7C700.36,-207.98 700.36,-198.71 700.36,-190.11"/>
76 -<polygon fill="black" stroke="black" points="703.86,-190.1 700.36,-180.1 696.86,-190.1 703.86,-190.1"/>
77 -</g>
78 -<!-- v4 -->
79 -<g id="node7" class="node">
80 -<title>v4</title>
81 -<polygon fill="none" stroke="black" points="1716.51,-470.8 1210.21,-470.8 1210.21,-434.8 1716.51,-434.8 1716.51,-470.8"/>
82 -<text text-anchor="middle" x="1463.36" y="-448.6" font-family="Times,serif" font-size="14.00">v4 (readonly renderedItems$4 @ Const readonly renderedItems$4 = Array []) &lt;assign&gt;</text>
83 -</g>
84 -<!-- v18 -->
85 -<g id="node8" class="node">
86 -<title>v18</title>
87 -<polygon fill="none" stroke="black" points="1917.77,-180 1420.95,-180 1420.95,-144 1917.77,-144 1917.77,-180"/>
88 -<text text-anchor="middle" x="1669.36" y="-157.8" font-family="Times,serif" font-size="14.00">v18 (readonly renderedItems$4.length @ readonly renderedItems$4.length) &lt;update&gt;</text>
89 -</g>
90 -<!-- v4&#45;&gt;v18 -->
91 -<g id="edge6" class="edge">
92 -<title>v4&#45;&gt;v18</title>
93 -<path fill="none" stroke="black" d="M1648.81,-434.74C1704.2,-426.26 1755.69,-413.87 1776.36,-396 1837.07,-343.53 1838.79,-279.98 1790.36,-216 1779.89,-202.17 1765.04,-191.88 1749.31,-184.25"/>
94 -<polygon fill="black" stroke="black" points="1750.54,-180.97 1739.98,-180.06 1747.67,-187.35 1750.54,-180.97"/>
95 -</g>
96 -<!-- v49 -->
97 -<g id="node9" class="node">
98 -<title>v49</title>
99 -<polygon fill="none" stroke="black" points="1734.17,-396 1156.56,-396 1156.56,-360 1734.17,-360 1734.17,-396"/>
100 -<text text-anchor="middle" x="1445.36" y="-373.8" font-family="Times,serif" font-size="14.00">v49 (mutable renderedItems$4.push @ Call mutable renderedItems$4.push(mutable $15)) &lt;update&gt;</text>
101 -</g>
102 -<!-- v4&#45;&gt;v49 -->
103 -<g id="edge7" class="edge">
104 -<title>v4&#45;&gt;v49</title>
105 -<path fill="none" stroke="black" d="M1459.1,-434.55C1456.99,-426.03 1454.4,-415.55 1452.03,-405.99"/>
106 -<polygon fill="black" stroke="black" points="1455.39,-405 1449.6,-396.13 1448.6,-406.68 1455.39,-405"/>
107 -</g>
108 -<!-- v62 -->
109 -<g id="node10" class="node">
110 -<title>v62</title>
111 -<polygon fill="none" stroke="black" points="1781.1,-252 1557.62,-252 1557.62,-216 1781.1,-216 1781.1,-252"/>
112 -<text text-anchor="middle" x="1669.36" y="-229.8" font-family="Times,serif" font-size="14.00">v62 (&lt;join&gt; @ &lt;no&#45;instr&gt;) &lt;update&gt;</text>
113 -</g>
114 -<!-- v4&#45;&gt;v62 -->
115 -<g id="edge8" class="edge">
116 -<title>v4&#45;&gt;v62</title>
117 -<path fill="none" stroke="black" d="M1607.31,-434.75C1664.08,-425.66 1721.05,-412.83 1743.36,-396 1783.86,-365.44 1807.43,-330.92 1780.36,-288 1771.73,-274.31 1758.48,-264.09 1744.11,-256.47"/>
118 -<polygon fill="black" stroke="black" points="1745.57,-253.29 1735.05,-252.05 1742.5,-259.58 1745.57,-253.29"/>
119 -</g>
120 -<!-- v71 -->
121 -<g id="node11" class="node">
122 -<title>v71</title>
123 -<polygon fill="none" stroke="black" points="1203.1,-252 979.62,-252 979.62,-216 1203.1,-216 1203.1,-252"/>
124 -<text text-anchor="middle" x="1091.36" y="-229.8" font-family="Times,serif" font-size="14.00">v71 (&lt;join&gt; @ &lt;no&#45;instr&gt;) &lt;update&gt;</text>
125 -</g>
126 -<!-- v4&#45;&gt;v71 -->
127 -<g id="edge9" class="edge">
128 -<title>v4&#45;&gt;v71</title>
129 -<path fill="none" stroke="black" d="M1308.59,-434.8C1242.96,-425.49 1175.24,-412.47 1147.36,-396 1111.98,-375.09 1103.03,-362.75 1089.36,-324 1082.39,-304.23 1083.37,-280.43 1085.83,-262.42"/>
130 -<polygon fill="black" stroke="black" points="1089.32,-262.72 1087.44,-252.3 1082.41,-261.62 1089.32,-262.72"/>
131 -</g>
132 -<!-- v19 -->
133 -<g id="node31" class="node">
134 -<title>v19</title>
135 -<polygon fill="none" stroke="black" points="1585.15,-108 1015.57,-108 1015.57,-72 1585.15,-72 1585.15,-108"/>
136 -<text text-anchor="middle" x="1300.36" y="-85.8" font-family="Times,serif" font-size="14.00">v19 (readonly count$17 @ Const readonly count$17 = readonly renderedItems$4.length) &lt;assign&gt;</text>
137 -</g>
138 -<!-- v18&#45;&gt;v19 -->
139 -<g id="edge21" class="edge">
140 -<title>v18&#45;&gt;v19</title>
141 -<path fill="none" stroke="black" d="M1579.57,-143.97C1525.33,-133.68 1456.11,-120.55 1400.17,-109.93"/>
142 -<polygon fill="black" stroke="black" points="1400.72,-106.48 1390.24,-108.05 1399.41,-113.35 1400.72,-106.48"/>
143 -</g>
144 -<!-- v34 -->
145 -<g id="node32" class="node">
146 -<title>v34</title>
147 -<polygon fill="none" stroke="black" points="2474.28,-108 1602.45,-108 1602.45,-72 2474.28,-72 2474.28,-108"/>
148 -<text text-anchor="middle" x="2038.36" y="-85.8" font-family="Times,serif" font-size="14.00">v34 (freeze renderedItems$4 @ JSX &lt;freeze $18&gt;{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}&lt;/freeze $18&gt;) &lt;update&gt;</text>
149 -</g>
150 -<!-- v18&#45;&gt;v34 -->
151 -<g id="edge22" class="edge">
152 -<title>v18&#45;&gt;v34</title>
153 -<path fill="none" stroke="black" d="M1759.16,-143.97C1813.39,-133.68 1882.61,-120.55 1938.56,-109.93"/>
154 -<polygon fill="black" stroke="black" points="1939.31,-113.35 1948.48,-108.05 1938.01,-106.48 1939.31,-113.35"/>
155 -</g>
156 -<!-- v51 -->
157 -<g id="node59" class="node">
158 -<title>v51</title>
159 -<polygon fill="none" stroke="black" points="1771.25,-324 1119.47,-324 1119.47,-288 1771.25,-288 1771.25,-324"/>
160 -<text text-anchor="middle" x="1445.36" y="-301.8" font-family="Times,serif" font-size="14.00">v51 (readonly renderedItems$4.length @ Binary readonly renderedItems$4.length &gt;= readonly max$7) &lt;update&gt;</text>
161 -</g>
162 -<!-- v49&#45;&gt;v51 -->
163 -<g id="edge43" class="edge">
164 -<title>v49&#45;&gt;v51</title>
165 -<path fill="none" stroke="black" d="M1445.36,-359.7C1445.36,-351.98 1445.36,-342.71 1445.36,-334.11"/>
166 -<polygon fill="black" stroke="black" points="1448.86,-334.1 1445.36,-324.1 1441.86,-334.1 1448.86,-334.1"/>
167 -</g>
168 -<!-- v62&#45;&gt;v18 -->
169 -<g id="edge54" class="edge">
170 -<title>v62&#45;&gt;v18</title>
171 -<path fill="none" stroke="black" d="M1669.36,-215.7C1669.36,-207.98 1669.36,-198.71 1669.36,-190.11"/>
172 -<polygon fill="black" stroke="black" points="1672.86,-190.1 1669.36,-180.1 1665.86,-190.1 1672.86,-190.1"/>
173 -</g>
174 -<!-- v71&#45;&gt;v49 -->
175 -<g id="edge55" class="edge">
176 -<title>v71&#45;&gt;v49</title>
177 -<path fill="none" stroke="black" d="M1089.75,-252.13C1088.89,-272.34 1090.87,-305.52 1110.36,-324 1126.75,-339.54 1163.39,-350.52 1206.67,-358.28"/>
178 -<polygon fill="black" stroke="black" points="1206.15,-361.75 1216.6,-359.99 1207.34,-354.85 1206.15,-361.75"/>
179 -</g>
180 -<!-- v5 -->
181 -<g id="node12" class="node">
182 -<title>v5</title>
183 -<polygon fill="none" stroke="black" points="2071.92,-470.8 1752.8,-470.8 1752.8,-434.8 2071.92,-434.8 2071.92,-470.8"/>
184 -<text text-anchor="middle" x="1912.36" y="-448.6" font-family="Times,serif" font-size="14.00">v5 (mutable Set$6 @ New mutable Set$6()) &lt;update&gt;</text>
185 -</g>
186 -<!-- v6 -->
187 -<g id="node13" class="node">
188 -<title>v6</title>
189 -<polygon fill="none" stroke="black" points="2595.4,-470.8 2125.33,-470.8 2125.33,-434.8 2595.4,-434.8 2595.4,-470.8"/>
190 -<text text-anchor="middle" x="2360.36" y="-448.6" font-family="Times,serif" font-size="14.00">v6 (readonly seen$5 @ Const readonly seen$5 = New mutable Set$6()) &lt;assign&gt;</text>
191 -</g>
192 -<!-- v39 -->
193 -<g id="node14" class="node">
194 -<title>v39</title>
195 -<polygon fill="none" stroke="black" points="2593.17,-396 2127.55,-396 2127.55,-360 2593.17,-360 2593.17,-396"/>
196 -<text text-anchor="middle" x="2360.36" y="-373.8" font-family="Times,serif" font-size="14.00">v39 (mutable seen$5.has @ Call mutable seen$5.has(freeze item$10)) &lt;update&gt;</text>
197 -</g>
198 -<!-- v6&#45;&gt;v39 -->
199 -<g id="edge10" class="edge">
200 -<title>v6&#45;&gt;v39</title>
201 -<path fill="none" stroke="black" d="M2360.36,-434.55C2360.36,-426.12 2360.36,-415.77 2360.36,-406.3"/>
202 -<polygon fill="black" stroke="black" points="2363.86,-406.13 2360.36,-396.13 2356.86,-406.13 2363.86,-406.13"/>
203 -</g>
204 -<!-- v56 -->
205 -<g id="node15" class="node">
206 -<title>v56</title>
207 -<polygon fill="none" stroke="black" points="2211.1,-324 1987.62,-324 1987.62,-288 2211.1,-288 2211.1,-324"/>
208 -<text text-anchor="middle" x="2099.36" y="-301.8" font-family="Times,serif" font-size="14.00">v56 (&lt;join&gt; @ &lt;no&#45;instr&gt;) &lt;update&gt;</text>
209 -</g>
210 -<!-- v6&#45;&gt;v56 -->
211 -<g id="edge11" class="edge">
212 -<title>v6&#45;&gt;v56</title>
213 -<path fill="none" stroke="black" d="M2231.55,-434.79C2182.87,-425.81 2135.14,-413.06 2118.36,-396 2102.56,-379.94 2098.47,-354.16 2097.94,-334.47"/>
214 -<polygon fill="black" stroke="black" points="2101.44,-334.26 2097.96,-324.26 2094.44,-334.25 2101.44,-334.26"/>
215 -</g>
216 -<!-- v59 -->
217 -<g id="node16" class="node">
218 -<title>v59</title>
219 -<polygon fill="none" stroke="black" points="2482.1,-180 2258.62,-180 2258.62,-144 2482.1,-144 2482.1,-180"/>
220 -<text text-anchor="middle" x="2370.36" y="-157.8" font-family="Times,serif" font-size="14.00">v59 (&lt;join&gt; @ &lt;no&#45;instr&gt;) &lt;update&gt;</text>
221 -</g>
222 -<!-- v6&#45;&gt;v59 -->
223 -<g id="edge12" class="edge">
224 -<title>v6&#45;&gt;v59</title>
225 -<path fill="none" stroke="black" d="M2499.9,-434.76C2545.64,-426.1 2588.37,-413.59 2602.36,-396 2670.09,-310.88 2508.44,-223.38 2421.37,-184.21"/>
226 -<polygon fill="black" stroke="black" points="2422.73,-180.98 2412.17,-180.12 2419.88,-187.38 2422.73,-180.98"/>
227 -</g>
228 -<!-- v39&#45;&gt;v56 -->
229 -<g id="edge33" class="edge">
230 -<title>v39&#45;&gt;v56</title>
231 -<path fill="none" stroke="black" d="M2296.85,-359.97C2259.43,-349.93 2211.93,-337.19 2172.89,-326.72"/>
232 -<polygon fill="black" stroke="black" points="2173.73,-323.32 2163.16,-324.11 2171.91,-330.08 2173.73,-323.32"/>
233 -</g>
234 -<!-- v39&#45;&gt;v59 -->
235 -<g id="edge34" class="edge">
236 -<title>v39&#45;&gt;v59</title>
237 -<path fill="none" stroke="black" d="M2357.28,-359.85C2355.48,-322.83 2359.3,-235.18 2364.39,-190.39"/>
238 -<polygon fill="black" stroke="black" points="2367.89,-190.59 2365.67,-180.23 2360.95,-189.72 2367.89,-190.59"/>
239 -</g>
240 -<!-- v43 -->
241 -<g id="node52" class="node">
242 -<title>v43</title>
243 -<polygon fill="none" stroke="black" points="2333.78,-252 1864.94,-252 1864.94,-216 2333.78,-216 2333.78,-252"/>
244 -<text text-anchor="middle" x="2099.36" y="-229.8" font-family="Times,serif" font-size="14.00">v43 (mutable seen$5.add @ Call mutable seen$5.add(freeze item$10)) &lt;update&gt;</text>
245 -</g>
246 -<!-- v56&#45;&gt;v43 -->
247 -<g id="edge50" class="edge">
248 -<title>v56&#45;&gt;v43</title>
249 -<path fill="none" stroke="black" d="M2093.45,-287.7C2092.65,-279.98 2092.42,-270.71 2092.77,-262.11"/>
250 -<polygon fill="black" stroke="black" points="2096.26,-262.32 2093.47,-252.1 2089.28,-261.84 2096.26,-262.32"/>
251 -</g>
252 -<!-- v59&#45;&gt;v39 -->
253 -<g id="edge53" class="edge">
254 -<title>v59&#45;&gt;v39</title>
255 -<path fill="none" stroke="black" d="M2373.44,-180.23C2375.24,-217.32 2371.41,-304.98 2366.32,-349.71"/>
256 -<polygon fill="black" stroke="black" points="2362.82,-349.49 2365.04,-359.85 2369.77,-350.37 2362.82,-349.49"/>
257 -</g>
258 -<!-- v7 -->
259 -<g id="node17" class="node">
260 -<title>v7</title>
261 -<polygon fill="none" stroke="black" points="3060.4,-470.8 2752.32,-470.8 2752.32,-434.8 3060.4,-434.8 3060.4,-470.8"/>
262 -<text text-anchor="middle" x="2906.36" y="-448.6" font-family="Times,serif" font-size="14.00">v7 (readonly $9 @ Const readonly $9 = 0) &lt;assign&gt;</text>
263 -</g>
264 -<!-- v9 -->
265 -<g id="node18" class="node">
266 -<title>v9</title>
267 -<polygon fill="none" stroke="black" points="3163.67,-396 2649.05,-396 2649.05,-360 3163.67,-360 3163.67,-396"/>
268 -<text text-anchor="middle" x="2906.36" y="-373.8" font-family="Times,serif" font-size="14.00">v9 (mutable $9 @ Call mutable Math$8.max(mutable $9, freeze maxItems$3)) &lt;update&gt;</text>
269 -</g>
270 -<!-- v7&#45;&gt;v9 -->
271 -<g id="edge13" class="edge">
272 -<title>v7&#45;&gt;v9</title>
273 -<path fill="none" stroke="black" d="M2906.36,-434.55C2906.36,-426.12 2906.36,-415.77 2906.36,-406.3"/>
274 -<polygon fill="black" stroke="black" points="2909.86,-406.13 2906.36,-396.13 2902.86,-406.13 2909.86,-406.13"/>
275 -</g>
276 -<!-- v8 -->
277 -<g id="node19" class="node">
278 -<title>v8</title>
279 -<polygon fill="none" stroke="black" points="3650.33,-470.8 3078.39,-470.8 3078.39,-434.8 3650.33,-434.8 3650.33,-470.8"/>
280 -<text text-anchor="middle" x="3364.36" y="-448.6" font-family="Times,serif" font-size="14.00">v8 (mutable Math$8.max @ Call mutable Math$8.max(mutable $9, freeze maxItems$3)) &lt;update&gt;</text>
281 -</g>
282 -<!-- v11 -->
283 -<g id="node20" class="node">
284 -<title>v11</title>
285 -<polygon fill="none" stroke="black" points="4356.5,-470.8 3668.23,-470.8 3668.23,-434.8 4356.5,-434.8 4356.5,-470.8"/>
286 -<text text-anchor="middle" x="4012.36" y="-448.6" font-family="Times,serif" font-size="14.00">v11 (readonly max$7 @ Const readonly max$7 = Call mutable Math$8.max(mutable $9, freeze maxItems$3)) &lt;assign&gt;</text>
287 -</g>
288 -<!-- v52 -->
289 -<g id="node21" class="node">
290 -<title>v52</title>
291 -<polygon fill="none" stroke="black" points="4131.79,-396 3574.93,-396 3574.93,-360 4131.79,-360 4131.79,-396"/>
292 -<text text-anchor="middle" x="3853.36" y="-373.8" font-family="Times,serif" font-size="14.00">v52 (readonly max$7 @ Binary readonly renderedItems$4.length &gt;= readonly max$7) &lt;update&gt;</text>
293 -</g>
294 -<!-- v11&#45;&gt;v52 -->
295 -<g id="edge14" class="edge">
296 -<title>v11&#45;&gt;v52</title>
297 -<path fill="none" stroke="black" d="M3975.08,-434.73C3952.64,-424.45 3923.87,-411.28 3899.93,-400.32"/>
298 -<polygon fill="black" stroke="black" points="3901.23,-397.07 3890.68,-396.09 3898.32,-403.43 3901.23,-397.07"/>
299 -</g>
300 -<!-- v72 -->
301 -<g id="node22" class="node">
302 -<title>v72</title>
303 -<polygon fill="none" stroke="black" points="3965.1,-324 3741.62,-324 3741.62,-288 3965.1,-288 3965.1,-324"/>
304 -<text text-anchor="middle" x="3853.36" y="-301.8" font-family="Times,serif" font-size="14.00">v72 (&lt;join&gt; @ &lt;no&#45;instr&gt;) &lt;update&gt;</text>
305 -</g>
306 -<!-- v11&#45;&gt;v72 -->
307 -<g id="edge15" class="edge">
308 -<title>v11&#45;&gt;v72</title>
309 -<path fill="none" stroke="black" d="M4089.28,-434.72C4109.25,-426.43 4128.47,-414.15 4140.36,-396 4149.13,-382.62 4150.6,-372.3 4140.36,-360 4118.97,-334.29 4043.32,-321.01 3975.07,-314.16"/>
310 -<polygon fill="black" stroke="black" points="3975.35,-310.68 3965.06,-313.2 3974.68,-317.64 3975.35,-310.68"/>
311 -</g>
312 -<!-- v52&#45;&gt;v72 -->
313 -<g id="edge47" class="edge">
314 -<title>v52&#45;&gt;v72</title>
315 -<path fill="none" stroke="black" d="M3847.45,-359.7C3846.65,-351.98 3846.42,-342.71 3846.77,-334.11"/>
316 -<polygon fill="black" stroke="black" points="3850.26,-334.32 3847.47,-324.1 3843.28,-333.84 3850.26,-334.32"/>
317 -</g>
318 -<!-- v72&#45;&gt;v52 -->
319 -<g id="edge56" class="edge">
320 -<title>v72&#45;&gt;v52</title>
321 -<path fill="none" stroke="black" d="M3859.26,-324.1C3860.06,-331.79 3860.3,-341.05 3859.96,-349.67"/>
322 -<polygon fill="black" stroke="black" points="3856.47,-349.48 3859.28,-359.7 3863.45,-349.96 3856.47,-349.48"/>
323 -</g>
324 -<!-- v13 -->
325 -<g id="node23" class="node">
326 -<title>v13</title>
327 -<polygon fill="none" stroke="black" points="4718.18,-470.8 4374.54,-470.8 4374.54,-434.8 4718.18,-434.8 4718.18,-470.8"/>
328 -<text text-anchor="middle" x="4546.36" y="-448.6" font-family="Times,serif" font-size="14.00">v13 (readonly $11 @ Const readonly $11 = null) &lt;assign&gt;</text>
329 -</g>
330 -<!-- v15 -->
331 -<g id="node24" class="node">
332 -<title>v15</title>
333 -<polygon fill="none" stroke="black" points="4757.1,-396 4335.62,-396 4335.62,-360 4757.1,-360 4757.1,-396"/>
334 -<text text-anchor="middle" x="4546.36" y="-373.8" font-family="Times,serif" font-size="14.00">v15 (readonly $11 @ Binary freeze item$10 == readonly $11) &lt;update&gt;</text>
335 -</g>
336 -<!-- v13&#45;&gt;v15 -->
337 -<g id="edge16" class="edge">
338 -<title>v13&#45;&gt;v15</title>
339 -<path fill="none" stroke="black" d="M4546.36,-434.55C4546.36,-426.12 4546.36,-415.77 4546.36,-406.3"/>
340 -<polygon fill="black" stroke="black" points="4549.86,-406.13 4546.36,-396.13 4542.86,-406.13 4549.86,-406.13"/>
341 -</g>
342 -<!-- v14 -->
343 -<g id="node25" class="node">
344 -<title>v14</title>
345 -<polygon fill="none" stroke="black" points="5467.19,-470.8 5035.54,-470.8 5035.54,-434.8 5467.19,-434.8 5467.19,-470.8"/>
346 -<text text-anchor="middle" x="5251.36" y="-448.6" font-family="Times,serif" font-size="14.00">v14 (freeze item$10 @ Binary freeze item$10 == readonly $11) &lt;update&gt;</text>
347 -</g>
348 -<!-- v40 -->
349 -<g id="node26" class="node">
350 -<title>v40</title>
351 -<polygon fill="none" stroke="black" points="5214.1,-396 4774.62,-396 4774.62,-360 5214.1,-360 5214.1,-396"/>
352 -<text text-anchor="middle" x="4994.36" y="-373.8" font-family="Times,serif" font-size="14.00">v40 (freeze item$10 @ Call mutable seen$5.has(freeze item$10)) &lt;update&gt;</text>
353 -</g>
354 -<!-- v14&#45;&gt;v40 -->
355 -<g id="edge17" class="edge">
356 -<title>v14&#45;&gt;v40</title>
357 -<path fill="none" stroke="black" d="M5191.11,-434.73C5153.22,-424 5104.18,-410.11 5064.55,-398.88"/>
358 -<polygon fill="black" stroke="black" points="5065.26,-395.45 5054.68,-396.09 5063.35,-402.18 5065.26,-395.45"/>
359 -</g>
360 -<!-- v57 -->
361 -<g id="node27" class="node">
362 -<title>v57</title>
363 -<polygon fill="none" stroke="black" points="5363.1,-324 5139.62,-324 5139.62,-288 5363.1,-288 5363.1,-324"/>
364 -<text text-anchor="middle" x="5251.36" y="-301.8" font-family="Times,serif" font-size="14.00">v57 (&lt;join&gt; @ &lt;no&#45;instr&gt;) &lt;update&gt;</text>
365 -</g>
366 -<!-- v14&#45;&gt;v57 -->
367 -<g id="edge18" class="edge">
368 -<title>v14&#45;&gt;v57</title>
369 -<path fill="none" stroke="black" d="M5246.81,-434.62C5244.2,-409.8 5243.91,-363.66 5245.95,-334.19"/>
370 -<polygon fill="black" stroke="black" points="5249.45,-334.42 5246.81,-324.16 5242.47,-333.82 5249.45,-334.42"/>
371 -</g>
372 -<!-- v40&#45;&gt;v57 -->
373 -<g id="edge35" class="edge">
374 -<title>v40&#45;&gt;v57</title>
375 -<path fill="none" stroke="black" d="M5056.9,-359.97C5093.59,-349.97 5140.12,-337.3 5178.47,-326.85"/>
376 -<polygon fill="black" stroke="black" points="5179.81,-330.12 5188.54,-324.11 5177.97,-323.36 5179.81,-330.12"/>
377 -</g>
378 -<!-- v57&#45;&gt;v14 -->
379 -<g id="edge52" class="edge">
380 -<title>v57&#45;&gt;v14</title>
381 -<path fill="none" stroke="black" d="M5255.91,-324.16C5258.52,-348.96 5258.81,-395.1 5256.77,-424.58"/>
382 -<polygon fill="black" stroke="black" points="5253.28,-424.36 5255.92,-434.62 5260.25,-424.95 5253.28,-424.36"/>
383 -</g>
384 -<!-- v44 -->
385 -<g id="node53" class="node">
386 -<title>v44</title>
387 -<polygon fill="none" stroke="black" points="5347.65,-252 4907.07,-252 4907.07,-216 5347.65,-216 5347.65,-252"/>
388 -<text text-anchor="middle" x="5127.36" y="-229.8" font-family="Times,serif" font-size="14.00">v44 (freeze item$10 @ Call mutable seen$5.add(freeze item$10)) &lt;update&gt;</text>
389 -</g>
390 -<!-- v57&#45;&gt;v44 -->
391 -<g id="edge51" class="edge">
392 -<title>v57&#45;&gt;v44</title>
393 -<path fill="none" stroke="black" d="M5221.03,-287.88C5204.66,-278.64 5184.28,-267.13 5166.71,-257.21"/>
394 -<polygon fill="black" stroke="black" points="5168.24,-254.06 5157.81,-252.19 5164.8,-260.15 5168.24,-254.06"/>
395 -</g>
396 -<!-- v16 -->
397 -<g id="node28" class="node">
398 -<title>v16</title>
399 -<polygon fill="none" stroke="black" points="5999.24,-470.8 5485.49,-470.8 5485.49,-434.8 5999.24,-434.8 5999.24,-470.8"/>
400 -<text text-anchor="middle" x="5742.36" y="-448.6" font-family="Times,serif" font-size="14.00">v16 (freeze $12 @ Const freeze $12 = Binary freeze item$10 == readonly $11) &lt;assign&gt;</text>
401 -</g>
402 -<!-- v17 -->
403 -<g id="node29" class="node">
404 -<title>v17</title>
405 -<polygon fill="none" stroke="black" points="5926.84,-396 5557.88,-396 5557.88,-360 5926.84,-360 5926.84,-396"/>
406 -<text text-anchor="middle" x="5742.36" y="-373.8" font-family="Times,serif" font-size="14.00">v17 (freeze $12 @ If (freeze $12) then:bb8 else:bb9) &lt;update&gt;</text>
407 -</g>
408 -<!-- v16&#45;&gt;v17 -->
409 -<g id="edge19" class="edge">
410 -<title>v16&#45;&gt;v17</title>
411 -<path fill="none" stroke="black" d="M5742.36,-434.55C5742.36,-426.12 5742.36,-415.77 5742.36,-406.3"/>
412 -<polygon fill="black" stroke="black" points="5745.86,-406.13 5742.36,-396.13 5738.86,-406.13 5745.86,-406.13"/>
413 -</g>
414 -<!-- v38 -->
415 -<g id="node30" class="node">
416 -<title>v38</title>
417 -<polygon fill="none" stroke="black" points="5917.98,-324 5566.74,-324 5566.74,-288 5917.98,-288 5917.98,-324"/>
418 -<text text-anchor="middle" x="5742.36" y="-301.8" font-family="Times,serif" font-size="14.00">v38 (freeze $13 @ Const freeze $13 = freeze $12) &lt;assign&gt;</text>
419 -</g>
420 -<!-- v17&#45;&gt;v38 -->
421 -<g id="edge20" class="edge">
422 -<title>v17&#45;&gt;v38</title>
423 -<path fill="none" stroke="black" d="M5742.36,-359.7C5742.36,-351.98 5742.36,-342.71 5742.36,-334.11"/>
424 -<polygon fill="black" stroke="black" points="5745.86,-334.1 5742.36,-324.1 5738.86,-334.1 5745.86,-334.1"/>
425 -</g>
426 -<!-- v42 -->
427 -<g id="node50" class="node">
428 -<title>v42</title>
429 -<polygon fill="none" stroke="black" points="6160.84,-252 5791.88,-252 5791.88,-216 6160.84,-216 6160.84,-252"/>
430 -<text text-anchor="middle" x="5976.36" y="-229.8" font-family="Times,serif" font-size="14.00">v42 (freeze $13 @ If (freeze $13) then:bb1 else:bb4) &lt;update&gt;</text>
431 -</g>
432 -<!-- v38&#45;&gt;v42 -->
433 -<g id="edge32" class="edge">
434 -<title>v38&#45;&gt;v42</title>
435 -<path fill="none" stroke="black" d="M5799.3,-287.97C5832.57,-278.01 5874.72,-265.41 5909.55,-254.99"/>
436 -<polygon fill="black" stroke="black" points="5910.58,-258.33 5919.16,-252.11 5908.58,-251.62 5910.58,-258.33"/>
437 -</g>
438 -<!-- v25 -->
439 -<g id="node33" class="node">
440 -<title>v25</title>
441 -<polygon fill="none" stroke="black" points="1585.99,-36 1014.73,-36 1014.73,0 1585.99,0 1585.99,-36"/>
442 -<text text-anchor="middle" x="1300.36" y="-13.8" font-family="Times,serif" font-size="14.00">v25 (freeze count$17 @ JSX &lt;freeze $20&gt;{freeze count$17}{freeze $21}&lt;/freeze $20&gt;) &lt;update&gt;</text>
443 -</g>
444 -<!-- v19&#45;&gt;v25 -->
445 -<g id="edge23" class="edge">
446 -<title>v19&#45;&gt;v25</title>
447 -<path fill="none" stroke="black" d="M1300.36,-71.7C1300.36,-63.98 1300.36,-54.71 1300.36,-46.11"/>
448 -<polygon fill="black" stroke="black" points="1303.86,-46.1 1300.36,-36.1 1296.86,-46.1 1303.86,-46.1"/>
449 -</g>
450 -<!-- v20 -->
451 -<g id="node34" class="node">
452 -<title>v20</title>
453 -<polygon fill="none" stroke="black" points="6519.22,-470.8 6167.5,-470.8 6167.5,-434.8 6519.22,-434.8 6519.22,-470.8"/>
454 -<text text-anchor="middle" x="6343.36" y="-448.6" font-family="Times,serif" font-size="14.00">v20 (readonly $18 @ Const readonly $18 = &quot;div&quot;) &lt;assign&gt;</text>
455 -</g>
456 -<!-- v30 -->
457 -<g id="node35" class="node">
458 -<title>v30</title>
459 -<polygon fill="none" stroke="black" points="6742.71,-396 5944.02,-396 5944.02,-360 6742.71,-360 6742.71,-396"/>
460 -<text text-anchor="middle" x="6343.36" y="-373.8" font-family="Times,serif" font-size="14.00">v30 (freeze $18 @ JSX &lt;freeze $18&gt;{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}&lt;/freeze $18&gt;) &lt;update&gt;</text>
461 -</g>
462 -<!-- v20&#45;&gt;v30 -->
463 -<g id="edge24" class="edge">
464 -<title>v20&#45;&gt;v30</title>
465 -<path fill="none" stroke="black" d="M6343.36,-434.55C6343.36,-426.12 6343.36,-415.77 6343.36,-406.3"/>
466 -<polygon fill="black" stroke="black" points="6346.86,-406.13 6343.36,-396.13 6339.86,-406.13 6346.86,-406.13"/>
467 -</g>
468 -<!-- v21 -->
469 -<g id="node36" class="node">
470 -<title>v21</title>
471 -<polygon fill="none" stroke="black" points="7293.66,-473.4 7025.06,-473.4 7025.06,-432.2 7293.66,-432.2 7293.66,-473.4"/>
472 -<text text-anchor="middle" x="7159.36" y="-457" font-family="Times,serif" font-size="14.00">v21 (readonly $19 @ Const readonly $19 = &quot;</text>
473 -<text text-anchor="middle" x="7159.36" y="-440.2" font-family="Times,serif" font-size="14.00"> &#160;&#160;&#160;&#160;&#160;&quot;) &lt;assign&gt;</text>
474 -</g>
475 -<!-- v31 -->
476 -<g id="node37" class="node">
477 -<title>v31</title>
478 -<polygon fill="none" stroke="black" points="7558.71,-396 6760.02,-396 6760.02,-360 7558.71,-360 7558.71,-396"/>
479 -<text text-anchor="middle" x="7159.36" y="-373.8" font-family="Times,serif" font-size="14.00">v31 (freeze $19 @ JSX &lt;freeze $18&gt;{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}&lt;/freeze $18&gt;) &lt;update&gt;</text>
480 -</g>
481 -<!-- v21&#45;&gt;v31 -->
482 -<g id="edge25" class="edge">
483 -<title>v21&#45;&gt;v31</title>
484 -<path fill="none" stroke="black" d="M7159.36,-431.91C7159.36,-424.09 7159.36,-414.99 7159.36,-406.56"/>
485 -<polygon fill="black" stroke="black" points="7162.86,-406.39 7159.36,-396.39 7155.86,-406.39 7162.86,-406.39"/>
486 -</g>
487 -<!-- v22 -->
488 -<g id="node38" class="node">
489 -<title>v22</title>
490 -<polygon fill="none" stroke="black" points="8020.33,-470.8 7672.39,-470.8 7672.39,-434.8 8020.33,-434.8 8020.33,-470.8"/>
491 -<text text-anchor="middle" x="7846.36" y="-448.6" font-family="Times,serif" font-size="14.00">v22 (readonly $20 @ Const readonly $20 = &quot;h1&quot;) &lt;assign&gt;</text>
492 -</g>
493 -<!-- v24 -->
494 -<g id="node39" class="node">
495 -<title>v24</title>
496 -<polygon fill="none" stroke="black" points="8116.38,-396 7576.34,-396 7576.34,-360 8116.38,-360 8116.38,-396"/>
497 -<text text-anchor="middle" x="7846.36" y="-373.8" font-family="Times,serif" font-size="14.00">v24 (freeze $20 @ JSX &lt;freeze $20&gt;{freeze count$17}{freeze $21}&lt;/freeze $20&gt;) &lt;update&gt;</text>
498 -</g>
499 -<!-- v22&#45;&gt;v24 -->
500 -<g id="edge26" class="edge">
501 -<title>v22&#45;&gt;v24</title>
502 -<path fill="none" stroke="black" d="M7846.36,-434.55C7846.36,-426.12 7846.36,-415.77 7846.36,-406.3"/>
503 -<polygon fill="black" stroke="black" points="7849.86,-406.13 7846.36,-396.13 7842.86,-406.13 7849.86,-406.13"/>
504 -</g>
505 -<!-- v23 -->
506 -<g id="node40" class="node">
507 -<title>v23</title>
508 -<polygon fill="none" stroke="black" points="8588.43,-470.8 8220.29,-470.8 8220.29,-434.8 8588.43,-434.8 8588.43,-470.8"/>
509 -<text text-anchor="middle" x="8404.36" y="-448.6" font-family="Times,serif" font-size="14.00">v23 (readonly $21 @ Const readonly $21 = &quot; Items&quot;) &lt;assign&gt;</text>
510 -</g>
511 -<!-- v26 -->
512 -<g id="node41" class="node">
513 -<title>v26</title>
514 -<polygon fill="none" stroke="black" points="8674.38,-396 8134.34,-396 8134.34,-360 8674.38,-360 8674.38,-396"/>
515 -<text text-anchor="middle" x="8404.36" y="-373.8" font-family="Times,serif" font-size="14.00">v26 (freeze $21 @ JSX &lt;freeze $20&gt;{freeze count$17}{freeze $21}&lt;/freeze $20&gt;) &lt;update&gt;</text>
516 -</g>
517 -<!-- v23&#45;&gt;v26 -->
518 -<g id="edge27" class="edge">
519 -<title>v23&#45;&gt;v26</title>
520 -<path fill="none" stroke="black" d="M8404.36,-434.55C8404.36,-426.12 8404.36,-415.77 8404.36,-406.3"/>
521 -<polygon fill="black" stroke="black" points="8407.86,-406.13 8404.36,-396.13 8400.86,-406.13 8407.86,-406.13"/>
522 -</g>
523 -<!-- v27 -->
524 -<g id="node42" class="node">
525 -<title>v27</title>
526 -<polygon fill="none" stroke="black" points="9429.92,-470.8 8752.81,-470.8 8752.81,-434.8 9429.92,-434.8 9429.92,-470.8"/>
527 -<text text-anchor="middle" x="9091.36" y="-448.6" font-family="Times,serif" font-size="14.00">v27 (readonly $22 @ Const readonly $22 = JSX &lt;freeze $20&gt;{freeze count$17}{freeze $21}&lt;/freeze $20&gt;) &lt;assign&gt;</text>
528 -</g>
529 -<!-- v32 -->
530 -<g id="node43" class="node">
531 -<title>v32</title>
532 -<polygon fill="none" stroke="black" points="9490.71,-396 8692.02,-396 8692.02,-360 9490.71,-360 9490.71,-396"/>
533 -<text text-anchor="middle" x="9091.36" y="-373.8" font-family="Times,serif" font-size="14.00">v32 (freeze $22 @ JSX &lt;freeze $18&gt;{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}&lt;/freeze $18&gt;) &lt;update&gt;</text>
534 -</g>
535 -<!-- v27&#45;&gt;v32 -->
536 -<g id="edge28" class="edge">
537 -<title>v27&#45;&gt;v32</title>
538 -<path fill="none" stroke="black" d="M9091.36,-434.55C9091.36,-426.12 9091.36,-415.77 9091.36,-406.3"/>
539 -<polygon fill="black" stroke="black" points="9094.86,-406.13 9091.36,-396.13 9087.86,-406.13 9094.86,-406.13"/>
540 -</g>
541 -<!-- v28 -->
542 -<g id="node44" class="node">
543 -<title>v28</title>
544 -<polygon fill="none" stroke="black" points="10041.66,-473.4 9773.06,-473.4 9773.06,-432.2 10041.66,-432.2 10041.66,-473.4"/>
545 -<text text-anchor="middle" x="9907.36" y="-457" font-family="Times,serif" font-size="14.00">v28 (readonly $23 @ Const readonly $23 = &quot;</text>
546 -<text text-anchor="middle" x="9907.36" y="-440.2" font-family="Times,serif" font-size="14.00"> &#160;&#160;&#160;&#160;&#160;&quot;) &lt;assign&gt;</text>
547 -</g>
548 -<!-- v33 -->
549 -<g id="node45" class="node">
550 -<title>v33</title>
551 -<polygon fill="none" stroke="black" points="10306.71,-396 9508.02,-396 9508.02,-360 10306.71,-360 10306.71,-396"/>
552 -<text text-anchor="middle" x="9907.36" y="-373.8" font-family="Times,serif" font-size="14.00">v33 (freeze $23 @ JSX &lt;freeze $18&gt;{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}&lt;/freeze $18&gt;) &lt;update&gt;</text>
553 -</g>
554 -<!-- v28&#45;&gt;v33 -->
555 -<g id="edge29" class="edge">
556 -<title>v28&#45;&gt;v33</title>
557 -<path fill="none" stroke="black" d="M9907.36,-431.91C9907.36,-424.09 9907.36,-414.99 9907.36,-406.56"/>
558 -<polygon fill="black" stroke="black" points="9910.86,-406.39 9907.36,-396.39 9903.86,-406.39 9910.86,-406.39"/>
559 -</g>
560 -<!-- v29 -->
561 -<g id="node46" class="node">
562 -<title>v29</title>
563 -<polygon fill="none" stroke="black" points="10857.66,-473.4 10589.06,-473.4 10589.06,-432.2 10857.66,-432.2 10857.66,-473.4"/>
564 -<text text-anchor="middle" x="10723.36" y="-457" font-family="Times,serif" font-size="14.00">v29 (readonly $24 @ Const readonly $24 = &quot;</text>
565 -<text text-anchor="middle" x="10723.36" y="-440.2" font-family="Times,serif" font-size="14.00"> &#160;&#160;&#160;&quot;) &lt;assign&gt;</text>
566 -</g>
567 -<!-- v35 -->
568 -<g id="node47" class="node">
569 -<title>v35</title>
570 -<polygon fill="none" stroke="black" points="11122.71,-396 10324.02,-396 10324.02,-360 11122.71,-360 11122.71,-396"/>
571 -<text text-anchor="middle" x="10723.36" y="-373.8" font-family="Times,serif" font-size="14.00">v35 (freeze $24 @ JSX &lt;freeze $18&gt;{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}&lt;/freeze $18&gt;) &lt;update&gt;</text>
572 -</g>
573 -<!-- v29&#45;&gt;v35 -->
574 -<g id="edge30" class="edge">
575 -<title>v29&#45;&gt;v35</title>
576 -<path fill="none" stroke="black" d="M10723.36,-431.91C10723.36,-424.09 10723.36,-414.99 10723.36,-406.56"/>
577 -<polygon fill="black" stroke="black" points="10726.86,-406.39 10723.36,-396.39 10719.86,-406.39 10726.86,-406.39"/>
578 -</g>
579 -<!-- v36 -->
580 -<g id="node48" class="node">
581 -<title>v36</title>
582 -<polygon fill="none" stroke="black" points="11811.24,-470.8 10875.48,-470.8 10875.48,-434.8 11811.24,-434.8 11811.24,-470.8"/>
583 -<text text-anchor="middle" x="11343.36" y="-448.6" font-family="Times,serif" font-size="14.00">v36 (readonly $25 @ Const readonly $25 = JSX &lt;freeze $18&gt;{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}&lt;/freeze $18&gt;) &lt;assign&gt;</text>
584 -</g>
585 -<!-- v37 -->
586 -<g id="node49" class="node">
587 -<title>v37</title>
588 -<polygon fill="none" stroke="black" points="11486.15,-396 11200.57,-396 11200.57,-360 11486.15,-360 11486.15,-396"/>
589 -<text text-anchor="middle" x="11343.36" y="-373.8" font-family="Times,serif" font-size="14.00">v37 (freeze $25 @ Return freeze $25) &lt;update&gt;</text>
590 -</g>
591 -<!-- v36&#45;&gt;v37 -->
592 -<g id="edge31" class="edge">
593 -<title>v36&#45;&gt;v37</title>
594 -<path fill="none" stroke="black" d="M11343.36,-434.55C11343.36,-426.12 11343.36,-415.77 11343.36,-406.3"/>
595 -<polygon fill="black" stroke="black" points="11346.86,-406.13 11343.36,-396.13 11339.86,-406.13 11346.86,-406.13"/>
596 -</g>
597 -<!-- v41 -->
598 -<g id="node51" class="node">
599 -<title>v41</title>
600 -<polygon fill="none" stroke="black" points="6487.25,-324 5935.47,-324 5935.47,-288 6487.25,-288 6487.25,-324"/>
601 -<text text-anchor="middle" x="6211.36" y="-301.8" font-family="Times,serif" font-size="14.00">v41 (readonly $13 @ Const readonly $13 = Call mutable seen$5.has(freeze item$10)) &lt;assign&gt;</text>
602 -</g>
603 -<!-- v41&#45;&gt;v42 -->
604 -<g id="edge36" class="edge">
605 -<title>v41&#45;&gt;v42</title>
606 -<path fill="none" stroke="black" d="M6154.17,-287.97C6120.77,-278.01 6078.44,-265.41 6043.46,-254.99"/>
607 -<polygon fill="black" stroke="black" points="6044.39,-251.61 6033.8,-252.11 6042.39,-258.32 6044.39,-251.61"/>
608 -</g>
609 -<!-- v43&#45;&gt;v56 -->
610 -<g id="edge38" class="edge">
611 -<title>v43&#45;&gt;v56</title>
612 -<path fill="none" stroke="black" d="M2105.26,-252.1C2106.06,-259.79 2106.3,-269.05 2105.96,-277.67"/>
613 -<polygon fill="black" stroke="black" points="2102.47,-277.48 2105.28,-287.7 2109.45,-277.96 2102.47,-277.48"/>
614 -</g>
615 -<!-- v43&#45;&gt;v59 -->
616 -<g id="edge37" class="edge">
617 -<title>v43&#45;&gt;v59</title>
618 -<path fill="none" stroke="black" d="M2165.31,-215.97C2204.24,-205.91 2253.69,-193.14 2294.27,-182.65"/>
619 -<polygon fill="black" stroke="black" points="2295.31,-186 2304.12,-180.11 2293.56,-179.22 2295.31,-186"/>
620 -</g>
621 -<!-- v47 -->
622 -<g id="node54" class="node">
623 -<title>v47</title>
624 -<polygon fill="none" stroke="black" points="5494.43,-180 5008.3,-180 5008.3,-144 5494.43,-144 5494.43,-180"/>
625 -<text text-anchor="middle" x="5251.36" y="-157.8" font-family="Times,serif" font-size="14.00">v47 (freeze item$10 @ JSX &lt;freeze $14&gt;{freeze item$10}&lt;/freeze $14&gt;) &lt;update&gt;</text>
626 -</g>
627 -<!-- v44&#45;&gt;v47 -->
628 -<g id="edge39" class="edge">
629 -<title>v44&#45;&gt;v47</title>
630 -<path fill="none" stroke="black" d="M5157.69,-215.88C5174.06,-206.64 5194.44,-195.13 5212.01,-185.21"/>
631 -<polygon fill="black" stroke="black" points="5213.92,-188.15 5220.91,-180.19 5210.48,-182.06 5213.92,-188.15"/>
632 -</g>
633 -<!-- v47&#45;&gt;v57 -->
634 -<g id="edge41" class="edge">
635 -<title>v47&#45;&gt;v57</title>
636 -<path fill="none" stroke="black" d="M5311.93,-180.04C5329.29,-188.04 5346.25,-199.57 5356.36,-216 5364.75,-229.63 5364.75,-238.37 5356.36,-252 5348.06,-265.48 5335.16,-275.66 5321.21,-283.29"/>
637 -<polygon fill="black" stroke="black" points="5319.29,-280.34 5311.93,-287.96 5322.43,-286.6 5319.29,-280.34"/>
638 -</g>
639 -<!-- v45 -->
640 -<g id="node55" class="node">
641 -<title>v45</title>
642 -<polygon fill="none" stroke="black" points="12180.22,-470.8 11828.5,-470.8 11828.5,-434.8 12180.22,-434.8 12180.22,-470.8"/>
643 -<text text-anchor="middle" x="12004.36" y="-448.6" font-family="Times,serif" font-size="14.00">v45 (readonly $14 @ Const readonly $14 = &quot;div&quot;) &lt;assign&gt;</text>
644 -</g>
645 -<!-- v46 -->
646 -<g id="node56" class="node">
647 -<title>v46</title>
648 -<polygon fill="none" stroke="black" points="12235.04,-396 11773.68,-396 11773.68,-360 12235.04,-360 12235.04,-396"/>
649 -<text text-anchor="middle" x="12004.36" y="-373.8" font-family="Times,serif" font-size="14.00">v46 (freeze $14 @ JSX &lt;freeze $14&gt;{freeze item$10}&lt;/freeze $14&gt;) &lt;update&gt;</text>
650 -</g>
651 -<!-- v45&#45;&gt;v46 -->
652 -<g id="edge40" class="edge">
653 -<title>v45&#45;&gt;v46</title>
654 -<path fill="none" stroke="black" d="M12004.36,-434.55C12004.36,-426.12 12004.36,-415.77 12004.36,-406.3"/>
655 -<polygon fill="black" stroke="black" points="12007.86,-406.13 12004.36,-396.13 12000.86,-406.13 12007.86,-406.13"/>
656 -</g>
657 -<!-- v48 -->
658 -<g id="node57" class="node">
659 -<title>v48</title>
660 -<polygon fill="none" stroke="black" points="12796.58,-470.8 12198.14,-470.8 12198.14,-434.8 12796.58,-434.8 12796.58,-470.8"/>
661 -<text text-anchor="middle" x="12497.36" y="-448.6" font-family="Times,serif" font-size="14.00">v48 (readonly $15 @ Const readonly $15 = JSX &lt;freeze $14&gt;{freeze item$10}&lt;/freeze $14&gt;) &lt;assign&gt;</text>
662 -</g>
663 -<!-- v50 -->
664 -<g id="node58" class="node">
665 -<title>v50</title>
666 -<polygon fill="none" stroke="black" points="12734.65,-396 12260.07,-396 12260.07,-360 12734.65,-360 12734.65,-396"/>
667 -<text text-anchor="middle" x="12497.36" y="-373.8" font-family="Times,serif" font-size="14.00">v50 (mutable $15 @ Call mutable renderedItems$4.push(mutable $15)) &lt;update&gt;</text>
668 -</g>
669 -<!-- v48&#45;&gt;v50 -->
670 -<g id="edge42" class="edge">
671 -<title>v48&#45;&gt;v50</title>
672 -<path fill="none" stroke="black" d="M12497.36,-434.55C12497.36,-426.12 12497.36,-415.77 12497.36,-406.3"/>
673 -<polygon fill="black" stroke="black" points="12500.86,-406.13 12497.36,-396.13 12493.86,-406.13 12500.86,-406.13"/>
674 -</g>
675 -<!-- v51&#45;&gt;v18 -->
676 -<g id="edge44" class="edge">
677 -<title>v51&#45;&gt;v18</title>
678 -<path fill="none" stroke="black" d="M1461.95,-287.84C1481.32,-268.51 1514.98,-237.06 1548.36,-216 1568.21,-203.48 1591.52,-192.5 1612.36,-183.83"/>
679 -<polygon fill="black" stroke="black" points="1613.8,-187.03 1621.74,-180.01 1611.16,-180.54 1613.8,-187.03"/>
680 -</g>
681 -<!-- v51&#45;&gt;v62 -->
682 -<g id="edge45" class="edge">
683 -<title>v51&#45;&gt;v62</title>
684 -<path fill="none" stroke="black" d="M1499.87,-287.97C1531.58,-278.06 1571.72,-265.51 1604.97,-255.12"/>
685 -<polygon fill="black" stroke="black" points="1606.11,-258.43 1614.61,-252.11 1604.02,-251.75 1606.11,-258.43"/>
686 -</g>
687 -<!-- v51&#45;&gt;v71 -->
688 -<g id="edge46" class="edge">
689 -<title>v51&#45;&gt;v71</title>
690 -<path fill="none" stroke="black" d="M1359.22,-287.97C1307.29,-277.7 1241.06,-264.6 1187.44,-254"/>
691 -<polygon fill="black" stroke="black" points="1188.07,-250.56 1177.59,-252.05 1186.72,-257.42 1188.07,-250.56"/>
692 -</g>
693 -<!-- v53 -->
694 -<g id="node60" class="node">
695 -<title>v53</title>
696 -<polygon fill="none" stroke="black" points="13447.82,-470.8 12814.9,-470.8 12814.9,-434.8 13447.82,-434.8 13447.82,-470.8"/>
697 -<text text-anchor="middle" x="13131.36" y="-448.6" font-family="Times,serif" font-size="14.00">v53 (freeze $16 @ Const freeze $16 = Binary readonly renderedItems$4.length &gt;= readonly max$7) &lt;assign&gt;</text>
698 -</g>
699 -<!-- v54 -->
700 -<g id="node61" class="node">
701 -<title>v54</title>
702 -<polygon fill="none" stroke="black" points="13315.84,-396 12946.88,-396 12946.88,-360 13315.84,-360 13315.84,-396"/>
703 -<text text-anchor="middle" x="13131.36" y="-373.8" font-family="Times,serif" font-size="14.00">v54 (freeze $16 @ If (freeze $16) then:bb2 else:bb1) &lt;update&gt;</text>
704 -</g>
705 -<!-- v53&#45;&gt;v54 -->
706 -<g id="edge48" class="edge">
707 -<title>v53&#45;&gt;v54</title>
708 -<path fill="none" stroke="black" d="M13131.36,-434.55C13131.36,-426.12 13131.36,-415.77 13131.36,-406.3"/>
709 -<polygon fill="black" stroke="black" points="13134.86,-406.13 13131.36,-396.13 13127.86,-406.13 13134.86,-406.13"/>
710 -</g>
711 -<!-- v55 -->
712 -<g id="node62" class="node">
713 -<title>v55</title>
714 -<polygon fill="none" stroke="black" points="579.5,-470.8 313.22,-470.8 313.22,-434.8 579.5,-434.8 579.5,-470.8"/>
715 -<text text-anchor="middle" x="446.36" y="-448.6" font-family="Times,serif" font-size="14.00">v55 (freeze props$1 @ &lt;no&#45;instr&gt;) &lt;assign&gt;</text>
716 -</g>
717 -<!-- v55&#45;&gt;v0 -->
718 -<g id="edge49" class="edge">
719 -<title>v55&#45;&gt;v0</title>
720 -<path fill="none" stroke="black" d="M446.36,-434.55C446.36,-426.12 446.36,-415.77 446.36,-406.3"/>
721 -<polygon fill="black" stroke="black" points="449.86,-406.13 446.36,-396.13 442.86,-406.13 449.86,-406.13"/>
722 -</g>
723 -</g>
724 -</svg>
compiler/forget/src/__tests__/fixtures/hir-svg/switch.svg deleted
-301
@@ -1,301 +0,0 @@
1 -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4 -<!-- Generated by graphviz version 6.0.1 (20220924.0800)
5 - -->
6 -<!-- Title: BuildDefUseGraph Pages: 1 -->
7 -<svg width="5406pt" height="476pt"
8 - viewBox="0.00 0.00 5405.61 476.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9 -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 472)">
10 -<title>BuildDefUseGraph</title>
11 -<polygon fill="white" stroke="none" points="-4,4 -4,-472 5401.61,-472 5401.61,4 -4,4"/>
12 -<!-- v0 -->
13 -<g id="node1" class="node">
14 -<title>v0</title>
15 -<polygon fill="none" stroke="black" points="863.19,-468 516.21,-468 516.21,-432 863.19,-432 863.19,-468"/>
16 -<text text-anchor="middle" x="689.7" y="-445.8" font-family="Times,serif" font-size="14.00">v0 (readonly x$2 @ Let readonly x$2 = Array []) &lt;assign&gt;</text>
17 -</g>
18 -<!-- v7 -->
19 -<g id="node2" class="node">
20 -<title>v7</title>
21 -<polygon fill="none" stroke="black" points="662.06,-396 207.34,-396 207.34,-360 662.06,-360 662.06,-396"/>
22 -<text text-anchor="middle" x="434.7" y="-373.8" font-family="Times,serif" font-size="14.00">v7 (mutable x$2.push @ Call mutable x$2.push(freeze props$1.p2)) &lt;update&gt;</text>
23 -</g>
24 -<!-- v0&#45;&gt;v7 -->
25 -<g id="edge1" class="edge">
26 -<title>v0&#45;&gt;v7</title>
27 -<path fill="none" stroke="black" d="M627.64,-431.97C591.24,-421.97 545.07,-409.3 507.02,-398.85"/>
28 -<polygon fill="black" stroke="black" points="507.6,-395.38 497.03,-396.11 505.75,-402.13 507.6,-395.38"/>
29 -</g>
30 -<!-- v12 -->
31 -<g id="node3" class="node">
32 -<title>v12</title>
33 -<polygon fill="none" stroke="black" points="635.48,-252 361.91,-252 361.91,-216 635.48,-216 635.48,-252"/>
34 -<text text-anchor="middle" x="498.7" y="-229.8" font-family="Times,serif" font-size="14.00">v12 (readonly x$2 @ readonly x$2) &lt;update&gt;</text>
35 -</g>
36 -<!-- v0&#45;&gt;v12 -->
37 -<g id="edge2" class="edge">
38 -<title>v0&#45;&gt;v12</title>
39 -<path fill="none" stroke="black" d="M693.21,-431.63C698.68,-399.32 705.29,-329.52 670.7,-288 659.05,-274.02 643.81,-263.66 627.2,-256"/>
40 -<polygon fill="black" stroke="black" points="628.43,-252.71 617.85,-252.01 625.68,-259.15 628.43,-252.71"/>
41 -</g>
42 -<!-- v15 -->
43 -<g id="node4" class="node">
44 -<title>v15</title>
45 -<polygon fill="none" stroke="black" points="1023.37,-180 432.02,-180 432.02,-144 1023.37,-144 1023.37,-180"/>
46 -<text text-anchor="middle" x="727.7" y="-157.8" font-family="Times,serif" font-size="14.00">v15 (freeze x$2 @ JSX &lt;freeze Component$0 data={freeze x$2} &gt;&lt;/freeze Component$0&gt;) &lt;update&gt;</text>
47 -</g>
48 -<!-- v0&#45;&gt;v15 -->
49 -<g id="edge3" class="edge">
50 -<title>v0&#45;&gt;v15</title>
51 -<path fill="none" stroke="black" d="M698.51,-431.81C703.28,-421.66 708.78,-408.41 711.7,-396 728.81,-323.23 729.57,-234.42 728.66,-190.42"/>
52 -<polygon fill="black" stroke="black" points="732.15,-190.15 728.4,-180.24 725.16,-190.32 732.15,-190.15"/>
53 -</g>
54 -<!-- v9 -->
55 -<g id="node15" class="node">
56 -<title>v9</title>
57 -<polygon fill="none" stroke="black" points="662.06,-324 207.34,-324 207.34,-288 662.06,-288 662.06,-324"/>
58 -<text text-anchor="middle" x="434.7" y="-301.8" font-family="Times,serif" font-size="14.00">v9 (mutable x$2.push @ Call mutable x$2.push(freeze props$1.p3)) &lt;update&gt;</text>
59 -</g>
60 -<!-- v7&#45;&gt;v9 -->
61 -<g id="edge10" class="edge">
62 -<title>v7&#45;&gt;v9</title>
63 -<path fill="none" stroke="black" d="M434.7,-359.7C434.7,-351.98 434.7,-342.71 434.7,-334.11"/>
64 -<polygon fill="black" stroke="black" points="438.2,-334.1 434.7,-324.1 431.2,-334.1 438.2,-334.1"/>
65 -</g>
66 -<!-- v12&#45;&gt;v15 -->
67 -<g id="edge15" class="edge">
68 -<title>v12&#45;&gt;v15</title>
69 -<path fill="none" stroke="black" d="M554.42,-215.97C586.84,-206.06 627.87,-193.51 661.87,-183.12"/>
70 -<polygon fill="black" stroke="black" points="663.18,-186.38 671.72,-180.11 661.13,-179.69 663.18,-186.38"/>
71 -</g>
72 -<!-- v13 -->
73 -<g id="node18" class="node">
74 -<title>v13</title>
75 -<polygon fill="none" stroke="black" points="413.59,-180 -0.2,-180 -0.2,-144 413.59,-144 413.59,-180"/>
76 -<text text-anchor="middle" x="206.7" y="-157.8" font-family="Times,serif" font-size="14.00">v13 (readonly y$3 @ Reassign readonly y$3 = readonly x$2) &lt;assign&gt;</text>
77 -</g>
78 -<!-- v12&#45;&gt;v13 -->
79 -<g id="edge14" class="edge">
80 -<title>v12&#45;&gt;v13</title>
81 -<path fill="none" stroke="black" d="M427.64,-215.97C385.34,-205.83 331.53,-192.93 287.61,-182.4"/>
82 -<polygon fill="black" stroke="black" points="288.36,-178.98 277.82,-180.05 286.73,-185.78 288.36,-178.98"/>
83 -</g>
84 -<!-- v1 -->
85 -<g id="node5" class="node">
86 -<title>v1</title>
87 -<polygon fill="none" stroke="black" points="1398.19,-180 1041.2,-180 1041.2,-144 1398.19,-144 1398.19,-180"/>
88 -<text text-anchor="middle" x="1219.7" y="-157.8" font-family="Times,serif" font-size="14.00">v1 (readonly y$3 @ Let readonly y$3 = undefined) &lt;assign&gt;</text>
89 -</g>
90 -<!-- v17 -->
91 -<g id="node6" class="node">
92 -<title>v17</title>
93 -<polygon fill="none" stroke="black" points="944.56,-108 482.84,-108 482.84,-72 944.56,-72 944.56,-108"/>
94 -<text text-anchor="middle" x="713.7" y="-85.8" font-family="Times,serif" font-size="14.00">v17 (mutable y$3.push @ Call mutable y$3.push(freeze props$1.p4)) &lt;update&gt;</text>
95 -</g>
96 -<!-- v1&#45;&gt;v17 -->
97 -<g id="edge4" class="edge">
98 -<title>v1&#45;&gt;v17</title>
99 -<path fill="none" stroke="black" d="M1096.56,-143.97C1021.11,-133.53 924.52,-120.17 847.23,-109.47"/>
100 -<polygon fill="black" stroke="black" points="847.33,-105.95 836.94,-108.05 846.37,-112.89 847.33,-105.95"/>
101 -</g>
102 -<!-- v20 -->
103 -<g id="node23" class="node">
104 -<title>v20</title>
105 -<polygon fill="none" stroke="black" points="1055.98,-36 371.41,-36 371.41,0 1055.98,0 1055.98,-36"/>
106 -<text text-anchor="middle" x="713.7" y="-13.8" font-family="Times,serif" font-size="14.00">v20 (freeze y$3 @ JSX &lt;freeze Component$0 data={freeze y$3} &gt;{freeze child$6}&lt;/freeze Component$0&gt;) &lt;update&gt;</text>
107 -</g>
108 -<!-- v17&#45;&gt;v20 -->
109 -<g id="edge19" class="edge">
110 -<title>v17&#45;&gt;v20</title>
111 -<path fill="none" stroke="black" d="M713.7,-71.7C713.7,-63.98 713.7,-54.71 713.7,-46.11"/>
112 -<polygon fill="black" stroke="black" points="717.2,-46.1 713.7,-36.1 710.2,-46.1 717.2,-46.1"/>
113 -</g>
114 -<!-- v2 -->
115 -<g id="node7" class="node">
116 -<title>v2</title>
117 -<polygon fill="none" stroke="black" points="1270.66,-468 942.73,-468 942.73,-432 1270.66,-432 1270.66,-468"/>
118 -<text text-anchor="middle" x="1106.7" y="-445.8" font-family="Times,serif" font-size="14.00">v2 (readonly $4 @ Const readonly $4 = false) &lt;assign&gt;</text>
119 -</g>
120 -<!-- v6 -->
121 -<g id="node8" class="node">
122 -<title>v6</title>
123 -<polygon fill="none" stroke="black" points="1457.71,-396 755.68,-396 755.68,-360 1457.71,-360 1457.71,-396"/>
124 -<text text-anchor="middle" x="1106.7" y="-373.8" font-family="Times,serif" font-size="14.00">v6 (readonly $4 @ Switch (freeze props$1.p0); &#160;&#160;Case readonly $5: bb4; &#160;&#160;Case readonly $4: bb2; &#160;&#160;Default: bb1) &lt;update&gt;</text>
125 -</g>
126 -<!-- v2&#45;&gt;v6 -->
127 -<g id="edge5" class="edge">
128 -<title>v2&#45;&gt;v6</title>
129 -<path fill="none" stroke="black" d="M1106.7,-431.7C1106.7,-423.98 1106.7,-414.71 1106.7,-406.11"/>
130 -<polygon fill="black" stroke="black" points="1110.2,-406.1 1106.7,-396.1 1103.2,-406.1 1110.2,-406.1"/>
131 -</g>
132 -<!-- v3 -->
133 -<g id="node9" class="node">
134 -<title>v3</title>
135 -<polygon fill="none" stroke="black" points="1989,-468 1666.39,-468 1666.39,-432 1989,-432 1989,-468"/>
136 -<text text-anchor="middle" x="1827.7" y="-445.8" font-family="Times,serif" font-size="14.00">v3 (readonly $5 @ Const readonly $5 = true) &lt;assign&gt;</text>
137 -</g>
138 -<!-- v5 -->
139 -<g id="node10" class="node">
140 -<title>v5</title>
141 -<polygon fill="none" stroke="black" points="2178.71,-396 1476.68,-396 1476.68,-360 2178.71,-360 2178.71,-396"/>
142 -<text text-anchor="middle" x="1827.7" y="-373.8" font-family="Times,serif" font-size="14.00">v5 (readonly $5 @ Switch (freeze props$1.p0); &#160;&#160;Case readonly $5: bb4; &#160;&#160;Case readonly $4: bb2; &#160;&#160;Default: bb1) &lt;update&gt;</text>
143 -</g>
144 -<!-- v3&#45;&gt;v5 -->
145 -<g id="edge6" class="edge">
146 -<title>v3&#45;&gt;v5</title>
147 -<path fill="none" stroke="black" d="M1827.7,-431.7C1827.7,-423.98 1827.7,-414.71 1827.7,-406.11"/>
148 -<polygon fill="black" stroke="black" points="1831.2,-406.1 1827.7,-396.1 1824.2,-406.1 1831.2,-406.1"/>
149 -</g>
150 -<!-- v4 -->
151 -<g id="node11" class="node">
152 -<title>v4</title>
153 -<polygon fill="none" stroke="black" points="2933.02,-396 2196.37,-396 2196.37,-360 2933.02,-360 2933.02,-396"/>
154 -<text text-anchor="middle" x="2564.7" y="-373.8" font-family="Times,serif" font-size="14.00">v4 (freeze props$1.p0 @ Switch (freeze props$1.p0); &#160;&#160;Case readonly $5: bb4; &#160;&#160;Case readonly $4: bb2; &#160;&#160;Default: bb1) &lt;update&gt;</text>
155 -</g>
156 -<!-- v8 -->
157 -<g id="node12" class="node">
158 -<title>v8</title>
159 -<polygon fill="none" stroke="black" points="2535.3,-324 2080.09,-324 2080.09,-288 2535.3,-288 2535.3,-324"/>
160 -<text text-anchor="middle" x="2307.7" y="-301.8" font-family="Times,serif" font-size="14.00">v8 (freeze props$1.p2 @ Call mutable x$2.push(freeze props$1.p2)) &lt;update&gt;</text>
161 -</g>
162 -<!-- v4&#45;&gt;v8 -->
163 -<g id="edge7" class="edge">
164 -<title>v4&#45;&gt;v8</title>
165 -<path fill="none" stroke="black" d="M2502.16,-359.97C2465.47,-349.97 2418.94,-337.3 2380.59,-326.85"/>
166 -<polygon fill="black" stroke="black" points="2381.09,-323.36 2370.52,-324.11 2379.25,-330.12 2381.09,-323.36"/>
167 -</g>
168 -<!-- v18 -->
169 -<g id="node13" class="node">
170 -<title>v18</title>
171 -<polygon fill="none" stroke="black" points="2763.8,-108 2301.59,-108 2301.59,-72 2763.8,-72 2763.8,-108"/>
172 -<text text-anchor="middle" x="2532.7" y="-85.8" font-family="Times,serif" font-size="14.00">v18 (freeze props$1.p4 @ Call mutable y$3.push(freeze props$1.p4)) &lt;update&gt;</text>
173 -</g>
174 -<!-- v4&#45;&gt;v18 -->
175 -<g id="edge8" class="edge">
176 -<title>v4&#45;&gt;v18</title>
177 -<path fill="none" stroke="black" d="M2572.59,-359.75C2576.8,-349.58 2581.55,-336.33 2583.7,-324 2597.4,-245.18 2613.6,-218.2 2583.7,-144 2579.35,-133.21 2571.63,-123.39 2563.5,-115.21"/>
178 -<polygon fill="black" stroke="black" points="2565.69,-112.46 2556,-108.18 2560.91,-117.57 2565.69,-112.46"/>
179 -</g>
180 -<!-- v25 -->
181 -<g id="node14" class="node">
182 -<title>v25</title>
183 -<polygon fill="none" stroke="black" points="2574.44,-180 2350.96,-180 2350.96,-144 2574.44,-144 2574.44,-180"/>
184 -<text text-anchor="middle" x="2462.7" y="-157.8" font-family="Times,serif" font-size="14.00">v25 (&lt;join&gt; @ &lt;no&#45;instr&gt;) &lt;update&gt;</text>
185 -</g>
186 -<!-- v4&#45;&gt;v25 -->
187 -<g id="edge9" class="edge">
188 -<title>v4&#45;&gt;v25</title>
189 -<path fill="none" stroke="black" d="M2567.17,-359.94C2570.77,-328.75 2574.25,-261.55 2545.7,-216 2537.8,-203.41 2525.7,-193.25 2513.15,-185.34"/>
190 -<polygon fill="black" stroke="black" points="2514.84,-182.27 2504.44,-180.21 2511.29,-188.3 2514.84,-182.27"/>
191 -</g>
192 -<!-- v10 -->
193 -<g id="node16" class="node">
194 -<title>v10</title>
195 -<polygon fill="none" stroke="black" points="2536.8,-252 2074.59,-252 2074.59,-216 2536.8,-216 2536.8,-252"/>
196 -<text text-anchor="middle" x="2305.7" y="-229.8" font-family="Times,serif" font-size="14.00">v10 (freeze props$1.p3 @ Call mutable x$2.push(freeze props$1.p3)) &lt;update&gt;</text>
197 -</g>
198 -<!-- v8&#45;&gt;v10 -->
199 -<g id="edge11" class="edge">
200 -<title>v8&#45;&gt;v10</title>
201 -<path fill="none" stroke="black" d="M2307.2,-287.7C2306.98,-279.98 2306.72,-270.71 2306.47,-262.11"/>
202 -<polygon fill="black" stroke="black" points="2309.97,-262 2306.19,-252.1 2302.97,-262.2 2309.97,-262"/>
203 -</g>
204 -<!-- v25&#45;&gt;v18 -->
205 -<g id="edge22" class="edge">
206 -<title>v25&#45;&gt;v18</title>
207 -<path fill="none" stroke="black" d="M2480,-143.7C2488.56,-135.14 2499.04,-124.66 2508.39,-115.3"/>
208 -<polygon fill="black" stroke="black" points="2511,-117.65 2515.59,-108.1 2506.05,-112.7 2511,-117.65"/>
209 -</g>
210 -<!-- v9&#45;&gt;v12 -->
211 -<g id="edge12" class="edge">
212 -<title>v9&#45;&gt;v12</title>
213 -<path fill="none" stroke="black" d="M450.52,-287.7C458.27,-279.22 467.74,-268.86 476.22,-259.58"/>
214 -<polygon fill="black" stroke="black" points="478.89,-261.85 483.06,-252.1 473.73,-257.12 478.89,-261.85"/>
215 -</g>
216 -<!-- v10&#45;&gt;v25 -->
217 -<g id="edge13" class="edge">
218 -<title>v10&#45;&gt;v25</title>
219 -<path fill="none" stroke="black" d="M2344.1,-215.88C2365.57,-206.31 2392.5,-194.3 2415.27,-184.15"/>
220 -<polygon fill="black" stroke="black" points="2416.71,-187.34 2424.41,-180.07 2413.86,-180.94 2416.71,-187.34"/>
221 -</g>
222 -<!-- v11 -->
223 -<g id="node17" class="node">
224 -<title>v11</title>
225 -<polygon fill="none" stroke="black" points="3101.58,-468 2715.81,-468 2715.81,-432 3101.58,-432 3101.58,-468"/>
226 -<text text-anchor="middle" x="2908.7" y="-445.8" font-family="Times,serif" font-size="14.00">v11 (readonly y$3 @ Reassign readonly y$3 = Array []) &lt;assign&gt;</text>
227 -</g>
228 -<!-- v13&#45;&gt;v17 -->
229 -<g id="edge16" class="edge">
230 -<title>v13&#45;&gt;v17</title>
231 -<path fill="none" stroke="black" d="M330.07,-143.97C405.67,-133.53 502.46,-120.17 579.9,-109.47"/>
232 -<polygon fill="black" stroke="black" points="580.78,-112.88 590.21,-108.05 579.82,-105.95 580.78,-112.88"/>
233 -</g>
234 -<!-- v14 -->
235 -<g id="node19" class="node">
236 -<title>v14</title>
237 -<polygon fill="none" stroke="black" points="3769.7,-468 3119.69,-468 3119.69,-432 3769.7,-432 3769.7,-468"/>
238 -<text text-anchor="middle" x="3444.7" y="-445.8" font-family="Times,serif" font-size="14.00">v14 (freeze Component$0 @ JSX &lt;freeze Component$0 data={freeze x$2} &gt;&lt;/freeze Component$0&gt;) &lt;update&gt;</text>
239 -</g>
240 -<!-- v19 -->
241 -<g id="node20" class="node">
242 -<title>v19</title>
243 -<polygon fill="none" stroke="black" points="3816.31,-396 3073.08,-396 3073.08,-360 3816.31,-360 3816.31,-396"/>
244 -<text text-anchor="middle" x="3444.7" y="-373.8" font-family="Times,serif" font-size="14.00">v19 (freeze Component$0 @ JSX &lt;freeze Component$0 data={freeze y$3} &gt;{freeze child$6}&lt;/freeze Component$0&gt;) &lt;update&gt;</text>
245 -</g>
246 -<!-- v14&#45;&gt;v19 -->
247 -<g id="edge17" class="edge">
248 -<title>v14&#45;&gt;v19</title>
249 -<path fill="none" stroke="black" d="M3444.7,-431.7C3444.7,-423.98 3444.7,-414.71 3444.7,-406.11"/>
250 -<polygon fill="black" stroke="black" points="3448.2,-406.1 3444.7,-396.1 3441.2,-406.1 3448.2,-406.1"/>
251 -</g>
252 -<!-- v16 -->
253 -<g id="node21" class="node">
254 -<title>v16</title>
255 -<polygon fill="none" stroke="black" points="4571.89,-468 3801.5,-468 3801.5,-432 4571.89,-432 4571.89,-468"/>
256 -<text text-anchor="middle" x="4186.7" y="-445.8" font-family="Times,serif" font-size="14.00">v16 (readonly child$6 @ Const readonly child$6 = JSX &lt;freeze Component$0 data={freeze x$2} &gt;&lt;/freeze Component$0&gt;) &lt;assign&gt;</text>
257 -</g>
258 -<!-- v21 -->
259 -<g id="node22" class="node">
260 -<title>v21</title>
261 -<polygon fill="none" stroke="black" points="4539.48,-396 3833.92,-396 3833.92,-360 4539.48,-360 4539.48,-396"/>
262 -<text text-anchor="middle" x="4186.7" y="-373.8" font-family="Times,serif" font-size="14.00">v21 (freeze child$6 @ JSX &lt;freeze Component$0 data={freeze y$3} &gt;{freeze child$6}&lt;/freeze Component$0&gt;) &lt;update&gt;</text>
263 -</g>
264 -<!-- v16&#45;&gt;v21 -->
265 -<g id="edge18" class="edge">
266 -<title>v16&#45;&gt;v21</title>
267 -<path fill="none" stroke="black" d="M4186.7,-431.7C4186.7,-423.98 4186.7,-414.71 4186.7,-406.11"/>
268 -<polygon fill="black" stroke="black" points="4190.2,-406.1 4186.7,-396.1 4183.2,-406.1 4190.2,-406.1"/>
269 -</g>
270 -<!-- v22 -->
271 -<g id="node24" class="node">
272 -<title>v22</title>
273 -<polygon fill="none" stroke="black" points="5397.52,-468 4589.88,-468 4589.88,-432 5397.52,-432 5397.52,-468"/>
274 -<text text-anchor="middle" x="4993.7" y="-445.8" font-family="Times,serif" font-size="14.00">v22 (readonly $7 @ Const readonly $7 = JSX &lt;freeze Component$0 data={freeze y$3} &gt;{freeze child$6}&lt;/freeze Component$0&gt;) &lt;assign&gt;</text>
275 -</g>
276 -<!-- v23 -->
277 -<g id="node25" class="node">
278 -<title>v23</title>
279 -<polygon fill="none" stroke="black" points="5129.49,-396 4857.91,-396 4857.91,-360 5129.49,-360 5129.49,-396"/>
280 -<text text-anchor="middle" x="4993.7" y="-373.8" font-family="Times,serif" font-size="14.00">v23 (freeze $7 @ Return freeze $7) &lt;update&gt;</text>
281 -</g>
282 -<!-- v22&#45;&gt;v23 -->
283 -<g id="edge20" class="edge">
284 -<title>v22&#45;&gt;v23</title>
285 -<path fill="none" stroke="black" d="M4993.7,-431.7C4993.7,-423.98 4993.7,-414.71 4993.7,-406.11"/>
286 -<polygon fill="black" stroke="black" points="4997.2,-406.1 4993.7,-396.1 4990.2,-406.1 4997.2,-406.1"/>
287 -</g>
288 -<!-- v24 -->
289 -<g id="node26" class="node">
290 -<title>v24</title>
291 -<polygon fill="none" stroke="black" points="2697.84,-468 2431.56,-468 2431.56,-432 2697.84,-432 2697.84,-468"/>
292 -<text text-anchor="middle" x="2564.7" y="-445.8" font-family="Times,serif" font-size="14.00">v24 (freeze props$1 @ &lt;no&#45;instr&gt;) &lt;assign&gt;</text>
293 -</g>
294 -<!-- v24&#45;&gt;v4 -->
295 -<g id="edge21" class="edge">
296 -<title>v24&#45;&gt;v4</title>
297 -<path fill="none" stroke="black" d="M2564.7,-431.7C2564.7,-423.98 2564.7,-414.71 2564.7,-406.11"/>
298 -<polygon fill="black" stroke="black" points="2568.2,-406.1 2564.7,-396.1 2561.2,-406.1 2568.2,-406.1"/>
299 -</g>
300 -</g>
301 -</svg>