compostjs 0.0.11 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/compost.js +34 -28
  2. package/dist/core.js +94 -73
  3. package/dist/fable_modules/fable-library-js.4.28.0/Array.d.ts +123 -0
  4. package/dist/fable_modules/fable-library-js.4.28.0/Array.js +1242 -0
  5. package/dist/fable_modules/fable-library-js.4.28.0/Async.d.ts +26 -0
  6. package/dist/fable_modules/fable-library-js.4.28.0/Async.js +145 -0
  7. package/dist/fable_modules/fable-library-js.4.28.0/AsyncBuilder.d.ts +59 -0
  8. package/dist/fable_modules/fable-library-js.4.28.0/AsyncBuilder.js +183 -0
  9. package/dist/fable_modules/fable-library-js.4.28.0/BigInt.d.ts +115 -0
  10. package/dist/fable_modules/fable-library-js.4.28.0/BigInt.js +283 -0
  11. package/dist/fable_modules/fable-library-js.4.28.0/BitConverter.d.ts +27 -0
  12. package/dist/fable_modules/fable-library-js.4.28.0/BitConverter.js +138 -0
  13. package/dist/fable_modules/fable-library-js.4.28.0/Boolean.d.ts +3 -0
  14. package/dist/fable_modules/fable-library-js.4.28.0/Boolean.js +21 -0
  15. package/dist/fable_modules/fable-library-js.4.28.0/CHANGELOG.md +100 -0
  16. package/dist/fable_modules/fable-library-js.4.28.0/Char.d.ts +65 -0
  17. package/dist/fable_modules/fable-library-js.4.28.0/Char.js +169 -0
  18. package/dist/fable_modules/fable-library-js.4.28.0/Choice.d.ts +121 -0
  19. package/dist/fable_modules/fable-library-js.4.28.0/Choice.js +184 -0
  20. package/dist/fable_modules/fable-library-js.4.28.0/CollectionUtil.d.ts +7 -0
  21. package/dist/fable_modules/fable-library-js.4.28.0/CollectionUtil.js +182 -0
  22. package/dist/fable_modules/fable-library-js.4.28.0/ConditionalWeakTable.d.ts +9 -0
  23. package/dist/fable_modules/fable-library-js.4.28.0/ConditionalWeakTable.js +21 -0
  24. package/dist/fable_modules/fable-library-js.4.28.0/Date.d.ts +70 -0
  25. package/dist/fable_modules/fable-library-js.4.28.0/Date.js +748 -0
  26. package/dist/fable_modules/fable-library-js.4.28.0/DateOffset.d.ts +63 -0
  27. package/dist/fable_modules/fable-library-js.4.28.0/DateOffset.js +268 -0
  28. package/dist/fable_modules/fable-library-js.4.28.0/DateOnly.d.ts +18 -0
  29. package/dist/fable_modules/fable-library-js.4.28.0/DateOnly.js +124 -0
  30. package/dist/fable_modules/fable-library-js.4.28.0/Decimal.d.ts +45 -0
  31. package/dist/fable_modules/fable-library-js.4.28.0/Decimal.js +212 -0
  32. package/dist/fable_modules/fable-library-js.4.28.0/Double.d.ts +11 -0
  33. package/dist/fable_modules/fable-library-js.4.28.0/Double.js +46 -0
  34. package/dist/fable_modules/fable-library-js.4.28.0/Encoding.d.ts +12 -0
  35. package/dist/fable_modules/fable-library-js.4.28.0/Encoding.js +173 -0
  36. package/dist/fable_modules/fable-library-js.4.28.0/Event.d.ts +31 -0
  37. package/dist/fable_modules/fable-library-js.4.28.0/Event.js +93 -0
  38. package/dist/fable_modules/fable-library-js.4.28.0/FSharp.Collections.d.ts +7 -0
  39. package/dist/fable_modules/fable-library-js.4.28.0/FSharp.Collections.js +27 -0
  40. package/dist/fable_modules/fable-library-js.4.28.0/FSharp.Core.CompilerServices.d.ts +12 -0
  41. package/dist/fable_modules/fable-library-js.4.28.0/FSharp.Core.CompilerServices.js +27 -0
  42. package/dist/fable_modules/fable-library-js.4.28.0/FSharp.Core.d.ts +17 -0
  43. package/dist/fable_modules/fable-library-js.4.28.0/FSharp.Core.js +69 -0
  44. package/dist/fable_modules/fable-library-js.4.28.0/Global.d.ts +24 -0
  45. package/dist/fable_modules/fable-library-js.4.28.0/Global.js +8 -0
  46. package/dist/fable_modules/fable-library-js.4.28.0/Guid.d.ts +10 -0
  47. package/dist/fable_modules/fable-library-js.4.28.0/Guid.js +142 -0
  48. package/dist/fable_modules/fable-library-js.4.28.0/Int32.d.ts +28 -0
  49. package/dist/fable_modules/fable-library-js.4.28.0/Int32.js +135 -0
  50. package/dist/fable_modules/fable-library-js.4.28.0/List.d.ts +143 -0
  51. package/dist/fable_modules/fable-library-js.4.28.0/List.js +1273 -0
  52. package/dist/fable_modules/fable-library-js.4.28.0/Long.d.ts +3 -0
  53. package/dist/fable_modules/fable-library-js.4.28.0/Long.js +46 -0
  54. package/dist/fable_modules/fable-library-js.4.28.0/MailboxProcessor.d.ts +25 -0
  55. package/dist/fable_modules/fable-library-js.4.28.0/MailboxProcessor.js +93 -0
  56. package/dist/fable_modules/fable-library-js.4.28.0/Map.d.ts +178 -0
  57. package/dist/fable_modules/fable-library-js.4.28.0/Map.js +1396 -0
  58. package/dist/fable_modules/fable-library-js.4.28.0/MapUtil.d.ts +12 -0
  59. package/dist/fable_modules/fable-library-js.4.28.0/MapUtil.js +127 -0
  60. package/dist/fable_modules/fable-library-js.4.28.0/MutableMap.d.ts +52 -0
  61. package/dist/fable_modules/fable-library-js.4.28.0/MutableMap.js +327 -0
  62. package/dist/fable_modules/fable-library-js.4.28.0/MutableSet.d.ts +39 -0
  63. package/dist/fable_modules/fable-library-js.4.28.0/MutableSet.js +233 -0
  64. package/dist/fable_modules/fable-library-js.4.28.0/Native.d.ts +2 -0
  65. package/dist/fable_modules/fable-library-js.4.28.0/Native.js +8 -0
  66. package/dist/fable_modules/fable-library-js.4.28.0/Numeric.d.ts +19 -0
  67. package/dist/fable_modules/fable-library-js.4.28.0/Numeric.js +71 -0
  68. package/dist/fable_modules/fable-library-js.4.28.0/Observable.d.ts +32 -0
  69. package/dist/fable_modules/fable-library-js.4.28.0/Observable.js +113 -0
  70. package/dist/fable_modules/fable-library-js.4.28.0/Option.d.ts +28 -0
  71. package/dist/fable_modules/fable-library-js.4.28.0/Option.js +96 -0
  72. package/dist/fable_modules/fable-library-js.4.28.0/README.md +3 -0
  73. package/dist/fable_modules/fable-library-js.4.28.0/Random.d.ts +37 -0
  74. package/dist/fable_modules/fable-library-js.4.28.0/Random.js +170 -0
  75. package/dist/fable_modules/fable-library-js.4.28.0/Range.d.ts +12 -0
  76. package/dist/fable_modules/fable-library-js.4.28.0/Range.js +45 -0
  77. package/dist/fable_modules/fable-library-js.4.28.0/Reflection.d.ts +119 -0
  78. package/dist/fable_modules/fable-library-js.4.28.0/Reflection.js +461 -0
  79. package/dist/fable_modules/fable-library-js.4.28.0/RegExp.d.ts +10 -0
  80. package/dist/fable_modules/fable-library-js.4.28.0/RegExp.js +131 -0
  81. package/dist/fable_modules/fable-library-js.4.28.0/Result.d.ts +37 -0
  82. package/dist/fable_modules/fable-library-js.4.28.0/Result.js +165 -0
  83. package/dist/fable_modules/fable-library-js.4.28.0/Seq.d.ts +165 -0
  84. package/dist/fable_modules/fable-library-js.4.28.0/Seq.js +1378 -0
  85. package/dist/fable_modules/fable-library-js.4.28.0/Seq2.d.ts +18 -0
  86. package/dist/fable_modules/fable-library-js.4.28.0/Seq2.js +111 -0
  87. package/dist/fable_modules/fable-library-js.4.28.0/Set.d.ts +190 -0
  88. package/dist/fable_modules/fable-library-js.4.28.0/Set.js +1789 -0
  89. package/dist/fable_modules/fable-library-js.4.28.0/String.d.ts +58 -0
  90. package/dist/fable_modules/fable-library-js.4.28.0/String.js +554 -0
  91. package/dist/fable_modules/fable-library-js.4.28.0/System.Collections.Generic.d.ts +79 -0
  92. package/dist/fable_modules/fable-library-js.4.28.0/System.Collections.Generic.js +317 -0
  93. package/dist/fable_modules/fable-library-js.4.28.0/System.Text.d.ts +38 -0
  94. package/dist/fable_modules/fable-library-js.4.28.0/System.Text.js +162 -0
  95. package/dist/fable_modules/fable-library-js.4.28.0/SystemException.d.ts +5 -0
  96. package/dist/fable_modules/fable-library-js.4.28.0/SystemException.js +5 -0
  97. package/dist/fable_modules/fable-library-js.4.28.0/TimeOnly.d.ts +15 -0
  98. package/dist/fable_modules/fable-library-js.4.28.0/TimeOnly.js +122 -0
  99. package/dist/fable_modules/fable-library-js.4.28.0/TimeSpan.d.ts +34 -0
  100. package/dist/fable_modules/fable-library-js.4.28.0/TimeSpan.js +177 -0
  101. package/dist/fable_modules/fable-library-js.4.28.0/Timer.d.ts +19 -0
  102. package/dist/fable_modules/fable-library-js.4.28.0/Timer.js +67 -0
  103. package/dist/fable_modules/fable-library-js.4.28.0/Types.d.ts +58 -0
  104. package/dist/fable_modules/fable-library-js.4.28.0/Types.js +208 -0
  105. package/dist/fable_modules/fable-library-js.4.28.0/Unicode.13.0.0.d.ts +2 -0
  106. package/dist/fable_modules/fable-library-js.4.28.0/Unicode.13.0.0.js +4 -0
  107. package/dist/fable_modules/fable-library-js.4.28.0/Uri.d.ts +31 -0
  108. package/dist/fable_modules/fable-library-js.4.28.0/Uri.js +159 -0
  109. package/dist/fable_modules/fable-library-js.4.28.0/Util.d.ts +210 -0
  110. package/dist/fable_modules/fable-library-js.4.28.0/Util.js +769 -0
  111. package/dist/fable_modules/fable-library-js.4.28.0/big.d.ts +338 -0
  112. package/dist/fable_modules/fable-library-js.4.28.0/lib/big.d.ts +5 -0
  113. package/dist/fable_modules/fable-library-js.4.28.0/lib/big.js +825 -0
  114. package/dist/fable_modules/fable-library-js.4.28.0/package.json +24 -0
  115. package/dist/fable_modules/project_cracked.json +1 -0
  116. package/package.json +5 -4
  117. package/.claude/settings.local.json +0 -11
  118. package/copy-latest.sh +0 -1
  119. package/dist/fable-library.2.10.1/Array.js +0 -1336
  120. package/dist/fable-library.2.10.1/Async.js +0 -121
  121. package/dist/fable-library.2.10.1/AsyncBuilder.js +0 -200
  122. package/dist/fable-library.2.10.1/Date.js +0 -501
  123. package/dist/fable-library.2.10.1/Decimal.js +0 -208
  124. package/dist/fable-library.2.10.1/Event.js +0 -193
  125. package/dist/fable-library.2.10.1/Int32.js +0 -157
  126. package/dist/fable-library.2.10.1/List.js +0 -1234
  127. package/dist/fable-library.2.10.1/Long.js +0 -155
  128. package/dist/fable-library.2.10.1/Map.js +0 -1292
  129. package/dist/fable-library.2.10.1/MutableMap.js +0 -360
  130. package/dist/fable-library.2.10.1/MutableSet.js +0 -279
  131. package/dist/fable-library.2.10.1/Observable.js +0 -131
  132. package/dist/fable-library.2.10.1/Option.js +0 -118
  133. package/dist/fable-library.2.10.1/Reflection.js +0 -345
  134. package/dist/fable-library.2.10.1/RegExp.js +0 -118
  135. package/dist/fable-library.2.10.1/Seq.js +0 -917
  136. package/dist/fable-library.2.10.1/Set.js +0 -1692
  137. package/dist/fable-library.2.10.1/String.js +0 -679
  138. package/dist/fable-library.2.10.1/Types.js +0 -308
  139. package/dist/fable-library.2.10.1/Util.js +0 -761
  140. package/dist/helpers.js +0 -31
  141. package/dist/lib/big.js +0 -905
  142. package/dist/lib/long.js +0 -1375
  143. package/index.html +0 -49
