@grain/stdlib 0.6.6 → 0.7.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 (137) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/LICENSE +1 -1
  3. package/README.md +2 -2
  4. package/array.gr +55 -7
  5. package/array.md +123 -77
  6. package/bigint.md +30 -30
  7. package/buffer.gr +20 -53
  8. package/buffer.md +47 -47
  9. package/bytes.gr +111 -35
  10. package/bytes.md +111 -32
  11. package/char.gr +201 -99
  12. package/char.md +361 -34
  13. package/exception.gr +11 -11
  14. package/exception.md +26 -1
  15. package/float32.gr +327 -3
  16. package/float32.md +606 -19
  17. package/float64.gr +320 -3
  18. package/float64.md +606 -19
  19. package/fs.gr +1082 -0
  20. package/fs.md +630 -0
  21. package/hash.gr +142 -88
  22. package/hash.md +102 -14
  23. package/int16.md +23 -23
  24. package/int32.gr +25 -4
  25. package/int32.md +65 -30
  26. package/int64.gr +26 -1
  27. package/int64.md +65 -30
  28. package/int8.md +23 -23
  29. package/json.gr +366 -51
  30. package/json.md +418 -2
  31. package/list.gr +328 -31
  32. package/list.md +492 -69
  33. package/map.gr +20 -12
  34. package/map.md +44 -38
  35. package/marshal.gr +41 -40
  36. package/marshal.md +2 -2
  37. package/number.gr +159 -30
  38. package/number.md +215 -38
  39. package/option.md +21 -21
  40. package/package.json +5 -3
  41. package/path.gr +48 -0
  42. package/path.md +103 -12
  43. package/pervasives.gr +2 -2
  44. package/pervasives.md +37 -37
  45. package/priorityqueue.gr +7 -7
  46. package/priorityqueue.md +19 -19
  47. package/queue.gr +183 -29
  48. package/queue.md +296 -40
  49. package/random.md +6 -6
  50. package/range.gr +4 -4
  51. package/range.md +6 -6
  52. package/rational.md +16 -16
  53. package/regex.gr +52 -51
  54. package/regex.md +11 -11
  55. package/result.md +16 -16
  56. package/runtime/atof/common.md +39 -39
  57. package/runtime/atof/decimal.gr +6 -6
  58. package/runtime/atof/decimal.md +8 -8
  59. package/runtime/atof/lemire.gr +5 -5
  60. package/runtime/atof/lemire.md +1 -1
  61. package/runtime/atof/parse.gr +16 -16
  62. package/runtime/atof/parse.md +2 -2
  63. package/runtime/atof/slow.md +1 -1
  64. package/runtime/atof/table.md +2 -2
  65. package/runtime/atoi/parse.gr +3 -3
  66. package/runtime/atoi/parse.md +1 -1
  67. package/runtime/bigint.gr +15 -47
  68. package/runtime/bigint.md +54 -60
  69. package/runtime/compare.gr +2 -2
  70. package/runtime/compare.md +1 -1
  71. package/runtime/dataStructures.md +33 -33
  72. package/runtime/debugPrint.gr +4 -1
  73. package/runtime/debugPrint.md +9 -9
  74. package/runtime/equal.gr +99 -77
  75. package/runtime/equal.md +1 -1
  76. package/runtime/exception.gr +62 -82
  77. package/runtime/exception.md +62 -11
  78. package/runtime/gc.gr +39 -45
  79. package/runtime/gc.md +4 -4
  80. package/runtime/malloc.gr +7 -7
  81. package/runtime/malloc.md +4 -4
  82. package/runtime/math/kernel/cos.gr +70 -0
  83. package/runtime/math/kernel/cos.md +14 -0
  84. package/runtime/math/kernel/sin.gr +65 -0
  85. package/runtime/math/kernel/sin.md +14 -0
  86. package/runtime/math/kernel/tan.gr +136 -0
  87. package/runtime/math/kernel/tan.md +14 -0
  88. package/runtime/math/rempio2.gr +244 -0
  89. package/runtime/math/rempio2.md +14 -0
  90. package/runtime/math/trig.gr +130 -0
  91. package/runtime/math/trig.md +28 -0
  92. package/runtime/math/umuldi.gr +26 -0
  93. package/runtime/math/umuldi.md +14 -0
  94. package/runtime/numberUtils.gr +29 -29
  95. package/runtime/numberUtils.md +12 -12
  96. package/runtime/numbers.gr +373 -381
  97. package/runtime/numbers.md +79 -73
  98. package/runtime/string.gr +37 -105
  99. package/runtime/string.md +3 -9
  100. package/runtime/unsafe/constants.md +24 -24
  101. package/runtime/unsafe/conv.md +13 -13
  102. package/runtime/unsafe/memory.gr +24 -20
  103. package/runtime/unsafe/memory.md +27 -7
  104. package/runtime/unsafe/offsets.gr +36 -0
  105. package/runtime/unsafe/offsets.md +88 -0
  106. package/runtime/unsafe/panic.gr +28 -0
  107. package/runtime/unsafe/panic.md +14 -0
  108. package/runtime/unsafe/tags.md +32 -32
  109. package/runtime/unsafe/wasmf32.md +28 -28
  110. package/runtime/unsafe/wasmf64.md +28 -28
  111. package/runtime/unsafe/wasmi32.md +47 -47
  112. package/runtime/unsafe/wasmi64.md +50 -50
  113. package/runtime/utf8.gr +189 -0
  114. package/runtime/utf8.md +117 -0
  115. package/runtime/wasi.gr +4 -2
  116. package/runtime/wasi.md +138 -138
  117. package/set.gr +18 -11
  118. package/set.md +42 -36
  119. package/stack.gr +171 -2
  120. package/stack.md +297 -15
  121. package/string.gr +352 -557
  122. package/string.md +77 -34
  123. package/uint16.md +22 -22
  124. package/uint32.gr +25 -4
  125. package/uint32.md +63 -28
  126. package/uint64.gr +25 -5
  127. package/uint64.md +63 -28
  128. package/uint8.md +22 -22
  129. package/uri.gr +57 -53
  130. package/uri.md +11 -12
  131. package/wasi/file.gr +67 -59
  132. package/wasi/file.md +39 -39
  133. package/wasi/process.md +5 -5
  134. package/wasi/random.md +3 -3
  135. package/wasi/time.md +4 -4
  136. package/runtime/utils/printing.gr +0 -60
  137. package/runtime/utils/printing.md +0 -26
