@fable-org/fable-library-ts 2.0.0-beta.4 → 2.0.0-beta.6

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 (55) hide show
  1. package/Array.ts +253 -247
  2. package/Async.ts +13 -12
  3. package/AsyncBuilder.ts +10 -11
  4. package/BigInt.ts +6 -6
  5. package/BitConverter.ts +3 -3
  6. package/Boolean.ts +3 -2
  7. package/CHANGELOG.md +14 -0
  8. package/Char.ts +38 -35
  9. package/Choice.ts +36 -12
  10. package/CollectionUtil.ts +4 -4
  11. package/Date.ts +67 -62
  12. package/DateOffset.ts +47 -56
  13. package/DateOnly.ts +8 -8
  14. package/Decimal.ts +9 -9
  15. package/Double.ts +3 -2
  16. package/Encoding.ts +1 -1
  17. package/Event.ts +3 -3
  18. package/FSharp.Collections.ts +31 -13
  19. package/FSharp.Core.CompilerServices.ts +4 -4
  20. package/FSharp.Core.ts +34 -34
  21. package/Global.ts +44 -2
  22. package/Guid.ts +7 -6
  23. package/Int32.ts +20 -17
  24. package/List.ts +57 -56
  25. package/Long.ts +6 -5
  26. package/MailboxProcessor.ts +8 -7
  27. package/Map.ts +67 -65
  28. package/MapUtil.ts +5 -5
  29. package/MutableMap.ts +32 -20
  30. package/MutableSet.ts +12 -12
  31. package/Native.ts +3 -3
  32. package/Numeric.ts +1 -1
  33. package/Observable.ts +3 -3
  34. package/Option.ts +3 -3
  35. package/Random.ts +34 -34
  36. package/Range.ts +7 -7
  37. package/Reflection.ts +73 -40
  38. package/RegExp.ts +5 -3
  39. package/Result.ts +31 -27
  40. package/Seq.ts +56 -54
  41. package/Seq2.ts +14 -14
  42. package/Set.ts +81 -80
  43. package/String.ts +41 -38
  44. package/System.Collections.Generic.ts +45 -25
  45. package/System.Text.ts +12 -12
  46. package/System.ts +366 -0
  47. package/TimeOnly.ts +10 -10
  48. package/TimeSpan.ts +11 -11
  49. package/Timer.ts +2 -2
  50. package/Types.ts +1 -19
  51. package/Uri.ts +13 -10
  52. package/Util.ts +74 -26
  53. package/package.json +1 -1
  54. package/tsconfig.json +18 -5
  55. package/SystemException.ts +0 -7
package/Set.ts CHANGED
@@ -1,14 +1,15 @@
1
1
 
2
- import { record_type, bool_type, list_type, option_type, class_type, TypeInfo } from "./Reflection.js";
3
- import { some, value as value_3, Option } from "./Option.js";
4
- import { int32 } from "./Int32.js";
5
- import { structuralHash, ISet, toIterator, IDisposable, disposeSafe, getEnumerator, isArrayLike, IEnumerator, IComparer, Nullable } from "./Util.js";
6
- import { Record } from "./Types.js";
7
- import { fold as fold_2, cons, singleton as singleton_1, empty as empty_1, ofArrayWithTail, tail, head, isEmpty as isEmpty_1, FSharpList } from "./List.js";
8
- import { fold as fold_1, fill, setItem } from "./Array.js";
9
- import { join } from "./String.js";
10
- import { exists as exists_1, cache, forAll as forAll_1, fold as fold_3, reduce, iterate as iterate_1, map as map_1 } from "./Seq.js";
11
- import { HashSet__get_Comparer, HashSet_$ctor_Z6150332D, HashSet } from "./MutableSet.js";
2
+ import { record_type, bool_type, list_type, option_type, class_type, TypeInfo } from "./Reflection.ts";
3
+ import { some, value as value_3, Option } from "./Option.ts";
4
+ import { int32 } from "./Int32.ts";
5
+ import { structuralHash, ISet, toIterator, IDisposable, disposeSafe, getEnumerator, isArrayLike, MutableArray, IEnumerator, IComparer, Exception } from "./Util.ts";
6
+ import { Record } from "./Types.ts";
7
+ import { fold as fold_2, cons, singleton as singleton_1, empty as empty_1, ofArrayWithTail, tail, head, isEmpty as isEmpty_1, FSharpList } from "./List.ts";
8
+ import { fold as fold_1, fill, setItem } from "./Array.ts";
9
+ import { join } from "./String.ts";
10
+ import { NotSupportedException_$ctor_Z721C83C5 } from "./System.ts";
11
+ import { exists as exists_1, cache, forAll as forAll_1, fold as fold_3, reduce, iterate as iterate_1, map as map_1 } from "./Seq.ts";
12
+ import { HashSet__get_Comparer, HashSet_$ctor_Z6150332D, HashSet } from "./MutableSet.ts";
12
13
 