@@ -0,0 +1,1396 @@
1
+ import { record_type, bool_type, list_type, option_type, class_type } from "./Reflection.js";
2
+ import { some, value as value_1 } from "./Option.js";
3
+ import { structuralHash, compare, toIterator, equals, disposeSafe, getEnumerator, isArrayLike } from "./Util.js";
4
+ import { singleton, ofArrayWithTail, head, tail, isEmpty as isEmpty_1, fold as fold_1, empty as empty_1, FSharpList, cons } from "./List.js";
5
+ import { map as map_2, item, fill, setItem } from "./Array.js";
6
+ import { Record } from "./Types.js";
7
+ import { tryPick as tryPick_1, pick as pick_1, iterate as iterate_1, compareWith, map as map_1, unfold } from "./Seq.js";
8
+ import { format, join } from "./String.js";
9
+ export class MapTreeLeaf$2 {
10
+ constructor(k, v) {
11
+ this.k = k;
12
+ this.v = v;
13
+ }
14
+ }
15
+ export function MapTreeLeaf$2_$reflection(gen0, gen1) {
16
+ return class_type("Map.MapTreeLeaf`2", [gen0, gen1], MapTreeLeaf$2);
17
+ }
18
+ export function MapTreeLeaf$2_$ctor_5BDDA1(k, v) {
19
+ return new MapTreeLeaf$2(k, v);
20
+ }
21
+ export function MapTreeLeaf$2__get_Key(_) {
22
+ return _.k;
23
+ }
24
+ export function MapTreeLeaf$2__get_Value(_) {
25
+ return _.v;
26
+ }
27
+ export class MapTreeNode$2 extends MapTreeLeaf$2 {
28
+ constructor(k, v, left, right, h) {
29
+ super(k, v);
30
+ this.left = left;
31
+ this.right = right;
32
+ this.h = (h | 0);
33
+ }
34
+ }
35
+ export function MapTreeNode$2_$reflection(gen0, gen1) {
36
+ return class_type("Map.MapTreeNode`2", [gen0, gen1], MapTreeNode$2, MapTreeLeaf$2_$reflection(gen0, gen1));
37
+ }
38
+ export function MapTreeNode$2_$ctor_Z39DE9543(k, v, left, right, h) {
39
+ return new MapTreeNode$2(k, v, left, right, h);
40
+ }
41
+ export function MapTreeNode$2__get_Left(_) {
42
+ return _.left;
43
+ }
44
+ export function MapTreeNode$2__get_Right(_) {
45
+ return _.right;
46
+ }
47
+ export function MapTreeNode$2__get_Height(_) {
48
+ return _.h;
49
+ }
50
+ export function MapTreeModule_empty() {
51
+ return undefined;
52
+ }
53
+ export function MapTreeModule_sizeAux(acc_mut, m_mut) {
54
+ MapTreeModule_sizeAux: while (true) {
55
+ const acc = acc_mut, m = m_mut;
56
+ if (m != null) {
57
+ const m2 = value_1(m);
58
+ if (m2 instanceof MapTreeNode$2) {
59
+ const mn = m2;
60
+ acc_mut = MapTreeModule_sizeAux(acc + 1, MapTreeNode$2__get_Left(mn));
61
+ m_mut = MapTreeNode$2__get_Right(mn);
62
+ continue MapTreeModule_sizeAux;
63
+ }
64
+ else {
65
+ return (acc + 1) | 0;
66
+ }
67
+ }
68
+ else {
69
+ return acc | 0;
70
+ }
71
+ break;
72
+ }
73
+ }
74
+ export function MapTreeModule_size(x) {
75
+ return MapTreeModule_sizeAux(0, x);
76
+ }
77
+ export function MapTreeModule_mk(l, k, v, r) {
78
+ let mn, mn_1;
79
+ let hl;
80
+ const m = l;
81
+ if (m != null) {
82
+ const m2 = value_1(m);
83
+ hl = ((m2 instanceof MapTreeNode$2) ? ((mn = m2, MapTreeNode$2__get_Height(mn))) : 1);
84
+ }
85
+ else {
86
+ hl = 0;
87
+ }
88
+ let hr;
89
+ const m_1 = r;
90
+ if (m_1 != null) {
91
+ const m2_1 = value_1(m_1);
92
+ hr = ((m2_1 instanceof MapTreeNode$2) ? ((mn_1 = m2_1, MapTreeNode$2__get_Height(mn_1))) : 1);
93
+ }
94
+ else {
95
+ hr = 0;
96
+ }
97
+ const m_2 = ((hl < hr) ? hr : hl) | 0;
98
+ if (m_2 === 0) {
99
+ return MapTreeLeaf$2_$ctor_5BDDA1(k, v);
100
+ }
101
+ else {
102
+ return MapTreeNode$2_$ctor_Z39DE9543(k, v, l, r, m_2 + 1);
103
+ }
104
+ }
105
+ export function MapTreeModule_rebalance(t1, k, v, t2) {
106
+ let mn, mn_1, m_2, m2_2, mn_2, m_3, m2_3, mn_3;
107
+ let t1h;
108
+ const m = t1;
109
+ if (m != null) {
110
+ const m2 = value_1(m);
111
+ t1h = ((m2 instanceof MapTreeNode$2) ? ((mn = m2, MapTreeNode$2__get_Height(mn))) : 1);
112
+ }
113
+ else {
114
+ t1h = 0;
115
+ }
116
+ let t2h;
117
+ const m_1 = t2;
118
+ if (m_1 != null) {
119
+ const m2_1 = value_1(m_1);
120
+ t2h = ((m2_1 instanceof MapTreeNode$2) ? ((mn_1 = m2_1, MapTreeNode$2__get_Height(mn_1))) : 1);
121
+ }
122
+ else {
123
+ t2h = 0;
124
+ }
125
+ if (t2h > (t1h + 2)) {
126
+ const matchValue = value_1(t2);
127
+ if (matchValue instanceof MapTreeNode$2) {
128
+ const t2$0027 = matchValue;
129
+ if (((m_2 = MapTreeNode$2__get_Left(t2$0027), (m_2 != null) ? ((m2_2 = value_1(m_2), (m2_2 instanceof MapTreeNode$2) ? ((mn_2 = m2_2, MapTreeNode$2__get_Height(mn_2))) : 1)) : 0)) > (t1h + 1)) {
130
+ const matchValue_1 = value_1(MapTreeNode$2__get_Left(t2$0027));
131
+ if (matchValue_1 instanceof MapTreeNode$2) {
132
+ const t2l = matchValue_1;
133
+ return MapTreeModule_mk(MapTreeModule_mk(t1, k, v, MapTreeNode$2__get_Left(t2l)), MapTreeLeaf$2__get_Key(t2l), MapTreeLeaf$2__get_Value(t2l), MapTreeModule_mk(MapTreeNode$2__get_Right(t2l), MapTreeLeaf$2__get_Key(t2$0027), MapTreeLeaf$2__get_Value(t2$0027), MapTreeNode$2__get_Right(t2$0027)));
134
+ }
135
+ else {
136
+ throw new Error("internal error: Map.rebalance");
137
+ }
138
+ }
139
+ else {
140
+ return MapTreeModule_mk(MapTreeModule_mk(t1, k, v, MapTreeNode$2__get_Left(t2$0027)), MapTreeLeaf$2__get_Key(t2$0027), MapTreeLeaf$2__get_Value(t2$0027), MapTreeNode$2__get_Right(t2$0027));
141
+ }
142
+ }
143
+ else {
144
+ throw new Error("internal error: Map.rebalance");
145
+ }
146
+ }
147
+ else if (t1h > (t2h + 2)) {
148
+ const matchValue_2 = value_1(t1);
149
+ if (matchValue_2 instanceof MapTreeNode$2) {
150
+ const t1$0027 = matchValue_2;
151
+ if (((m_3 = MapTreeNode$2__get_Right(t1$0027), (m_3 != null) ? ((m2_3 = value_1(m_3), (m2_3 instanceof MapTreeNode$2) ? ((mn_3 = m2_3, MapTreeNode$2__get_Height(mn_3))) : 1)) : 0)) > (t2h + 1)) {
152
+ const matchValue_3 = value_1(MapTreeNode$2__get_Right(t1$0027));
153
+ if (matchValue_3 instanceof MapTreeNode$2) {
154
+ const t1r = matchValue_3;
155
+ return MapTreeModule_mk(MapTreeModule_mk(MapTreeNode$2__get_Left(t1$0027), MapTreeLeaf$2__get_Key(t1$0027), MapTreeLeaf$2__get_Value(t1$0027), MapTreeNode$2__get_Left(t1r)), MapTreeLeaf$2__get_Key(t1r), MapTreeLeaf$2__get_Value(t1r), MapTreeModule_mk(MapTreeNode$2__get_Right(t1r), k, v, t2));
156
+ }
157
+ else {
158
+ throw new Error("internal error: Map.rebalance");
159
+ }
160
+ }
161
+ else {
162
+ return MapTreeModule_mk(MapTreeNode$2__get_Left(t1$0027), MapTreeLeaf$2__get_Key(t1$0027), MapTreeLeaf$2__get_Value(t1$0027), MapTreeModule_mk(MapTreeNode$2__get_Right(t1$0027), k, v, t2));
163
+ }
164
+ }
165
+ else {
166
+ throw new Error("internal error: Map.rebalance");
167
+ }
168
+ }
169
+ else {
170
+ return MapTreeModule_mk(t1, k, v, t2);
171
+ }
172
+ }
173
+ export function MapTreeModule_add(comparer, k, v, m) {
174
+ if (m != null) {
175
+ const m2 = value_1(m);
176
+ const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;
177
+ if (m2 instanceof MapTreeNode$2) {
178
+ const mn = m2;
179
+ if (c < 0) {
180
+ return MapTreeModule_rebalance(MapTreeModule_add(comparer, k, v, MapTreeNode$2__get_Left(mn)), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeNode$2__get_Right(mn));
181
+ }
182
+ else if (c === 0) {
183
+ return MapTreeNode$2_$ctor_Z39DE9543(k, v, MapTreeNode$2__get_Left(mn), MapTreeNode$2__get_Right(mn), MapTreeNode$2__get_Height(mn));
184
+ }
185
+ else {
186
+ return MapTreeModule_rebalance(MapTreeNode$2__get_Left(mn), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeModule_add(comparer, k, v, MapTreeNode$2__get_Right(mn)));
187
+ }
188
+ }
189
+ else if (c < 0) {
190
+ return MapTreeNode$2_$ctor_Z39DE9543(k, v, MapTreeModule_empty(), m, 2);
191
+ }
192
+ else if (c === 0) {
193
+ return MapTreeLeaf$2_$ctor_5BDDA1(k, v);
194
+ }
195
+ else {
196
+ return MapTreeNode$2_$ctor_Z39DE9543(k, v, m, MapTreeModule_empty(), 2);
197
+ }
198
+ }
199
+ else {
200
+ return MapTreeLeaf$2_$ctor_5BDDA1(k, v);
201
+ }
202
+ }
203
+ export function MapTreeModule_tryFind(comparer_mut, k_mut, m_mut) {
204
+ MapTreeModule_tryFind: while (true) {
205
+ const comparer = comparer_mut, k = k_mut, m = m_mut;
206
+ if (m != null) {
207
+ const m2 = value_1(m);
208
+ const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;
209
+ if (c === 0) {
210
+ return some(MapTreeLeaf$2__get_Value(m2));
211
+ }
212
+ else if (m2 instanceof MapTreeNode$2) {
213
+ const mn = m2;
214
+ comparer_mut = comparer;
215
+ k_mut = k;
216
+ m_mut = ((c < 0) ? MapTreeNode$2__get_Left(mn) : MapTreeNode$2__get_Right(mn));
217
+ continue MapTreeModule_tryFind;
218
+ }
219
+ else {
220
+ return undefined;
221
+ }
222
+ }
223
+ else {
224
+ return undefined;
225
+ }
226
+ break;
227
+ }
228
+ }
229
+ export function MapTreeModule_find(comparer, k, m) {
230
+ const matchValue = MapTreeModule_tryFind(comparer, k, m);
231
+ if (matchValue == null) {
232
+ throw new Error();
233
+ }
234
+ else {
235
+ return value_1(matchValue);
236
+ }
237
+ }
238
+ export function MapTreeModule_partition1(comparer, f, k, v, acc1, acc2) {
239
+ if (f(k, v)) {
240
+ return [MapTreeModule_add(comparer, k, v, acc1), acc2];
241
+ }
242
+ else {
243
+ return [acc1, MapTreeModule_add(comparer, k, v, acc2)];
244
+ }
245
+ }
246
+ export function MapTreeModule_partitionAux(comparer_mut, f_mut, m_mut, acc__mut, acc__1_mut) {
247
+ MapTreeModule_partitionAux: while (true) {
248
+ const comparer = comparer_mut, f = f_mut, m = m_mut, acc_ = acc__mut, acc__1 = acc__1_mut;
249
+ const acc = [acc_, acc__1];
250
+ if (m != null) {
251
+ const m2 = value_1(m);
252
+ if (m2 instanceof MapTreeNode$2) {
253
+ const mn = m2;
254
+ const acc_1 = MapTreeModule_partitionAux(comparer, f, MapTreeNode$2__get_Right(mn), acc[0], acc[1]);
255
+ const acc_4 = MapTreeModule_partition1(comparer, f, MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), acc_1[0], acc_1[1]);
256
+ comparer_mut = comparer;
257
+ f_mut = f;
258
+ m_mut = MapTreeNode$2__get_Left(mn);
259
+ acc__mut = acc_4[0];
260
+ acc__1_mut = acc_4[1];
261
+ continue MapTreeModule_partitionAux;
262
+ }
263
+ else {
264
+ return MapTreeModule_partition1(comparer, f, MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), acc[0], acc[1]);
265
+ }
266
+ }
267
+ else {
268
+ return acc;
269
+ }
270
+ break;
271
+ }
272
+ }
273
+ export function MapTreeModule_partition(comparer, f, m) {
274
+ return MapTreeModule_partitionAux(comparer, f, m, MapTreeModule_empty(), MapTreeModule_empty());
275
+ }
276
+ export function MapTreeModule_filter1(comparer, f, k, v, acc) {
277
+ if (f(k, v)) {
278
+ return MapTreeModule_add(comparer, k, v, acc);
279
+ }
280
+ else {
281
+ return acc;
282
+ }
283
+ }
284
+ export function MapTreeModule_filterAux(comparer_mut, f_mut, m_mut, acc_mut) {
285
+ MapTreeModule_filterAux: while (true) {
286
+ const comparer = comparer_mut, f = f_mut, m = m_mut, acc = acc_mut;
287
+ if (m != null) {
288
+ const m2 = value_1(m);
289
+ if (m2 instanceof MapTreeNode$2) {
290
+ const mn = m2;
291
+ const acc_1 = MapTreeModule_filterAux(comparer, f, MapTreeNode$2__get_Left(mn), acc);
292
+ const acc_2 = MapTreeModule_filter1(comparer, f, MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), acc_1);
293
+ comparer_mut = comparer;
294
+ f_mut = f;
295
+ m_mut = MapTreeNode$2__get_Right(mn);
296
+ acc_mut = acc_2;
297
+ continue MapTreeModule_filterAux;
298
+ }
299
+ else {
300
+ return MapTreeModule_filter1(comparer, f, MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), acc);
301
+ }
302
+ }
303
+ else {
304
+ return acc;
305
+ }
306
+ break;
307
+ }
308
+ }
309
+ export function MapTreeModule_filter(comparer, f, m) {
310
+ return MapTreeModule_filterAux(comparer, f, m, MapTreeModule_empty());
311
+ }
312
+ export function MapTreeModule_spliceOutSuccessor(m) {
313
+ if (m != null) {
314
+ const m2 = value_1(m);
315
+ if (m2 instanceof MapTreeNode$2) {
316
+ const mn = m2;
317
+ if (MapTreeNode$2__get_Left(mn) == null) {
318
+ return [MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeNode$2__get_Right(mn)];
319
+ }
320
+ else {
321
+ const patternInput = MapTreeModule_spliceOutSuccessor(MapTreeNode$2__get_Left(mn));
322
+ return [patternInput[0], patternInput[1], MapTreeModule_mk(patternInput[2], MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeNode$2__get_Right(mn))];
323
+ }
324
+ }
325
+ else {
326
+ return [MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), MapTreeModule_empty()];
327
+ }
328
+ }
329
+ else {
330
+ throw new Error("internal error: Map.spliceOutSuccessor");
331
+ }
332
+ }
333
+ export function MapTreeModule_remove(comparer, k, m) {
334
+ if (m != null) {
335
+ const m2 = value_1(m);
336
+ const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;
337
+ if (m2 instanceof MapTreeNode$2) {
338
+ const mn = m2;
339
+ if (c < 0) {
340
+ return MapTreeModule_rebalance(MapTreeModule_remove(comparer, k, MapTreeNode$2__get_Left(mn)), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeNode$2__get_Right(mn));
341
+ }
342
+ else if (c === 0) {
343
+ if (MapTreeNode$2__get_Left(mn) == null) {
344
+ return MapTreeNode$2__get_Right(mn);
345
+ }
346
+ else if (MapTreeNode$2__get_Right(mn) == null) {
347
+ return MapTreeNode$2__get_Left(mn);
348
+ }
349
+ else {
350
+ const patternInput = MapTreeModule_spliceOutSuccessor(MapTreeNode$2__get_Right(mn));
351
+ return MapTreeModule_mk(MapTreeNode$2__get_Left(mn), patternInput[0], patternInput[1], patternInput[2]);
352
+ }
353
+ }
354
+ else {
355
+ return MapTreeModule_rebalance(MapTreeNode$2__get_Left(mn), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeModule_remove(comparer, k, MapTreeNode$2__get_Right(mn)));
356
+ }
357
+ }
358
+ else if (c === 0) {
359
+ return MapTreeModule_empty();
360
+ }
361
+ else {
362
+ return m;
363
+ }
364
+ }
365
+ else {
366
+ return MapTreeModule_empty();
367
+ }
368
+ }
369
+ export function MapTreeModule_change(comparer, k, u, m) {
370
+ if (m != null) {
371
+ const m2 = value_1(m);
372
+ if (m2 instanceof MapTreeNode$2) {
373
+ const mn = m2;
374
+ const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(mn)) | 0;
375
+ if (c < 0) {
376
+ return MapTreeModule_rebalance(MapTreeModule_change(comparer, k, u, MapTreeNode$2__get_Left(mn)), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeNode$2__get_Right(mn));
377
+ }
378
+ else if (c === 0) {
379
+ const matchValue_1 = u(some(MapTreeLeaf$2__get_Value(mn)));
380
+ if (matchValue_1 != null) {
381
+ return MapTreeNode$2_$ctor_Z39DE9543(k, value_1(matchValue_1), MapTreeNode$2__get_Left(mn), MapTreeNode$2__get_Right(mn), MapTreeNode$2__get_Height(mn));
382
+ }
383
+ else if (MapTreeNode$2__get_Left(mn) == null) {
384
+ return MapTreeNode$2__get_Right(mn);
385
+ }
386
+ else if (MapTreeNode$2__get_Right(mn) == null) {
387
+ return MapTreeNode$2__get_Left(mn);
388
+ }
389
+ else {
390
+ const patternInput = MapTreeModule_spliceOutSuccessor(MapTreeNode$2__get_Right(mn));
391
+ return MapTreeModule_mk(MapTreeNode$2__get_Left(mn), patternInput[0], patternInput[1], patternInput[2]);
392
+ }
393
+ }
394
+ else {
395
+ return MapTreeModule_rebalance(MapTreeNode$2__get_Left(mn), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeModule_change(comparer, k, u, MapTreeNode$2__get_Right(mn)));
396
+ }
397
+ }
398
+ else {
399
+ const c_1 = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;
400
+ if (c_1 < 0) {
401
+ const matchValue_2 = u(undefined);
402
+ if (matchValue_2 != null) {
403
+ return MapTreeNode$2_$ctor_Z39DE9543(k, value_1(matchValue_2), MapTreeModule_empty(), m, 2);
404
+ }
405
+ else {
406
+ return m;
407
+ }
408
+ }
409
+ else if (c_1 === 0) {
410
+ const matchValue_3 = u(some(MapTreeLeaf$2__get_Value(m2)));
411
+ if (matchValue_3 != null) {
412
+ return MapTreeLeaf$2_$ctor_5BDDA1(k, value_1(matchValue_3));
413
+ }
414
+ else {
415
+ return MapTreeModule_empty();
416
+ }
417
+ }
418
+ else {
419
+ const matchValue_4 = u(undefined);
420
+ if (matchValue_4 != null) {
421
+ return MapTreeNode$2_$ctor_Z39DE9543(k, value_1(matchValue_4), m, MapTreeModule_empty(), 2);
422
+ }
423
+ else {
424
+ return m;
425
+ }
426
+ }
427
+ }
428
+ }
429
+ else {
430
+ const matchValue = u(undefined);
431
+ if (matchValue != null) {
432
+ return MapTreeLeaf$2_$ctor_5BDDA1(k, value_1(matchValue));
433
+ }
434
+ else {
435
+ return m;
436
+ }
437
+ }
438
+ }
439
+ export function MapTreeModule_mem(comparer_mut, k_mut, m_mut) {
440
+ MapTreeModule_mem: while (true) {
441
+ const comparer = comparer_mut, k = k_mut, m = m_mut;
442
+ if (m != null) {
443
+ const m2 = value_1(m);
444
+ const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;
445
+ if (m2 instanceof MapTreeNode$2) {
446
+ const mn = m2;
447
+ if (c < 0) {
448
+ comparer_mut = comparer;
449
+ k_mut = k;
450
+ m_mut = MapTreeNode$2__get_Left(mn);
451
+ continue MapTreeModule_mem;
452
+ }
453
+ else if (c === 0) {
454
+ return true;
455
+ }
456
+ else {
457
+ comparer_mut = comparer;
458
+ k_mut = k;
459
+ m_mut = MapTreeNode$2__get_Right(mn);
460
+ continue MapTreeModule_mem;
461
+ }
462
+ }
463
+ else {
464
+ return c === 0;
465
+ }
466
+ }
467
+ else {
468
+ return false;
469
+ }
470
+ break;
471
+ }
472
+ }
473
+ export function MapTreeModule_iterOpt(f_mut, m_mut) {
474
+ MapTreeModule_iterOpt: while (true) {
475
+ const f = f_mut, m = m_mut;
476
+ if (m != null) {
477
+ const m2 = value_1(m);
478
+ if (m2 instanceof MapTreeNode$2) {
479
+ const mn = m2;
480
+ MapTreeModule_iterOpt(f, MapTreeNode$2__get_Left(mn));
481
+ f(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn));
482
+ f_mut = f;
483
+ m_mut = MapTreeNode$2__get_Right(mn);
484
+ continue MapTreeModule_iterOpt;
485
+ }
486
+ else {
487
+ f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));
488
+ }
489
+ }
490
+ break;
491
+ }
492
+ }
493
+ export function MapTreeModule_iter(f, m) {
494
+ MapTreeModule_iterOpt(f, m);
495
+ }
496
+ export function MapTreeModule_tryPickOpt(f_mut, m_mut) {
497
+ MapTreeModule_tryPickOpt: while (true) {
498
+ const f = f_mut, m = m_mut;
499
+ if (m != null) {
500
+ const m2 = value_1(m);
501
+ if (m2 instanceof MapTreeNode$2) {
502
+ const mn = m2;
503
+ const matchValue = MapTreeModule_tryPickOpt(f, MapTreeNode$2__get_Left(mn));
504
+ if (matchValue == null) {
505
+ const matchValue_1 = f(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn));
506
+ if (matchValue_1 == null) {
507
+ f_mut = f;
508
+ m_mut = MapTreeNode$2__get_Right(mn);
509
+ continue MapTreeModule_tryPickOpt;
510
+ }
511
+ else {
512
+ return matchValue_1;
513
+ }
514
+ }
515
+ else {
516
+ return matchValue;
517
+ }
518
+ }
519
+ else {
520
+ return f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));
521
+ }
522
+ }
523
+ else {
524
+ return undefined;
525
+ }
526
+ break;
527
+ }
528
+ }
529
+ export function MapTreeModule_tryPick(f, m) {
530
+ return MapTreeModule_tryPickOpt(f, m);
531
+ }
532
+ export function MapTreeModule_existsOpt(f_mut, m_mut) {
533
+ MapTreeModule_existsOpt: while (true) {
534
+ const f = f_mut, m = m_mut;
535
+ if (m != null) {
536
+ const m2 = value_1(m);
537
+ if (m2 instanceof MapTreeNode$2) {
538
+ const mn = m2;
539
+ if (MapTreeModule_existsOpt(f, MapTreeNode$2__get_Left(mn)) ? true : f(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn))) {
540
+ return true;
541
+ }
542
+ else {
543
+ f_mut = f;
544
+ m_mut = MapTreeNode$2__get_Right(mn);
545
+ continue MapTreeModule_existsOpt;
546
+ }
547
+ }
548
+ else {
549
+ return f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));
550
+ }
551
+ }
552
+ else {
553
+ return false;
554
+ }
555
+ break;
556
+ }
557
+ }
558
+ export function MapTreeModule_exists(f, m) {
559
+ return MapTreeModule_existsOpt(f, m);
560
+ }
561
+ export function MapTreeModule_forallOpt(f_mut, m_mut) {
562
+ MapTreeModule_forallOpt: while (true) {
563
+ const f = f_mut, m = m_mut;
564
+ if (m != null) {
565
+ const m2 = value_1(m);
566
+ if (m2 instanceof MapTreeNode$2) {
567
+ const mn = m2;
568
+ if (MapTreeModule_forallOpt(f, MapTreeNode$2__get_Left(mn)) && f(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn))) {
569
+ f_mut = f;
570
+ m_mut = MapTreeNode$2__get_Right(mn);
571
+ continue MapTreeModule_forallOpt;
572
+ }
573
+ else {
574
+ return false;
575
+ }
576
+ }
577
+ else {
578
+ return f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));
579
+ }
580
+ }
581
+ else {
582
+ return true;
583
+ }
584
+ break;
585
+ }
586
+ }
587
+ export function MapTreeModule_forall(f, m) {
588
+ return MapTreeModule_forallOpt(f, m);
589
+ }
590
+ export function MapTreeModule_map(f, m) {
591
+ if (m != null) {
592
+ const m2 = value_1(m);
593
+ if (m2 instanceof MapTreeNode$2) {
594
+ const mn = m2;
595
+ const l2 = MapTreeModule_map(f, MapTreeNode$2__get_Left(mn));
596
+ const v2 = f(MapTreeLeaf$2__get_Value(mn));
597
+ const r2 = MapTreeModule_map(f, MapTreeNode$2__get_Right(mn));
598
+ return MapTreeNode$2_$ctor_Z39DE9543(MapTreeLeaf$2__get_Key(mn), v2, l2, r2, MapTreeNode$2__get_Height(mn));
599
+ }
600
+ else {
601
+ return MapTreeLeaf$2_$ctor_5BDDA1(MapTreeLeaf$2__get_Key(m2), f(MapTreeLeaf$2__get_Value(m2)));
602
+ }
603
+ }
604
+ else {
605
+ return MapTreeModule_empty();
606
+ }
607
+ }
608
+ export function MapTreeModule_mapiOpt(f, m) {
609
+ if (m != null) {
610
+ const m2 = value_1(m);
611
+ if (m2 instanceof MapTreeNode$2) {
612
+ const mn = m2;
613
+ const l2 = MapTreeModule_mapiOpt(f, MapTreeNode$2__get_Left(mn));
614
+ const v2 = f(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn));
615
+ const r2 = MapTreeModule_mapiOpt(f, MapTreeNode$2__get_Right(mn));
616
+ return MapTreeNode$2_$ctor_Z39DE9543(MapTreeLeaf$2__get_Key(mn), v2, l2, r2, MapTreeNode$2__get_Height(mn));
617
+ }
618
+ else {
619
+ return MapTreeLeaf$2_$ctor_5BDDA1(MapTreeLeaf$2__get_Key(m2), f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2)));
620
+ }
621
+ }
622
+ else {
623
+ return MapTreeModule_empty();
624
+ }
625
+ }
626
+ export function MapTreeModule_mapi(f, m) {
627
+ return MapTreeModule_mapiOpt(f, m);
628
+ }
629
+ export function MapTreeModule_foldBackOpt(f_mut, m_mut, x_mut) {
630
+ MapTreeModule_foldBackOpt: while (true) {
631
+ const f = f_mut, m = m_mut, x = x_mut;
632
+ if (m != null) {
633
+ const m2 = value_1(m);
634
+ if (m2 instanceof MapTreeNode$2) {
635
+ const mn = m2;
636
+ const x_1 = MapTreeModule_foldBackOpt(f, MapTreeNode$2__get_Right(mn), x);
637
+ const x_2 = f(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), x_1);
638
+ f_mut = f;
639
+ m_mut = MapTreeNode$2__get_Left(mn);
640
+ x_mut = x_2;
641
+ continue MapTreeModule_foldBackOpt;
642
+ }
643
+ else {
644
+ return f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), x);
645
+ }
646
+ }
647
+ else {
648
+ return x;
649
+ }
650
+ break;
651
+ }
652
+ }
653
+ export function MapTreeModule_foldBack(f, m, x) {
654
+ return MapTreeModule_foldBackOpt(f, m, x);
655
+ }
656
+ export function MapTreeModule_foldOpt(f_mut, x_mut, m_mut) {
657
+ MapTreeModule_foldOpt: while (true) {
658
+ const f = f_mut, x = x_mut, m = m_mut;
659
+ if (m != null) {
660
+ const m2 = value_1(m);
661
+ if (m2 instanceof MapTreeNode$2) {
662
+ const mn = m2;
663
+ f_mut = f;
664
+ x_mut = f(MapTreeModule_foldOpt(f, x, MapTreeNode$2__get_Left(mn)), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn));
665
+ m_mut = MapTreeNode$2__get_Right(mn);
666
+ continue MapTreeModule_foldOpt;
667
+ }
668
+ else {
669
+ return f(x, MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));
670
+ }
671
+ }
672
+ else {
673
+ return x;
674
+ }
675
+ break;
676
+ }
677
+ }
678
+ export function MapTreeModule_fold(f, x, m) {
679
+ return MapTreeModule_foldOpt(f, x, m);
680
+ }
681
+ export function MapTreeModule_foldSectionOpt(comparer, lo, hi, f, m, x) {
682
+ const foldFromTo = (f_1_mut, m_1_mut, x_1_mut) => {
683
+ foldFromTo: while (true) {
684
+ const f_1 = f_1_mut, m_1 = m_1_mut, x_1 = x_1_mut;
685
+ if (m_1 != null) {
686
+ const m2 = value_1(m_1);
687
+ if (m2 instanceof MapTreeNode$2) {
688
+ const mn = m2;
689
+ const cLoKey = comparer.Compare(lo, MapTreeLeaf$2__get_Key(mn)) | 0;
690
+ const cKeyHi = comparer.Compare(MapTreeLeaf$2__get_Key(mn), hi) | 0;
691
+ const x_2 = (cLoKey < 0) ? foldFromTo(f_1, MapTreeNode$2__get_Left(mn), x_1) : x_1;
692
+ const x_3 = ((cLoKey <= 0) && (cKeyHi <= 0)) ? f_1(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), x_2) : x_2;
693
+ if (cKeyHi < 0) {
694
+ f_1_mut = f_1;
695
+ m_1_mut = MapTreeNode$2__get_Right(mn);
696
+ x_1_mut = x_3;
697
+ continue foldFromTo;
698
+ }
699
+ else {
700
+ return x_3;
701
+ }
702
+ }
703
+ else if ((comparer.Compare(lo, MapTreeLeaf$2__get_Key(m2)) <= 0) && (comparer.Compare(MapTreeLeaf$2__get_Key(m2), hi) <= 0)) {
704
+ return f_1(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), x_1);
705
+ }
706
+ else {
707
+ return x_1;
708
+ }
709
+ }
710
+ else {
711
+ return x_1;
712
+ }
713
+ break;
714
+ }
715
+ };
716
+ if (comparer.Compare(lo, hi) === 1) {
717
+ return x;
718
+ }
719
+ else {
720
+ return foldFromTo(f, m, x);
721
+ }
722
+ }
723
+ export function MapTreeModule_foldSection(comparer, lo, hi, f, m, x) {
724
+ return MapTreeModule_foldSectionOpt(comparer, lo, hi, f, m, x);
725
+ }
726
+ export function MapTreeModule_toList(m) {
727
+ const loop = (m_1_mut, acc_mut) => {
728
+ loop: while (true) {
729
+ const m_1 = m_1_mut, acc = acc_mut;
730
+ if (m_1 != null) {
731
+ const m2 = value_1(m_1);
732
+ if (m2 instanceof MapTreeNode$2) {
733
+ const mn = m2;
734
+ m_1_mut = MapTreeNode$2__get_Left(mn);
735
+ acc_mut = cons([MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn)], loop(MapTreeNode$2__get_Right(mn), acc));
736
+ continue loop;
737
+ }
738
+ else {
739
+ return cons([MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2)], acc);
740
+ }
741
+ }
742
+ else {
743
+ return acc;
744
+ }
745
+ break;
746
+ }
747
+ };
748
+ return loop(m, empty_1());
749
+ }
750
+ export function MapTreeModule_copyToArray(m, arr, i) {
751
+ let j = i;
752
+ MapTreeModule_iter((x, y) => {
753
+ setItem(arr, j, [x, y]);
754
+ j = ((j + 1) | 0);
755
+ }, m);
756
+ }
757
+ export function MapTreeModule_toArray(m) {
758
+ const n = MapTreeModule_size(m) | 0;
759
+ const res = fill(new Array(n), 0, n, [null, null]);
760
+ MapTreeModule_copyToArray(m, res, 0);
761
+ return res;
762
+ }
763
+ export function MapTreeModule_ofList(comparer, l) {
764
+ return fold_1((acc, tupledArg) => MapTreeModule_add(comparer, tupledArg[0], tupledArg[1], acc), MapTreeModule_empty(), l);
765
+ }
766
+ export function MapTreeModule_mkFromEnumerator(comparer_mut, acc_mut, e_mut) {
767
+ MapTreeModule_mkFromEnumerator: while (true) {
768
+ const comparer = comparer_mut, acc = acc_mut, e = e_mut;
769
+ if (e["System.Collections.IEnumerator.MoveNext"]()) {
770
+ const patternInput = e["System.Collections.Generic.IEnumerator`1.get_Current"]();
771
+ comparer_mut = comparer;
772
+ acc_mut = MapTreeModule_add(comparer, patternInput[0], patternInput[1], acc);
773
+ e_mut = e;
774
+ continue MapTreeModule_mkFromEnumerator;
775
+ }
776
+ else {
777
+ return acc;
778
+ }
779
+ break;
780
+ }
781
+ }
782
+ export function MapTreeModule_ofArray(comparer, arr) {
783
+ let res = MapTreeModule_empty();
784
+ for (let idx = 0; idx <= (arr.length - 1); idx++) {
785
+ const forLoopVar = item(idx, arr);
786
+ res = MapTreeModule_add(comparer, forLoopVar[0], forLoopVar[1], res);
787
+ }
788
+ return res;
789
+ }
790
+ export function MapTreeModule_ofSeq(comparer, c) {
791
+ if (isArrayLike(c)) {
792
+ return MapTreeModule_ofArray(comparer, c);
793
+ }
794
+ else if (c instanceof FSharpList) {
795
+ return MapTreeModule_ofList(comparer, c);
796
+ }
797
+ else {
798
+ const ie = getEnumerator(c);
799
+ try {
800
+ return MapTreeModule_mkFromEnumerator(comparer, MapTreeModule_empty(), ie);
801
+ }
802
+ finally {
803
+ disposeSafe(ie);
804
+ }
805
+ }
806
+ }
807
+ export class MapTreeModule_MapIterator$2 extends Record {
808
+ constructor(stack, started) {
809
+ super();
810
+ this.stack = stack;
811
+ this.started = started;
812
+ }
813
+ }
814
+ export function MapTreeModule_MapIterator$2_$reflection(gen0, gen1) {
815
+ return record_type("Map.MapTreeModule.MapIterator`2", [gen0, gen1], MapTreeModule_MapIterator$2, () => [["stack", list_type(option_type(MapTreeLeaf$2_$reflection(gen0, gen1)))], ["started", bool_type]]);
816
+ }
817
+ export function MapTreeModule_collapseLHS(stack_mut) {
818
+ MapTreeModule_collapseLHS: while (true) {
819
+ const stack = stack_mut;
820
+ if (!isEmpty_1(stack)) {
821
+ const rest = tail(stack);
822
+ const m = head(stack);
823
+ if (m != null) {
824
+ const m2 = value_1(m);
825
+ if (m2 instanceof MapTreeNode$2) {
826
+ const mn = m2;
827
+ stack_mut = ofArrayWithTail([MapTreeNode$2__get_Left(mn), MapTreeLeaf$2_$ctor_5BDDA1(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn)), MapTreeNode$2__get_Right(mn)], rest);
828
+ continue MapTreeModule_collapseLHS;
829
+ }
830
+ else {
831
+ return stack;
832
+ }
833
+ }
834
+ else {
835
+ stack_mut = rest;
836
+ continue MapTreeModule_collapseLHS;
837
+ }
838
+ }
839
+ else {
840
+ return empty_1();
841
+ }
842
+ break;
843
+ }
844
+ }
845
+ export function MapTreeModule_mkIterator(m) {
846
+ return new MapTreeModule_MapIterator$2(MapTreeModule_collapseLHS(singleton(m)), false);
847
+ }
848
+ export function MapTreeModule_notStarted() {
849
+ throw new Error("enumeration not started");
850
+ }
851
+ export function MapTreeModule_alreadyFinished() {
852
+ throw new Error("enumeration already finished");
853
+ }
854
+ export function MapTreeModule_current(i) {
855
+ if (i.started) {
856
+ const matchValue = i.stack;
857
+ if (!isEmpty_1(matchValue)) {
858
+ if (head(matchValue) != null) {
859
+ const m = value_1(head(matchValue));
860
+ if (m instanceof MapTreeNode$2) {
861
+ throw new Error("Please report error: Map iterator, unexpected stack for current");
862
+ }
863
+ else {
864
+ return [MapTreeLeaf$2__get_Key(m), MapTreeLeaf$2__get_Value(m)];
865
+ }
866
+ }
867
+ else {
868
+ throw new Error("Please report error: Map iterator, unexpected stack for current");
869
+ }
870
+ }
871
+ else {
872
+ return MapTreeModule_alreadyFinished();
873
+ }
874
+ }
875
+ else {
876
+ return MapTreeModule_notStarted();
877
+ }
878
+ }
879
+ export function MapTreeModule_moveNext(i) {
880
+ if (i.started) {
881
+ const matchValue = i.stack;
882
+ if (!isEmpty_1(matchValue)) {
883
+ if (head(matchValue) != null) {
884
+ const m = value_1(head(matchValue));
885
+ if (m instanceof MapTreeNode$2) {
886
+ throw new Error("Please report error: Map iterator, unexpected stack for moveNext");
887
+ }
888
+ else {
889
+ i.stack = MapTreeModule_collapseLHS(tail(matchValue));
890
+ return !isEmpty_1(i.stack);
891
+ }
892
+ }
893
+ else {
894
+ throw new Error("Please report error: Map iterator, unexpected stack for moveNext");
895
+ }
896
+ }
897
+ else {
898
+ return false;
899
+ }
900
+ }
901
+ else {
902
+ i.started = true;
903
+ return !isEmpty_1(i.stack);
904
+ }
905
+ }
906
+ export function MapTreeModule_mkIEnumerator(m) {
907
+ let i = MapTreeModule_mkIterator(m);
908
+ return {
909
+ "System.Collections.Generic.IEnumerator`1.get_Current"() {
910
+ return MapTreeModule_current(i);
911
+ },
912
+ "System.Collections.IEnumerator.get_Current"() {
913
+ return MapTreeModule_current(i);
914
+ },
915
+ "System.Collections.IEnumerator.MoveNext"() {
916
+ return MapTreeModule_moveNext(i);
917
+ },
918
+ "System.Collections.IEnumerator.Reset"() {
919
+ i = MapTreeModule_mkIterator(m);
920
+ },
921
+ Dispose() {
922
+ },
923
+ };
924
+ }
925
+ export function MapTreeModule_toSeq(s) {
926
+ return unfold((en_1) => {
927
+ if (en_1["System.Collections.IEnumerator.MoveNext"]()) {
928
+ return [en_1["System.Collections.Generic.IEnumerator`1.get_Current"](), en_1];
929
+ }
930
+ else {
931
+ return undefined;
932
+ }
933
+ }, MapTreeModule_mkIEnumerator(s));
934
+ }
935
+ export function MapTreeModule_leftmost(m_mut) {
936
+ MapTreeModule_leftmost: while (true) {
937
+ const m = m_mut;
938
+ if (m != null) {
939
+ const m2 = value_1(m);
940
+ let matchResult, nd_1;
941
+ if (m2 instanceof MapTreeNode$2) {
942
+ if (MapTreeNode$2__get_Height(m2) > 1) {
943
+ matchResult = 0;
944
+ nd_1 = m2;
945
+ }
946
+ else {
947
+ matchResult = 1;
948
+ }
949
+ }
950
+ else {
951
+ matchResult = 1;
952
+ }
953
+ switch (matchResult) {
954
+ case 0:
955
+ if (MapTreeNode$2__get_Left(nd_1) == null) {
956
+ return [MapTreeLeaf$2__get_Key(nd_1), MapTreeLeaf$2__get_Value(nd_1)];
957
+ }
958
+ else {
959
+ m_mut = MapTreeNode$2__get_Left(nd_1);
960
+ continue MapTreeModule_leftmost;
961
+ }
962
+ default:
963
+ return [MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2)];
964
+ }
965
+ }
966
+ else {
967
+ throw new Error();
968
+ }
969
+ break;
970
+ }
971
+ }
972
+ export function MapTreeModule_rightmost(m_mut) {
973
+ MapTreeModule_rightmost: while (true) {
974
+ const m = m_mut;
975
+ if (m != null) {
976
+ const m2 = value_1(m);
977
+ let matchResult, nd_1;
978
+ if (m2 instanceof MapTreeNode$2) {
979
+ if (MapTreeNode$2__get_Height(m2) > 1) {
980
+ matchResult = 0;
981
+ nd_1 = m2;
982
+ }
983
+ else {
984
+ matchResult = 1;
985
+ }
986
+ }
987
+ else {
988
+ matchResult = 1;
989
+ }
990
+ switch (matchResult) {
991
+ case 0:
992
+ if (MapTreeNode$2__get_Right(nd_1) == null) {
993
+ return [MapTreeLeaf$2__get_Key(nd_1), MapTreeLeaf$2__get_Value(nd_1)];
994
+ }
995
+ else {
996
+ m_mut = MapTreeNode$2__get_Right(nd_1);
997
+ continue MapTreeModule_rightmost;
998
+ }
999
+ default:
1000
+ return [MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2)];
1001
+ }
1002
+ }
1003
+ else {
1004
+ throw new Error();
1005
+ }
1006
+ break;
1007
+ }
1008
+ }
1009
+ export class FSharpMap {
1010
+ constructor(comparer, tree) {
1011
+ this.comparer = comparer;
1012
+ this.tree = tree;
1013
+ }
1014
+ GetHashCode() {
1015
+ const this$ = this;
1016
+ return FSharpMap__ComputeHashCode(this$) | 0;
1017
+ }
1018
+ Equals(that) {
1019
+ const this$ = this;
1020
+ if (that instanceof FSharpMap) {
1021
+ const that_1 = that;
1022
+ const e1 = getEnumerator(this$);
1023
+ try {
1024
+ const e2 = getEnumerator(that_1);
1025
+ try {
1026
+ const loop = () => {
1027
+ const m1 = e1["System.Collections.IEnumerator.MoveNext"]();
1028
+ if (m1 === e2["System.Collections.IEnumerator.MoveNext"]()) {
1029
+ if (!m1) {
1030
+ return true;
1031
+ }
1032
+ else {
1033
+ const e1c = e1["System.Collections.Generic.IEnumerator`1.get_Current"]();
1034
+ const e2c = e2["System.Collections.Generic.IEnumerator`1.get_Current"]();
1035
+ if (equals(e1c[0], e2c[0]) && equals(e1c[1], e2c[1])) {
1036
+ return loop();
1037
+ }
1038
+ else {
1039
+ return false;
1040
+ }
1041
+ }
1042
+ }
1043
+ else {
1044
+ return false;
1045
+ }
1046
+ };
1047
+ return loop();
1048
+ }
1049
+ finally {
1050
+ disposeSafe(e2);
1051
+ }
1052
+ }
1053
+ finally {
1054
+ disposeSafe(e1);
1055
+ }
1056
+ }
1057
+ else {
1058
+ return false;
1059
+ }
1060
+ }
1061
+ toString() {
1062
+ const this$ = this;
1063
+ return ("map [" + join("; ", map_1((kv) => format("({0}, {1})", kv[0], kv[1]), this$))) + "]";
1064
+ }
1065
+ get [Symbol.toStringTag]() {
1066
+ return "FSharpMap";
1067
+ }
1068
+ toJSON() {
1069
+ const this$ = this;
1070
+ return Array.from(this$);
1071
+ }
1072
+ GetEnumerator() {
1073
+ const _ = this;
1074
+ return MapTreeModule_mkIEnumerator(_.tree);
1075
+ }
1076
+ [Symbol.iterator]() {
1077
+ return toIterator(getEnumerator(this));
1078
+ }
1079
+ "System.Collections.IEnumerable.GetEnumerator"() {
1080
+ const _ = this;
1081
+ return MapTreeModule_mkIEnumerator(_.tree);
1082
+ }
1083
+ CompareTo(obj) {
1084
+ const m = this;
1085
+ if (obj instanceof FSharpMap) {
1086
+ const m2 = obj;
1087
+ return compareWith((kvp1, kvp2) => {
1088
+ const c = m.comparer.Compare(kvp1[0], kvp2[0]) | 0;
1089
+ return ((c !== 0) ? c : compare(kvp1[1], kvp2[1])) | 0;
1090
+ }, m, m2) | 0;
1091
+ }
1092
+ else {
1093
+ throw new Error("not comparable\\nParameter name: obj");
1094
+ }
1095
+ }
1096
+ "System.Collections.Generic.ICollection`1.Add2B595"(x) {
1097
+ throw new Error("Map cannot be mutated");
1098
+ }
1099
+ "System.Collections.Generic.ICollection`1.Clear"() {
1100
+ throw new Error("Map cannot be mutated");
1101
+ }
1102
+ "System.Collections.Generic.ICollection`1.Remove2B595"(x) {
1103
+ throw new Error("Map cannot be mutated");
1104
+ }
1105
+ "System.Collections.Generic.ICollection`1.Contains2B595"(x) {
1106
+ const m = this;
1107
+ return FSharpMap__ContainsKey(m, x[0]) && equals(FSharpMap__get_Item(m, x[0]), x[1]);
1108
+ }
1109
+ "System.Collections.Generic.ICollection`1.CopyToZ3B4C077E"(arr, i) {
1110
+ const m = this;
1111
+ MapTreeModule_copyToArray(m.tree, arr, i);
1112
+ }
1113
+ "System.Collections.Generic.ICollection`1.get_IsReadOnly"() {
1114
+ return true;
1115
+ }
1116
+ "System.Collections.Generic.ICollection`1.get_Count"() {
1117
+ const m = this;
1118
+ return FSharpMap__get_Count(m) | 0;
1119
+ }
1120
+ "System.Collections.Generic.IReadOnlyCollection`1.get_Count"() {
1121
+ const m = this;
1122
+ return FSharpMap__get_Count(m) | 0;
1123
+ }
1124
+ get size() {
1125
+ const m = this;
1126
+ return FSharpMap__get_Count(m) | 0;
1127
+ }
1128
+ clear() {
1129
+ throw new Error("Map cannot be mutated");
1130
+ }
1131
+ delete(_arg) {
1132
+ throw new Error("Map cannot be mutated");
1133
+ return false;
1134
+ }
1135
+ entries() {
1136
+ const m = this;
1137
+ return map_1((p) => [p[0], p[1]], m);
1138
+ }
1139
+ get(k) {
1140
+ const m = this;
1141
+ return FSharpMap__get_Item(m, k);
1142
+ }
1143
+ has(k) {
1144
+ const m = this;
1145
+ return FSharpMap__ContainsKey(m, k);
1146
+ }
1147
+ keys() {
1148
+ const m = this;
1149
+ return map_1((p) => p[0], m);
1150
+ }
1151
+ set(k, v) {
1152
+ const m = this;
1153
+ throw new Error("Map cannot be mutated");
1154
+ return m;
1155
+ }
1156
+ values() {
1157
+ const m = this;
1158
+ return map_1((p) => p[1], m);
1159
+ }
1160
+ forEach(f, thisArg) {
1161
+ const m = this;
1162
+ iterate_1((p) => {
1163
+ f(p[1], p[0], m);
1164
+ }, m);
1165
+ }
1166
+ }
1167
+ export function FSharpMap_$reflection(gen0, gen1) {
1168
+ return class_type("Map.FSharpMap", [gen0, gen1], FSharpMap);
1169
+ }
1170
+ export function FSharpMap_$ctor(comparer, tree) {
1171
+ return new FSharpMap(comparer, tree);
1172
+ }
1173
+ export function FSharpMap_Empty(comparer) {
1174
+ return FSharpMap_$ctor(comparer, MapTreeModule_empty());
1175
+ }
1176
+ export function FSharpMap__get_Comparer(m) {
1177
+ return m.comparer;
1178
+ }
1179
+ export function FSharpMap__get_Tree(m) {
1180
+ return m.tree;
1181
+ }
1182
+ export function FSharpMap__Add(m, key, value) {
1183
+ return FSharpMap_$ctor(m.comparer, MapTreeModule_add(m.comparer, key, value, m.tree));
1184
+ }
1185
+ export function FSharpMap__Change(m, key, f) {
1186
+ return FSharpMap_$ctor(m.comparer, MapTreeModule_change(m.comparer, key, f, m.tree));
1187
+ }
1188
+ export function FSharpMap__get_IsEmpty(m) {
1189
+ return m.tree == null;
1190
+ }
1191
+ export function FSharpMap__get_Item(m, key) {
1192
+ return MapTreeModule_find(m.comparer, key, m.tree);
1193
+ }
1194
+ export function FSharpMap__TryPick(m, f) {
1195
+ return MapTreeModule_tryPick(f, m.tree);
1196
+ }
1197
+ export function FSharpMap__Exists(m, predicate) {
1198
+ return MapTreeModule_exists(predicate, m.tree);
1199
+ }
1200
+ export function FSharpMap__Filter(m, predicate) {
1201
+ return FSharpMap_$ctor(m.comparer, MapTreeModule_filter(m.comparer, predicate, m.tree));
1202
+ }
1203
+ export function FSharpMap__ForAll(m, predicate) {
1204
+ return MapTreeModule_forall(predicate, m.tree);
1205
+ }
1206
+ export function FSharpMap__Fold(m, f, acc) {
1207
+ return MapTreeModule_foldBack(f, m.tree, acc);
1208
+ }
1209
+ export function FSharpMap__FoldSection(m, lo, hi, f, acc) {
1210
+ return MapTreeModule_foldSection(m.comparer, lo, hi, f, m.tree, acc);
1211
+ }
1212
+ export function FSharpMap__Iterate(m, f) {
1213
+ MapTreeModule_iter(f, m.tree);
1214
+ }
1215
+ export function FSharpMap__MapRange(m, f) {
1216
+ return FSharpMap_$ctor(m.comparer, MapTreeModule_map(f, m.tree));
1217
+ }
1218
+ export function FSharpMap__Map(m, f) {
1219
+ return FSharpMap_$ctor(m.comparer, MapTreeModule_mapi(f, m.tree));
1220
+ }
1221
+ export function FSharpMap__Partition(m, predicate) {
1222
+ const patternInput = MapTreeModule_partition(m.comparer, predicate, m.tree);
1223
+ return [FSharpMap_$ctor(m.comparer, patternInput[0]), FSharpMap_$ctor(m.comparer, patternInput[1])];
1224
+ }
1225
+ export function FSharpMap__get_Count(m) {
1226
+ return MapTreeModule_size(m.tree);
1227
+ }
1228
+ export function FSharpMap__ContainsKey(m, key) {
1229
+ return MapTreeModule_mem(m.comparer, key, m.tree);
1230
+ }
1231
+ export function FSharpMap__Remove(m, key) {
1232
+ return FSharpMap_$ctor(m.comparer, MapTreeModule_remove(m.comparer, key, m.tree));
1233
+ }
1234
+ export function FSharpMap__TryGetValue(_, key, value) {
1235
+ const matchValue = MapTreeModule_tryFind(_.comparer, key, _.tree);
1236
+ if (matchValue == null) {
1237
+ return false;
1238
+ }
1239
+ else {
1240
+ const v = value_1(matchValue);
1241
+ value.contents = v;
1242
+ return true;
1243
+ }
1244
+ }
1245
+ export function FSharpMap__get_Keys(_) {
1246
+ return map_2((kvp) => kvp[0], MapTreeModule_toArray(_.tree));
1247
+ }
1248
+ export function FSharpMap__get_Values(_) {
1249
+ return map_2((kvp) => kvp[1], MapTreeModule_toArray(_.tree));
1250
+ }
1251
+ export function FSharpMap__get_MinKeyValue(m) {
1252
+ return MapTreeModule_leftmost(m.tree);
1253
+ }
1254
+ export function FSharpMap__get_MaxKeyValue(m) {
1255
+ return MapTreeModule_rightmost(m.tree);
1256
+ }
1257
+ export function FSharpMap__TryFind(m, key) {
1258
+ return MapTreeModule_tryFind(m.comparer, key, m.tree);
1259
+ }
1260
+ export function FSharpMap__ToList(m) {
1261
+ return MapTreeModule_toList(m.tree);
1262
+ }
1263
+ export function FSharpMap__ToArray(m) {
1264
+ return MapTreeModule_toArray(m.tree);
1265
+ }
1266
+ export function FSharpMap__ComputeHashCode(this$) {
1267
+ const combineHash = (x, y) => (((x << 1) + y) + 631);
1268
+ let res = 0;
1269
+ const enumerator = getEnumerator(this$);
1270
+ try {
1271
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
1272
+ const activePatternResult = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
1273
+ res = (combineHash(res, structuralHash(activePatternResult[0])) | 0);
1274
+ res = (combineHash(res, structuralHash(activePatternResult[1])) | 0);
1275
+ }
1276
+ }
1277
+ finally {
1278
+ disposeSafe(enumerator);
1279
+ }
1280
+ return res | 0;
1281
+ }
1282
+ export function isEmpty(table) {
1283
+ return FSharpMap__get_IsEmpty(table);
1284
+ }
1285
+ export function add(key, value, table) {
1286
+ return FSharpMap__Add(table, key, value);
1287
+ }
1288
+ export function change(key, f, table) {
1289
+ return FSharpMap__Change(table, key, f);
1290
+ }
1291
+ export function find(key, table) {
1292
+ return FSharpMap__get_Item(table, key);
1293
+ }
1294
+ export function tryFind(key, table) {
1295
+ return FSharpMap__TryFind(table, key);
1296
+ }
1297
+ export function remove(key, table) {
1298
+ return FSharpMap__Remove(table, key);
1299
+ }
1300
+ export function containsKey(key, table) {
1301
+ return FSharpMap__ContainsKey(table, key);
1302
+ }
1303
+ export function iterate(action, table) {
1304
+ FSharpMap__Iterate(table, action);
1305
+ }
1306
+ export function tryPick(chooser, table) {
1307
+ return FSharpMap__TryPick(table, chooser);
1308
+ }
1309
+ export function pick(chooser, table) {
1310
+ const matchValue = tryPick(chooser, table);
1311
+ if (matchValue != null) {
1312
+ return value_1(matchValue);
1313
+ }
1314
+ else {
1315
+ throw new Error();
1316
+ }
1317
+ }
1318
+ export function exists(predicate, table) {
1319
+ return FSharpMap__Exists(table, predicate);
1320
+ }
1321
+ export function filter(predicate, table) {
1322
+ return FSharpMap__Filter(table, predicate);
1323
+ }
1324
+ export function partition(predicate, table) {
1325
+ return FSharpMap__Partition(table, predicate);
1326
+ }
1327
+ export function forAll(predicate, table) {
1328
+ return FSharpMap__ForAll(table, predicate);
1329
+ }
1330
+ export function map(mapping, table) {
1331
+ return FSharpMap__Map(table, mapping);
1332
+ }
1333
+ export function fold(folder, state, table) {
1334
+ return MapTreeModule_fold(folder, state, FSharpMap__get_Tree(table));
1335
+ }
1336
+ export function foldBack(folder, table, state) {
1337
+ return MapTreeModule_foldBack(folder, FSharpMap__get_Tree(table), state);
1338
+ }
1339
+ export function toSeq(table) {
1340
+ return map_1((kvp) => [kvp[0], kvp[1]], table);
1341
+ }
1342
+ export function findKey(predicate, table) {
1343
+ return pick_1((kvp) => {
1344
+ const k = kvp[0];
1345
+ if (predicate(k, kvp[1])) {
1346
+ return some(k);
1347
+ }
1348
+ else {
1349
+ return undefined;
1350
+ }
1351
+ }, table);
1352
+ }
1353
+ export function tryFindKey(predicate, table) {
1354
+ return tryPick_1((kvp) => {
1355
+ const k = kvp[0];
1356
+ if (predicate(k, kvp[1])) {
1357
+ return some(k);
1358
+ }
1359
+ else {
1360
+ return undefined;
1361
+ }
1362
+ }, table);
1363
+ }
1364
+ export function ofList(elements, comparer) {
1365
+ return FSharpMap_$ctor(comparer, MapTreeModule_ofSeq(comparer, elements));
1366
+ }
1367
+ export function ofSeq(elements, comparer) {
1368
+ return FSharpMap_$ctor(comparer, MapTreeModule_ofSeq(comparer, elements));
1369
+ }
1370
+ export function ofArray(elements, comparer) {
1371
+ return FSharpMap_$ctor(comparer, MapTreeModule_ofSeq(comparer, elements));
1372
+ }
1373
+ export function toList(table) {
1374
+ return FSharpMap__ToList(table);
1375
+ }
1376
+ export function toArray(table) {
1377
+ return FSharpMap__ToArray(table);
1378
+ }
1379
+ export function keys(table) {
1380
+ return FSharpMap__get_Keys(table);
1381
+ }
1382
+ export function values(table) {
1383
+ return FSharpMap__get_Values(table);
1384
+ }
1385
+ export function minKeyValue(table) {
1386
+ return FSharpMap__get_MinKeyValue(table);
1387
+ }
1388
+ export function maxKeyValue(table) {
1389
+ return FSharpMap__get_MaxKeyValue(table);
1390
+ }
1391
+ export function empty(comparer) {
1392
+ return FSharpMap_Empty(comparer);
1393
+ }
1394
+ export function count(table) {
1395
+ return FSharpMap__get_Count(table);
1396
+ }