package/array.md CHANGED
@@ -39,7 +39,7 @@ No other changes yet.
39
39
  </details>
40
40
 
41
41
  ```grain
42
- length : (array: Array<a>) => Number
42
+ length: (array: Array<a>) => Number
43
43
  ```
44
44
 
45
45
  Provides the length of the input array.
@@ -70,7 +70,7 @@ No other changes yet.
70
70
  </details>
71
71
 
72
72
  ```grain
73
- make : (length: Number, item: a) => Array<a>
73
+ make: (length: Number, item: a) => Array<a>
74
74
  ```
75
75
 
76
76
  Creates a new array of the specified length with each element being
@@ -110,7 +110,7 @@ No other changes yet.
110
110
  </details>
111
111
 
112
112
  ```grain
113
- init : (length: Number, fn: (Number => a)) => Array<a>
113
+ init: (length: Number, fn: (Number => a)) => Array<a>
114
114
  ```
115
115
 
116
116
  Creates a new array of the specified length where each element is
@@ -143,6 +143,53 @@ Examples:
143
143
  Array.init(5, n => n + 3) == [> 3, 4, 5, 6, 7]
144
144
  ```
145
145
 
146
+ ### Array.**tryInit**
147
+
148
+ <details disabled>
149
+ <summary tabindex="-1">Added in <code>0.7.0</code></summary>
150
+ No other changes yet.
151
+ </details>
152
+
153
+ ```grain
154
+ tryInit:
155
+ (length: Number, fn: (Number => Result<a, b>)) => Result<Array<a>, b>
156
+ ```
157
+
158
+ Creates a new array where each element is initialized with the `Ok`
159
+ result value of an initializer function. The initializer is called with the
160
+ index of each element, and returns the new array if all calls to the
161
+ initializer succeed or the first error otherwise.
162
+
163
+ Parameters:
164
+
165
+ |param|type|description|
166
+ |-----|----|-----------|
167
+ |`length`|`Number`|The length of the new array|
168
+ |`fn`|`Number => Result<a, b>`|The initializer function to call with each index, where the `Ok` value returned will be used to initialize each element|
169
+
170
+ Returns:
171
+
172
+ |type|description|
173
+ |----|-----------|
174
+ |`Result<Array<a>, b>`|`Ok(array)` if all elements were successfully initialized or `Err(error)` if the initializer function returned an error|
175
+
176
+ Throws:
177
+
178
+ `InvalidArgument(String)`
179
+
180
+ * When `length` is not an integer
181
+ * When `length` is negative
182
+
183
+ Examples:
184
+
185
+ ```grain
186
+ Array.tryInit(5, n => Ok(n + 3)) == [> 3, 4, 5, 6, 7]
187
+ ```
188
+
189
+ ```grain
190
+ Array.tryInit(5, n => if (n == 1) Err("stop") else Ok(n)) == Err("stop")
191
+ ```
192
+
146
193
  ### Array.**get**
147
194
 
148
195
  <details>
@@ -158,7 +205,7 @@ Array.init(5, n => n + 3) == [> 3, 4, 5, 6, 7]
158
205
  </details>
159
206
 
160
207
  ```grain
161
- get : (index: Number, array: Array<a>) => a
208
+ get: (index: Number, array: Array<a>) => a
162
209
  ```
163
210
 
164
211
  An alias for normal syntactic array access, i.e. `array[n]`.
@@ -207,7 +254,7 @@ Array.get(1, [> 1, 2, 3, 4, 5]) == 2
207
254
  </details>
208
255
 
209
256
  ```grain