13
14
  export class SetTreeLeaf$1<T> {
14
15
  readonly k: T;
@@ -93,7 +94,7 @@ export function SetTreeModule_count<$a>(s: Option<SetTreeLeaf$1<$a>>): int32 {
93
94
  }
94
95
 
95
96
  export function SetTreeModule_mk<T>(l: Option<SetTreeLeaf$1<T>>, k: T, r: Option<SetTreeLeaf$1<T>>): Option<SetTreeLeaf$1<T>> {
96
- let tn: SetTreeNode$1<T>, tn_1: SetTreeNode$1<T>;
97
+ let tn: SetTreeNode$1<T> = (undefined as any), tn_1: SetTreeNode$1<T> = (undefined as any);
97
98
  let hl: int32;
98
99
  const t: Option<SetTreeLeaf$1<T>> = l;
99
100
  if (t != null) {
@@ -122,7 +123,7 @@ export function SetTreeModule_mk<T>(l: Option<SetTreeLeaf$1<T>>, k: T, r: Option
122
123
  }
123
124
 
124
125
  export function SetTreeModule_rebalance<T>(t1: Option<SetTreeLeaf$1<T>>, v: T, t2: Option<SetTreeLeaf$1<T>>): Option<SetTreeLeaf$1<T>> {
125
- let tn: SetTreeNode$1<T>, tn_1: SetTreeNode$1<T>, t_2: Option<SetTreeLeaf$1<T>>, t2_3: SetTreeLeaf$1<T>, tn_2: SetTreeNode$1<T>, t_3: Option<SetTreeLeaf$1<T>>, t2_4: SetTreeLeaf$1<T>, tn_3: SetTreeNode$1<T>;
126
+ let tn: SetTreeNode$1<T> = (undefined as any), tn_1: SetTreeNode$1<T> = (undefined as any), t_2: Option<SetTreeLeaf$1<T>> = (undefined as any), t2_3: SetTreeLeaf$1<T> = (undefined as any), tn_2: SetTreeNode$1<T> = (undefined as any), t_3: Option<SetTreeLeaf$1<T>> = (undefined as any), t2_4: SetTreeLeaf$1<T> = (undefined as any), tn_3: SetTreeNode$1<T> = (undefined as any);
126
127
  let t1h: int32;
127
128
  const t: Option<SetTreeLeaf$1<T>> = t1;
128
129
  if (t != null) {
@@ -152,7 +153,7 @@ export function SetTreeModule_rebalance<T>(t1: Option<SetTreeLeaf$1<T>>, v: T, t
152
153
  return SetTreeModule_mk<T>(SetTreeModule_mk<T>(t1, v, SetTreeNode$1__get_Left<T>(t2l)), SetTreeLeaf$1__get_Key<T>(t2l), SetTreeModule_mk<T>(SetTreeNode$1__get_Right<T>(t2l), SetTreeLeaf$1__get_Key<T>(t2$0027), SetTreeNode$1__get_Right<T>(t2$0027)));
153
154
  }
154
155
  else {
155
- throw new Error("internal error: Set.rebalance");
156
+ throw new Exception("internal error: Set.rebalance");
156
157
  }
157
158
  }
158
159
  else {
@@ -160,7 +161,7 @@ export function SetTreeModule_rebalance<T>(t1: Option<SetTreeLeaf$1<T>>, v: T, t
160
161
  }
161
162
  }
162
163
  else {
163
- throw new Error("internal error: Set.rebalance");
164
+ throw new Exception("internal error: Set.rebalance");
164
165
  }
165
166
  }
166
167
  else if (t1h > (t2h + 2)) {
@@ -174,7 +175,7 @@ export function SetTreeModule_rebalance<T>(t1: Option<SetTreeLeaf$1<T>>, v: T, t
174
175
  return SetTreeModule_mk<T>(SetTreeModule_mk<T>(SetTreeNode$1__get_Left<T>(t1$0027), SetTreeLeaf$1__get_Key<T>(t1$0027), SetTreeNode$1__get_Left<T>(t1r)), SetTreeLeaf$1__get_Key<T>(t1r), SetTreeModule_mk<T>(SetTreeNode$1__get_Right<T>(t1r), v, t2));
175
176
  }
176
177
  else {
177
- throw new Error("internal error: Set.rebalance");
178
+ throw new Exception("internal error: Set.rebalance");
178
179
  }
179
180
  }
180
181
  else {
@@ -182,7 +183,7 @@ export function SetTreeModule_rebalance<T>(t1: Option<SetTreeLeaf$1<T>>, v: T, t
182
183
  }
183
184
  }
184
185
  else {
185
- throw new Error("internal error: Set.rebalance");
186
+ throw new Exception("internal error: Set.rebalance");
186
187
  }
187
188
  }
188
189
  else {
@@ -193,7 +194,7 @@ export function SetTreeModule_rebalance<T>(t1: Option<SetTreeLeaf$1<T>>, v: T, t
193
194
  export function SetTreeModule_add<T>(comparer: IComparer<T>, k: T, t: Option<SetTreeLeaf$1<T>>): Option<SetTreeLeaf$1<T>> {
194
195
  if (t != null) {
195
196
  const t2: SetTreeLeaf$1<T> = value_3(t);
196
- const c: int32 = comparer.Compare(k, SetTreeLeaf$1__get_Key<Nullable<T>>(t2)) | 0;
197
+ const c: int32 = comparer.Compare(k, SetTreeLeaf$1__get_Key<T>(t2)) | 0;
197
198
  if (t2 instanceof SetTreeNode$1) {
198
199
  const tn = t2 as SetTreeNode$1<T>;
199
200
  if (c < 0) {
@@ -207,7 +208,7 @@ export function SetTreeModule_add<T>(comparer: IComparer<T>, k: T, t: Option<Set
207
208
  }
208
209
  }
209
210
  else {
210
- const c_1: int32 = comparer.Compare(k, SetTreeLeaf$1__get_Key<Nullable<T>>(t2)) | 0;
211
+ const c_1: int32 = comparer.Compare(k, SetTreeLeaf$1__get_Key<T>(t2)) | 0;
211
212
  if (c_1 < 0) {
212
213
  return SetTreeNode$1_$ctor_5F465FC9<T>(k, SetTreeModule_empty<T>(), t, 2);
213
214
  }
@@ -260,12 +261,12 @@ export function SetTreeModule_balance<T>(comparer: IComparer<T>, t1: Option<SetT
260
261
  }
261
262
  }
262
263
 
263
- export function SetTreeModule_split<T>(comparer: IComparer<T>, pivot: Nullable<T>, t: Option<SetTreeLeaf$1<T>>): [Option<SetTreeLeaf$1<T>>, boolean, Option<SetTreeLeaf$1<T>>] {
264
+ export function SetTreeModule_split<T>(comparer: IComparer<T>, pivot: T, t: Option<SetTreeLeaf$1<T>>): [Option<SetTreeLeaf$1<T>>, boolean, Option<SetTreeLeaf$1<T>>] {
264
265
  if (t != null) {
265
266
  const t2: SetTreeLeaf$1<T> = value_3(t);
266
267
  if (t2 instanceof SetTreeNode$1) {
267
268
  const tn = t2 as SetTreeNode$1<T>;
268
- const c: int32 = comparer.Compare(pivot, SetTreeLeaf$1__get_Key<Nullable<T>>(tn)) | 0;
269
+ const c: int32 = comparer.Compare(pivot, SetTreeLeaf$1__get_Key<T>(tn)) | 0;
269
270
  if (c < 0) {
270
271
  const patternInput: [Option<SetTreeLeaf$1<T>>, boolean, Option<SetTreeLeaf$1<T>>] = SetTreeModule_split<T>(comparer, pivot, SetTreeNode$1__get_Left<T>(tn));
271
272
  return [patternInput[0], patternInput[1], SetTreeModule_balance<T>(comparer, patternInput[2], SetTreeLeaf$1__get_Key<T>(tn), SetTreeNode$1__get_Right<T>(tn))] as [Option<SetTreeLeaf$1<T>>, boolean, Option<SetTreeLeaf$1<T>>];
@@ -279,7 +280,7 @@ export function SetTreeModule_split<T>(comparer: IComparer<T>, pivot: Nullable<T
279
280
  }
280
281
  }
281
282
  else {
282
- const c_1: int32 = comparer.Compare(SetTreeLeaf$1__get_Key<Nullable<T>>(t2), pivot) | 0;
283
+ const c_1: int32 = comparer.Compare(SetTreeLeaf$1__get_Key<T>(t2), pivot) | 0;
283
284
  if (c_1 < 0) {
284
285
  return [t, false, SetTreeModule_empty<T>()] as [Option<SetTreeLeaf$1<T>>, boolean, Option<SetTreeLeaf$1<T>>];
285
286
  }
@@ -314,14 +315,14 @@ export function SetTreeModule_spliceOutSuccessor<T>(t: Option<SetTreeLeaf$1<T>>)
314
315
  }
315
316
  }
316
317
  else {
317
- throw new Error("internal error: Set.spliceOutSuccessor");
318
+ throw new Exception("internal error: Set.spliceOutSuccessor");
318
319
  }
319
320
  }
320
321
 
321
- export function SetTreeModule_remove<T>(comparer: IComparer<T>, k: Nullable<T>, t: Option<SetTreeLeaf$1<T>>): Option<SetTreeLeaf$1<T>> {
322
+ export function SetTreeModule_remove<T>(comparer: IComparer<T>, k: T, t: Option<SetTreeLeaf$1<T>>): Option<SetTreeLeaf$1<T>> {
322
323
  if (t != null) {
323
324
  const t2: SetTreeLeaf$1<T> = value_3(t);
324
- const c: int32 = comparer.Compare(k, SetTreeLeaf$1__get_Key<Nullable<T>>(t2)) | 0;
325
+ const c: int32 = comparer.Compare(k, SetTreeLeaf$1__get_Key<T>(t2)) | 0;
325
326
  if (t2 instanceof SetTreeNode$1) {
326
327
  const tn = t2 as SetTreeNode$1<T>;
327
328
  if (c < 0) {
@@ -355,13 +356,13 @@ export function SetTreeModule_remove<T>(comparer: IComparer<T>, k: Nullable<T>,
355
356
  }
356
357
  }
357
358
 
358
- export function SetTreeModule_mem<T>(comparer_mut: IComparer<T>, k_mut: Nullable<T>, t_mut: Option<SetTreeLeaf$1<T>>): boolean {
359
+ export function SetTreeModule_mem<T>(comparer_mut: IComparer<T>, k_mut: T, t_mut: Option<SetTreeLeaf$1<T>>): boolean {
359
360
  SetTreeModule_mem:
360
361
  while (true) {
361
- const comparer: IComparer<T> = comparer_mut, k: Nullable<T> = k_mut, t: Option<SetTreeLeaf$1<T>> = t_mut;
362
+ const comparer: IComparer<T> = comparer_mut, k: T = k_mut, t: Option<SetTreeLeaf$1<T>> = t_mut;
362
363
  if (t != null) {
363
364
  const t2: SetTreeLeaf$1<T> = value_3(t);
364
- const c: int32 = comparer.Compare(k, SetTreeLeaf$1__get_Key<Nullable<T>>(t2)) | 0;
365
+ const c: int32 = comparer.Compare(k, SetTreeLeaf$1__get_Key<T>(t2)) | 0;
365
366
  if (t2 instanceof SetTreeNode$1) {
366
367
  const tn = t2 as SetTreeNode$1<T>;
367
368
  if (c < 0) {
@@ -526,12 +527,12 @@ export function SetTreeModule_exists<T>(f_mut: ((arg0: T) => boolean), t_mut: Op
526
527
  }
527
528
 
528
529
  export function SetTreeModule_subset<$a>(comparer: IComparer<$a>, a: Option<SetTreeLeaf$1<$a>>, b: Option<SetTreeLeaf$1<$a>>): boolean {
529
- return SetTreeModule_forall<Nullable<$a>>((x: Nullable<$a>): boolean => SetTreeModule_mem<$a>(comparer, x, b), a);
530
+ return SetTreeModule_forall<$a>((x: $a): boolean => SetTreeModule_mem<$a>(comparer, x, b), a);
530
531
  }
531
532
 
532
533
  export function SetTreeModule_properSubset<T>(comparer: IComparer<T>, a: Option<SetTreeLeaf$1<T>>, b: Option<SetTreeLeaf$1<T>>): boolean {
533
- if (SetTreeModule_forall<Nullable<T>>((x: Nullable<T>): boolean => SetTreeModule_mem<T>(comparer, x, b), a)) {
534
- return SetTreeModule_exists<Nullable<T>>((x_1: Nullable<T>): boolean => !SetTreeModule_mem<T>(comparer, x_1, a), b);
534
+ if (SetTreeModule_forall<T>((x: T): boolean => SetTreeModule_mem<T>(comparer, x, b), a)) {
535
+ return SetTreeModule_exists<T>((x_1: T): boolean => !SetTreeModule_mem<T>(comparer, x_1, a), b);
535
536
  }
536
537
  else {
537
538
  return false;
@@ -584,11 +585,11 @@ export function SetTreeModule_diffAux<T>(comparer_mut: IComparer<T>, t_mut: Opti
584
585
  const tn = t2 as SetTreeNode$1<T>;
585
586
  comparer_mut = comparer;
586
587
  t_mut = SetTreeNode$1__get_Left<T>(tn);
587
- acc_mut = SetTreeModule_diffAux<T>(comparer, SetTreeNode$1__get_Right<T>(tn), SetTreeModule_remove<T>(comparer, SetTreeLeaf$1__get_Key<Nullable<T>>(tn), acc));
588
+ acc_mut = SetTreeModule_diffAux<T>(comparer, SetTreeNode$1__get_Right<T>(tn), SetTreeModule_remove<T>(comparer, SetTreeLeaf$1__get_Key<T>(tn), acc));
588
589
  continue SetTreeModule_diffAux;
589
590
  }
590
591
  else {
591
- return SetTreeModule_remove<T>(comparer, SetTreeLeaf$1__get_Key<Nullable<T>>(t2), acc);
592
+ return SetTreeModule_remove<T>(comparer, SetTreeLeaf$1__get_Key<T>(t2), acc);
592
593
  }
593
594
  }
594
595
  else {
@@ -612,11 +613,11 @@ export function SetTreeModule_union<T>(comparer: IComparer<T>, t1: Option<SetTre
612
613
  if (t2$0027 instanceof SetTreeNode$1) {
613
614
  const t2n = t2$0027 as SetTreeNode$1<T>;
614
615
  if (SetTreeNode$1__get_Height<T>(t1n) > SetTreeNode$1__get_Height<T>(t2n)) {
615
- const patternInput: [Option<SetTreeLeaf$1<T>>, boolean, Option<SetTreeLeaf$1<T>>] = SetTreeModule_split<T>(comparer, SetTreeLeaf$1__get_Key<Nullable<T>>(t1n), t2);
616
+ const patternInput: [Option<SetTreeLeaf$1<T>>, boolean, Option<SetTreeLeaf$1<T>>] = SetTreeModule_split<T>(comparer, SetTreeLeaf$1__get_Key<T>(t1n), t2);
616
617
  return SetTreeModule_balance<T>(comparer, SetTreeModule_union<T>(comparer, SetTreeNode$1__get_Left<T>(t1n), patternInput[0]), SetTreeLeaf$1__get_Key<T>(t1n), SetTreeModule_union<T>(comparer, SetTreeNode$1__get_Right<T>(t1n), patternInput[2]));
617
618
  }
618
619
  else {
619
- const patternInput_1: [Option<SetTreeLeaf$1<T>>, boolean, Option<SetTreeLeaf$1<T>>] = SetTreeModule_split<T>(comparer, SetTreeLeaf$1__get_Key<Nullable<T>>(t2n), t1);
620
+ const patternInput_1: [Option<SetTreeLeaf$1<T>>, boolean, Option<SetTreeLeaf$1<T>>] = SetTreeModule_split<T>(comparer, SetTreeLeaf$1__get_Key<T>(t2n), t1);
620
621
  return SetTreeModule_balance<T>(comparer, SetTreeModule_union<T>(comparer, SetTreeNode$1__get_Left<T>(t2n), patternInput_1[0]), SetTreeLeaf$1__get_Key<T>(t2n), SetTreeModule_union<T>(comparer, SetTreeNode$1__get_Right<T>(t2n), patternInput_1[2]));
621
622
  }
622
623
  }
@@ -646,14 +647,14 @@ export function SetTreeModule_intersectionAux<T>(comparer_mut: IComparer<T>, b_m
646
647
  if (t2 instanceof SetTreeNode$1) {
647
648
  const tn = t2 as SetTreeNode$1<T>;
648
649
  const acc_1: Option<SetTreeLeaf$1<T>> = SetTreeModule_intersectionAux<T>(comparer, b, SetTreeNode$1__get_Right<T>(tn), acc);
649
- const acc_2: Option<SetTreeLeaf$1<T>> = SetTreeModule_mem<T>(comparer, SetTreeLeaf$1__get_Key<Nullable<T>>(tn), b) ? SetTreeModule_add<T>(comparer, SetTreeLeaf$1__get_Key<T>(tn), acc_1) : acc_1;
650
+ const acc_2: Option<SetTreeLeaf$1<T>> = SetTreeModule_mem<T>(comparer, SetTreeLeaf$1__get_Key<T>(tn), b) ? SetTreeModule_add<T>(comparer, SetTreeLeaf$1__get_Key<T>(tn), acc_1) : acc_1;
650
651
  comparer_mut = comparer;
651
652
  b_mut = b;
652
653
  t_mut = SetTreeNode$1__get_Left<T>(tn);
653
654
  acc_mut = acc_2;
654
655
  continue SetTreeModule_intersectionAux;
655
656
  }
656
- else if (SetTreeModule_mem<T>(comparer, SetTreeLeaf$1__get_Key<Nullable<T>>(t2), b)) {
657
+ else if (SetTreeModule_mem<T>(comparer, SetTreeLeaf$1__get_Key<T>(t2), b)) {
657
658
  return SetTreeModule_add<T>(comparer, SetTreeLeaf$1__get_Key<T>(t2), acc);
658
659
  }
659
660
  else {
@@ -794,7 +795,7 @@ export function SetTreeModule_maximumElementOpt<T>(t: Option<SetTreeLeaf$1<T>>):
794
795
  export function SetTreeModule_minimumElement<$a>(s: Option<SetTreeLeaf$1<$a>>): $a {
795
796
  const matchValue: Option<$a> = SetTreeModule_minimumElementOpt<$a>(s);
796
797
  if (matchValue == null) {
797
- throw new Error("Set contains no elements");
798
+ throw new Exception("Set contains no elements");
798
799
  }
799
800
  else {
800
801
  return value_3(matchValue);
@@ -804,7 +805,7 @@ export function SetTreeModule_minimumElement<$a>(s: Option<SetTreeLeaf$1<$a>>):
804
805
  export function SetTreeModule_maximumElement<$a>(s: Option<SetTreeLeaf$1<$a>>): $a {
805
806
  const matchValue: Option<$a> = SetTreeModule_maximumElementOpt<$a>(s);
806
807
  if (matchValue == null) {
807
- throw new Error("Set contains no elements");
808
+ throw new Exception("Set contains no elements");
808
809
  }
809
810
  else {
810
811
  return value_3(matchValue);
@@ -860,11 +861,11 @@ export function SetTreeModule_mkIterator<$a>(s: Option<SetTreeLeaf$1<$a>>): SetT
860
861
  }
861
862
 
862
863
  export function SetTreeModule_notStarted<$a>(): $a {
863
- throw new Error("Enumeration not started");
864
+ throw new Exception("Enumeration not started");
864
865
  }
865
866
 
866
867
  export function SetTreeModule_alreadyFinished<$a>(): $a {
867
- throw new Error("Enumeration already started");
868
+ throw new Exception("Enumeration already started");
868
869
  }
869
870
 
870
871
  export function SetTreeModule_current<$a>(i: SetTreeModule_SetIterator$1<$a>): $a {
@@ -878,7 +879,7 @@ export function SetTreeModule_current<$a>(i: SetTreeModule_SetIterator$1<$a>): $
878
879
  return SetTreeLeaf$1__get_Key<$a>(t);
879
880
  }
880
881
  else {
881
- throw new Error("Please report error: Set iterator, unexpected stack for current");
882
+ throw new Exception("Please report error: Set iterator, unexpected stack for current");
882
883
  }
883
884
  }
884
885
  else {
@@ -893,7 +894,7 @@ export function SetTreeModule_moveNext<T>(i: SetTreeModule_SetIterator$1<T>): bo
893
894
  if (head(matchValue) != null) {
894
895
  const t: SetTreeLeaf$1<T> = value_3(head(matchValue));
895
896
  if (t instanceof SetTreeNode$1) {
896
- throw new Error("Please report error: Set iterator, unexpected stack for moveNext");
897
+ throw new Exception("Please report error: Set iterator, unexpected stack for moveNext");
897
898
  }
898
899
  else {
899
900
  i.stack = SetTreeModule_collapseLHS<T>(tail(matchValue));
@@ -901,7 +902,7 @@ export function SetTreeModule_moveNext<T>(i: SetTreeModule_SetIterator$1<T>): bo
901
902
  }
902
903
  }
903
904
  else {
904
- throw new Error("Please report error: Set iterator, unexpected stack for moveNext");
905
+ throw new Exception("Please report error: Set iterator, unexpected stack for moveNext");
905
906
  }
906
907
  }
907
908
  else {
@@ -920,7 +921,7 @@ export function SetTreeModule_mkIEnumerator<a>(s: Option<SetTreeLeaf$1<a>>): IEn
920
921
  "System.Collections.Generic.IEnumerator`1.get_Current"(): a {
921
922
  return SetTreeModule_current<a>(i);
922
923
  },
923
- "System.Collections.IEnumerator.get_Current"(): Nullable<any> {
924
+ "System.Collections.IEnumerator.get_Current"(): any {
924
925
  return SetTreeModule_current<a>(i);
925
926
  },
926
927
  "System.Collections.IEnumerator.MoveNext"(): boolean {
@@ -953,7 +954,7 @@ export function SetTreeModule_compareStacks<T>(comparer_mut: IComparer<T>, l1_mu
953
954
  if (x2_3 instanceof SetTreeNode$1) {
954
955
  const x2n_2 = x2_3 as SetTreeNode$1<T>;
955
956
  if (SetTreeNode$1__get_Left<T>(x2n_2) == null) {
956
- const c: int32 = comparer.Compare(SetTreeLeaf$1__get_Key<Nullable<T>>(x1n_2), SetTreeLeaf$1__get_Key<Nullable<T>>(x2n_2)) | 0;
957
+ const c: int32 = comparer.Compare(SetTreeLeaf$1__get_Key<T>(x1n_2), SetTreeLeaf$1__get_Key<T>(x2n_2)) | 0;
957
958
  if (c !== 0) {
958
959
  return c | 0;
959
960
  }
@@ -965,7 +966,7 @@ export function SetTreeModule_compareStacks<T>(comparer_mut: IComparer<T>, l1_mu
965
966
  }
966
967
  }
967
968
  else {
968
- let matchResult: int32, t1_6: FSharpList<Option<SetTreeLeaf$1<T>>>, x1_4: SetTreeLeaf$1<T>, t2_6: FSharpList<Option<SetTreeLeaf$1<T>>>, x2_4: SetTreeLeaf$1<T>;
969
+ let matchResult: int32 = (undefined as any), t1_6: FSharpList<Option<SetTreeLeaf$1<T>>> = (undefined as any), x1_4: SetTreeLeaf$1<T> = (undefined as any), t2_6: FSharpList<Option<SetTreeLeaf$1<T>>> = (undefined as any), x2_4: SetTreeLeaf$1<T> = (undefined as any);
969
970
  if (!isEmpty_1(l1)) {
970
971
  if (head(l1) != null) {
971
972
  matchResult = 0;
@@ -1029,12 +1030,12 @@ export function SetTreeModule_compareStacks<T>(comparer_mut: IComparer<T>, l1_mu
1029
1030
  continue SetTreeModule_compareStacks;
1030
1031
  }
1031
1032
  default:
1032
- throw new Error("unexpected state in SetTree.compareStacks");
1033
+ throw new Exception("unexpected state in SetTree.compareStacks");
1033
1034
  }
1034
1035
  }
1035
1036
  }
1036
1037
  else {
1037
- const c_1: int32 = comparer.Compare(SetTreeLeaf$1__get_Key<Nullable<T>>(x1n_2), SetTreeLeaf$1__get_Key<Nullable<T>>(x2_3)) | 0;
1038
+ const c_1: int32 = comparer.Compare(SetTreeLeaf$1__get_Key<T>(x1n_2), SetTreeLeaf$1__get_Key<T>(x2_3)) | 0;
1038
1039
  if (c_1 !== 0) {
1039
1040
  return c_1 | 0;
1040
1041
  }
@@ -1047,7 +1048,7 @@ export function SetTreeModule_compareStacks<T>(comparer_mut: IComparer<T>, l1_mu
1047
1048
  }
1048
1049
  }
1049
1050
  else {
1050
- let matchResult_1: int32, t1_7: FSharpList<Option<SetTreeLeaf$1<T>>>, x1_5: SetTreeLeaf$1<T>, t2_7: FSharpList<Option<SetTreeLeaf$1<T>>>, x2_5: SetTreeLeaf$1<T>;
1051
+ let matchResult_1: int32 = (undefined as any), t1_7: FSharpList<Option<SetTreeLeaf$1<T>>> = (undefined as any), x1_5: SetTreeLeaf$1<T> = (undefined as any), t2_7: FSharpList<Option<SetTreeLeaf$1<T>>> = (undefined as any), x2_5: SetTreeLeaf$1<T> = (undefined as any);
1051
1052
  if (!isEmpty_1(l1)) {
1052
1053
  if (head(l1) != null) {
1053
1054
  matchResult_1 = 0;
@@ -1111,14 +1112,14 @@ export function SetTreeModule_compareStacks<T>(comparer_mut: IComparer<T>, l1_mu
1111
1112
  continue SetTreeModule_compareStacks;
1112
1113
  }
1113
1114
  default:
1114
- throw new Error("unexpected state in SetTree.compareStacks");
1115
+ throw new Exception("unexpected state in SetTree.compareStacks");
1115
1116
  }
1116
1117
  }
1117
1118
  }
1118
1119
  else if (x2_3 instanceof SetTreeNode$1) {
1119
1120
  const x2n_5 = x2_3 as SetTreeNode$1<T>;
1120
1121
  if (SetTreeNode$1__get_Left<T>(x2n_5) == null) {
1121
- const c_2: int32 = comparer.Compare(SetTreeLeaf$1__get_Key<Nullable<T>>(x1_3), SetTreeLeaf$1__get_Key<Nullable<T>>(x2n_5)) | 0;
1122
+ const c_2: int32 = comparer.Compare(SetTreeLeaf$1__get_Key<T>(x1_3), SetTreeLeaf$1__get_Key<T>(x2n_5)) | 0;
1122
1123
  if (c_2 !== 0) {
1123
1124
  return c_2 | 0;
1124
1125
  }
@@ -1130,7 +1131,7 @@ export function SetTreeModule_compareStacks<T>(comparer_mut: IComparer<T>, l1_mu
1130
1131
  }
1131
1132
  }
1132
1133
  else {
1133
- let matchResult_2: int32, t1_8: FSharpList<Option<SetTreeLeaf$1<T>>>, x1_6: SetTreeLeaf$1<T>, t2_8: FSharpList<Option<SetTreeLeaf$1<T>>>, x2_6: SetTreeLeaf$1<T>;
1134
+ let matchResult_2: int32 = (undefined as any), t1_8: FSharpList<Option<SetTreeLeaf$1<T>>> = (undefined as any), x1_6: SetTreeLeaf$1<T> = (undefined as any), t2_8: FSharpList<Option<SetTreeLeaf$1<T>>> = (undefined as any), x2_6: SetTreeLeaf$1<T> = (undefined as any);
1134
1135
  if (!isEmpty_1(l1)) {
1135
1136
  if (head(l1) != null) {
1136
1137
  matchResult_2 = 0;
@@ -1194,12 +1195,12 @@ export function SetTreeModule_compareStacks<T>(comparer_mut: IComparer<T>, l1_mu
1194
1195
  continue SetTreeModule_compareStacks;
1195
1196
  }
1196
1197
  default:
1197
- throw new Error("unexpected state in SetTree.compareStacks");
1198
+ throw new Exception("unexpected state in SetTree.compareStacks");
1198
1199
  }
1199
1200
  }
1200
1201
  }
1201
1202
  else {
1202
- const c_3: int32 = comparer.Compare(SetTreeLeaf$1__get_Key<Nullable<T>>(x1_3), SetTreeLeaf$1__get_Key<Nullable<T>>(x2_3)) | 0;
1203
+ const c_3: int32 = comparer.Compare(SetTreeLeaf$1__get_Key<T>(x1_3), SetTreeLeaf$1__get_Key<T>(x2_3)) | 0;
1203
1204
  if (c_3 !== 0) {
1204
1205
  return c_3 | 0;
1205
1206
  }
@@ -1213,7 +1214,7 @@ export function SetTreeModule_compareStacks<T>(comparer_mut: IComparer<T>, l1_mu
1213
1214
  }
1214
1215
  else {
1215
1216
  const x2: SetTreeLeaf$1<T> = value_3(head(l2));
1216
- let matchResult_3: int32, t1_2: FSharpList<Option<SetTreeLeaf$1<T>>>, x1: SetTreeLeaf$1<T>, t2_2: FSharpList<Option<SetTreeLeaf$1<T>>>, x2_1: SetTreeLeaf$1<T>;
1217
+ let matchResult_3: int32 = (undefined as any), t1_2: FSharpList<Option<SetTreeLeaf$1<T>>> = (undefined as any), x1: SetTreeLeaf$1<T> = (undefined as any), t2_2: FSharpList<Option<SetTreeLeaf$1<T>>> = (undefined as any), x2_1: SetTreeLeaf$1<T> = (undefined as any);
1217
1218
  if (!isEmpty_1(l1)) {
1218
1219
  if (head(l1) != null) {
1219
1220
  matchResult_3 = 0;
@@ -1277,13 +1278,13 @@ export function SetTreeModule_compareStacks<T>(comparer_mut: IComparer<T>, l1_mu
1277
1278
  continue SetTreeModule_compareStacks;
1278
1279
  }
1279
1280
  default:
1280
- throw new Error("unexpected state in SetTree.compareStacks");
1281
+ throw new Exception("unexpected state in SetTree.compareStacks");
1281
1282
  }
1282
1283
  }
1283
1284
  }
1284
1285
  else if (head(l1) != null) {
1285
1286
  const x1_1: SetTreeLeaf$1<T> = value_3(head(l1));
1286
- let matchResult_4: int32, t1_4: FSharpList<Option<SetTreeLeaf$1<T>>>, x1_2: SetTreeLeaf$1<T>, t2_4: FSharpList<Option<SetTreeLeaf$1<T>>>, x2_2: SetTreeLeaf$1<T>;
1287
+ let matchResult_4: int32 = (undefined as any), t1_4: FSharpList<Option<SetTreeLeaf$1<T>>> = (undefined as any), x1_2: SetTreeLeaf$1<T> = (undefined as any), t2_4: FSharpList<Option<SetTreeLeaf$1<T>>> = (undefined as any), x2_2: SetTreeLeaf$1<T> = (undefined as any);
1287
1288
  if (!isEmpty_1(l1)) {
1288
1289
  if (head(l1) != null) {
1289
1290
  matchResult_4 = 0;
@@ -1347,7 +1348,7 @@ export function SetTreeModule_compareStacks<T>(comparer_mut: IComparer<T>, l1_mu
1347
1348
  continue SetTreeModule_compareStacks;
1348
1349
  }
1349
1350
  default:
1350
- throw new Error("unexpected state in SetTree.compareStacks");
1351
+ throw new Exception("unexpected state in SetTree.compareStacks");
1351
1352
  }
1352
1353
  }
1353
1354
  else {
@@ -1418,7 +1419,7 @@ export function SetTreeModule_toList<T>(t: Option<SetTreeLeaf$1<T>>): FSharpList
1418
1419
  return loop(t, empty_1<T>());
1419
1420
  }
1420
1421
 
1421
- export function SetTreeModule_copyToArray<$a>(s: Option<SetTreeLeaf$1<$a>>, arr: $a[], i: int32): void {
1422
+ export function SetTreeModule_copyToArray<$a>(s: Option<SetTreeLeaf$1<$a>>, arr: MutableArray<$a>, i: int32): void {
1422
1423
  let j: int32 = i;
1423
1424
  SetTreeModule_iter<$a>((x: $a): void => {
1424
1425
  setItem(arr, j, x);
@@ -1426,9 +1427,9 @@ export function SetTreeModule_copyToArray<$a>(s: Option<SetTreeLeaf$1<$a>>, arr:
1426
1427
  }, s);
1427
1428
  }
1428
1429
 
1429
- export function SetTreeModule_toArray<$a>(s: Option<SetTreeLeaf$1<$a>>): $a[] {
1430
+ export function SetTreeModule_toArray<$a>(s: Option<SetTreeLeaf$1<$a>>): MutableArray<$a> {
1430
1431
  const n: int32 = SetTreeModule_count<$a>(s) | 0;
1431
- const res: $a[] = fill(new Array(n), 0, n, null);
1432
+ const res: MutableArray<$a> = fill(new Array(n), 0, n, null);
1432
1433
  SetTreeModule_copyToArray<$a>(s, res, 0);
1433
1434
  return res;
1434
1435
  }
@@ -1450,7 +1451,7 @@ export function SetTreeModule_mkFromEnumerator<$a>(comparer_mut: IComparer<$a>,
1450
1451
  }
1451
1452
  }
1452
1453
 
1453
- export function SetTreeModule_ofArray<$a>(comparer: IComparer<$a>, l: $a[]): Option<SetTreeLeaf$1<$a>> {
1454
+ export function SetTreeModule_ofArray<$a>(comparer: IComparer<$a>, l: MutableArray<$a>): Option<SetTreeLeaf$1<$a>> {
1454
1455
  return fold_1<$a, Option<SetTreeLeaf$1<$a>>>((acc: Option<SetTreeLeaf$1<$a>>, k: $a): Option<SetTreeLeaf$1<$a>> => SetTreeModule_add<$a>(comparer, k, acc), SetTreeModule_empty<$a>(), l);
1455
1456
  }
1456
1457
 
@@ -1487,8 +1488,8 @@ export class FSharpSet<T> implements ISet<T>, Iterable<T>, Iterable<T> {
1487
1488
  const this$: FSharpSet<T> = this;
1488
1489
  return FSharpSet__ComputeHashCode<T>(this$) | 0;
1489
1490
  }
1490
- Equals(other: Nullable<any>): boolean {
1491
- let that: FSharpSet<T>;
1491
+ Equals(other: any): boolean {
1492
+ let that: FSharpSet<T> = undefined as any;
1492
1493
  const this$: FSharpSet<T> = this;
1493
1494
  return (other instanceof FSharpSet) && ((that = (other as FSharpSet<T>), SetTreeModule_compare<T>(FSharpSet__get_Comparer<T>(this$), FSharpSet__get_Tree<T>(this$), FSharpSet__get_Tree<T>(that)) === 0));
1494
1495
  }
@@ -1503,25 +1504,25 @@ export class FSharpSet<T> implements ISet<T>, Iterable<T>, Iterable<T> {
1503
1504
  const this$: FSharpSet<T> = this;
1504
1505
  return Array.from(this$);
1505
1506
  }
1506
- CompareTo(other: Nullable<any>): int32 {
1507
- let that: FSharpSet<T>;
1507
+ CompareTo(other: any): int32 {
1508
+ let that: FSharpSet<T> = undefined as any;
1508
1509
  const this$: FSharpSet<T> = this;
1509
1510
  return ((other instanceof FSharpSet) ? ((that = (other as FSharpSet<T>), SetTreeModule_compare<T>(FSharpSet__get_Comparer<T>(this$), FSharpSet__get_Tree<T>(this$), FSharpSet__get_Tree<T>(that)))) : 1) | 0;
1510
1511
  }
1511
1512
  "System.Collections.Generic.ICollection`1.Add2B595"(x: T): void {
1512
- throw new Error("ReadOnlyCollection");
1513
+ throw NotSupportedException_$ctor_Z721C83C5("ReadOnlyCollection");
1513
1514
  }
1514
1515
  "System.Collections.Generic.ICollection`1.Clear"(): void {
1515
- throw new Error("ReadOnlyCollection");
1516
+ throw NotSupportedException_$ctor_Z721C83C5("ReadOnlyCollection");
1516
1517
  }
1517
1518
  "System.Collections.Generic.ICollection`1.Remove2B595"(x: T): boolean {
1518
- throw new Error("ReadOnlyCollection");
1519
+ throw NotSupportedException_$ctor_Z721C83C5("ReadOnlyCollection");
1519
1520
  }
1520
1521
  "System.Collections.Generic.ICollection`1.Contains2B595"(x: T): boolean {
1521
1522
  const s: FSharpSet<T> = this;
1522
1523
  return SetTreeModule_mem<T>(FSharpSet__get_Comparer<T>(s), x, FSharpSet__get_Tree<T>(s));
1523
1524
  }
1524
- "System.Collections.Generic.ICollection`1.CopyToZ3B4C077E"(arr: T[], i: int32): void {
1525
+ "System.Collections.Generic.ICollection`1.CopyToZ3B4C077E"(arr: MutableArray<T>, i: int32): void {
1525
1526
  const s: FSharpSet<T> = this;
1526
1527
  SetTreeModule_copyToArray<T>(FSharpSet__get_Tree<T>(s), arr, i);
1527
1528
  }
@@ -1553,14 +1554,14 @@ export class FSharpSet<T> implements ISet<T>, Iterable<T>, Iterable<T> {
1553
1554
  }
1554
1555
  add(k: T): ISet<T> {
1555
1556
  const s: FSharpSet<T> = this;
1556
- throw new Error("Set cannot be mutated");
1557
+ throw new Exception("Set cannot be mutated");
1557
1558
  return s;
1558
1559
  }
1559
1560
  clear(): void {
1560
- throw new Error("Set cannot be mutated");
1561
+ throw new Exception("Set cannot be mutated");
1561
1562
  }
1562
1563
  delete(k: T): boolean {
1563
- throw new Error("Set cannot be mutated");
1564
+ throw new Exception("Set cannot be mutated");
1564
1565
  return false;
1565
1566
  }
1566
1567
  has(k: T): boolean {
@@ -1611,7 +1612,7 @@ export function FSharpSet__Add<T>(s: FSharpSet<T>, value: T): FSharpSet<T> {
1611
1612
  return FSharpSet_$ctor<T>(FSharpSet__get_Comparer<T>(s), SetTreeModule_add<T>(FSharpSet__get_Comparer<T>(s), value, FSharpSet__get_Tree<T>(s)));
1612
1613
  }
1613
1614
 
1614
- export function FSharpSet__Remove<T>(s: FSharpSet<T>, value: Nullable<T>): FSharpSet<T> {
1615
+ export function FSharpSet__Remove<T>(s: FSharpSet<T>, value: T): FSharpSet<T> {
1615
1616
  return FSharpSet_$ctor<T>(FSharpSet__get_Comparer<T>(s), SetTreeModule_remove<T>(FSharpSet__get_Comparer<T>(s), value, FSharpSet__get_Tree<T>(s)));
1616
1617
  }
1617
1618
 
@@ -1619,7 +1620,7 @@ export function FSharpSet__get_Count<T>(s: FSharpSet<T>): int32 {
1619
1620
  return SetTreeModule_count<T>(FSharpSet__get_Tree<T>(s)) | 0;
1620
1621
  }
1621
1622
 
1622
- export function FSharpSet__Contains<T>(s: FSharpSet<T>, value: Nullable<T>): boolean {
1623
+ export function FSharpSet__Contains<T>(s: FSharpSet<T>, value: T): boolean {
1623
1624
  return SetTreeModule_mem<T>(FSharpSet__get_Comparer<T>(s), value, FSharpSet__get_Tree<T>(s));
1624
1625
  }
1625
1626
 
@@ -1747,7 +1748,7 @@ export function FSharpSet__ToList<T>(x: FSharpSet<T>): FSharpList<T> {
1747
1748
  return SetTreeModule_toList<T>(FSharpSet__get_Tree<T>(x));
1748
1749
  }
1749
1750
 
1750
- export function FSharpSet__ToArray<T>(x: FSharpSet<T>): T[] {
1751
+ export function FSharpSet__ToArray<T>(x: FSharpSet<T>): MutableArray<T> {
1751
1752
  return SetTreeModule_toArray<T>(FSharpSet__get_Tree<T>(x));
1752
1753
  }
1753
1754
 
@@ -1770,7 +1771,7 @@ export function isEmpty<T>(set$: FSharpSet<T>): boolean {
1770
1771
  return FSharpSet__get_IsEmpty<T>(set$);
1771
1772
  }
1772
1773
 
1773
- export function contains<T>(element: Nullable<T>, set$: FSharpSet<T>): boolean {
1774
+ export function contains<T>(element: T, set$: FSharpSet<T>): boolean {
1774
1775
  return FSharpSet__Contains<T>(set$, element);
1775
1776
  }
1776
1777
 
@@ -1782,7 +1783,7 @@ export function singleton<T>(value: T, comparer: IComparer<T>): FSharpSet<T> {
1782
1783
  return FSharpSet__Add<T>(FSharpSet_Empty<T>(comparer), value);
1783
1784
  }
1784
1785
 
1785
- export function remove<T>(value: Nullable<T>, set$: FSharpSet<T>): FSharpSet<T> {
1786
+ export function remove<T>(value: T, set$: FSharpSet<T>): FSharpSet<T> {
1786
1787
  return FSharpSet__Remove<T>(set$, value);
1787
1788
  }
1788
1789
 
@@ -1846,7 +1847,7 @@ export function ofList<T>(elements: Iterable<T>, comparer: IComparer<T>): FSharp
1846
1847
  return FSharpSet_$ctor<T>(comparer, SetTreeModule_ofSeq<T>(comparer, elements));
1847
1848
  }
1848
1849
 
1849
- export function ofArray<T>(array: T[], comparer: IComparer<T>): FSharpSet<T> {
1850
+ export function ofArray<T>(array: MutableArray<T>, comparer: IComparer<T>): FSharpSet<T> {
1850
1851
  return FSharpSet_$ctor<T>(comparer, SetTreeModule_ofArray<T>(comparer, array));
1851
1852
  }
1852
1853
 
@@ -1854,7 +1855,7 @@ export function toList<T>(set$: FSharpSet<T>): FSharpList<T> {
1854
1855
  return FSharpSet__ToList<T>(set$);
1855
1856
  }
1856
1857
 
1857
- export function toArray<T>(set$: FSharpSet<T>): T[] {
1858
+ export function toArray<T>(set$: FSharpSet<T>): MutableArray<T> {
1858
1859
  return FSharpSet__ToArray<T>(set$);
1859
1860
  }
1860
1861