[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) <update></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) <assign></text>
23
-</g>
24
-<!-- v0->v1 -->
25
-<g id="edge1" class="edge">
26
-<title>v0->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) <update></text>
35
-</g>
36
-<!-- v0->v2 -->
37
-<g id="edge2" class="edge">
38
-<title>v0->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) <update></text>
47
-</g>
48
-<!-- v1->v12 -->
49
-<g id="edge3" class="edge">
50
-<title>v1->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) <assign></text>
59
-</g>
60
-<!-- v2->v3 -->
61
-<g id="edge4" class="edge">
62
-<title>v2->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)) <update></text>
71
-</g>
72
-<!-- v3->v10 -->
73
-<g id="edge5" class="edge">
74
-<title>v3->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 []) <assign></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) <update></text>
89
-</g>
90
-<!-- v4->v18 -->
91
-<g id="edge6" class="edge">
92
-<title>v4->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)) <update></text>
101
-</g>
102
-<!-- v4->v49 -->
103
-<g id="edge7" class="edge">
104
-<title>v4->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 (<join> @ <no-instr>) <update></text>
113
-</g>
114
-<!-- v4->v62 -->
115
-<g id="edge8" class="edge">
116
-<title>v4->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 (<join> @ <no-instr>) <update></text>
125
-</g>
126
-<!-- v4->v71 -->
127
-<g id="edge9" class="edge">
128
-<title>v4->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) <assign></text>
137
-</g>
138
-<!-- v18->v19 -->
139
-<g id="edge21" class="edge">
140
-<title>v18->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 <freeze $18>{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}</freeze $18>) <update></text>
149
-</g>
150
-<!-- v18->v34 -->
151
-<g id="edge22" class="edge">
152
-<title>v18->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 >= readonly max$7) <update></text>
161
-</g>
162
-<!-- v49->v51 -->
163
-<g id="edge43" class="edge">
164
-<title>v49->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->v18 -->
169
-<g id="edge54" class="edge">
170
-<title>v62->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->v49 -->
175
-<g id="edge55" class="edge">
176
-<title>v71->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()) <update></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()) <assign></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)) <update></text>
197
-</g>
198
-<!-- v6->v39 -->
199
-<g id="edge10" class="edge">
200
-<title>v6->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 (<join> @ <no-instr>) <update></text>
209
-</g>
210
-<!-- v6->v56 -->
211
-<g id="edge11" class="edge">
212
-<title>v6->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 (<join> @ <no-instr>) <update></text>
221
-</g>
222
-<!-- v6->v59 -->
223
-<g id="edge12" class="edge">
224
-<title>v6->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->v56 -->
229
-<g id="edge33" class="edge">
230
-<title>v39->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->v59 -->
235
-<g id="edge34" class="edge">
236
-<title>v39->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)) <update></text>
245
-</g>
246
-<!-- v56->v43 -->
247
-<g id="edge50" class="edge">
248
-<title>v56->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->v39 -->
253
-<g id="edge53" class="edge">
254
-<title>v59->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) <assign></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)) <update></text>
269
-</g>
270
-<!-- v7->v9 -->
271
-<g id="edge13" class="edge">
272
-<title>v7->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)) <update></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)) <assign></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 >= readonly max$7) <update></text>
293
-</g>
294
-<!-- v11->v52 -->
295
-<g id="edge14" class="edge">
296
-<title>v11->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 (<join> @ <no-instr>) <update></text>
305
-</g>
306
-<!-- v11->v72 -->
307
-<g id="edge15" class="edge">
308
-<title>v11->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->v72 -->
313
-<g id="edge47" class="edge">
314
-<title>v52->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->v52 -->
319
-<g id="edge56" class="edge">
320
-<title>v72->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) <assign></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) <update></text>
335
-</g>
336
-<!-- v13->v15 -->
337
-<g id="edge16" class="edge">
338
-<title>v13->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) <update></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)) <update></text>
353
-</g>
354
-<!-- v14->v40 -->
355
-<g id="edge17" class="edge">
356
-<title>v14->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 (<join> @ <no-instr>) <update></text>
365
-</g>
366
-<!-- v14->v57 -->
367
-<g id="edge18" class="edge">
368
-<title>v14->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->v57 -->
373
-<g id="edge35" class="edge">
374
-<title>v40->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->v14 -->
379
-<g id="edge52" class="edge">
380
-<title>v57->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)) <update></text>
389
-</g>
390
-<!-- v57->v44 -->
391
-<g id="edge51" class="edge">
392
-<title>v57->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) <assign></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) <update></text>
407
-</g>
408
-<!-- v16->v17 -->
409
-<g id="edge19" class="edge">
410
-<title>v16->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) <assign></text>
419
-</g>
420
-<!-- v17->v38 -->
421
-<g id="edge20" class="edge">
422
-<title>v17->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) <update></text>
431
-</g>
432
-<!-- v38->v42 -->
433
-<g id="edge32" class="edge">
434
-<title>v38->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 <freeze $20>{freeze count$17}{freeze $21}</freeze $20>) <update></text>
443
-</g>
444
-<!-- v19->v25 -->
445
-<g id="edge23" class="edge">
446
-<title>v19->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 = "div") <assign></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 <freeze $18>{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}</freeze $18>) <update></text>
461
-</g>
462
-<!-- v20->v30 -->
463
-<g id="edge24" class="edge">
464
-<title>v20->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 = "</text>
473
-<text text-anchor="middle" x="7159.36" y="-440.2" font-family="Times,serif" font-size="14.00">      ") <assign></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 <freeze $18>{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}</freeze $18>) <update></text>
480
-</g>
481
-<!-- v21->v31 -->
482
-<g id="edge25" class="edge">
483
-<title>v21->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 = "h1") <assign></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 <freeze $20>{freeze count$17}{freeze $21}</freeze $20>) <update></text>
498
-</g>
499
-<!-- v22->v24 -->
500
-<g id="edge26" class="edge">
501
-<title>v22->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 = " Items") <assign></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 <freeze $20>{freeze count$17}{freeze $21}</freeze $20>) <update></text>
516
-</g>
517
-<!-- v23->v26 -->
518
-<g id="edge27" class="edge">
519
-<title>v23->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 <freeze $20>{freeze count$17}{freeze $21}</freeze $20>) <assign></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 <freeze $18>{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}</freeze $18>) <update></text>
534
-</g>
535
-<!-- v27->v32 -->
536
-<g id="edge28" class="edge">
537
-<title>v27->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 = "</text>
546
-<text text-anchor="middle" x="9907.36" y="-440.2" font-family="Times,serif" font-size="14.00">      ") <assign></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 <freeze $18>{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}</freeze $18>) <update></text>
553
-</g>
554
-<!-- v28->v33 -->
555
-<g id="edge29" class="edge">
556
-<title>v28->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 = "</text>
565
-<text text-anchor="middle" x="10723.36" y="-440.2" font-family="Times,serif" font-size="14.00">    ") <assign></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 <freeze $18>{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}</freeze $18>) <update></text>
572
-</g>
573
-<!-- v29->v35 -->
574
-<g id="edge30" class="edge">
575
-<title>v29->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 <freeze $18>{freeze $19}{freeze $22}{freeze $23}{freeze renderedItems$4}{freeze $24}</freeze $18>) <assign></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) <update></text>
590
-</g>
591
-<!-- v36->v37 -->
592
-<g id="edge31" class="edge">
593
-<title>v36->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)) <assign></text>
602
-</g>
603
-<!-- v41->v42 -->
604
-<g id="edge36" class="edge">
605
-<title>v41->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->v56 -->
610
-<g id="edge38" class="edge">
611
-<title>v43->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->v59 -->
616
-<g id="edge37" class="edge">
617
-<title>v43->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 <freeze $14>{freeze item$10}</freeze $14>) <update></text>
626
-</g>
627
-<!-- v44->v47 -->
628
-<g id="edge39" class="edge">
629
-<title>v44->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->v57 -->
634
-<g id="edge41" class="edge">
635
-<title>v47->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 = "div") <assign></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 <freeze $14>{freeze item$10}</freeze $14>) <update></text>
650
-</g>
651
-<!-- v45->v46 -->
652
-<g id="edge40" class="edge">
653
-<title>v45->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 <freeze $14>{freeze item$10}</freeze $14>) <assign></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)) <update></text>
668
-</g>
669
-<!-- v48->v50 -->
670
-<g id="edge42" class="edge">
671
-<title>v48->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->v18 -->
676
-<g id="edge44" class="edge">
677
-<title>v51->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->v62 -->
682
-<g id="edge45" class="edge">
683
-<title>v51->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->v71 -->
688
-<g id="edge46" class="edge">
689
-<title>v51->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 >= readonly max$7) <assign></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) <update></text>
704
-</g>
705
-<!-- v53->v54 -->
706
-<g id="edge48" class="edge">
707
-<title>v53->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 @ <no-instr>) <assign></text>
716
-</g>
717
-<!-- v55->v0 -->
718
-<g id="edge49" class="edge">
719
-<title>v55->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 []) <assign></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)) <update></text>
23
-</g>
24
-<!-- v0->v7 -->
25
-<g id="edge1" class="edge">
26
-<title>v0->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) <update></text>
35
-</g>
36
-<!-- v0->v12 -->
37
-<g id="edge2" class="edge">
38
-<title>v0->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 <freeze Component$0 data={freeze x$2} ></freeze Component$0>) <update></text>
47
-</g>
48
-<!-- v0->v15 -->
49
-<g id="edge3" class="edge">
50
-<title>v0->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)) <update></text>
59
-</g>
60
-<!-- v7->v9 -->
61
-<g id="edge10" class="edge">
62
-<title>v7->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->v15 -->
67
-<g id="edge15" class="edge">
68
-<title>v12->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) <assign></text>
77
-</g>
78
-<!-- v12->v13 -->
79
-<g id="edge14" class="edge">
80
-<title>v12->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) <assign></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)) <update></text>
95
-</g>
96
-<!-- v1->v17 -->
97
-<g id="edge4" class="edge">
98
-<title>v1->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 <freeze Component$0 data={freeze y$3} >{freeze child$6}</freeze Component$0>) <update></text>
107
-</g>
108
-<!-- v17->v20 -->
109
-<g id="edge19" class="edge">
110
-<title>v17->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) <assign></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);   Case readonly $5: bb4;   Case readonly $4: bb2;   Default: bb1) <update></text>
125
-</g>
126
-<!-- v2->v6 -->
127
-<g id="edge5" class="edge">
128
-<title>v2->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) <assign></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);   Case readonly $5: bb4;   Case readonly $4: bb2;   Default: bb1) <update></text>
143
-</g>
144
-<!-- v3->v5 -->
145
-<g id="edge6" class="edge">
146
-<title>v3->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);   Case readonly $5: bb4;   Case readonly $4: bb2;   Default: bb1) <update></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)) <update></text>
161
-</g>
162
-<!-- v4->v8 -->
163
-<g id="edge7" class="edge">
164
-<title>v4->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)) <update></text>
173
-</g>
174
-<!-- v4->v18 -->
175
-<g id="edge8" class="edge">
176
-<title>v4->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 (<join> @ <no-instr>) <update></text>
185
-</g>
186
-<!-- v4->v25 -->
187
-<g id="edge9" class="edge">
188
-<title>v4->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)) <update></text>
197
-</g>
198
-<!-- v8->v10 -->
199
-<g id="edge11" class="edge">
200
-<title>v8->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->v18 -->
205
-<g id="edge22" class="edge">
206
-<title>v25->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->v12 -->
211
-<g id="edge12" class="edge">
212
-<title>v9->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->v25 -->
217
-<g id="edge13" class="edge">
218
-<title>v10->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 []) <assign></text>
227
-</g>
228
-<!-- v13->v17 -->
229
-<g id="edge16" class="edge">
230
-<title>v13->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 <freeze Component$0 data={freeze x$2} ></freeze Component$0>) <update></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 <freeze Component$0 data={freeze y$3} >{freeze child$6}</freeze Component$0>) <update></text>
245
-</g>
246
-<!-- v14->v19 -->
247
-<g id="edge17" class="edge">
248
-<title>v14->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 <freeze Component$0 data={freeze x$2} ></freeze Component$0>) <assign></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 <freeze Component$0 data={freeze y$3} >{freeze child$6}</freeze Component$0>) <update></text>
263
-</g>
264
-<!-- v16->v21 -->
265
-<g id="edge18" class="edge">
266
-<title>v16->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 <freeze Component$0 data={freeze y$3} >{freeze child$6}</freeze Component$0>) <assign></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) <update></text>
281
-</g>
282
-<!-- v22->v23 -->
283
-<g id="edge20" class="edge">
284
-<title>v22->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 @ <no-instr>) <assign></text>
293
-</g>
294
-<!-- v24->v4 -->
295
-<g id="edge21" class="edge">
296
-<title>v24->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>