210
- set : (index: Number, value: a, array: Array<a>) => Void
257
+ set: (index: Number, value: a, array: Array<a>) => Void
211
258
  ```
212
259
 
213
260
  An alias for normal syntactic array set, i.e. `array[n] = value`.
@@ -246,7 +293,7 @@ No other changes yet.
246
293
  </details>
247
294
 
248
295
  ```grain
249
- append : (array1: Array<a>, array2: Array<a>) => Array<a>
296
+ append: (array1: Array<a>, array2: Array<a>) => Array<a>
250
297
  ```
251
298
 
252
299
  Creates a new array with the elements of the first array followed by
@@ -285,7 +332,7 @@ No other changes yet.
285
332
  </details>
286
333
 
287
334
  ```grain
288
- concat : (arrays: List<Array<a>>) => Array<a>
335
+ concat: (arrays: List<Array<a>>) => Array<a>
289
336
  ```
290
337
 
291
338
  Creates a single array containing the elements of all arrays in the
@@ -323,7 +370,7 @@ No other changes yet.
323
370
  </details>
324
371
 
325
372
  ```grain
326
- copy : (array: Array<a>) => Array<a>
373
+ copy: (array: Array<a>) => Array<a>
327
374
  ```
328
375
 
329
376
  Produces a shallow copy of the input array. The new array contains the
@@ -355,7 +402,7 @@ No other changes yet.
355
402
  </details>
356
403
 
357
404
  ```grain
358
- cycle : (fn: (a => Void), n: Number, array: Array<a>) => Void
405
+ cycle: (fn: (a => Void), n: Number, array: Array<a>) => Void
359
406
  ```
360
407
 
361
408
  Iterates an array a given number of times, calling an iterator function on each element.
@@ -391,7 +438,7 @@ assert str == "abcabc"
391
438
  </details>
392
439
 
393
440
  ```grain
394
- forEach : (fn: (a => Void), array: Array<a>) => Void
441
+ forEach: (fn: (a => Void), array: Array<a>) => Void
395
442
  ```
396
443
 
397
444
  Iterates an array, calling an iterator function on each element.
@@ -426,7 +473,7 @@ assert str == "abc"
426
473
  </details>
427
474
 
428
475
  ```grain
429
- forEachi : (fn: ((a, Number) => Void), array: Array<a>) => Void
476
+ forEachi: (fn: ((a, Number) => Void), array: Array<a>) => Void
430
477
  ```
431
478
 
432
479
  Iterates an array, calling an iterator function on each element.
@@ -462,7 +509,7 @@ assert str == "a0b1c2"
462
509
  </details>
463
510
 
464
511
  ```grain
465
- map : (fn: (a => b), array: Array<a>) => Array<b>
512
+ map: (fn: (a => b), array: Array<a>) => Array<b>
466
513
  ```
467
514
 
468
515
  Produces a new array initialized with the results of a mapper function
@@ -495,7 +542,7 @@ No other changes yet.
495
542
  </details>
496
543
 
497
544
  ```grain
498
- mapi : (fn: ((a, Number) => b), array: Array<a>) => Array<b>
545
+ mapi: (fn: ((a, Number) => b), array: Array<a>) => Array<b>
499
546
  ```
500
547
 
501
548
  Produces a new array initialized with the results of a mapper function
@@ -528,7 +575,7 @@ No other changes yet.
528
575
  </details>
529
576
 
530
577
  ```grain
531
- reduce : (fn: ((a, b) => a), initial: a, array: Array<b>) => a
578
+ reduce: (fn: ((a, b) => a), initial: a, array: Array<b>) => a
532
579
  ```
533
580
 
534
581
  Combines all elements of an array using a reducer function,
@@ -571,7 +618,7 @@ No other changes yet.
571
618
  </details>
572
619
 
573
620
  ```grain
574
- reduceRight : (fn: ((a, b) => b), initial: b, array: Array<a>) => b
621
+ reduceRight: (fn: ((a, b) => b), initial: b, array: Array<a>) => b
575
622
  ```
576
623
 
577
624
  Combines all elements of an array using a reducer function,
@@ -610,7 +657,7 @@ No other changes yet.
610
657
  </details>
611
658
 
612
659
  ```grain
613
- reducei : (fn: ((a, b, Number) => a), initial: a, array: Array<b>) => a
660
+ reducei: (fn: ((a, b, Number) => a), initial: a, array: Array<b>) => a
614
661
  ```
615
662
 
616
663
  Combines all elements of an array using a reducer function,
@@ -657,7 +704,7 @@ No other changes yet.
657
704
  </details>
658
705
 
659
706
  ```grain
660
- flatMap : (fn: (b => Array<a>), array: Array<b>) => Array<a>
707
+ flatMap: (fn: (b => Array<a>), array: Array<b>) => Array<a>
661
708
  ```
662
709
 
663
710
  Produces a new array by calling a function on each element
@@ -698,7 +745,7 @@ No other changes yet.
698
745
  </details>
699
746
 
700
747
  ```grain
701
- every : (fn: (a => Bool), array: Array<a>) => Bool
748
+ every: (fn: (a => Bool), array: Array<a>) => Bool
702
749
  ```
703
750
 
704
751
  Checks that the given condition is satisfied for all
@@ -735,7 +782,7 @@ No other changes yet.
735
782
  </details>
736
783
 
737
784
  ```grain
738
- some : (fn: (a => Bool), array: Array<a>) => Bool
785
+ some: (fn: (a => Bool), array: Array<a>) => Bool
739
786
  ```
740
787
 
741
788
  Checks that the given condition is satisfied **at least
@@ -776,7 +823,7 @@ No other changes yet.
776
823
  </details>
777
824
 
778
825
  ```grain
779
- fill : (value: a, array: Array<a>) => Void
826
+ fill: (value: a, array: Array<a>) => Void
780
827
  ```
781
828
 
782
829
  Replaces all elements in an array with the new value provided.
@@ -804,7 +851,7 @@ No other changes yet.
804
851
  </details>
805
852
 
806
853
  ```grain
807
- fillRange : (value: a, start: Number, stop: Number, array: Array<a>) => Void
854
+ fillRange: (value: a, start: Number, stop: Number, array: Array<a>) => Void
808
855
  ```
809
856
 
810
857
  Replaces all elements in the provided index range in the array
@@ -842,7 +889,7 @@ No other changes yet.
842
889
  </details>
843
890
 
844
891
  ```grain
845
- reverse : (array: Array<a>) => Array<a>
892
+ reverse: (array: Array<a>) => Array<a>
846
893
  ```
847
894
 
848
895
  Creates a new array with all elements in reverse order.
@@ -873,7 +920,7 @@ No other changes yet.
873
920
  </details>
874
921
 
875
922
  ```grain
876
- toList : (array: Array<a>) => List<a>
923
+ toList: (array: Array<a>) => List<a>
877
924
  ```
878
925
 
879
926
  Converts the input array to a list.
@@ -904,7 +951,7 @@ No other changes yet.
904
951
  </details>
905
952
 
906
953
  ```grain
907
- fromList : (list: List<a>) => Array<a>
954
+ fromList: (list: List<a>) => Array<a>
908
955
  ```
909
956
 
910
957
  Converts the input list to an array.
@@ -935,7 +982,7 @@ No other changes yet.
935
982
  </details>
936
983
 
937
984
  ```grain
938
- contains : (search: a, array: Array<a>) => Bool
985
+ contains: (search: a, array: Array<a>) => Bool
939
986
  ```
940
987
 
941
988
  Checks if the value is an element of the input array.
@@ -972,7 +1019,7 @@ No other changes yet.
972
1019
  </details>
973
1020
 
974
1021
  ```grain
975
- find : (fn: (a => Bool), array: Array<a>) => Option<a>
1022
+ find: (fn: (a => Bool), array: Array<a>) => Option<a>
976
1023
  ```
977
1024
 
978
1025
  Finds the first element in an array that satisfies the given condition.
@@ -1012,7 +1059,7 @@ No other changes yet.
1012
1059
  </details>
1013
1060
 
1014
1061
  ```grain
1015
- findIndex : (fn: (a => Bool), array: Array<a>) => Option<Number>
1062
+ findIndex: (fn: (a => Bool), array: Array<a>) => Option<Number>
1016
1063
  ```
1017
1064
 
1018
1065
  Finds the first index in an array where the element satisfies the given condition.
@@ -1052,7 +1099,7 @@ No other changes yet.
1052
1099
  </details>
1053
1100
 
1054
1101
  ```grain
1055
- product : (array1: Array<a>, array2: Array<b>) => Array<(a, b)>
1102
+ product: (array1: Array<a>, array2: Array<b>) => Array<(a, b)>
1056
1103
  ```
1057
1104
 
1058
1105
  Combines two arrays into a Cartesian product of tuples containing
@@ -1091,7 +1138,7 @@ No other changes yet.
1091
1138
  </details>
1092
1139
 
1093
1140
  ```grain
1094
- count : (fn: (a => Bool), array: Array<a>) => Number
1141
+ count: (fn: (a => Bool), array: Array<a>) => Number
1095
1142
  ```
1096
1143
 
1097
1144
  Counts the number of elements in an array that satisfy the given condition.
@@ -1123,7 +1170,7 @@ No other changes yet.
1123
1170
  </details>
1124
1171
 
1125
1172
  ```grain
1126
- counti : (fn: ((a, Number) => Bool), array: Array<a>) => Number
1173
+ counti: (fn: ((a, Number) => Bool), array: Array<a>) => Number
1127
1174
  ```
1128
1175
 
1129
1176
  Counts the number of elements in an array that satisfy the
@@ -1160,7 +1207,7 @@ No other changes yet.
1160
1207
  </details>
1161
1208
 
1162
1209
  ```grain
1163
- filter : (fn: (a => Bool), array: Array<a>) => Array<a>
1210
+ filter: (fn: (a => Bool), array: Array<a>) => Array<a>
1164
1211
  ```
1165
1212
 
1166
1213
  Produces a new array by calling a function on each element of
@@ -1194,7 +1241,7 @@ No other changes yet.
1194
1241
  </details>
1195
1242
 
1196
1243
  ```grain
1197
- filteri : (fn: ((a, Number) => Bool), array: Array<a>) => Array<a>
1244
+ filteri: (fn: ((a, Number) => Bool), array: Array<a>) => Array<a>
1198
1245
  ```
1199
1246
 
1200
1247
  Produces a new array by calling a function on each element of
@@ -1232,7 +1279,7 @@ No other changes yet.
1232
1279
  </details>
1233
1280
 
1234
1281
  ```grain
1235
- unique : (array: Array<a>) => Array<a>
1282
+ unique: (array: Array<a>) => Array<a>
1236
1283
  ```
1237
1284
 
1238
1285
  Produces a new array with any duplicates removed.
@@ -1271,7 +1318,7 @@ Array.unique([> 1, 2, 1, 2, 3, 1]) == [> 1, 2, 3]
1271
1318
  </details>
1272
1319
 
1273
1320
  ```grain
1274
- zip : (array1: Array<a>, array2: Array<b>) => Array<(a, b)>
1321
+ zip: (array1: Array<a>, array2: Array<b>) => Array<(a, b)>
1275
1322
  ```
1276
1323
 
1277
1324
  Produces a new array filled with tuples of elements from both given arrays.
@@ -1311,7 +1358,7 @@ No other changes yet.
1311
1358
  </details>
1312
1359
 
1313
1360
  ```grain
1314
- zipWith : (fn: ((a, b) => c), array1: Array<a>, array2: Array<b>) => Array<c>
1361
+ zipWith: (fn: ((a, b) => c), array1: Array<a>, array2: Array<b>) => Array<c>
1315
1362
  ```
1316
1363
 
1317
1364
  Produces a new array filled with elements defined by applying a function on
@@ -1361,7 +1408,7 @@ No other changes yet.
1361
1408
  </details>
1362
1409
 
1363
1410
  ```grain
1364
- unzip : (array: Array<(a, b)>) => (Array<a>, Array<b>)
1411
+ unzip: (array: Array<(a, b)>) => (Array<a>, Array<b>)
1365
1412
  ```
1366
1413
 
1367
1414
  Produces two arrays by splitting apart an array of tuples.
@@ -1392,7 +1439,7 @@ No other changes yet.
1392
1439
  </details>
1393
1440
 
1394
1441
  ```grain
1395
- join : (separator: String, items: Array<String>) => String
1442
+ join: (separator: String, items: Array<String>) => String
1396
1443
  ```
1397
1444
 
1398
1445
  Concatenates an array of strings into a single string, separated by a separator string.
@@ -1431,7 +1478,7 @@ Array.join(", ", [> "a", "b", "c"]) == "a, b, c"
1431
1478
  </details>
1432
1479
 
1433
1480
  ```grain
1434
- slice : (start: Number, ?end: Number, array: Array<a>) => Array<a>
1481
+ slice: (start: Number, ?end: Number, array: Array<a>) => Array<a>
1435
1482
  ```
1436
1483
 
1437
1484
  Slices an array given zero-based start and end indexes. The value
@@ -1479,7 +1526,7 @@ Array.slice(1, [> 1, 2, 3, 4]) == [> 2, 3, 4]
1479
1526
  </details>
1480
1527
 
1481
1528
  ```grain
1482
- sort : (?compare: ((num1: a, num2: a) => Number), array: Array<a>) => Void
1529
+ sort: (?compare: ((num1: a, num2: a) => Number), array: Array<a>) => Void
1483
1530
  ```
1484
1531
 
1485
1532
  Sorts an array in-place.
@@ -1516,7 +1563,7 @@ assert arr == [> 1, 2, 3, 4]
1516
1563
  </details>
1517
1564
 
1518
1565
  ```grain
1519
- rotate : (n: Number, arr: Array<a>) => Void
1566
+ rotate: (n: Number, arr: Array<a>) => Void
1520
1567
  ```
1521
1568
 
1522
1569
  Rotates array elements in place by the specified amount to the left, such
@@ -1554,7 +1601,7 @@ No other changes yet.
1554
1601
  </details>
1555
1602
 
1556
1603
  ```grain
1557
- chunk : (chunkSize: Number, arr: Array<a>) => Array<Array<a>>
1604
+ chunk: (chunkSize: Number, arr: Array<a>) => Array<Array<a>>
1558
1605
  ```
1559
1606
 
1560
1607
  Splits the given array into chunks of the provided size.
@@ -1647,7 +1694,7 @@ Functions and constants included in the Array.Immutable module.
1647
1694
  </details>
1648
1695
 
1649
1696
  ```grain
1650
- empty : ImmutableArray<a>
1697
+ empty: ImmutableArray<a>
1651
1698
  ```
1652
1699
 
1653
1700
  An empty array.
@@ -1673,7 +1720,7 @@ Array.Immutable.empty == Array.Immutable.fromList([])
1673
1720
  </details>
1674
1721
 
1675
1722
  ```grain
1676
- isEmpty : (array: ImmutableArray<a>) => Bool
1723
+ isEmpty: (array: ImmutableArray<a>) => Bool
1677
1724
  ```
1678
1725
 
1679
1726
  Determines if the array contains no elements.
@@ -1717,7 +1764,7 @@ assert Immutable.isEmpty(Immutable.fromList([])) == true
1717
1764
  </details>
1718
1765
 
1719
1766
  ```grain
1720
- length : (array: ImmutableArray<a>) => Number
1767
+ length: (array: ImmutableArray<a>) => Number
1721
1768
  ```
1722
1769
 
1723
1770
  Provides the length of the input array.
@@ -1756,7 +1803,7 @@ assert Immutable.length(Immutable.fromList([1, 2, 3, 4, 5])) == 5
1756
1803
  </details>
1757
1804
 
1758
1805
  ```grain
1759
- get : (index: Number, array: ImmutableArray<a>) => a
1806
+ get: (index: Number, array: ImmutableArray<a>) => a
1760
1807
  ```
1761
1808
 
1762
1809
  Retrieves the element from the array at the specified index.
@@ -1808,8 +1855,7 @@ assert Immutable.get(-1, Immutable.fromList([1, 2, 3, 4])) == 4
1808
1855
  </details>
1809
1856
 
1810
1857
  ```grain
1811
- set :
1812
- (index: Number, value: a, array: ImmutableArray<a>) => ImmutableArray<a>
1858
+ set: (index: Number, value: a, array: ImmutableArray<a>) => ImmutableArray<a>
1813
1859
  ```
1814
1860
 
1815
1861
  Creates a new array in which the element at the specified index is set to a
@@ -1860,7 +1906,7 @@ assert array == Immutable.fromList([1, 9, 3, 4, 5])
1860
1906
  </details>
1861
1907
 
1862
1908
  ```grain
1863
- append :
1909
+ append:
1864
1910
  (array1: ImmutableArray<a>, array2: ImmutableArray<a>) => ImmutableArray<a>
1865
1911
  ```
1866
1912
 
@@ -1906,7 +1952,7 @@ assert arr2 == Immutable.fromList([3, 4, 5])
1906
1952
  </details>
1907
1953
 
1908
1954
  ```grain
1909
- concat : (arrays: List<ImmutableArray<a>>) => ImmutableArray<a>
1955
+ concat: (arrays: List<ImmutableArray<a>>) => ImmutableArray<a>
1910
1956
  ```
1911
1957
 
1912
1958
  Creates a single array containing the elements of all arrays in the
@@ -1949,7 +1995,7 @@ assert Immutable.concat([arr1, arr2, arr3]) == Immutable.fromList([1, 2, 3, 4, 5
1949
1995
  </details>
1950
1996
 
1951
1997
  ```grain
1952
- init : (length: Number, fn: (Number => a)) => ImmutableArray<a>
1998
+ init: (length: Number, fn: (Number => a)) => ImmutableArray<a>
1953
1999
  ```
1954
2000
 
1955
2001
  Creates a new array of the specified length where each element is
@@ -1996,7 +2042,7 @@ assert Immutable.init(5, i => i + 3) == Immutable.fromList([3, 4, 5, 6, 7])
1996
2042
  </details>
1997
2043
 
1998
2044
  ```grain
1999
- make : (length: Number, value: a) => ImmutableArray<a>
2045
+ make: (length: Number, value: a) => ImmutableArray<a>
2000
2046
  ```
2001
2047
 
2002
2048
  Creates a new array of the specified length with each element being
@@ -2037,7 +2083,7 @@ assert Immutable.make(5, "🌾") == Immutable.fromList(["🌾", "🌾", "🌾",
2037
2083
  </details>
2038
2084
 
2039
2085
  ```grain
2040
- forEach : (fn: (a => Void), array: ImmutableArray<a>) => Void
2086
+ forEach: (fn: (a => Void), array: ImmutableArray<a>) => Void
2041
2087
  ```
2042
2088
 
2043
2089
  Iterates an array, calling an iterator function on each element.
@@ -2074,7 +2120,7 @@ assert str == "foobarbaz"
2074
2120
  </details>
2075
2121
 
2076
2122
  ```grain
2077
- cycle : (fn: (a => Void), n: Number, array: ImmutableArray<a>) => Void
2123
+ cycle: (fn: (a => Void), n: Number, array: ImmutableArray<a>) => Void
2078
2124
  ```
2079
2125
 
2080
2126
  Iterates an array a given number of times, calling an iterator function on each element.
@@ -2112,7 +2158,7 @@ assert str == "abcabc"
2112
2158
  </details>
2113
2159
 
2114
2160
  ```grain
2115
- map : (fn: (a => b), array: ImmutableArray<a>) => ImmutableArray<b>
2161
+ map: (fn: (a => b), array: ImmutableArray<a>) => ImmutableArray<b>
2116
2162
  ```
2117
2163
 
2118
2164
  Produces a new array initialized with the results of a mapper function
@@ -2155,7 +2201,7 @@ assert arr == Immutable.fromList(["foo_", "bar_", "baz_"])
2155
2201
  </details>
2156
2202
 
2157
2203
  ```grain
2158
- reduce : (fn: ((a, b) => a), initial: a, array: ImmutableArray<b>) => a
2204
+ reduce: (fn: ((a, b) => a), initial: a, array: ImmutableArray<b>) => a
2159
2205
  ```
2160
2206
 
2161
2207
  Combines all elements of an array using a reducer function,
@@ -2203,7 +2249,7 @@ assert Immutable.reduce((acc, x) => acc + x, 0, arr) == 6
2203
2249
  </details>
2204
2250
 
2205
2251
  ```grain
2206
- reduceRight : (fn: ((a, b) => b), initial: b, array: ImmutableArray<a>) => b
2252
+ reduceRight: (fn: ((a, b) => b), initial: b, array: ImmutableArray<a>) => b
2207
2253
  ```
2208
2254
 
2209
2255
  Combines all elements of an array using a reducer function,
@@ -2251,7 +2297,7 @@ assert Immutable.reduceRight((x, acc) => acc ++ x, "", arr) == "foobarbaz"
2251
2297
  </details>
2252
2298
 
2253
2299
  ```grain
2254
- flatMap :
2300
+ flatMap:
2255
2301
  (fn: (a => ImmutableArray<b>), array: ImmutableArray<a>) =>
2256
2302
  ImmutableArray<b>
2257
2303
  ```
@@ -2298,7 +2344,7 @@ assert arr == Immutable.fromList([1, 2, 3, 4, 5, 6])
2298
2344
  </details>
2299
2345
 
2300
2346
  ```grain
2301
- fromList : (list: List<a>) => ImmutableArray<a>
2347
+ fromList: (list: List<a>) => ImmutableArray<a>
2302
2348
  ```
2303
2349
 
2304
2350
  Converts the input list to an array.
@@ -2338,7 +2384,7 @@ assert Immutable.get(1, arr) == 2
2338
2384
  </details>
2339
2385
 
2340
2386
  ```grain
2341
- toList : (array: ImmutableArray<a>) => List<a>
2387
+ toList: (array: ImmutableArray<a>) => List<a>
2342
2388
  ```
2343
2389
 
2344
2390
  Converts the input array to a list.
@@ -2379,7 +2425,7 @@ assert Immutable.toList(arr) == ['d', 'b', 'c']
2379
2425
  </details>
2380
2426
 
2381
2427
  ```grain
2382
- filter : (fn: (a => Bool), array: ImmutableArray<a>) => ImmutableArray<a>
2428
+ filter: (fn: (a => Bool), array: ImmutableArray<a>) => ImmutableArray<a>
2383
2429
  ```
2384
2430
 
2385
2431
  Produces a new array by calling a function on each element of
@@ -2423,7 +2469,7 @@ assert Immutable.toList(arr) == ['a', 'a']
2423
2469
  </details>
2424
2470
 
2425
2471
  ```grain
2426
- every : (fn: (a => Bool), array: ImmutableArray<a>) => Bool
2472
+ every: (fn: (a => Bool), array: ImmutableArray<a>) => Bool
2427
2473
  ```
2428
2474
 
2429
2475
  Checks that the given condition is satisfied for all
@@ -2440,7 +2486,7 @@ Returns:
2440
2486
 
2441
2487
  |type|description|
2442
2488
  |----|-----------|
2443
- |`Bool`|`true` if all elements satify the condition or `false` otherwise|
2489
+ |`Bool`|`true` if all elements satisfy the condition or `false` otherwise|
2444
2490
 
2445
2491
  Examples:
2446
2492
 
@@ -2471,7 +2517,7 @@ assert Immutable.every(e => e == 'a', arr) == false
2471
2517
  </details>
2472
2518
 
2473
2519
  ```grain
2474
- some : (fn: (a => Bool), array: ImmutableArray<a>) => Bool
2520
+ some: (fn: (a => Bool), array: ImmutableArray<a>) => Bool
2475
2521
  ```
2476
2522
 
2477
2523
  Checks that the given condition is satisfied **at least
@@ -2519,7 +2565,7 @@ assert Immutable.some(e => e == 'a', arr) == false
2519
2565
  </details>
2520
2566
 
2521
2567
  ```grain
2522
- reverse : (array: ImmutableArray<a>) => ImmutableArray<a>
2568
+ reverse: (array: ImmutableArray<a>) => ImmutableArray<a>
2523
2569
  ```
2524
2570
 
2525
2571
  Creates a new array with all elements in reverse order.
@@ -2560,7 +2606,7 @@ assert Immutable.toList(arr) == ['c', 'b', 'a']
2560
2606
  </details>
2561
2607
 
2562
2608
  ```grain
2563
- contains : (search: a, array: ImmutableArray<a>) => Bool
2609
+ contains: (search: a, array: ImmutableArray<a>) => Bool
2564
2610
  ```
2565
2611
 
2566
2612
  Checks if the value is an element of the input array.
@@ -2608,7 +2654,7 @@ assert Immutable.contains('a', arr) == false
2608
2654
  </details>
2609
2655
 
2610
2656
  ```grain
2611
- find : (fn: (a => Bool), array: ImmutableArray<a>) => Option<a>
2657
+ find: (fn: (a => Bool), array: ImmutableArray<a>) => Option<a>
2612
2658
  ```
2613
2659
 
2614
2660
  Finds the first element in an array that satisfies the given condition.
@@ -2655,7 +2701,7 @@ assert Immutable.find(e => e == 2, arr) == None
2655
2701
  </details>
2656
2702
 
2657
2703
  ```grain
2658
- findIndex : (fn: (a => Bool), array: ImmutableArray<a>) => Option<Number>
2704
+ findIndex: (fn: (a => Bool), array: ImmutableArray<a>) => Option<Number>
2659
2705
  ```
2660
2706
 
2661
2707
  Finds the first index in an array where the element satisfies the given condition.
@@ -2702,7 +2748,7 @@ assert Immutable.findIndex(e => e == 2, arr) == None
2702
2748
  </details>
2703
2749
 
2704
2750
  ```grain
2705
- product :
2751
+ product:
2706
2752
  (array1: ImmutableArray<a>, array2: ImmutableArray<b>) =>
2707
2753
  ImmutableArray<(a, b)>
2708
2754
  ```
@@ -2747,7 +2793,7 @@ assert Immutable.product(arr1, arr2) == Immutable.fromList([(1, 3), (1, 4), (2,
2747
2793
  </details>
2748
2794
 
2749
2795
  ```grain
2750
- count : (fn: (a => Bool), array: ImmutableArray<a>) => Number
2796
+ count: (fn: (a => Bool), array: ImmutableArray<a>) => Number
2751
2797
  ```
2752
2798
 
2753
2799
  Counts the number of elements in an array that satisfy the given condition.
@@ -2788,7 +2834,7 @@ assert Immutable.count(e => e == 1, arr) == 2
2788
2834
  </details>
2789
2835
 
2790
2836
  ```grain
2791
- unique : (array: ImmutableArray<a>) => ImmutableArray<a>
2837
+ unique: (array: ImmutableArray<a>) => ImmutableArray<a>
2792
2838
  ```
2793
2839
 
2794
2840
  Produces a new array with any duplicates removed.
@@ -2829,7 +2875,7 @@ assert Immutable.unique(arr) == Immutable.fromList([1, 2, 3, 4])
2829
2875
  </details>
2830
2876
 
2831
2877
  ```grain
2832
- zip :
2878
+ zip:
2833
2879
  (array1: ImmutableArray<a>, array2: ImmutableArray<b>) =>
2834
2880
  ImmutableArray<(a, b)>
2835
2881
  ```
@@ -2878,7 +2924,7 @@ assert Immutable.zip(arr1, arr2) == Immutable.fromList([(1, 4), (2, 5), (3, 6)])
2878
2924
  </details>
2879
2925
 
2880
2926
  ```grain
2881
- zipWith :
2927
+ zipWith:
2882
2928
  (fn: ((a, b) => c), array1: ImmutableArray<a>, array2: ImmutableArray<b>) =>
2883
2929
  ImmutableArray<c>
2884
2930
  ```
@@ -2937,7 +2983,7 @@ assert Immutable.zipWith((a, b) => a * b, arr1, arr2) == Immutable.fromList([4,
2937
2983
  </details>
2938
2984
 
2939
2985
  ```grain
2940
- unzip :
2986
+ unzip:
2941
2987
  (array: ImmutableArray<(a, b)>) => (ImmutableArray<a>, ImmutableArray<b>)
2942
2988
  ```
2943
2989
 
@@ -2980,7 +3026,7 @@ assert Immutable.unzip(arr1) == (arr2, arr3)
2980
3026
  </details>
2981
3027
 
2982
3028
  ```grain
2983
- join : (separator: String, array: ImmutableArray<String>) => String
3029
+ join: (separator: String, array: ImmutableArray<String>) => String
2984
3030
  ```
2985
3031
 
2986
3032
  Concatenates an array of strings into a single string, separated by a separator string.
@@ -3022,7 +3068,7 @@ assert Immutable.join(", ", arr) == "a, b, c"
3022
3068
  </details>
3023
3069
 
3024
3070
  ```grain
3025
- slice :
3071
+ slice:
3026
3072
  (start: Number, ?end: Number, array: ImmutableArray<a>) =>
3027
3073
  ImmutableArray<a>
3028
3074
  ```
@@ -3076,7 +3122,7 @@ assert Immutable.slice(1, end=-1, arr) == Immutable.fromList(['b'])
3076
3122
  </details>
3077
3123
 
3078
3124
  ```grain
3079
- sort :
3125
+ sort:
3080
3126
  (?compare: ((num1: a, num2: a) => Number), array: ImmutableArray<a>) =>
3081
3127
  ImmutableArray<a>
3082
3128
  ```
@@ -3121,7 +3167,7 @@ assert Immutable.sort(compare=(a, b) => a - b, arr) == Immutable.fromList([1, 2,
3121
3167
  </details>
3122
3168
 
3123
3169
  ```grain
3124
- rotate : (n: Number, array: ImmutableArray<a>) => ImmutableArray<a>
3170
+ rotate: (n: Number, array: ImmutableArray<a>) => ImmutableArray<a>
3125
3171
  ```
3126
3172
 
3127
3173
  Rotates array elements by the specified amount to the left, such that the